]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_unification/cicRefine.mli
abstracted pretty printers over inner pretty printing units (terms, lazy terms, and...
[helm.git] / helm / ocaml / cic_unification / cicRefine.mli
index ce97e8ab7ff178f4222b1c6acc5954139d12411e..224a7586c957dfbf91e4704917489a348158b43a 100644 (file)
  * http://cs.unibo.it/helm/.
  *)
 
-exception NotRefinable of string
-exception Uncertain of string
-exception WrongUriToConstant of string
-exception WrongUriToVariable of string
-exception WrongUriToMutualInductiveDefinitions of string
+exception RefineFailure of string Lazy.t;;
+exception Uncertain of string Lazy.t;;
+exception AssertFailure of string Lazy.t;;
 
-(* type_of_aux' metasenv context term                        *)
-(* refines [term] and returns the refined form of [term],    *)
-(* its type, the computed substitution and the new metasenv. *)
-(* The substitution returned is already unwinded             *)
+(* type_of_aux' metasenv context term graph                *)
+(* refines [term] and returns the refined form of [term],  *)
+(* its type, the new metasenv and universe graph.          *)
 val type_of_aux':
- Cic.metasenv -> Cic.context -> Cic.term ->
-  Cic.term * Cic.term * CicMetaSubst.substitution * Cic.metasenv
+ ?localization_tbl:Token.flocation Cic.CicHash.t ->
+  Cic.metasenv -> Cic.context -> Cic.term -> CicUniv.universe_graph ->
+   Cic.term * Cic.term * Cic.metasenv * CicUniv.universe_graph
+
+(* typecheck metasenv uri obj graph                     *)
+(* refines [obj] and returns the refined form of [obj], *)
+(* the new metasenv and universe graph.                 *)
+(* the [uri] is required only for inductive definitions *)
+val typecheck : 
+ localization_tbl:Token.flocation Cic.CicHash.t ->
+  Cic.metasenv -> UriManager.uri option -> Cic.obj ->
+   Cic.obj * Cic.metasenv * CicUniv.universe_graph
+
+val insert_coercions: bool ref (* initially true *)
+