]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/ng_paramodulation/foUtils.mli
Branched paramodulation for CNF (Horn clauses)
[helm.git] / helm / software / components / ng_paramodulation / foUtils.mli
index 5d83a987d8ff64312f41ab5691efd7d3a723c320..48ef1d90b722bce21765d45baad59825b8b5e0d0 100644 (file)
@@ -11,7 +11,9 @@
 
 (* $Id: terms.ml 9836 2009-06-05 15:33:35Z denes $ *)
 
-module Utils (B : Terms.Blob) :
+val lexicograph : ('a -> 'b -> int) -> 'a list -> 'b list -> int
+
+module Utils (B : Orderings.Blob) :
   sig
     val eq_foterm : B.t Terms.foterm -> B.t Terms.foterm -> bool
     val compare_foterm : B.t Terms.foterm -> B.t Terms.foterm -> int
@@ -19,14 +21,36 @@ module Utils (B : Terms.Blob) :
     val eq_literal : B.t Terms.literal -> B.t Terms.literal -> bool
     val compare_literal : B.t Terms.literal -> B.t Terms.literal -> int
 
-    (* mk_unit_clause [maxvar] [type] [proof] -> [clause] * [maxvar] *)
-    val mk_unit_clause : 
-         int -> B.t Terms.foterm -> B.t Terms.foterm -> 
-           B.t Terms.unit_clause * int
+    (* mk_clause [maxvar] [type] [proof] -> [clause] * [maxvar] *)
+    val mk_clause : 
+      int ->
+      B.t Terms.foterm list -> (* negative literals in clause *)
+      B.t Terms.foterm list -> (* positive literals in clause *)
+      B.t Terms.foterm -> 
+      B.t Terms.clause * int
+
+    val mk_passive_clause :
+      B.t Terms.clause -> B.t Terms.passive_clause
+
+    val mk_passive_goal :
+      B.t Terms.clause -> B.t Terms.passive_clause
+
+    val eq_clause : B.t Terms.clause -> B.t Terms.clause -> bool
+    val compare_clause : B.t Terms.clause -> B.t Terms.clause -> int
+
+
+    val fresh_clause : 
+          int -> B.t Terms.clause -> B.t Terms.clause * int
+
+    (* relocate [maxvar] [varlist] -> [newmaxvar] * [varlist] * [relocsubst] *)
+    val relocate : 
+          int -> int list -> B.t Terms.substitution -> 
+            int * int list * B.t Terms.substitution 
+
+    val compare_passive_clauses_weight :
+      B.t Terms.passive_clause -> B.t Terms.passive_clause -> int
 
-    val eq_unit_clause : B.t Terms.unit_clause -> B.t Terms.unit_clause -> bool
-    val compare_unit_clause : B.t Terms.unit_clause -> B.t Terms.unit_clause -> int
+    val compare_passive_clauses_age :
+      B.t Terms.passive_clause -> B.t Terms.passive_clause -> int
 
-    val fresh_unit_clause : 
-          int -> B.t Terms.unit_clause -> B.t Terms.unit_clause * int
   end