]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/paramodulation/inference.mli
now proofs have the correct type :-)
[helm.git] / helm / ocaml / paramodulation / inference.mli
index 74194e84a0f7aa678d36708d555299a86ef99ef8..76d48603d62d6388dfe59f8c3473771f72f14378 100644 (file)
@@ -1,5 +1,6 @@
 type equality =
-    Cic.term *           (* proof *)
+    int *                (* weight *)
+    proof * 
     (Cic.term *          (* type *)
      Cic.term *          (* left side *)
      Cic.term *          (* right side *)
@@ -7,12 +8,16 @@ type equality =
     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
@@ -66,7 +71,7 @@ val equality_of_term: ?eq_uri:UriManager.uri -> Cic.term -> Cic.term ->
    returns a list of new clauses inferred with a left superposition step
    the negative equation "target" and the positive equation "source"
 *)
-val superposition_left: environment -> equality -> equality -> equality list
+(* val superposition_left: environment -> equality -> equality -> equality list *)
 
 (**
    superposition_right newmeta env target source
@@ -75,10 +80,10 @@ val superposition_left: environment -> equality -> equality -> equality list
    "newmeta" is the first free meta index, i.e. the first number above the
    highest meta index: its updated value is also returned
 *)
-val superposition_right:
-  int -> environment -> equality -> equality -> int * equality list
+(* val superposition_right: *)
+(*   int -> environment -> equality -> equality -> int * equality list *)
 
-val demodulation: int -> environment -> equality -> equality -> int * equality
+(* val demodulation: int -> environment -> equality -> equality -> int * equality *)
 
 val meta_convertibility_eq: equality -> equality -> bool
 
@@ -86,7 +91,7 @@ val is_identity: environment -> equality -> bool
 
 val string_of_equality: ?env:environment -> equality -> string
 
-val subsumption: environment -> equality -> equality -> bool
+(* val subsumption: environment -> equality -> equality -> bool *)
 
 val metas_of_term: Cic.term -> int list
 
@@ -96,8 +101,4 @@ val extract_differing_subterms:
   Cic.term -> Cic.term -> (Cic.term * Cic.term) option
 
 
-val store_proof: equality -> proof -> unit
-
-val delete_proof: equality -> unit
-
-val build_term_proof: equality -> Cic.term
+val build_proof_term: equality -> Cic.term