- fixed : congr_arg_kind
- fixed_no_param : congr_arg_kind
- eq : congr_arg_kind
- cast : congr_arg_kind
- heq : congr_arg_kind
- subsingleton_inst : congr_arg_kind
This is a kind attached to an argument of a congruence lemma that tells the simplifier how to fill it in.
fixed
: It is a parameter for the congruence lemma, the parameter occurs in the left and right hand sides. For example the α in the congruence generated fromf: Π {α : Type} α → α
.fixed_no_param
: It is not a parameter for the congruence lemma, the lemma was specialized for this parameter. This only happens if the parameter is a subsingleton/proposition, and other parameters depend on it.eq
: The lemma contains three parameters for this kind of argumenta_i
,b_i
and(eq_i : a_i = b_i)
.a_i
andb_i
represent the left and right hand sides, andeq_i
is a proof for their equality. For example the second argument inf: Π {α : Type}, α → α
.cast
: corresponds to arguments that are subsingletons/propositions. For example thep
in the congruence generated fromf : Π (x y : ℕ) (p: x < y), ℕ
.heq
The lemma contains three parameters for this kind of argumenta_i
,b_i
and(eq_i : a_i == b_i)
.a_i
andb_i
represent the left and right hand sides, and eq_i is a proof for their heterogeneous equality.
Instances for congr_arg_kind
- congr_arg_kind.has_sizeof_inst
- congr_arg_kind.has_repr
- congr_arg_kind.has_to_format
- congr_arg_kind.inhabited
- congr_arg_kind.has_reflect
Equations
- congr_arg_kind.subsingleton_inst.to_string = "subsingleton_inst"
- congr_arg_kind.heq.to_string = "heq"
- congr_arg_kind.cast.to_string = "cast"
- congr_arg_kind.eq.to_string = "eq"
- congr_arg_kind.fixed_no_param.to_string = "fixed_no_param"
- congr_arg_kind.fixed.to_string = "fixed"
@[protected, instance]