]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/paramodulation/path_indexing.ml
version 0.7.1
[helm.git] / helm / ocaml / paramodulation / path_indexing.ml
index 95d6de9f55d46f5021d2410fcb4ac90d027f0fc8..72120c7f7cabbabc686c78ed1d0d704d82533c0a 100644 (file)
@@ -57,6 +57,7 @@ end
 
 module PosEqSet = Set.Make(OrderedPosEquality);;
 
+
 module PSTrie = Trie.Make(PSMap);;
 
 (*
@@ -116,7 +117,7 @@ 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 =
@@ -137,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 =
@@ -163,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
@@ -291,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) ->