]> matita.cs.unibo.it Git - helm.git/blobdiff - components/tactics/paramodulation/utils.ml
added (but not yet used) remove_local_context
[helm.git] / components / tactics / paramodulation / utils.ml
index 6a32e25953f5afff5df75c0ce55058c246303a0c..a25ba8e2d7cda49cb9ac8cfede5cb14ea2aef99d 100644 (file)
@@ -103,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 = [
@@ -311,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
@@ -724,38 +731,7 @@ let string_of_pos = function
   | Right -> "Right"
 ;;
 
-
-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 ())
-
-let rec metas_of_term = function
-  | Cic.Meta (i, c) -> [i]
-  | Cic.Var (_, ens) 
-  | Cic.Const (_, ens) 
-  | Cic.MutInd (_, _, ens) 
-  | Cic.MutConstruct (_, _, _, ens) ->
-      List.flatten (List.map (fun (u, t) -> metas_of_term t) ens)
-  | Cic.Cast (s, t)
-  | Cic.Prod (_, s, t)
-  | Cic.Lambda (_, s, t)
-  | Cic.LetIn (_, s, t) -> (metas_of_term s) @ (metas_of_term t)
-  | Cic.Appl l -> List.flatten (List.map metas_of_term l)
-  | Cic.MutCase (uri, i, s, t, l) ->
-      (metas_of_term s) @ (metas_of_term t) @
-        (List.flatten (List.map metas_of_term l))
-  | Cic.Fix (i, il) ->
-      List.flatten
-        (List.map (fun (s, i, t1, t2) ->
-                     (metas_of_term t1) @ (metas_of_term t2)) il)
-  | Cic.CoFix (i, il) ->
-      List.flatten
-        (List.map (fun (s, t1, t2) ->
-                     (metas_of_term t1) @ (metas_of_term t2)) il)
-  | _ -> []
-;;      
+let metas_of_term t = 
+  List.map fst (CicUtil.metas_of_term t)
+;;