package msat
Install
Dune Dependency
Authors
Maintainers
Sources
md5=ba623630b0b8e0edc016079dd214c80b
sha512=51c133cefe8550125e7b1db18549e893bac15663fdd7a9fac87235c07de755f39eab9fc3cfdf6571612fd79b3d5b22f49f459581b480c7349bacddf2618c8a99
doc/msat.sat/Msat_sat/index.html
Module Msat_sat
Source
Sat solver
This modules instanciates a pure sat solver using integers to represent atomic propositions.
A functor that can generate as many solvers as needed.
include Msat.S
with type Formula.t = Int_lit.t
and type theory = unit
and type lemma = unit
Internal modules
These are the internal modules used, you should probably not use them if you're not familiar with the internals of mSAT.
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.
A theory lemma or an input axiom
module Proof :
Msat.Solver_intf.PROOF
with type clause = clause
and type atom = atom
and type formula = formula
and type lemma = lemma
and type t = proof
A module to manipulate proofs.
Create new solver
Types
type res =
| Sat of (term, formula, Value.t) Msat.Solver_intf.sat_state
(*Returned when the solver reaches SAT, with a model
*)| Unsat of (atom, clause, Proof.t) Msat.Solver_intf.unsat_state
(*Returned 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.
Base operations
Add the list of clauses to the current set of assumptions. Modifies the sat solver state in place.
Try and solves the current set of clauses.
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