module type PROOF =sig..end
type t
type seq_t
type node_t
val mk : seq_t -> tAll of these take an index to an open node, and a description plus more arguments appropriate to the type of constructor. The open node will be replaced by another node with the same index, and its description set to the parameter value.
Back-links *must* have equal sequents to their targets, otherwise
an exception will be thrown.`
val add_axiom : int -> string -> t -> t
val add_backlink : int -> string -> int -> Tagpairs.t -> t -> t
val add_inf : int ->
string ->
(seq_t * Tagpairs.t * Tagpairs.t) list ->
t -> int list * t
val add_subprf : t -> int -> t -> tadd_subprf p idx p' replaces the node idx in p' with a copy of p.
N.B. The following should hold, otherwise exceptions will be raised:idx should be an open node; idx should be identical to the root sequent of p.val extract_subproof : int -> t -> textract_subproof idx prf returns prf rearranged such that idx is
the root node.val find : int -> t -> node_t
val get_seq : int -> t -> seq_t
val size : t -> int
val num_backlinks : t -> int
val fresh_idx : t -> int
val fresh_idxs : 'a list -> t -> int list
val get_ancestry : int -> t -> (int * node_t) list
val is_closed_at : t -> int -> bool
val check : t -> boolval is_closed : t -> boolval to_list : t -> (int * node_t) listval pp : Format.formatter -> t -> unit
val to_string : t -> string
val to_melt : t -> Latex.t