type equality =
int * (* weight *)
+ proof *
(Cic.term * (* type *)
Cic.term * (* left side *)
Cic.term * (* right side *)
Cic.metasenv * (* environment for metas *)
Cic.term list (* arguments *)
-type proof =
+and proof =
+ | NoProof
| BasicProof of Cic.term
| ProofBlock of
- Cic.substitution * UriManager.uri * Cic.term * (Utils.pos * equality) *
- equality
- | NoProof
+ Cic.substitution * UriManager.uri *
+ (* name, ty, eq_ty, left, right *)
+ (Cic.name * Cic.term * Cic.term * Cic.term * Cic.term) *
+ (Utils.pos * equality) * proof
+ | ProofGoalBlock of proof * equality
+ | ProofSymBlock of Cic.term Cic.explicit_named_substitution * proof
type environment = Cic.metasenv * Cic.context * CicUniv.universe_graph
val equality_of_term: ?eq_uri:UriManager.uri -> Cic.term -> Cic.term ->
equality
+val term_is_equality: ?eq_uri:UriManager.uri -> Cic.term -> bool
+
(**
superposition_left env target source
returns a list of new clauses inferred with a left superposition step
val extract_differing_subterms:
Cic.term -> Cic.term -> (Cic.term * Cic.term) option
+val build_proof_term: equality -> Cic.term
-val store_proof: equality -> proof -> unit
-
-val delete_proof: equality -> unit
-
-val build_term_proof: equality -> Cic.term
+val find_library_equalities:
+ dbd:Mysql.dbd -> Cic.context -> ProofEngineTypes.status -> int ->
+ equality list * int