]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/library/coercDb.ml
Huge commit:
[helm.git] / helm / software / components / library / coercDb.ml
index ed3d58c724c66cd71d8b3a5bc0b549aa9c75dbba..2e93efa0eb8e09c43bc47b7946e83069491ac14c 100644 (file)
@@ -118,12 +118,6 @@ let find_coercion f =
     (HExtlib.filter_map (fun (s,t,l) -> if f (s,t) then Some l else None) !db))
 ;;
 
-let is_a_coercion u = 
-  List.exists 
-    (fun (_,_,xl) -> List.exists (fun (x,_) -> UriManager.eq u x) xl) 
-    !db
-;;
-
 let get_carr uri =
   try
     let src, tgt, _ = 
@@ -135,6 +129,28 @@ let get_carr uri =
   with Not_found -> assert false (* uri must be a coercion *)
 ;;
 
+let is_a_coercion u = 
+  List.exists 
+    (fun (_,_,xl) -> List.exists (fun (x,_) -> UriManager.eq u x) xl) 
+    !db
+;;
+
+let is_a_coercion' t = 
+  try
+    let uri = CicUtil.uri_of_term t in
+     is_a_coercion uri
+  with Invalid_argument _ -> false
+;;
+
+let is_a_coercion_to_funclass t =
+  try
+    let uri = CicUtil.uri_of_term t in
+    match snd (get_carr uri) with
+    | Fun i -> Some i
+    | _ -> None
+  with Invalid_argument _ -> None
+  
+
 let term_of_carr = function
   | Uri u -> CicUtil.term_of_uri u
   | Sort s -> Cic.Sort s