Msat.Make_mcsatSourcemodule Th : Solver_intf.PLUGIN_MCSATThese are the internal modules used, you should probably not use them if you're not familiar with the internals of mSAT.
include Solver_intf.EXPR
with module Term = Th.Term
with module Formula = Th.FormulaAn abstract type for proofs
The type of atoms given by the module argument for formulas. An atom is a user-defined atomic formula whose truth value is picked by Msat.
module Proof :
Solver_intf.PROOF
with type clause = clause
and type atom = atom
and type formula = formula
and type lemma = lemma
and type t = proofA module to manipulate proofs.
Create new solver
type res = | Sat of (term, formula, Value.t) Solver_intf.sat_stateReturned when the solver reaches SAT, with a model
*)| Unsat of (atom, clause, Proof.t) Solver_intf.unsat_stateReturned when the solver reaches UNSAT, with a proof
*)Result type for the solver
Exception raised by the evaluating functions when a literal has not yet been assigned a value.
Add the list of clauses to the current set of assumptions. Modifies the sat solver state in place.
Add a new term (i.e. decision variable) to the solver. This term will be decided on at some point during solving, wether it appears in clauses or not.
Add a new atom (i.e propositional formula) to the solver. This formula will be decided on at some point during solving, wether it appears in clauses or not.
true_at_level0 a returns true if a was proved at level0, i.e. it must hold in all models
Evaluate atom in current state