]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/tactics/paramodulation/equality_indexing.ml
better abstraction to allow 1 discrimination tree implementation for both the
[helm.git] / helm / software / components / tactics / paramodulation / equality_indexing.ml
index 01fecc0ed27f746100e019e962a1078fe835e9cb..390fa1c984acc2f7f83546c0c77741a541c4e7d7 100644 (file)
@@ -28,7 +28,8 @@
 module type EqualityIndex =
   sig
     module PosEqSet : Set.S with type elt = Utils.pos * Equality.equality
-    type t = Discrimination_tree.DiscriminationTreeIndexing(PosEqSet).t
+    type t =
+            Discrimination_tree.DiscriminationTreeIndexing(Discrimination_tree.CicIndexable)(PosEqSet).t
     val empty : t
     val retrieve_generalizations : t -> Cic.term -> PosEqSet.t
     val retrieve_unifiables : t -> Cic.term -> PosEqSet.t
@@ -36,7 +37,7 @@ module type EqualityIndex =
     val remove_index : t -> Equality.equality -> t
     val index : t -> Equality.equality -> t
     val in_index : t -> Equality.equality -> bool
-    val iter : t -> (PosEqSet.t -> unit) -> unit
+    val iter : t -> (Discrimination_tree.CicIndexable.constant_name Discrimination_tree.path -> PosEqSet.t -> unit) -> unit
   end
 
 module DT = 
@@ -50,7 +51,8 @@ struct
 
     module PosEqSet = Set.Make(OrderedPosEquality);;
     
-    include Discrimination_tree.DiscriminationTreeIndexing(PosEqSet)
+    include
+    Discrimination_tree.DiscriminationTreeIndexing(Discrimination_tree.CicIndexable)(PosEqSet)
     
 
     (* DISCRIMINATION TREES *)
@@ -95,7 +97,8 @@ module PT =
 
     module PosEqSet = Set.Make(OrderedPosEquality);;
     
-    include Discrimination_tree.DiscriminationTreeIndexing(PosEqSet)
+    include
+    Discrimination_tree.DiscriminationTreeIndexing(Discrimination_tree.CicIndexable)(PosEqSet)
     
 
     (* DISCRIMINATION TREES *)