]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/paramodulation/path_indexing.ml
fixed a finalization issue for connections closed twice
[helm.git] / helm / ocaml / paramodulation / path_indexing.ml
index bc9bc01f1608fa42d36c369a57808496364a6b08..72120c7f7cabbabc686c78ed1d0d704d82533c0a 100644 (file)
@@ -49,8 +49,6 @@ end
 
 module PSMap = Map.Make(OrderedPathStringElement);;
 
-(* module PSTrie = Trie.Make(PathStringElementMap);; *)
-
 module OrderedPosEquality = struct
   type t = Utils.pos * Inference.equality
 
@@ -59,6 +57,10 @@ end
 
 module PosEqSet = Set.Make(OrderedPosEquality);;
 
+
+module PSTrie = Trie.Make(PSMap);;
+
+(*
 (*
  * Trie: maps over lists.
  * Copyright (C) 2000 Jean-Christophe FILLIATRE
@@ -111,10 +113,11 @@ module PSTrie = struct
     traverse [] t acc
 
 end
+*)
 
 
 let index trie equality =
-  let _, (_, l, r, ordering), _, _ = equality in
+  let _, _, (_, l, r, ordering), _, _ = equality in
   let psl = path_strings_of_term 0 l
   and psr = path_strings_of_term 0 r in
   let index pos trie ps =
@@ -135,7 +138,7 @@ let index trie equality =
       
 
 let remove_index trie equality =
-  let _, (_, l, r, ordering), _, _ = equality in
+  let _, _, (_, l, r, ordering), _, _ = equality in
   let psl = path_strings_of_term 0 l
   and psr = path_strings_of_term 0 r in
   let remove_index pos trie ps =
@@ -161,7 +164,7 @@ let remove_index trie equality =
 
 
 let in_index trie equality =
-  let _, (_, l, r, ordering), _, _ = equality in
+  let _, _, (_, l, r, ordering), _, _ = equality in
   let psl = path_strings_of_term 0 l
   and psr = path_strings_of_term 0 r in
   let meta_convertibility = Inference.meta_convertibility_eq equality in
@@ -289,6 +292,12 @@ let rec retrieve_unifiables trie term =
 ;;
 
 
+let retrieve_all trie term =
+  PSTrie.fold
+    (fun k v s -> PosEqSet.union v s) trie PosEqSet.empty
+;;
+
+
 let string_of_pstrie trie =
   let rec to_string level = function
     | PSTrie.Node (v, map) ->