Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Unsound skolemization when using \E as a value #148

Closed
konnov opened this issue Jun 4, 2020 · 1 comment
Closed

[BUG] Unsound skolemization when using \E as a value #148

konnov opened this issue Jun 4, 2020 · 1 comment
Assignees
Labels

Comments

@konnov
Copy link
Collaborator

konnov commented Jun 4, 2020

The following test produces a spurious counterexample:

------------------------ MODULE ExistsAsValue -------------------------         
VARIABLES x

Init ==
    x = TRUE

Next ==
    x' = \E y \in {1, 2}: y /= 1

Next2 ==
    IF \E y \in {1, 2}: y /= 1
    THEN x' = TRUE
    ELSE x' = FALSE

Inv == x
=======================================================

The reason is that y is skolemized, though it is used as a value and thus effectively used both in negative and positive forms. The solution with Next2 disables the Skolemization of y and produces no counterexample. If an existential is used as a value, we should not skolemize it.

@konnov konnov added the bug label Jun 4, 2020
@konnov konnov added this to the v0.7-dev-integration milestone Jun 4, 2020
@konnov konnov self-assigned this Jun 4, 2020
konnov added a commit that referenced this issue Jun 4, 2020
Kukovec pushed a commit that referenced this issue Jun 26, 2020
konnov added a commit that referenced this issue Jun 30, 2020
@konnov
Copy link
Collaborator Author

konnov commented Jun 30, 2020

Fixed, SkolemizationMarker does not descend in the non-formula expressions any longer

@konnov konnov closed this as completed Jun 30, 2020
konnov added a commit that referenced this issue Jun 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant