X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Ftactics%2Fparamodulation%2Fequality_indexing.ml;fp=helm%2Focaml%2Ftactics%2Fparamodulation%2Fequality_indexing.ml;h=0000000000000000000000000000000000000000;hb=55b82bd235d82ff7f0a40d980effe1efde1f5073;hp=1dffb639947bf7a3eb57af28efd66ef673f03b9d;hpb=771ee8b9d122fa963881c876e86f90531bb7434f;p=helm.git diff --git a/helm/ocaml/tactics/paramodulation/equality_indexing.ml b/helm/ocaml/tactics/paramodulation/equality_indexing.ml deleted file mode 100644 index 1dffb6399..000000000 --- a/helm/ocaml/tactics/paramodulation/equality_indexing.ml +++ /dev/null @@ -1,131 +0,0 @@ -(* Copyright (C) 2005, HELM Team. - * - * This file is part of HELM, an Hypertextual, Electronic - * Library of Mathematics, developed at the Computer Science - * Department, University of Bologna, Italy. - * - * HELM is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * HELM is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with HELM; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, - * MA 02111-1307, USA. - * - * For details, see the HELM World-Wide-Web page, - * http://cs.unibo.it/helm/. - *) - -(* $Id$ *) - -module type EqualityIndex = - sig - module PosEqSet : Set.S with type elt = Utils.pos * Inference.equality - val arities : (Cic.term, int) Hashtbl.t - type key = Cic.term - type t = Discrimination_tree.DiscriminationTreeIndexing(PosEqSet).t - val empty : t - 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 - end - -module DT = -struct - module OrderedPosEquality = struct - type t = Utils.pos * Inference.equality - let compare = Pervasives.compare - end - - module PosEqSet = Set.Make(OrderedPosEquality);; - - include Discrimination_tree.DiscriminationTreeIndexing(PosEqSet) - - - (* DISCRIMINATION TREES *) - let init_index () = - Hashtbl.clear arities; - ;; - - let remove_index tree equality = - let _, _, (_, l, r, ordering), _, _ = equality in - match ordering with - | Utils.Gt -> remove_index tree l (Utils.Left, equality) - | Utils.Lt -> remove_index tree r (Utils.Right, equality) - | _ -> - let tree = remove_index tree r (Utils.Right, equality) in - remove_index tree l (Utils.Left, equality) - - let index tree equality = - let _, _, (_, l, r, ordering), _, _ = equality in - match ordering with - | Utils.Gt -> index tree l (Utils.Left, equality) - | Utils.Lt -> index tree r (Utils.Right, equality) - | _ -> - let tree = index tree r (Utils.Right, equality) in - index tree l (Utils.Left, equality) - - - let in_index tree equality = - let _, _, (_, l, r, ordering), _, _ = equality in - let meta_convertibility (pos,equality') = - Inference.meta_convertibility_eq equality equality' - in - in_index tree l meta_convertibility || in_index tree r meta_convertibility - - end - -module PT = - struct - module OrderedPosEquality = struct - type t = Utils.pos * Inference.equality - let compare = Pervasives.compare - end - - module PosEqSet = Set.Make(OrderedPosEquality);; - - include Discrimination_tree.DiscriminationTreeIndexing(PosEqSet) - - - (* DISCRIMINATION TREES *) - let init_index () = - Hashtbl.clear arities; - ;; - - let remove_index tree equality = - let _, _, (_, l, r, ordering), _, _ = equality in - match ordering with - | Utils.Gt -> remove_index tree l (Utils.Left, equality) - | Utils.Lt -> remove_index tree r (Utils.Right, equality) - | _ -> - let tree = remove_index tree r (Utils.Right, equality) in - remove_index tree l (Utils.Left, equality) - - let index tree equality = - let _, _, (_, l, r, ordering), _, _ = equality in - match ordering with - | Utils.Gt -> index tree l (Utils.Left, equality) - | Utils.Lt -> index tree r (Utils.Right, equality) - | _ -> - let tree = index tree r (Utils.Right, equality) in - index tree l (Utils.Left, equality) - - - let in_index tree equality = - let _, _, (_, l, r, ordering), _, _ = equality in - let meta_convertibility (pos,equality') = - Inference.meta_convertibility_eq equality equality' - in - in_index tree l meta_convertibility || in_index tree r meta_convertibility -end -