3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-01-21 17:44:43 +00:00
z3/examples/SMT-LIB2/finite-sets/example2.smt2
lorenzwinkler1 31cbb4b144
Lattice based refutation (#8211)
* add examples

* add lattice refutation solver class

* store partial order in vector

* capture partial order relations

* begin with the incremental reachability data structure

* implement data structure for incremental reachability

* fix bug in subset propagation

* add trace

* only propagate if new value was added

* begin implementing bitvector variant of reachability matrix

* fix path creation and cycle detection

* fix bug

* make conflict triggering more conservative

* check if theory vars are in bounds

* add cycle detection (including equality propagation)

* add examples

* remove example

* remove traces

* remove sln file
2026-01-18 17:42:40 -08:00

48 lines
No EOL
1.3 KiB
Text

; example due to nikolaj's project page
(declare-const s1 (FiniteSet Int))
(declare-const s2 (FiniteSet Int))
(declare-const s3 (FiniteSet Int))
(declare-const s4 (FiniteSet Int))
(declare-const s5 (FiniteSet Int))
(declare-const s6 (FiniteSet Int))
(declare-const s7 (FiniteSet Int))
(declare-const s8 (FiniteSet Int))
(declare-const s9 (FiniteSet Int))
(declare-const s10 (FiniteSet Int))
(declare-const s11 (FiniteSet Int))
(declare-const s12 (FiniteSet Int))
(declare-const s13 (FiniteSet Int))
(declare-const s14 (FiniteSet Int))
(declare-const s15 (FiniteSet Int))
(declare-const s16 (FiniteSet Int))
(declare-const s17 (FiniteSet Int))
(declare-const s18 (FiniteSet Int))
(declare-const s19 (FiniteSet Int))
(assert (set.subset s1 s2))
(assert (set.subset s2 s3))
(assert (set.subset s3 s4))
(assert (set.subset s4 s5))
(assert (set.subset s5 s6))
(assert (set.subset s6 s7))
(assert (set.subset s7 s8))
(assert (set.subset s8 s9))
(assert (set.subset s9 s10))
(assert (set.subset s10 s11))
(assert (set.subset s11 s12))
(assert (set.subset s12 s13))
(assert (set.subset s13 s14))
(assert (set.subset s14 s15))
(assert (set.subset s15 s16))
(assert (set.subset s16 s17))
(assert (set.subset s17 s18))
(assert (set.subset s18 s19))
(assert (not (set.subset s1 s19)))
(check-sat)