Sidekick_proof.PtermProof terms.
A proof term is the description of a reasoning step, that yields a clause.
type step_id = Step.idtype lit = Sidekick_core.Lit.ttype local_ref = Step.idA local reference is a step id that is only valid in the scope of a P_let. Typically one can use negative integers to avoid accidental shadowing.
type rule_apply = {rule_name : string;lit_args : lit list;term_args : Sidekick_core.Term.t list;subst_args : Sidekick_core.Subst.t list;premises : step_id list;indices : int list;}type delayed = unit -> tinclude Sidekick_sigs.PRINT with type t := tval pp : t Sidekick_sigs.printerval dummy : tReference to the dummy step
val apply_rule :
?lits:lit list ->
?terms:Sidekick_core.Term.t list ->
?substs:Sidekick_core.Subst.t list ->
?premises:step_id list ->
?indices:int list ->
string ->
tval to_ser : Sidekick_core.Term.Tracer.t -> t -> Sidekick_util.Ser_value.tSerialize
val deser : Sidekick_core.Term.Trace_reader.t -> t Sidekick_util.Ser_decode.t