X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Ftactics%2Fparamodulation%2Fequality_indexing.ml;h=d5e5353e9bd585f58427237e6083a952d7e62bf4;hb=31513dcd96791a28cb0f7667c7bbdb172b33864e;hp=1dffb639947bf7a3eb57af28efd66ef673f03b9d;hpb=55b82bd235d82ff7f0a40d980effe1efde1f5073;p=helm.git diff --git a/helm/software/components/tactics/paramodulation/equality_indexing.ml b/helm/software/components/tactics/paramodulation/equality_indexing.ml index 1dffb6399..d5e5353e9 100644 --- a/helm/software/components/tactics/paramodulation/equality_indexing.ml +++ b/helm/software/components/tactics/paramodulation/equality_indexing.ml @@ -27,7 +27,7 @@ module type EqualityIndex = sig - module PosEqSet : Set.S with type elt = Utils.pos * Inference.equality + 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 @@ -35,16 +35,18 @@ module type EqualityIndex = val retrieve_generalizations : t -> key -> PosEqSet.t val retrieve_unifiables : t -> key -> PosEqSet.t val init_index : unit -> unit - val remove_index : t -> Inference.equality -> t - val index : t -> Inference.equality -> t - val in_index : t -> Inference.equality -> bool + val remove_index : t -> Equality.equality -> t + val index : t -> Equality.equality -> t + val in_index : t -> Equality.equality -> bool end module DT = struct module OrderedPosEquality = struct - type t = Utils.pos * Inference.equality - let compare = Pervasives.compare + type t = Utils.pos * Equality.equality + let compare (p1,e1) (p2,e2) = + let rc = Pervasives.compare p1 p2 in + if rc = 0 then Equality.compare e1 e2 else rc end module PosEqSet = Set.Make(OrderedPosEquality);; @@ -58,7 +60,7 @@ struct ;; let remove_index tree equality = - let _, _, (_, l, r, ordering), _, _ = equality in + let _, _, (_, l, r, ordering), _,_ = Equality.open_equality equality in match ordering with | Utils.Gt -> remove_index tree l (Utils.Left, equality) | Utils.Lt -> remove_index tree r (Utils.Right, equality) @@ -67,7 +69,7 @@ struct remove_index tree l (Utils.Left, equality) let index tree equality = - let _, _, (_, l, r, ordering), _, _ = equality in + let _, _, (_, l, r, ordering), _,_ = Equality.open_equality equality in match ordering with | Utils.Gt -> index tree l (Utils.Left, equality) | Utils.Lt -> index tree r (Utils.Right, equality) @@ -77,9 +79,9 @@ struct let in_index tree equality = - let _, _, (_, l, r, ordering), _, _ = equality in + let _, _, (_, l, r, ordering), _,_ = Equality.open_equality equality in let meta_convertibility (pos,equality') = - Inference.meta_convertibility_eq equality equality' + Equality.meta_convertibility_eq equality equality' in in_index tree l meta_convertibility || in_index tree r meta_convertibility @@ -88,8 +90,10 @@ struct module PT = struct module OrderedPosEquality = struct - type t = Utils.pos * Inference.equality - let compare = Pervasives.compare + type t = Utils.pos * Equality.equality + let compare (p1,e1) (p2,e2) = + let rc = Pervasives.compare p1 p2 in + if rc = 0 then Equality.compare e1 e2 else rc end module PosEqSet = Set.Make(OrderedPosEquality);; @@ -103,7 +107,7 @@ module PT = ;; let remove_index tree equality = - let _, _, (_, l, r, ordering), _, _ = equality in + let _, _, (_, l, r, ordering), _,_ = Equality.open_equality equality in match ordering with | Utils.Gt -> remove_index tree l (Utils.Left, equality) | Utils.Lt -> remove_index tree r (Utils.Right, equality) @@ -112,7 +116,7 @@ module PT = remove_index tree l (Utils.Left, equality) let index tree equality = - let _, _, (_, l, r, ordering), _, _ = equality in + let _, _, (_, l, r, ordering), _,_ = Equality.open_equality equality in match ordering with | Utils.Gt -> index tree l (Utils.Left, equality) | Utils.Lt -> index tree r (Utils.Right, equality) @@ -122,9 +126,9 @@ module PT = let in_index tree equality = - let _, _, (_, l, r, ordering), _, _ = equality in + let _, _, (_, l, r, ordering), _,_ = Equality.open_equality equality in let meta_convertibility (pos,equality') = - Inference.meta_convertibility_eq equality equality' + Equality.meta_convertibility_eq equality equality' in in_index tree l meta_convertibility || in_index tree r meta_convertibility end