Module Engine


module Engine: sig .. end
This is the main prover engine. It implements the inversion proof procedure to destruct predicates into atoms and then drives the satisfiability procedures. Finally it constructs the proof

val debug : bool Pervasives.ref
val continue_on_error : bool Pervasives.ref
val continue_without_asking : bool Pervasives.ref
val timingFlag : bool Pervasives.ref
type state 
The state of the prover

type proofgen = {
   start : unit -> unit;
   startVC : string -> unit;
   assume : Util.symbol -> Logic.pred -> unit;
   unassume : unit -> unit;
   pick : string -> unit;
   unpick : unit -> unit;
   conjunct : Logic.pred -> Proof.proof -> unit;
   choose : thechoice:int -> nrchoices:int -> unit;
   finish : unit -> unit;
   finishVC : unit -> unit;
}
val start : Satproc.entries list -> proofgen -> state
Start a set of proofs
val proveGoal : string -> state -> (unit -> Input.input) -> unit
Prove a goal, given a name, a state, a function for reading the elements of the goal
val finish : state -> unit
Finish a set of proofs

Raised when proving fails

exception Failure
class type uiType = object .. end
val theUI : uiType Pervasives.ref
val printInfix : bool Pervasives.ref
Define new printers that print either infix or prefix
val d_exp : unit -> Logic.exp -> Pretty.doc
val d_pred : unit -> Logic.pred -> Pretty.doc