SRI-CSL / sally

A model checker for infinite-state systems.
http://sri-csl.github.io/sally/
GNU General Public License v2.0
69 stars 12 forks source link

About available first-order logic semantics. #65

Open zqzqz opened 4 years ago

zqzqz commented 4 years ago

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 commented 4 years ago

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.