Module Cooking
Data needed to abstract over the section variables and section universes
- type abstr_inst_info
- type 'a entry_map- = 'a Names.Cmap.t * 'a Names.Mindmap.t
- type expand_info- = abstr_inst_info entry_map
- val empty_cooking_info : cooking_info
- Nothing to abstract 
- val make_cooking_info : recursive:Names.MutInd.t option -> expand_info -> Constr.named_context -> UVars.UContext.t -> cooking_info * abstr_inst_info
- Abstract a context assumed to be de-Bruijn free for terms and universes 
- val names_info : cooking_info -> Names.Id.Set.t
- val universe_context_of_cooking_info : cooking_info -> UVars.AbstractContext.t
- val instance_of_cooking_info : cooking_info -> Constr.t array
- val create_cache : cooking_info -> cooking_cache
- val instance_of_cooking_cache : cooking_cache -> Constr.t array
- val rel_context_of_cooking_cache : cooking_cache -> Constr.rel_context
- val abstract_as_type : cooking_cache -> Constr.types -> Constr.types
- val abstract_as_body : cooking_cache -> Constr.constr -> Constr.constr
- val abstract_as_sort : cooking_cache -> Sorts.t -> Sorts.t
- val lift_mono_univs : cooking_info -> Univ.ContextSet.t -> cooking_info * Univ.ContextSet.t
- val lift_poly_univs : cooking_info -> UVars.AbstractContext.t -> cooking_info * (int * int) * UVars.AbstractContext.t
- The - intis how many universes got discharged, ie size of returned context - size of input context.
- val lift_private_mono_univs : cooking_info -> 'a -> 'a
- val lift_private_poly_univs : cooking_info -> Univ.ContextSet.t -> Univ.ContextSet.t
- val discharge_proj_repr : cooking_info -> Names.Projection.Repr.t -> Names.Projection.Repr.t