Hardcaml_verify_kernel.CnfSourceData structure for creating CNF formulae.
Literals are mapped to integer indexes internally so they can be easily converted to DIMACs format for input to a SAT solver, and a model constructed from the output.
A literal is an input bit to the CNF. They are constructed with the vector and bit functions, negated with (~:) and managed as a group within a Disjunction.t.
A collection of literals which are OR'd together.
A collection of disjunctions which are AND'd together.
Create CNF from a Conjunction.t.
Fold over each disjunction in CNF
Iter over each disjunction in CNF
Get an integer representing the literal. It is negative if the literal is negated. Returns None if the literal is not in the CNF.