package coq
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=3cbfc1e1a72b16d4744f5b64ede59586071e31d9c11c811a0372060727bfd9c3
doc/coq-core.kernel/Reduction/index.html
Module Reduction
Source
type 'a extended_conversion_function =
?l2r:bool ->
?reds:TransparentState.t ->
Environ.env ->
?evars:(Constr.existential -> Constr.constr option) ->
'a ->
'a ->
unit
type 'a universe_compare = {
compare_sorts : Environ.env -> conv_pb -> Sorts.t -> Sorts.t -> 'a -> 'a;
compare_instances : flex:bool -> Univ.Instance.t -> Univ.Instance.t -> 'a -> 'a;
compare_cumul_instances : conv_pb -> Univ.Variance.t array -> Univ.Instance.t -> Univ.Instance.t -> 'a -> 'a;
}
type ('a, 'b) generic_conversion_function =
Environ.env ->
'b universe_state ->
'a ->
'a ->
'b
val get_cumulativity_constraints :
conv_pb ->
Univ.Variance.t array ->
Univ.Instance.t ->
Univ.Instance.t ->
Univ.Constraint.t
val constructor_cumulativity_arguments :
(Declarations.mutual_inductive_body * int * int) ->
int
val sort_cmp_universes :
Environ.env ->
conv_pb ->
Sorts.t ->
Sorts.t ->
('a * 'a universe_compare) ->
'a * 'a universe_compare
val convert_instances :
flex:bool ->
Univ.Instance.t ->
Univ.Instance.t ->
('a * 'a universe_compare) ->
'a * 'a universe_compare
These two never raise UnivInconsistency, inferred_universes just gathers the constraints.
These two functions can only raise NotConvertible
val infer_conv :
?l2r:bool ->
?evars:(Constr.existential -> Constr.constr option) ->
?ts:TransparentState.t ->
Constr.constr infer_conversion_function
These conversion functions are used by module subtyping, which needs to infer universe constraints inside the kernel
val infer_conv_leq :
?l2r:bool ->
?evars:(Constr.existential -> Constr.constr option) ->
?ts:TransparentState.t ->
Constr.types infer_conversion_function
val generic_conv :
conv_pb ->
l2r:bool ->
(Constr.existential -> Constr.constr option) ->
TransparentState.t ->
(Constr.constr, 'a) generic_conversion_function
Depending on the universe state functions, this might raise UniverseInconsistency
in addition to NotConvertible
(for better error messages).
Builds an application node, reducing beta redexes it may produce.
Builds an application node, reducing beta redexes it may produce.
Builds an application node, reducing beta redexe it may produce.
Pseudo-reduction rule Prod(x,A,B) a --> Bx\a
val hnf_prod_applist_assum :
Environ.env ->
int ->
Constr.types ->
Constr.constr list ->
Constr.types
In hnf_prod_applist_assum n c args
, c
is supposed to (whd-)reduce to the form ∀Γ.t
with Γ
of length n
and possibly with let-ins; it returns t
with the assumptions of Γ
instantiated by args
and the local definitions of Γ
expanded.
Compatibility alias for Term.lambda_appvect_assum