module Trace_tstp: sig
.. end
Trace of a TSTP prover
type
id = Ast_tptp.name
type
term = Libzipperposition.STerm.t
type
form = Libzipperposition.STerm.t
type
clause = term Libzipperposition.SLiteral.t list
type
t =
| |
Axiom of string * string |
| |
Theory of string |
| |
InferForm of form * step lazy_t |
| |
InferClause of clause * step lazy_t |
type
step = {
|
id : id ; |
|
rule : string ; |
|
parents : t array ; |
|
esa : bool ; |
}
val equal : t -> t -> bool
val compare : t -> t -> int
val mk_f_axiom : id:id ->
form -> file:string -> name:string -> t
val mk_c_axiom : id:id ->
clause -> file:string -> name:string -> t
val mk_f_step : ?esa:bool ->
id:id ->
form -> rule:string -> t list -> t
val mk_c_step : ?esa:bool ->
id:id ->
clause -> rule:string -> t list -> t
val is_axiom : t -> bool
val is_theory : t -> bool
val is_step : t -> bool
val is_proof_of_false : t -> bool
val get_id : t -> id
Obtain the ID of the proof step.
Raises Invalid_argument
if the step is Axiom or Theory
val force : t -> unit
Force the lazy proof step, if any
Proof traversal
module StepTbl: Hashtbl.S
with type key = t
type
proof_set = unit StepTbl.t
val is_dag : t -> bool
Is the proof a proper DAG?
val traverse : ?traversed:proof_set ->
t -> (t -> unit) -> unit
Traverse the proof. Each proof node is traversed only once,
using the set to recognize already traversed proofs.
val to_seq : t -> t Sequence.t
Traversal of parent proofs
val depth : t -> int
Max depth of the proof
val size : t -> int
Number of nodes in the proof
IO
type 'a
or_error = [ `Error of string | `Ok of 'a ]
val of_decls : form Ast_tptp.t Sequence.t -> t or_error
Try to extract a proof from a list of TSTP statements.
val parse : ?recursive:bool -> string -> t or_error
Try to parse a proof from a file.
include Interfaces.PRINT
Debug printing, non recursive
val pp1 : t CCFormat.printer
Print proof step, and its parents
val pp_tstp : t CCFormat.printer
print the whole proofs