sidekick/src/core/proof_term.mli
2022-07-28 23:30:56 -04:00

26 lines
488 B
OCaml

(** Proof terms.
A proof term is the description of a reasoning step, that yields a clause. *)
open Sidekick_core_logic
type step_id = int32
type lit = Lit.t
type t = {
rule_name: string;
lit_args: lit Iter.t;
term_args: Term.t Iter.t;
subst_args: Subst.t Iter.t;
premises: step_id Iter.t;
}
include Sidekick_sigs.PRINT with type t := t
val make :
?lits:lit Iter.t ->
?terms:Term.t Iter.t ->
?substs:Subst.t Iter.t ->
?premises:step_id Iter.t ->
string ->
t