Module Evardefine
val env_nf_evar : Evd.evar_map -> Environ.env -> Environ.envval env_nf_betaiotaevar : Evd.evar_map -> Environ.env -> Environ.env
type type_constraint= EConstr.types optiontype val_constraint= EConstr.constr option
val empty_tycon : type_constraintval mk_tycon : EConstr.constr -> type_constraintval empty_valcon : val_constraintval mk_valcon : EConstr.constr -> val_constraintval evar_absorb_arguments : Environ.env -> Evd.evar_map -> EConstr.existential -> EConstr.constr list -> Evd.evar_map * EConstr.existentialInstantiate an evar by as many lambda's as needed so that its arguments are moved to the evar substitution (i.e. turn
?x[vars1:=args1] argsinto?y[vars1:=args1,vars:=args]withvars1 |- ?x:=\vars.?y[vars1:=vars1,vars:=vars]
val split_tycon : ?loc:Loc.t -> Environ.env -> Evd.evar_map -> type_constraint -> Evd.evar_map * (Names.Name.t Context.binder_annot * type_constraint * type_constraint)val valcon_of_tycon : type_constraint -> val_constraintval lift_tycon : int -> type_constraint -> type_constraintval define_evar_as_product : Environ.env -> Evd.evar_map -> EConstr.existential -> Evd.evar_map * EConstr.typesval define_evar_as_lambda : Environ.env -> Evd.evar_map -> EConstr.existential -> Evd.evar_map * EConstr.typesval define_evar_as_sort : Environ.env -> Evd.evar_map -> EConstr.existential -> Evd.evar_map * Sorts.t
debug pretty-printer:
val pr_tycon : Environ.env -> Evd.evar_map -> type_constraint -> Pp.t