some updates to core lib

This commit is contained in:
Simon Cruanes 2018-01-26 21:32:21 -06:00
parent 1d5c1c187c
commit 3e50a3fc5d

View file

@ -2,16 +2,13 @@
{2 License} {2 License}
This code is free, under the {{:https://github.com/Gbury/mSAT/blob/master/LICENSE}Apache 2.0 license}. This code is free, under the {{:https://github.com/c-cube/cdcl/blob/master/LICENSE}Apache 2.0 license}.
{2 Contents} {2 Contents}
mSAT is an ocaml library providing SAT/SMT/McSat solvers. More precisely, An ocaml library to implement CDCL(T) solvers.
what mSAT provides are functors to easily create such solvers. Indeed, the core
of a sat solver does not need much information about either the exact representation
of terms or the inner workings of a theory.
Most modules in mSAT actually define functors. These functors usually take one Most modules in CDCL actually define functors. These functors usually take one
or two arguments, usually an implementation of Terms and formulas used, and an implementation or two arguments, usually an implementation of Terms and formulas used, and an implementation
of the theory used during solving. of the theory used during solving.
@ -21,32 +18,18 @@ The following modules allow to easily create a SAT or SMT solver (remark: a SAT
simply an SMT solver with an empty theory). simply an SMT solver with an empty theory).
{!modules: {!modules:
Msat CDCL
} }
The following modules allow the creation of a McSat solver (Model Constructing solver): Finally, mSAT also provides an implementation of Tseitin's CNF conversion:
{!modules: {!modules:
Msat_mcsolver CDCL_tseitin
}
{4 Useful tools}
An instanciation of a pure sat solver is also provided:
{!modules:
Msat_sat
}
Lastly, mSAT also provides an implementation of Tseitin's CNF conversion:
{!modules:
Msat_tseitin
} }
{4 Proof Management} {4 Proof Management}
mSAT solvers are able to provide detailed proofs when an unsat state is reached. To do CDCL solvers are able to provide detailed proofs when an unsat state is reached. To do
so, it require the provided theory to give proofs of the tautologies it gives the solver. so, it require the provided theory to give proofs of the tautologies it gives the solver.
These proofs will be called lemmas. The type of lemmas is defined by the theory and can These proofs will be called lemmas. The type of lemmas is defined by the theory and can
very well be [unit]. very well be [unit].
@ -59,8 +42,8 @@ leafs of the tree are either hypotheses, or tautologies (i.e. conflicts returned
the theory). the theory).
{!modules: {!modules:
Msat__Res CDCL__Res
Msat__Res_intf CDCL__Res_intf
} }
Backends for exporting proofs to different formats: Backends for exporting proofs to different formats: