Zee3.Solver
(zee3 v0.6.0)
Copy Markdown
API to send commands to the solver.
The Zee3.program/2 macro can do anything the funcions
in this module can do, but sometimes, when we're using
the solver interactively and performing complex algorithms
outside the solver, using this lower level functions is clearer.
Summary
Functions
Check the Z3 program for satisfiability.
Check the Z3 program for satisfiability. Raises on error.
Check the Z3 program for satisfiability and returns the model.
Check the Z3 program for satisfiability and returns the model. Raises on error.
Check the Z3 program for satisfiability assuming a number of assumptions.
Check the Z3 program for satisfiability assuming a number of assumptions.
Returns a specification to start this module under a supervisor.
Declare an uninterpreted constant.
Declares a datatype in Z3 and registers its constructors with the Elixir atom registry.
Declare an uninterpreted function.
Declare a datalog relation.
Declare an uninterpreted sort.
Declare a variable for use in datalog rules.
Send raw SMT-LIB2 text (given as iodata/0) to the solver.
Constants and functions defined inside this text aren't available
in the model.
Pops the current scope from the solver stack, discarding all assertions
and variables declared since the last push.
Pushes a new scope onto the solver stack.
Define a new datalog rule.
Start a Zee3 solver process.
Functions
Check the Z3 program for satisfiability.
Check the Z3 program for satisfiability. Raises on error.
Check the Z3 program for satisfiability and returns the model.
Check the Z3 program for satisfiability and returns the model. Raises on error.
Check the Z3 program for satisfiability assuming a number of assumptions.
Check the Z3 program for satisfiability assuming a number of assumptions.
Returns a specification to start this module under a supervisor.
See Supervisor.
Declare an uninterpreted constant.
Declares a datatype in Z3 and registers its constructors with the Elixir atom registry.
Declare an uninterpreted function.
Declare a datalog relation.
Declare an uninterpreted sort.
Declare a variable for use in datalog rules.
Send raw SMT-LIB2 text (given as iodata/0) to the solver.
Constants and functions defined inside this text aren't available
in the model.
If you need these values to be available, use the declare-const/2
and declare-fun/3 functions explicitly.
Pops the current scope from the solver stack, discarding all assertions
and variables declared since the last push.
Pushes a new scope onto the solver stack.
Define a new datalog rule.
Start a Zee3 solver process.