]> matita.cs.unibo.it Git - helm.git/blobdiff - components/library/coercDb.mli
COERCIONS: tentative addition of an equivalence relation over coercion source
[helm.git] / components / library / coercDb.mli
index 9e8bf5e9c03066cf219921ac66baaed7a96918d5..e6d7e46b30042778b6b3889970c56dac329741bd 100644 (file)
 
 
   (** XXX WARNING: non-reentrant *)
-type coerc_carr = Uri of UriManager.uri | Sort of Cic.sort | Term of Cic.term
+type coerc_carr = 
+  | Uri of UriManager.uri (* const, mutind, mutconstr *)
+  | Sort of Cic.sort (* Prop, Set, Type *) 
+  | Term of Cic.term (* nothing supported *)
+  | Fun of int
+;;
+  
 exception EqCarrNotImplemented of string Lazy.t
 exception EqCarrOnNonMetaClosed
-val eq_carr: coerc_carr -> coerc_carr -> bool
+val eq_carr: ?exact:bool -> coerc_carr -> coerc_carr -> bool
 val coerc_carr_of_term: Cic.term -> coerc_carr
 val name_of_carr: coerc_carr -> string
+val uri_of_carr: coerc_carr -> UriManager.uri option
 
 val to_list:
   unit -> 
-    (coerc_carr * coerc_carr * UriManager.uri) list
+    (coerc_carr * coerc_carr * UriManager.uri list) list
 
 val add_coercion:
   coerc_carr * coerc_carr * UriManager.uri -> unit
@@ -53,6 +60,9 @@ val find_coercion:
   (coerc_carr * coerc_carr -> bool) -> UriManager.uri list 
     
 val is_a_coercion: UriManager.uri -> bool
+val is_a_coercion': Cic.term -> bool
+val is_a_coercion_to_funclass: Cic.term -> int option
 val get_carr: UriManager.uri -> coerc_carr * coerc_carr
 
 val term_of_carr: coerc_carr -> Cic.term
+