package libzipperposition
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
md5=e72de75e9f0f87da9e6e8c0a4d4c89f9
    
    
  sha512=81becfc9badd686ab3692cd9312172aa4c4e3581b110e81770bb01e0ffbc1eb8495d0dd6d43b98f3d06e6b8c8a338174c13ebafb4e9849a3ddf89f9a3a72c287
    
    
  doc/libzipperposition.avatar/Libzipperposition_avatar/module-type-S/index.html
Module type Libzipperposition_avatar.S
module E : Libzipperposition.Env.Smodule Solver : Libzipperposition.Sat_solver.Smodule BLit = Libzipperposition.BBox.Litval split : E.multi_simpl_ruleSplit a clause into components
val check_empty : E.unary_inf_ruleForbid empty clauses with trails, i.e. adds the negation of their trails to the SAT-solver
val filter_absurd_trails : (Libzipperposition.Trail.t -> bool) -> unitfilter_trails f calls f on every trail associated with the empty clause. If f returns false, the trail is ignored, otherwise it's negated and sent to the SAT solver
val check_satisfiability : E.generate_ruleChecks that the SAT context is still valid
type cut_res = private {- cut_form : Libzipperposition.Cut_form.t;(*- the lemma itself *)
- cut_pos : E.C.t list;(*- clauses true if lemma is true *)
- cut_lit : BLit.t;(*- lit that is true if lemma is true *)
- cut_depth : int;(*- if the lemma is used to prove another lemma *)
- cut_proof : Logtk.Proof.Step.t;(*- where does the lemma come from? *)
- cut_proof_parent : Logtk.Proof.Parent.t;(*- how to justify sth from the lemma *)
- cut_reason : unit CCFormat.printer option;(*- Informal reason why the lemma was added *)
}This represents a cut on a formula, where we obtain a list of clauses cut_pos representing the formula itself with the trail lemma, and a boolean literal cut_lit that is true iff the trail is true.
Other modules, when a cut is introduced, will try to disprove the lemma (e.g. by induction or theory reasoning).
val cut_form : cut_res -> Libzipperposition.Cut_form.tval cut_depth : cut_res -> intval cut_proof : cut_res -> Logtk.Proof.Step.tval cut_proof_parent : cut_res -> Logtk.Proof.Parent.tval pp_cut_res : cut_res CCFormat.printerval introduce_cut : 
  ?reason:unit CCFormat.printer ->
  ?penalty:int ->
  ?depth:int ->
  Libzipperposition.Cut_form.t ->
  Logtk.Proof.Step.t ->
  cut_resIntroduce a cut on the given clause(s). Pure.
val add_prove_lemma : (cut_res -> E.C.t list E.conversion_result) -> unitAdd a mean of proving lemmas
val add_lemma : cut_res -> unitAdd the given cut to the list of lemmas. Modifies the global list of lemmas. It will call the functions added by add_prove_lemma to try and prove this one.
add_imply l res means that the conjunction of lemmas in l implies that the lemma res is proven
val on_input_lemma : cut_res Logtk.Signal.tTriggered every time a cut is introduced for an input lemma (i.e. every time a statement of the form `lemma F` is translated)
val on_lemma : cut_res Logtk.Signal.tTriggered every time a cut is introduced, by any means. In particular it is triggered at least as often as on_input_lemma
val convert_lemma : E.clause_conversion_ruleIntercepts input lemmas and converts them into clauses. Triggers on_input_lemma with the resulting cut