sidekick/src/core/proof_term.mli
Simon Cruanes 1edf054104
refactor(proof): use a suspension but keep uniform Proof_term.data type
this makes proof terms uniformly printable or (de)serializable.
2022-07-31 15:01:11 -04:00

28 lines
514 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 = Proof_step.id
type lit = Lit.t
type data = {
rule_name: string;
lit_args: lit list;
term_args: Term.t list;
subst_args: Subst.t list;
premises: step_id list;
}
type t = unit -> data
include Sidekick_sigs.PRINT with type t := t
val make_data :
?lits:lit list ->
?terms:Term.t list ->
?substs:Subst.t list ->
?premises:step_id list ->
string ->
data