Nikolaj Bjørner
Microsoft Research
nbjorner@microsoft.com |
An Introduction to Satisfiability Modulo Theories and Z3
Theory Solvers
SAT and SMT Algorithms
Optimization with MaxSAT
Quantifier Reasoning
An Introduction to Satisfiability Modulo Theories and Z3
Tie, Shirt = Bools('Tie Shirt')
s = Solver()
s.add(Or(Tie, Shirt), Or(Not(Tie), Shirt), Or(Not(Tie), Not(Shirt)))
print s.check()
print s.model()
I = IntSort()
f = Function('f', I, I)
x, y, z = Ints('x y z')
A = Array('A',I,I)
fml = Implies(x + 2 == y, f(Select(Store(A, x, 3), y - 2)) == f(y - x + 1))
s = Solver()
s.add(Not(fml))
print s.check()
Is formula satisfiable under theory ?
SMT solvers use specialized algorithms for .