You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(assert (forall ((x A) (y A) (z A)) (=> (and (R x y) (R x z)) (or (R y z) (R z y)))))
Looks like both are failing in z3:
Reflexivity:
(declare-sort A 0)
(define-fun R ((x A) (y A)) Bool ((_ tree-order 0) x y))
(declare-const a A)
(assert (not (R a a)))
(check-sat)
This prints sat.
For the second axiom:
(declare-sort A 0)
(define-fun R ((x A) (y A)) Bool ((_ tree-order 0) x y))
(declare-const x A)
(declare-const y A)
(declare-const z A)
(assert (not (forall ((x A) (y A) (z A)) (=> (and (R x y) (R x z)) (or (R y z) (R z y))))))
(check-sat)
which also prints sat.
The text was updated successfully, but these errors were encountered:
(declare-sort A 0)
(define-fun R ((x A) (y A)) Bool ((_ tree-order 0) x y))
(declare-const x A)
(declare-const y A)
(declare-const z A)
(assert (not (forall ((x A) (y A) (z A)) (=> (and (R y x) (R z x)) (or (R y z) (R z y))))))
(check-sat)
(exit)
I checked the code again and concluded this is a documentation bug.
The intent is reversed of the documentation you cite. I have updated the documentation on z3guide.
According to the guide (https://microsoft.github.io/z3guide/docs/theories/Special%20Relations/), amongst other properties, a tree-order is reflexive, and satisfies:
Looks like both are failing in z3:
Reflexivity:
This prints
sat
.For the second axiom:
which also prints
sat
.The text was updated successfully, but these errors were encountered: