module type Solver =sig..end
Smt.Make.
A typical use of this solver is to do the following :
clear ();
assume f_1;
...
assume f_n;
check ();type state
Smt.Solver.save_state and
Smt.Solver.restore_state).val get_time : unit -> floatget_time () returns the cumulated time spent in the solver in seconds.val get_calls : unit -> int
val clear : unit -> unitclear () clears the context of the solver. Use this after Smt.Solver.check
raised Smt.Unsat or if you want to restart the solver.val assume : ?profiling:bool -> id:int -> Smt.Formula.t -> unitassume ~profiling:b f id adds the formula f to the context of the
solver with idetifier id.
This function only performs unit propagation.profiling : if set to true then profiling information (time) will
be computed (expensive because of system calls).
Raises Smt.Unsat if the context becomes inconsistent after unit
propagation.
val check : ?profiling:bool -> unit -> unitcheck () runs Alt-Ergo Zero on its context. If () is
returned then the context is satifiable.profiling : if set to true then profiling information (time) will
be computed (expensive because of system calls).
Raises Smt.Unsat [id_1; ...; id_n] if the context is unsatisfiable.
id_1, ..., id_n is the unsat core (returned as the identifiers of the
formulas given to the solver).
val save_state : unit -> statesave_state () returns a copy of the current state of the solver.val restore_state : state -> unitrestore_state s restores a previously saved state s.val entails : ?profiling:bool -> id:int -> Smt.Formula.t -> boolentails ~id f returns true if the context of the solver entails
the formula f. It doesn't modify the context of the solver (the state
is saved when this function is called and restored on exit).