Module Proof.Step
An inference step is composed of a set of premises, a rule, a status (theorem/trivial/equisatisfiable…), and is used to deduce new result
using these premises and metadata.
A single step can be used to deduce several results.
type t
= step
val kind : t -> kind
val parents : t -> parent list
val infos : t -> infos
val compare : t -> t -> int
val hash : t -> int
val equal : t -> t -> bool
val src : t -> source option
val trivial : t
val by_def : ID.t -> t
val define : ID.t -> source -> parent list -> t
val define_internal : ID.t -> parent list -> t
val lemma : source -> t
val intro : source -> role -> t
val assert_ : source -> t
val assert' : ?loc:Loc.t -> file:string -> name:string -> unit -> t
val goal : source -> t
val goal' : ?loc:Loc.t -> file:string -> name:string -> unit -> t
val inference : ?infos:infos -> ?tags:tag list -> rule:rule -> parent list -> t
val simp : ?infos:infos -> ?tags:tag list -> rule:rule -> parent list -> t
val esa : ?infos:infos -> rule:rule -> parent list -> t
val to_attrs : t -> UntypedAST.attrs
val is_trivial : t -> bool
val is_by_def : t -> bool
val is_assert : t -> bool
Proof: the statement was asserted in some file
val is_goal : t -> bool
The statement comes from the negation of a goal in some file
val distance_to_goal : t -> int option
distance_to_conjecture p
returnsNone
ifp
has no ancestor that is a conjecture (includingp
itself). It returnsSome d
ifd
is the distance, in the proof graph, to the closest conjecture ancestor ofp
val pp : t CCFormat.printer