(* refines [term] and returns the refined form of [term], *)
(* its type, the new metasenv and universe graph. *)
val type_of_aux':
- ?localization_tbl:Token.flocation Cic.CicHash.t ->
+ ?localization_tbl:Stdpp.location Cic.CicHash.t ->
Cic.metasenv -> Cic.context -> Cic.term -> CicUniv.universe_graph ->
Cic.term * Cic.term * Cic.metasenv * CicUniv.universe_graph
+ (* this is the correct one and should be used by tactics to fold subst *)
+val type_of:
+ Cic.metasenv -> Cic.substitution ->
+ Cic.context -> Cic.term -> CicUniv.universe_graph ->
+ Cic.term * Cic.term * Cic.metasenv * Cic.substitution *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 ->
+ localization_tbl:Stdpp.location Cic.CicHash.t ->
Cic.metasenv -> UriManager.uri option -> Cic.obj ->
Cic.obj * Cic.metasenv * CicUniv.universe_graph
val insert_coercions: bool ref (* initially true *)
+val pack_coercions : bool ref
-(* given a closed term returns it with all coercions packed *)
val pack_coercion_obj: Cic.obj -> Cic.obj
+val pack_coercion_metasenv: Cic.metasenv -> Cic.metasenv