mirror of
https://github.com/c-cube/sidekick.git
synced 2025-12-06 11:15:43 -05:00
some updates to core lib
This commit is contained in:
parent
1d5c1c187c
commit
3e50a3fc5d
1 changed files with 9 additions and 26 deletions
|
|
@ -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:
|
||||||
Loading…
Add table
Reference in a new issue