]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/tactics/paramodulation/equality_indexing.ml
made executable again
[helm.git] / helm / software / components / tactics / paramodulation / equality_indexing.ml
index d5e5353e9bd585f58427237e6083a952d7e62bf4..19aae0d297b75b88d7a0b68495829e2e92e90c4b 100644 (file)
 module type EqualityIndex =
   sig
     module PosEqSet : Set.S with type elt = Utils.pos * Equality.equality
-    val arities : (Cic.term, int) Hashtbl.t
-    type key = Cic.term
-    type t = Discrimination_tree.DiscriminationTreeIndexing(PosEqSet).t
+    type t = Discrimination_tree.Make(Cic_indexable.CicIndexable)(PosEqSet).t
     val empty : t
-    val retrieve_generalizations : t -> key -> PosEqSet.t
-    val retrieve_unifiables : t -> key -> PosEqSet.t
+    val retrieve_generalizations : t -> Cic.term -> PosEqSet.t
+    val retrieve_unifiables : t -> Cic.term -> PosEqSet.t
     val init_index : unit -> unit
     val remove_index : t -> Equality.equality -> t
     val index : t -> Equality.equality -> t
     val in_index : t -> Equality.equality -> bool
+    val iter : t -> (Cic_indexable.CicIndexable.constant_name Discrimination_tree.path -> PosEqSet.t -> unit) -> unit
   end
 
 module DT = 
@@ -51,13 +50,11 @@ struct
 
     module PosEqSet = Set.Make(OrderedPosEquality);;
     
-    include Discrimination_tree.DiscriminationTreeIndexing(PosEqSet)
+    include Discrimination_tree.Make(Cic_indexable.CicIndexable)(PosEqSet)
     
 
     (* DISCRIMINATION TREES *)
-    let init_index () =
-      Hashtbl.clear arities;
-    ;;
+    let init_index () = () ;;
 
     let remove_index tree equality = 
       let _, _, (_, l, r, ordering), _,_ = Equality.open_equality equality in
@@ -98,13 +95,11 @@ module PT =
 
     module PosEqSet = Set.Make(OrderedPosEquality);;
     
-    include Discrimination_tree.DiscriminationTreeIndexing(PosEqSet)
+    include Discrimination_tree.Make(Cic_indexable.CicIndexable)(PosEqSet)
     
 
     (* DISCRIMINATION TREES *)
-    let init_index () =
-      Hashtbl.clear arities;
-    ;;
+    let init_index () = () ;;
 
     let remove_index tree equality = 
       let _, _, (_, l, r, ordering), _,_ = Equality.open_equality equality in