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

About available first-order logic semantics. #65

Open
zqzqz opened this issue Mar 29, 2020 · 1 comment
Open

About available first-order logic semantics. #65

zqzqz opened this issue Mar 29, 2020 · 1 comment

Comments

@zqzqz
Copy link

zqzqz commented Mar 29, 2020

Does Sally support exists and forall operators? I tried a simple example but it throws parser error at the location of "exists".

(define-state-type my_state
  ((x Real) (y Real))
)

(define-states initial_states my_state
  (and (= x 1) (= y 2))
)

(define-transition transition my_state
  (and (= next.x (+ state.x 1)) (= next.y (+ state.y 2)))
)

(define-transition-system T my_state
   ;; Initial states
   initial_states
   ;; Transition
   transition
)

(query T (
        exists
        ((z Real))
        ((and (> y z) (> z x)))
))
@dddejan
Copy link
Member

dddejan commented Mar 29, 2020

Sally does not support quantifiers at the moment.

Most SMT solvers we work with do not support quantifiers (Yices2, MathSAT, OpenSMT) and we try to stay in decidable quantifier-free fragments. If there was an appealing use-case we could add support through Z3 but this could only be used for BMC and k-induction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants