To focus the search input from anywhere on the page, press the 'S' key.
in-package search v0.1.0
Library
Module
Module type
Parameter
Class
Class type
The module defining formulas
SAT Formulas
This modules implements formuals adequate for use in a pure SAT Solver. Atomic formuals are represented using integers, that should allow near optimal efficiency (both in terms of space and time).
This modules implements the requirements for implementing an SAT Solver.
include Msat.Solver_intf.FORMULA
val hash : t -> int
Hashing function for formulas. Should be such that two formulas equal according to Expr_intf
.S.equal have the same hash.
val pp : t Msat.Solver_intf.printer
Printing function used among other thing for debugging.
val norm : t -> t * Msat.Solver_intf.negated
Returns a 'normalized' form of the formula, possibly negated (in which case return Negated
). norm
must be so that a
and neg a
normalise to the same formula, but one returns Negated
and the other Same_sign
.
val make : int -> t
Make a proposition from an integer.
val to_int : t -> int
val fresh : unit -> t
Make a fresh atom
val sign : t -> bool
Is the given atom positive ?
apply_sign b
is the identity if b
is true
, and the negation function if b
is false
.