package msat
Install
Dune Dependency
Authors
Maintainers
Sources
md5=fe2f507bff99166ad2004786ca1ae59b
sha512=4cd653218e1767152c1d66700ccfc421d6d2da6ddffc8af4ee9151a3b5d25920f9d735a416f962227ffe458bb56e1f1977d180dd91415d37af9e1ea41dbb1045
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.
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