X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=components%2Ftactics%2Fparamodulation%2Futils.ml;h=a25ba8e2d7cda49cb9ac8cfede5cb14ea2aef99d;hb=dd5b7e474d70a87846f977f887d045f77342ae62;hp=db19e87d1d89f77f67ed818df82b625e323da12e;hpb=86d27070abaa7844fa53ab83b8a57489cc2d7e1a;p=helm.git diff --git a/components/tactics/paramodulation/utils.ml b/components/tactics/paramodulation/utils.ml index db19e87d1..a25ba8e2d 100644 --- a/components/tactics/paramodulation/utils.ml +++ b/components/tactics/paramodulation/utils.ml @@ -60,6 +60,8 @@ let string_of_comparison = function | Eq -> "=" | Incomparable -> "I" +type environment = Cic.metasenv * Cic.context * CicUniv.universe_graph + module OrderedTerm = struct type t = Cic.term @@ -101,6 +103,13 @@ let metas_of_term term = aux term ;; +let rec remove_local_context = + function + | Cic.Meta (i,_) -> Cic.Meta (i,[]) + | Cic.Appl l -> + Cic.Appl(List.map remove_local_context l) + | t -> t + (************************* rpo ********************************) let number = [ @@ -291,7 +300,7 @@ end module IntSet = Set.Make(OrderedInt) let compute_equality_weight (ty,left,right,o) = - let factor = 1 in + let factor = 2 in match o with | Lt -> let w, m = (weight_of_term @@ -309,7 +318,7 @@ let compute_equality_weight (ty,left,right,o) = ~consider_metas:true ~count_metas_occurrences:false right) in let w2, m2 = (weight_of_term ~consider_metas:true ~count_metas_occurrences:false left) in - w1 + w2 + (factor * (List.length m1)) + (factor * (List.length m2)) + (max w1 w2)+(max (factor * (List.length m1)) (factor * (List.length m2))) ;; (* old @@ -427,7 +436,6 @@ let compare_weights ?(normalize=false) | (m, _, n) when m > 0 && n > 0 -> Incomparable | _ -> assert false - ;; @@ -723,11 +731,7 @@ let string_of_pos = function | Right -> "Right" ;; +let metas_of_term t = + List.map fst (CicUtil.metas_of_term t) +;; -let eq_ind_URI () = LibraryObjects.eq_ind_URI ~eq:(LibraryObjects.eq_URI ()) -let eq_ind_r_URI () = LibraryObjects.eq_ind_r_URI ~eq:(LibraryObjects.eq_URI ()) -let sym_eq_URI () = LibraryObjects.sym_eq_URI ~eq:(LibraryObjects.eq_URI ()) -let eq_XURI () = - let s = UriManager.string_of_uri (LibraryObjects.eq_URI ()) in - UriManager.uri_of_string (s ^ "#xpointer(1/1/1)") -let trans_eq_URI () = LibraryObjects.trans_eq_URI ~eq:(LibraryObjects.eq_URI ())