package msat
Install
Dune Dependency
Authors
Maintainers
Sources
md5=c02d63bf45357aa1d1b85846da373f48
sha512=e6f0d7f6e4fe69938ec2cc3233b0cb72dd577bfb4cc4824afe8247f5db0b6ffea2d38d73a65e7ede500d21ff8db27ed12f2c4f3245df4451d02864260ae2ddaf
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