The kernel definitional equality test (t =?= s) has special support for id_delta applications. It implements the following rules
- (id_delta t) =?= t
- t =?= (id_delta t)
- (id_delta t) =?= s IF (unfold_of t) =?= s
- t =?= id_delta s IF t =?= (unfold_of s)
This is mechanism for controlling the delta reduction (aka unfolding) used in the kernel.
We use id_delta applications to address performance problems when type checking lemmas generated by the equation compiler.
Instances for punit
- punit.has_sizeof
- unit.has_repr
- unit.has_to_string
- unit.has_to_format
- punit.reflect
- option_t.monad_except
- punit.subsingleton
- punit.inhabited
- punit.unique
- punit.reflect'
- punit.linear_order
- punit.densely_ordered
- punit.biheyting_algebra
- punit.boolean_algebra
- punit.complete_boolean_algebra
- unit.fintype
- punit.fintype
- punit.comm_group
- punit.add_comm_group
- punit.comm_ring
- punit.cancel_comm_monoid_with_zero
- punit.normalized_gcd_monoid
- punit.canonically_ordered_add_monoid
- punit.linear_ordered_cancel_add_comm_monoid
- punit.linear_ordered_add_comm_monoid_with_top
- punit.has_smul
- punit.has_vadd
- punit.is_central_scalar
- punit.is_central_vadd
- punit.smul_comm_class
- punit.vadd_comm_class
- punit.is_scalar_tower
- punit.vadd_assoc_class
- punit.smul_with_zero
- punit.mul_action
- punit.distrib_mul_action
- punit.mul_distrib_mul_action
- punit.mul_semiring_action
- punit.mul_action_with_zero
- punit.module
- punit.countable
- punit.encodable
- punit.algebra
- punit.topological_space
- punit.discrete_topology
- punit.bornology
- punit.uniform_space
- punit.metric_space
- punit.normed_add_comm_group
- punit.normed_comm_ring
- punit.normed_algebra
Instances for true
- decidable.true
- true.inhabited
- pi_subtype.can_lift
- pi_subtype.can_lift'
- true.unique
- set.pi_set_coe.can_lift
- set.pi_set_coe.can_lift'
- finset.pi_finset_coe.can_lift
- finset.pi_finset_coe.can_lift'
- cardinal.can_lift_cardinal_Type
- linear_map.can_lift_continuous_linear_map
- linear_equiv.can_lift_continuous_linear_equiv
Logical not.
not P
, with notation ¬ P
, is the Prop
which is true if and only if P
is false. It is
internally represented as P → false
, so one way to prove a goal ⊢ ¬ P
is to use intro h
,
which gives you a new hypothesis h : P
and the goal ⊢ false
.
A hypothesis h : ¬ P
can be used in term mode as a function, so if w : P
then h w : false
.
Related mathlib tactic: contrapose
.
Instances for eq
- decidable_eq_of_subsingleton
- eq.decidable
- con.quotient.decidable_eq
- add_con.quotient.decidable_eq
- ring_con.quotient.decidable_eq
- conj_classes.decidable_eq
- bool.decidable_eq
- prod.decidable_eq
- nat.decidable_eq
- quotient.decidable_eq
- list.decidable_eq
- char.decidable_eq
- string.has_decidable_eq
- fin.decidable_eq
- unsigned.decidable_eq
- ordering.decidable_eq
- name.has_decidable_eq
- option.decidable_eq
- options.has_decidable_eq
- level.has_decidable_eq
- pos.decidable_eq
- expr.has_decidable_eq
- local_context.has_decidable_eq
- punit.decidable_eq
- tactic.binder_info.has_decidable_eq
- vm_obj_kind.decidable_eq
- expr.coord.has_dec_eq
- expr.address.has_dec_eq
- eq_is_equiv
- int.decidable_eq
- subtype.decidable_eq
- d_array.decidable_eq
- array.decidable_eq
- native.float.dec_eq
- json.decidable_eq
- widget.filter_type.decidable_eq
- widget.local_collection.decidable_eq
- feature_search.feature.decidable_eq
- feature_search.predictor_type.decidable_eq
- doc_category.decidable_eq
- empty.decidable_eq
- pempty.decidable_eq
- rbnode.color.decidable_eq
- binder_info.decidable_eq
- congr_arg_kind.decidable_eq
- binder.decidable_eq
- pexpr.decidable_eq
- widget_override.filter_type.decidable_eq
- widget_override.local_collection.decidable_eq
- tactic.transparency.decidable_eq
- function.decidable_eq_pfun
- lint_verbosity.decidable_eq
- auto.auto_config.decidable_eq
- auto.case_option.decidable_eq
- tactic.itauto.and_kind.decidable_eq
- tactic.itauto.prop.decidable_eq
- norm_cast.label.decidable_eq
- tactic.simp_arg_type.decidable_eq
- tactic.suggest.head_symbol_match.decidable_eq
- units.decidable_eq
- add_units.decidable_eq
- sigma.decidable_eq
- psigma.decidable_eq
- sum.decidable_eq
- tactic.interactive.mono_selection.decidable_eq
- nat.coprime.decidable
- pnat.decidable_eq
- rat.decidable_eq
- rat.can_lift
- expr_lens.dir.decidable_eq
- multiset.has_decidable_eq
- multiset.decidable_eq_pi_multiset
- tactic.interactive.mono_function.decidable_eq
- plift.decidable_eq
- ulift.decidable_eq
- finset.has_decidable_eq
- finset.decidable_eq_pi_finset
- fintype.decidable_pi_fintype
- fintype.decidable_eq_equiv_fintype
- fintype.decidable_eq_embedding_fintype
- fintype.decidable_eq_one_hom_fintype
- fintype.decidable_eq_zero_hom_fintype
- fintype.decidable_eq_mul_hom_fintype
- fintype.decidable_eq_add_hom_fintype
- fintype.decidable_eq_monoid_hom_fintype
- fintype.decidable_eq_add_monoid_hom_fintype
- fintype.decidable_eq_monoid_with_zero_hom_fintype
- fintype.decidable_eq_ring_hom_fintype
- tactic.positivity.strictness.decidable_eq
- vector.decidable_eq
- ulower.decidable_eq
- free_monoid.decidable_eq
- free_add_monoid.decidable_eq
- dfinsupp.decidable_zero
- dfinsupp.decidable_eq
- finsupp.decidable_eq
- tactic.ring.normalize_mode.decidable_eq
- linarith.ineq.decidable_eq
- prod.lex.decidable_eq
- pos_num.decidable_eq
- num.decidable_eq
- znum.decidable_eq
- tree.decidable_eq
- zmod.decidable_eq
- tactic.decl_reducibility.decidable_eq
- cycle.decidable_eq
- real.decidable_eq
- complex.decidable_eq
- complex.can_lift
- sign_type.decidable_eq
- nat.partition.decidable_eq
- mv_polynomial.decidable_eq_mv_polynomial
- localization.decidable_eq
- add_localization.decidable_eq
- tactic.ring_exp.coeff.decidable_eq
- tactic.ring_exp.ex_type.decidable_eq
Initialize the quotient module, which effectively adds the following definitions:
constant quot {α : Sort u} (r : α → α → Prop) : Sort u
constant quot.mk {α : Sort u} (r : α → α → Prop) (a : α) : quot r
constant quot.lift {α : Sort u} {r : α → α → Prop} {β : Sort v} (f : α → β) :
(∀ a b : α, r a b → eq (f a) (f b)) → quot r → β
constant quot.ind {α : Sort u} {r : α → α → Prop} {β : quot r → Prop} :
(∀ a : α, β (quot.mk r a)) → ∀ q : quot r, β q
Also the reduction rule:
quot.lift f _ (quot.mk a) ~~> f a
```
Heterogeneous equality.
Its purpose is to write down equalities between terms whose types are not definitionally equal.
For example, given x : vector α n
and y : vector α (0+n)
, x = y
doesn't typecheck but x == y
does.
If you have a goal ⊢ x == y
,
your first instinct should be to ask (either yourself, or on zulip)
if something has gone wrong already.
If you really do need to follow this route,
you may find the lemmas eq_rec_heq
and eq_mpr_heq
useful.
- fst : α
- snd : β
Instances for prod
- prod.noncompact_space_left
- prod.noncompact_space_right
- prod.has_sizeof
- prod.inhabited
- prod.has_well_founded
- prod.has_repr
- lift_pair
- lift_pair₁
- lift_pair₂
- prod.has_to_string
- prod.has_to_format
- prod.has_to_tactic_format
- prod.has_reflect
- tactic_doc_entry.has_to_string
- subsingleton.prod
- prod.nonempty
- function.has_uncurry_induction
- prod.is_empty_left
- prod.is_empty_right
- prod.is_refl_left
- prod.is_refl_right
- prod.is_irrefl
- prod.lex.is_trans
- prod.lex.is_antisymm
- prod.is_total_left
- prod.is_total_right
- prod.is_trichotomous
- nontrivial_prod_right
- nontrivial_prod_left
- prod.has_le
- prod.preorder
- prod.partial_order
- prod.densely_ordered
- no_max_order_of_left
- no_max_order_of_right
- no_min_order_of_left
- no_min_order_of_right
- prod.lex.is_well_founded
- prod.lex.is_well_order
- prod.is_refl_preimage_fst
- prod.is_refl_preimage_snd
- prod.is_trans_preimage_fst
- prod.is_trans_preimage_snd
- prod.has_sup
- prod.has_inf
- prod.semilattice_sup
- prod.semilattice_inf
- prod.lattice
- prod.distrib_lattice
- prod.has_top
- prod.has_bot
- prod.order_top
- prod.order_bot
- prod.bounded_order
- prod.has_himp
- prod.has_hnot
- prod.has_sdiff
- prod.has_compl
- prod.generalized_heyting_algebra
- prod.generalized_coheyting_algebra
- prod.heyting_algebra
- prod.coheyting_algebra
- prod.has_mul
- prod.has_add
- prod.has_one
- prod.has_zero
- prod.has_inv
- prod.has_neg
- prod.has_involutive_inv
- prod.has_involutive_neg
- prod.has_div
- prod.has_sub
- prod.mul_zero_class
- prod.semigroup
- prod.add_semigroup
- prod.comm_semigroup
- prod.add_comm_semigroup
- prod.semigroup_with_zero
- prod.mul_one_class
- prod.add_zero_class
- prod.monoid
- prod.add_monoid
- prod.div_inv_monoid
- prod.sub_neg_monoid
- prod.division_monoid
- prod.subtraction_monoid
- prod.division_comm_monoid
- prod.subtraction_comm_monoid
- prod.group
- prod.add_group
- prod.left_cancel_semigroup
- prod.left_cancel_add_semigroup
- prod.right_cancel_semigroup
- prod.right_cancel_add_semigroup
- prod.left_cancel_monoid
- prod.left_cancel_add_monoid
- prod.right_cancel_monoid
- prod.right_cancel_add_monoid
- prod.cancel_monoid
- prod.cancel_add_monoid
- prod.comm_monoid
- prod.add_comm_monoid
- prod.cancel_comm_monoid
- prod.cancel_add_comm_monoid
- prod.mul_zero_one_class
- prod.monoid_with_zero
- prod.comm_monoid_with_zero
- prod.comm_group
- prod.add_comm_group
- tactic.interactive.mono_key.has_lt
- prod.has_Sup
- prod.has_Inf
- prod.complete_lattice
- prod.infinite_of_right
- prod.infinite_of_left
- prod.fintype
- finite.prod.finite
- prod.has_smul
- prod.has_vadd
- prod.has_pow
- prod.is_scalar_tower
- prod.vadd_assoc_class
- prod.smul_comm_class
- prod.vadd_comm_class
- prod.is_central_scalar
- prod.is_central_vadd
- prod.has_faithful_smul_left
- prod.has_faithful_vadd_left
- prod.has_faithful_smul_right
- prod.has_faithful_vadd_right
- prod.smul_comm_class_both
- prod.vadd_comm_class_both
- prod.is_scalar_tower_both
- prod.mul_action
- prod.add_action
- prod.smul_zero_class
- prod.distrib_smul
- prod.distrib_mul_action
- prod.mul_distrib_mul_action
- prod.smul_with_zero
- prod.mul_action_with_zero
- prod.module
- prod.no_zero_smul_divisors
- prod.countable
- prod.encodable
- prod.add_monoid_with_one
- prod.add_group_with_one
- prod.ordered_comm_monoid
- prod.ordered_add_comm_monoid
- prod.ordered_cancel_comm_monoid
- prod.ordered_cancel_add_comm_monoid
- prod.has_exists_mul_of_le
- prod.has_exists_add_of_le
- prod.canonically_ordered_monoid
- prod.canonically_ordered_add_monoid
- prod.distrib
- prod.non_unital_non_assoc_semiring
- prod.non_unital_semiring
- prod.non_assoc_semiring
- prod.semiring
- prod.non_unital_comm_semiring
- prod.comm_semiring
- prod.non_unital_non_assoc_ring
- prod.non_unital_ring
- prod.non_assoc_ring
- prod.ring
- prod.non_unital_comm_ring
- prod.comm_ring
- prod.ordered_semiring
- prod.ordered_comm_semiring
- prod.ordered_ring
- prod.ordered_comm_ring
- prod.has_star
- prod.has_trivial_star
- prod.has_involutive_star
- prod.star_semigroup
- prod.star_add_monoid
- prod.star_ring
- prod.star_module
- prod.algebra
- prod.locally_finite_order
- prod.locally_finite_order_top
- prod.locally_finite_order_bot
- denumerable.prod
- prod.omega_complete_partial_order
- con.has_mem
- add_con.has_mem
- prod.idem_semiring
- prod.idem_comm_semiring
- prod.kleene_algebra
- small_prod
- module.finite.prod
- module.free.prod
- is_noetherian_prod
- prod.ordered_smul
- prod.add_torsor
- prod.topological_space
- prod.discrete_topology
- topological_space.prod.first_countable_topology
- topological_space.prod.second_countable_topology
- prod.compact_space
- prod.locally_compact_space
- prod.sigma_compact_space
- prod.preconnected_space
- prod.connected_space
- prod.totally_disconnected_space
- prod.t0_space
- prod.t1_space
- prod.t2_space
- prod.regular_space
- prod.t3_space
- prod.order_closed_topology
- prod.uniform_space
- complete_space.prod
- uniform_space.separated.prod
- prod.has_continuous_const_smul
- prod.has_continuous_const_vadd
- prod.has_continuous_smul
- prod.has_continuous_vadd
- prod.has_continuous_mul
- prod.has_continuous_add
- prod.has_continuous_inv
- prod.has_continuous_neg
- prod.topological_group
- prod.topological_add_group
- prod.uniform_group
- prod.uniform_add_group
- prod.has_continuous_star
- prod.topological_semiring
- prod.topological_ring
- prod.Sup_convergence_class
- prod.Inf_convergence_class
- prod.compact_Icc_space
- prod.pseudo_emetric_space_max
- prod.emetric_space_max
- prod.bornology
- prod.bounded_space
- prod.pseudo_metric_space_max
- prod_proper_space
- prod.metric_space_max
- nat.lcm.char_p
- prod.char_p
- prod.has_isometric_smul
- prod.has_isometric_vadd
- prod.has_isometric_smul'
- prod.has_isometric_vadd'
- prod.has_isometric_smul''
- prod.has_isometric_vadd''
- prod.has_norm
- prod.seminormed_group
- prod.seminormed_add_group
- prod.seminormed_comm_group
- prod.seminormed_add_comm_group
- prod.normed_group
- prod.normed_add_group
- prod.normed_comm_group
- prod.normed_add_comm_group
- prod.bounded_le_nhds_class
- prod.bounded_ge_nhds_class
- prod.norm_one_class
- prod.non_unital_semi_normed_ring
- prod.semi_normed_ring
- prod.non_unital_normed_ring
- prod.normed_ring
- prod.normed_space
- prod.normed_algebra
- prod.cstar_ring
- path.has_uncurry_path
- prod.bifunctor
- prod.is_lawful_bifunctor
- prod.rootable_by
- prod.divisible_by
- algebra.finite_type.prod
- fst : α
- snd : β
Similar to prod
, but α and β can be propositions.
We use this type internally to automatically generate the brec_on recursor.
Instances for pprod
- left : a
- right : b
Logical and.
and P Q
, with notation P ∧ Q
, is the Prop
which is true precisely when P
and Q
are
both true.
To prove a goal ⊢ P ∧ Q
, you can use the tactic split
,
which gives two separate goals ⊢ P
and ⊢ Q
.
Given a hypothesis h : P ∧ Q
, you can use the tactic cases h with hP hQ
to obtain two new hypotheses hP : P
and hQ : Q
. See also the obtain
or rcases
tactics in
mathlib.
Instances for sum
- sum.has_sizeof
- sum.inhabited_left
- sum.inhabited_right
- sum.has_repr
- sum.has_to_string
- sum_has_to_format
- sum.has_reflect
- sum.monad
- sum.is_lawful_functor
- sum.is_lawful_monad
- sum.traversable
- sum.is_empty
- sum.infinite_of_left
- sum.infinite_of_right
- sum.fintype
- finite.sum.finite
- sum.countable
- sum.encodable
- denumerable.sum
- small_sum
- sum.lift_rel.is_refl
- sum.lift_rel.is_irrefl
- sum.lift_rel.is_trans
- sum.lift_rel.is_antisymm
- sum.lex.is_refl
- sum.lex.is_irrefl
- sum.lex.is_trans
- sum.lex.is_antisymm
- sum.lex.is_total
- sum.lex.is_trichotomous
- sum.lex.is_well_order
- sum.has_le
- sum.has_lt
- sum.preorder
- sum.partial_order
- sum.no_min_order
- sum.no_max_order
- sum.densely_ordered
- sum.is_lawful_traversable
- sum.topological_space
- sum.discrete_topology
- topological_space.sum.second_countable_topology
- sum.compact_space
- sum.sigma_compact_space
- sum.totally_disconnected_space
- sum.t2_space
- sum.uniform_space
- complete_space.sum
- sum.bifunctor
- sum.is_lawful_bifunctor
Instances for psum
Logical or.
or P Q
, with notation P ∨ Q
, is the proposition which is true if and only if P
or Q
is
true.
To prove a goal ⊢ P ∨ Q
, if you know which alternative you want to prove,
you can use the tactics left
(which gives the goal ⊢ P
)
or right
(which gives the goal ⊢ Q
).
Given a hypothesis h : P ∨ Q
and goal ⊢ R
,
the tactic cases h
will give you two copies of the goal ⊢ R
,
with the hypothesis h : P
in the first, and the hypothesis h : Q
in the second.
Instances for or
- fst : α
- snd : β self.fst
Instances for sigma
- sigma.has_sizeof
- sigma.has_repr
- sigma.has_to_string
- sigma.has_to_format
- sigma.is_empty_left
- sigma.inhabited
- sigma.reflect
- sigma.fintype
- finite.sigma.finite
- sigma.countable
- sigma.encodable
- denumerable.sigma
- sigma.lex.is_refl
- sigma.lex.is_irrefl
- sigma.lex.is_trans
- sigma.lex.is_symm
- sigma.lex.is_antisymm
- sigma.lex.is_total
- sigma.lex.is_trichotomous
- small_sigma
- matrix.sigma_sigma_fin_matrix_has_reflect
- sigma.topological_space
- sigma.discrete_topology
- topological_space.sigma.second_countable_topology
- sigma.compact_space
- sigma.sigma_compact_space
- sigma.totally_disconnected_space
- sigma.t2_space
- fst : α
- snd : β self.fst
Instances for bool
- bool.has_sizeof
- bool.inhabited
- bool.has_repr
- coe_bool_to_Prop
- coe_sort_bool
- bool.has_to_string
- bool.has_to_format
- bool.has_reflect
- json.bool_coe
- bool.linear_order
- bool.nontrivial
- bool.distrib_lattice
- bool.bounded_order
- bool.boolean_algebra
- bool.fintype
- bool.countable
- bool.encodable
- bool.topological_space
- bool.discrete_topology
- bool.uniform_space
- bool.complete_linear_order
- bool.complete_boolean_algebra
- val : α
- property : p self.val
Remark: subtype must take a Sort instead of Type because of the axiom strong_indefinite_description.
Instances for subtype
- pos_mul_strict_mono.to_pos_mul_mono_rev
- mul_pos_strict_mono.to_mul_pos_mono_rev
- pos_mul_strict_mono.to_pos_mul_mono
- mul_pos_strict_mono.to_mul_pos_mono
- pos_mul_mono_rev.to_pos_mul_reflect_lt
- mul_pos_mono_rev.to_mul_pos_reflect_lt
- ordered_semiring.to_pos_mul_mono
- ordered_semiring.to_mul_pos_mono
- strict_ordered_semiring.to_pos_mul_strict_mono
- strict_ordered_semiring.to_mul_pos_strict_mono
- linear_ordered_semiring.to_pos_mul_reflect_lt
- linear_ordered_semiring.to_mul_pos_reflect_lt
- subtype.countable
- subtype.has_sizeof
- subtype.has_repr
- coe_subtype
- subtype.has_to_string
- subtype.has_to_format
- subtype.subsingleton
- subtype.can_lift
- subtype.is_empty
- subtype.is_empty_false
- unique.subtype_eq
- unique.subtype_eq'
- subtype.has_equiv
- subtype.setoid
- subtype.has_le
- subtype.has_lt
- subtype.preorder
- subtype.partial_order
- subtype.linear_order
- nonempty_lt
- nonempty_gt
- complementeds.partial_order
- complementeds.has_coe_t
- complementeds.bounded_order
- complementeds.inhabited
- complementeds.has_sup
- complementeds.has_inf
- complementeds.distrib_lattice
- complementeds.complemented_lattice
- subtype.well_founded_lt
- subtype.well_founded_gt
- pos_mul_mono.to_covariant_class_pos_mul_le
- mul_pos_mono.to_covariant_class_pos_mul_le
- pos_mul_reflect_lt.to_contravariant_class_pos_mul_lt
- mul_pos_reflect_lt.to_contravariant_class_pos_mul_lt
- fintype.subtype_eq
- fintype.subtype_eq'
- list.subtype.fintype
- multiset.subtype.fintype
- finset.subtype.fintype
- subtype.fintype
- subtype.finite
- set.finite.inhabited
- positive.subtype.has_add
- positive.subtype.add_semigroup
- positive.subtype.add_comm_semigroup
- positive.subtype.add_left_cancel_semigroup
- positive.subtype.add_right_cancel_semigroup
- positive.covariant_class_add_lt
- positive.covariant_class_swap_add_lt
- positive.contravariant_class_add_lt
- positive.contravariant_class_swap_add_lt
- positive.contravariant_class_add_le
- positive.contravariant_class_swap_add_le
- positive.covariant_class_add_le
- positive.subtype.has_mul
- positive.nat.has_pow
- positive.subtype.semigroup
- positive.subtype.distrib
- positive.subtype.has_one
- positive.subtype.monoid
- positive.subtype.ordered_comm_monoid
- positive.subtype.linear_ordered_cancel_comm_monoid
- subtype.encodable
- with_bot.pos_mul_mono
- with_bot.mul_pos_mono
- with_bot.pos_mul_strict_mono
- with_bot.mul_pos_strict_mono
- with_bot.pos_mul_reflect_lt
- with_bot.mul_pos_reflect_lt
- with_bot.pos_mul_mono_rev
- with_bot.mul_pos_mono_rev
- subtype.locally_finite_order
- subtype.locally_finite_order_top
- subtype.locally_finite_order_bot
- small_subtype
- is_idempotent_elem.subtype.has_zero
- is_idempotent_elem.subtype.has_one
- is_idempotent_elem.subtype.has_compl
- is_well_order.subtype_nonempty
- filter.inhabited_mem
- subtype.topological_space
- subtype.discrete_topology
- subtype.totally_disconnected_space
- subtype.t0_space
- subtype.t1_space
- subtype.t2_space
- subtype.regular_space
- subtype.t3_space
- subtype.t5_space
- subtype.order_closed_topology
- subtype.uniform_space
- fintype_nodup_list
- cycle.fintype_nodup_cycle
- cycle.fintype_nodup_nontrivial_cycle
- nonneg.order_bot
- nonneg.no_max_order
- nonneg.semilattice_sup
- nonneg.semilattice_inf
- nonneg.distrib_lattice
- nonneg.densely_ordered
- nonneg.inhabited
- nonneg.has_zero
- nonneg.has_add
- nonneg.has_nsmul
- nonneg.ordered_add_comm_monoid
- nonneg.linear_ordered_add_comm_monoid
- nonneg.ordered_cancel_add_comm_monoid
- nonneg.linear_ordered_cancel_add_comm_monoid
- nonneg.has_one
- nonneg.has_mul
- nonneg.add_monoid_with_one
- nonneg.has_pow
- nonneg.ordered_semiring
- nonneg.strict_ordered_semiring
- nonneg.ordered_comm_semiring
- nonneg.strict_ordered_comm_semiring
- nonneg.monoid_with_zero
- nonneg.comm_monoid_with_zero
- nonneg.semiring
- nonneg.comm_semiring
- nonneg.nontrivial
- nonneg.linear_ordered_semiring
- nonneg.linear_ordered_comm_monoid_with_zero
- nonneg.canonically_ordered_add_monoid
- nonneg.canonically_ordered_comm_semiring
- nonneg.canonically_linear_ordered_add_monoid
- nonneg.has_sub
- nonneg.has_ordered_sub
- nonneg.has_inv
- nonneg.has_div
- nonneg.has_zpow
- nonneg.linear_ordered_semifield
- nonneg.canonically_linear_ordered_semifield
- nonneg.linear_ordered_comm_group_with_zero
- nonneg.archimedean
- nonneg.floor_semiring
- subtype.pseudo_emetric_space
- subtype.emetric_space
- subtype.bornology
- subtype.bounded_space
- subtype.pseudo_metric_space
- subtype.metric_space
- is_bimodule_map.add_comm_monoid
- is_bimodule_map.has_smul
- subtype.mul_action
- subtype.distrib_mul_action
- is_bimodule_map.module
- matrix.add_comm_monoid_block_diagonal
- matrix.has_smul_block_diagonal
- matrix.mul_action_block_diagonal
- matrix.distrib_mul_action_block_diagonal
- matrix.module_block_diagonal
- matrix.is_block_diagonal.has_mul
- matrix.is_block_diagonal.has_one
- matrix.is_block_diagonal.has_npow
- matrix.is_block_diagonal.semiring
- matrix.is_block_diagonal.algebra
- matrix.is_block_diagonal.has_star
- quantum_set.A_pos_has_pow
- quantum_set.A_pos_has_inv
- real_qam.has_zero
- _private.2022024685.has_smul.units_matrix_ne_zero
Instances of this typeclass
- decidable_eq_of_subsingleton
- has_lt.lt.decidable
- has_le.le.decidable
- eq.decidable
- con.quotient.decidable_eq
- add_con.quotient.decidable_eq
- ring_con.quotient.decidable_eq
- conj_classes.decidable_eq
- decidable.true
- decidable.false
- and.decidable
- or.decidable
- not.decidable
- implies.decidable
- iff.decidable
- xor.decidable
- exists_prop_decidable
- forall_prop_decidable
- ne.decidable
- bool.decidable_eq
- ite.decidable
- dite.decidable
- prod.decidable_eq
- nat.decidable_eq
- nat.decidable_le
- nat.decidable_lt
- quotient.decidable_eq
- list.decidable_eq
- list.decidable_mem
- list.has_decidable_lt
- list.has_decidable_le
- char.decidable_lt
- char.decidable_le
- char.decidable_eq
- string.has_decidable_lt
- string.has_decidable_eq
- fin.decidable_lt
- fin.decidable_le
- fin.decidable_eq
- unsigned.decidable_eq
- ordering.decidable_eq
- coe_decidable_eq
- name.lt.decidable_rel
- name.has_decidable_eq
- option.decidable_eq
- options.has_decidable_eq
- level.has_decidable_eq
- pos.decidable_eq
- expr.has_decidable_eq
- expr.lt_prop.decidable_rel
- local_context.has_decidable_eq
- local_context.decidable_rel
- local_context.has_mem.mem.decidable
- punit.decidable_eq
- tactic.binder_info.has_decidable_eq
- vm_obj_kind.decidable_eq
- expr.coord.has_dec_eq
- expr.address.has_dec_eq
- nat.decidable_dvd
- list.decidable_bex
- list.decidable_ball
- int.decidable_eq
- int.decidable_le
- int.decidable_lt
- char.decidable_is_whitespace
- char.decidable_is_upper
- char.decidable_is_lower
- char.decidable_is_alpha
- char.decidable_is_digit
- char.decidable_is_alphanum
- char.decidable_is_punctuation
- subtype.decidable_eq
- d_array.decidable_eq
- array.decidable_eq
- native.float.decidable_lt
- native.float.decidable_le
- native.float.dec_eq
- json.decidable_eq
- widget.filter_type.decidable_eq
- widget.local_collection.decidable_eq
- feature_search.feature.decidable_eq
- feature_search.predictor_type.decidable_eq
- doc_category.decidable_eq
- option.decidable_forall_mem
- option.decidable_exists_mem
- empty.decidable_eq
- pempty.decidable_eq
- rbnode.color.decidable_eq
- list.decidable_pairwise
- list.decidable_chain
- list.decidable_chain'
- list.nodup_decidable
- binder_info.decidable_eq
- congr_arg_kind.decidable_eq
- binder.decidable_eq
- pexpr.decidable_eq
- widget_override.filter_type.decidable_eq
- widget_override.local_collection.decidable_eq
- tactic.transparency.decidable_eq
- bool.decidable_forall_bool
- bool.decidable_exists_bool
- function.decidable_eq_pfun
- lint_verbosity.decidable_eq
- auto.auto_config.decidable_eq
- auto.case_option.decidable_eq
- tactic.itauto.and_kind.decidable_eq
- tactic.itauto.prop.decidable_eq
- tactic.itauto.has_lt.lt.decidable_rel
- norm_cast.label.decidable_eq
- tactic.simp_arg_type.decidable_eq
- tactic.suggest.head_symbol_match.decidable_eq
- quot.lift.decidable_pred
- quot.lift₂.decidable_pred
- quot.lift_on.decidable
- quot.lift_on₂.decidable
- quotient.lift.decidable_pred
- quotient.lift₂.decidable_pred
- quotient.lift_on.decidable
- quotient.lift_on₂.decidable
- quotient.lift_on'.decidable
- quotient.lift_on₂'.decidable
- prod.lex.decidable
- units.decidable_eq
- add_units.decidable_eq
- is_unit.decidable
- is_add_unit.decidable
- sigma.decidable_eq
- psigma.decidable_eq
- sum.decidable_eq
- sum.lift_rel.decidable
- sum.lex.decidable_rel
- order.preimage.decidable
- subtype.decidable_le
- subtype.decidable_lt
- relation.map.decidable
- monotone.decidable
- antitone.decidable
- monotone_on.decidable
- antitone_on.decidable
- strict_mono.decidable
- strict_anti.decidable
- strict_mono_on.decidable
- strict_anti_on.decidable
- with_bot.decidable_le
- with_bot.decidable_lt
- with_top.decidable_le
- with_top.decidable_lt
- set.decidable_sdiff
- set.decidable_inter
- set.decidable_union
- set.decidable_compl
- set.decidable_emptyset
- set.decidable_univ
- set.decidable_set_of
- set.decidable_mem_prod
- set.decidable_mem_diagonal
- set.compl.decidable_mem
- tactic.interactive.mono_selection.decidable_eq
- nat.decidable_ball_lt
- nat.decidable_forall_fin
- nat.decidable_ball_le
- nat.decidable_exists_lt
- nat.decidable_exists_le
- nat.decidable_lo_hi
- nat.decidable_lo_hi_le
- set.decidable_mem_Ioo
- set.decidable_mem_Ico
- set.decidable_mem_Iio
- set.decidable_mem_Icc
- set.decidable_mem_Iic
- set.decidable_mem_Ioc
- set.decidable_mem_Ici
- set.decidable_mem_Ioi
- int.decidable_dvd
- nat.coprime.decidable
- pnat.decidable_eq
- rat.decidable_eq
- rat.decidable_nonneg
- rat.decidable_le
- expr_lens.dir.decidable_eq
- list.decidable_sublist
- list.all₂.decidable_pred
- list.decidable_prefix
- list.decidable_suffix
- list.decidable_infix
- list.lex.decidable_rel
- list.decidable_subperm
- list.decidable_perm
- multiset.has_decidable_eq
- multiset.decidable_mem
- multiset.decidable_le
- multiset.decidable_dforall_multiset
- multiset.decidable_eq_pi_multiset
- multiset.decidable_dexists_multiset
- multiset.nodup_decidable
- tactic.interactive.mono_function.decidable_eq
- plift.decidable_eq
- ulift.decidable_eq
- finset.has_decidable_eq
- finset.decidable_mem
- finset.decidable_mem'
- finset.decidable_nonempty
- finset.decidable_disjoint
- finset.decidable_dforall_finset
- finset.decidable_eq_pi_finset
- finset.decidable_dexists_finset
- fintype.decidable_pi_fintype
- fintype.decidable_forall_fintype
- fintype.decidable_exists_fintype
- fintype.decidable_mem_range_fintype
- fintype.decidable_eq_equiv_fintype
- fintype.decidable_eq_embedding_fintype
- fintype.decidable_eq_one_hom_fintype
- fintype.decidable_eq_zero_hom_fintype
- fintype.decidable_eq_mul_hom_fintype
- fintype.decidable_eq_add_hom_fintype
- fintype.decidable_eq_monoid_hom_fintype
- fintype.decidable_eq_add_monoid_hom_fintype
- fintype.decidable_eq_monoid_with_zero_hom_fintype
- fintype.decidable_eq_ring_hom_fintype
- fintype.decidable_injective_fintype
- fintype.decidable_surjective_fintype
- fintype.decidable_bijective_fintype
- fintype.decidable_right_inverse_fintype
- fintype.decidable_left_inverse_fintype
- finset.decidable_codisjoint
- finset.decidable_is_compl
- list.decidable_sorted
- list.decidable_duplicate
- tactic.positivity.strictness.decidable_eq
- finset.decidable_exists_of_decidable_subsets
- finset.decidable_forall_of_decidable_subsets
- finset.decidable_exists_of_decidable_ssubsets
- finset.decidable_forall_of_decidable_ssubsets
- vector.decidable_eq
- setoid.decidable_rel
- sym.decidable_mem
- associated.decidable_rel
- associates.has_dvd.dvd.decidable_rel
- set.decidable_mem_center
- subsemigroup.decidable_mem_center
- add_subsemigroup.decidable_mem_center
- set.decidable_mem_centralizer
- set.decidable_mem_add_centralizer
- subsemigroup.decidable_mem_centralizer
- add_subsemigroup.decidable_mem_centralizer
- monoid_hom.decidable_mem_mker
- add_monoid_hom.decidable_mem_mker
- submonoid.decidable_mem_center
- add_submonoid.decidable_mem_center
- submonoid.decidable_mem_centralizer
- add_submonoid.decidable_mem_centralizer
- ulower.decidable_eq
- antisymm_rel.decidable_rel
- subgroup.decidable_mem_center
- monoid_hom.decidable_mem_ker
- add_monoid_hom.decidable_mem_ker
- free_monoid.decidable_eq
- free_add_monoid.decidable_eq
- dfinsupp.decidable_zero
- dfinsupp.decidable_eq
- finsupp.decidable_eq
- subsemiring.decidable_mem_center
- subring.decidable_mem_center
- pairwise.decidable
- finset.sup_indep.decidable
- part.none_decidable
- part.some_decidable
- part.of_option_decidable
- sigma.lex.decidable
- psigma.lex.decidable
- set.decidable_mem_mul
- set.decidable_mem_add
- set.decidable_mem_pow
- set.decidable_mem_nsmul
- tactic.ring.normalize_mode.decidable_eq
- linarith.ineq.decidable_eq
- prod.lex.decidable_eq
- pos_num.decidable_eq
- num.decidable_eq
- znum.decidable_eq
- pos_num.decidable_lt
- pos_num.decidable_le
- num.decidable_lt
- num.decidable_le
- znum.decidable_lt
- znum.decidable_le
- tree.decidable_eq
- part_enat.dom.decidable
- part_enat.decidable_le
- function.is_fixed_pt.decidable
- function.fixed_points.decidable
- quotient_group.left_rel_decidable
- quotient_add_group.left_rel_decidable
- quotient_group.right_rel_decidable
- quotient_add_group.right_rel_decidable
- monoid_hom.decidable_mem_range
- add_monoid_hom.decidable_mem_range
- nat.modeq.decidable
- zmod.decidable_eq
- finsupp.decidable_le
- tactic.decl_reducibility.decidable_eq
- nat.even.decidable_pred
- nat.odd.decidable_pred
- list.is_rotated_decidable
- list.setoid.r.decidable
- cycle.decidable_eq
- cycle.has_mem.mem.decidable
- cycle.nontrivial.decidable
- cycle.nodup.decidable
- nat.decidable_prime
- function.is_periodic_pt.decidable
- real.decidable_lt
- real.decidable_le
- real.decidable_eq
- int.even.decidable_pred
- int.odd.decidable_pred
- complex.decidable_eq
- int.modeq.decidable
- decidable_powers
- decidable_multiples
- decidable_zpowers
- decidable_zmultiples
- sign_type.decidable_eq
- sign_type.le.decidable_rel
- nat.partition.decidable_eq
- equiv.perm.r.decidable_rel
- equiv.perm.same_cycle.decidable_rel
- multiplicity.decidable_nat
- multiplicity.decidable_int
- equiv.perm.sum_congr_hom.decidable_mem_range
- equiv.perm.sigma_congr_right_hom.decidable_mem_range
- equiv.perm.subtype_congr_hom.decidable_mem_range
- mv_polynomial.decidable_eq_mv_polynomial
- polynomial.monic.decidable
- polynomial.trailing_monic.decidable
- polynomial.is_root.decidable
- localization.decidable_eq
- add_localization.decidable_eq
- localization.decidable_le
- add_localization.decidable_le
- localization.decidable_lt
- add_localization.decidable_lt
- tactic.ring_exp.coeff.decidable_eq
- tactic.ring_exp.ex_type.decidable_eq
Instances of other typeclasses for decidable
Equations
- decidable_pred r = Π (a : α), decidable (r a)
Equations
- decidable_rel r = Π (a b : α), decidable (r a b)
Equations
Instances for option
- option.has_sizeof
- option.has_repr
- coe_option
- option.has_to_string
- option.monad
- option.alternative
- option.inhabited
- option.has_to_format
- tactic.opt_to_tac
- option.has_to_tactic_format
- option.has_reflect
- option.is_lawful_monad
- option.has_mem
- option.lift_or_get_comm
- option.lift_or_get_assoc
- option.lift_or_get_idem
- option.lift_or_get_is_left_id
- option.lift_or_get_is_right_id
- option.traversable
- option.unique
- option.nontrivial
- option.infinite
- option.countable
- option.encodable
- denumerable.option
- part.has_coe
- option.fintype
- option.is_lawful_traversable
- pequiv.fun_like
- json.has_coe
Instances for list
- list.has_sizeof
- list.inhabited
- list.has_append
- list.has_mem
- list.has_emptyc
- list.has_insert
- list.has_singleton
- list.is_lawful_singleton
- list.has_union
- list.has_inter
- list.has_lt
- list.has_le
- list.has_repr
- lift_list
- list.has_to_string
- list.has_to_format
- list.has_to_tactic_format
- tactic.andthen_seq_focus
- list.reflect
- list.has_subset
- list.monad
- list.is_lawful_monad
- list.alternative
- list.bin_tree_to_list
- json.array_coe
- widget.html.list_coe
- list.has_sdiff
- list.traversable
- list.reflect'
- list.unique_of_is_empty
- list.nil.is_left_id
- list.nil.is_right_id
- list.has_append.append.is_associative
- list.has_subset.subset.is_trans
- list.is_prefix.is_partial_order
- list.is_suffix.is_partial_order
- list.is_infix.is_partial_order
- list.sublist_forall₂.is_refl
- list.sublist_forall₂.is_trans
- list.lex.is_order_connected
- list.lex.is_trichotomous
- list.lex.is_asymm
- list.lex.is_strict_total_order
- list.has_lt'
- list.linear_order
- list.has_le'
- list.can_lift
- list.zip_with.is_symm_op
- list.is_setoid
- multiset.has_coe
- list.infinite
- list.encodable
- list.countable
- denumerable.denumerable_list
- list.is_lawful_traversable
- cycle.has_coe
Instances for nat
- polynomial.has_pow
- algebra_nat
- no_zero_smul_divisors.char_zero.no_zero_smul_divisors_nat
- nat.cast_coe
- nat.has_zero
- nat.has_one
- nat.has_add
- nat.has_sizeof
- nat.has_le
- nat.has_lt
- nat.has_sub
- nat.has_mul
- nat.has_dvd
- nat.inhabited
- nat.has_div
- nat.has_mod
- nat.has_repr
- nat.has_to_string
- nat_to_format
- nat.has_to_format
- nat.reflect
- nat.linear_order
- int.has_coe
- native.float.of_nat_coe
- native.float.has_nat_pow
- has_le.le.can_lift
- monoid.has_pow
- add_monoid.has_smul_nat
- nat.well_founded_lt
- nat.lt.is_well_order
- nat.distrib_lattice
- add_monoid.nat_smul_comm_class
- add_monoid.nat_smul_comm_class'
- with_zero.nat.has_pow
- nat.nontrivial
- nat.comm_semiring
- nat.add_comm_monoid
- nat.add_monoid
- nat.monoid
- nat.comm_monoid
- nat.comm_semigroup
- nat.semigroup
- nat.add_comm_semigroup
- nat.add_semigroup
- nat.distrib
- nat.semiring
- nat.cancel_comm_monoid_with_zero
- nat.order_bot
- nat.linear_ordered_comm_semiring
- nat.linear_ordered_comm_monoid_with_zero
- nat.linear_ordered_semiring
- nat.strict_ordered_semiring
- nat.strict_ordered_comm_semiring
- nat.ordered_semiring
- nat.ordered_comm_semiring
- nat.linear_ordered_cancel_add_comm_monoid
- nat.canonically_ordered_comm_semiring
- nat.canonically_linear_ordered_add_monoid
- nat.has_ordered_sub
- non_unital_non_assoc_semiring.nat_smul_comm_class
- non_unital_non_assoc_semiring.nat_is_scalar_tower
- coe_pnat_nat
- nat.can_lift_pnat
- fin.fin_to_nat
- nat.infinite
- add_monoid.nat_smul_with_zero
- add_comm_monoid.nat_module
- add_comm_monoid.nat_is_scalar_tower
- nat.countable
- add_submonoid_class.has_nsmul
- submonoid_class.has_pow
- positive.nat.has_pow
- nat.encodable
- add_subgroup.has_nsmul
- subgroup.has_npow
- dfinsupp.has_nat_scalar
- finsupp.has_nat_scalar
- nat.locally_finite_order
- nat.has_Inf
- nat.has_Sup
- nat.lattice
- nat.conditionally_complete_linear_order_bot
- denumerable.nat
- add_con.quotient.has_nsmul
- con.nat.has_pow
- nat.succ_order
- nat.pred_order
- nat.is_succ_archimedean
- nat.is_pred_archimedean
- enat.has_coe_t
- enat.can_lift
- part_enat.part.dom.can_lift
- cardinal.can_lift_cardinal_nat
- self_adjoint.nat.has_pow
- nat.modeq.is_refl
- ring_con.has_nsmul
- ring_con.nat.has_pow
- nat.ordered_smul
- nat.topological_space
- nat.discrete_topology
- nat.floor_semiring
- nat.archimedean
- nat.uniform_space
- nat.primes.coe_nat
- add_monoid.has_continuous_const_smul_nat
- add_monoid.has_continuous_smul_nat
- nonneg.has_nsmul
- nonneg.has_pow
- cau_seq.nat.has_pow
- cau_seq.completion.nat.has_pow
- add_monoid.has_uniform_continuous_const_smul_nat
- nat.has_dist
- nat.metric_space
- nat.proper_space
- nat.noncompact_space
- normed_add_group_hom.has_nat_scalar
- set.Icc.has_pow
- set.Ioc.has_pow
- nat.wf_dvd_monoid
- nat.unique_factorization_monoid
- nat.gcd_monoid
- nat.normalized_gcd_monoid
- quotient_group.rootable_by
- quotient_add_group.divisible_by
- matrix.special_linear_group.nat.has_pow
- matrix.is_block_diagonal.has_npow
Instances for unification_constraint
- pattern : unification_constraint
- constraints : list unification_constraint
Instances for unification_hint
Declare builtin and reserved notation
- zero : α
Instances of this typeclass
- neg_zero_class.to_has_zero
- add_zero_class.to_has_zero
- mul_zero_class.to_has_zero
- nat.has_zero
- int.has_zero
- fin.has_zero
- unsigned.has_zero
- native.float.has_zero
- zero_hom.has_zero
- add_hom.has_zero
- add_monoid_hom.has_zero
- pi.has_zero
- mul_opposite.has_zero
- add_opposite.has_zero
- non_unital_ring_hom.has_zero
- additive.has_zero
- order_dual.has_zero
- lex.has_zero
- prod.has_zero
- with_zero.has_zero
- with_top.has_zero
- with_bot.has_zero
- rat.has_zero
- fin.has_zero_of_ne_zero
- multiset.has_zero
- sym.has_zero
- ulift.has_zero
- distrib_mul_action_hom.has_zero
- linear_map.has_zero
- associates.has_zero
- zero_mem_class.has_zero
- add_submonoid.has_zero
- add_subgroup.has_zero
- sub_mul_action.has_zero
- submodule.has_zero
- dfinsupp.has_zero
- finsupp.has_zero
- linear_equiv.has_zero
- non_unital_alg_hom.has_zero
- non_unital_star_alg_hom.has_zero
- part.has_zero
- add_con.quotient.has_zero
- num.has_zero
- znum.has_zero
- enat.has_zero
- part_enat.has_zero
- cardinal.has_zero
- submodule.quotient.has_quotient.quotient.has_zero
- matrix.has_zero
- ring_con.quotient.has_zero
- is_idempotent_elem.subtype.has_zero
- ordinal.has_zero
- affine_map.has_zero
- bilin_form.has_zero
- nonneg.has_zero
- cau_seq.has_zero
- cau_seq.completion.Cauchy.has_zero
- real.has_zero
- ennreal.has_zero
- complex.has_zero
- group_seminorm.has_zero
- add_group_seminorm.has_zero
- nonarch_add_group_seminorm.has_zero
- normed_add_group_hom.has_zero
- continuous_linear_map.has_zero
- sign_type.has_zero
- set.Icc.has_zero
- set.Ico.has_zero
- unit_interval.has_zero
- uniform_space.completion.has_zero
- seminorm.has_zero
- multilinear_map.has_zero
- continuous_multilinear_map.has_zero
- alternating_map.has_zero
- polynomial.has_zero
- add_localization.has_zero
- localization.has_zero
- convex_cone.has_zero
- dmatrix.has_zero
- quadratic_form.has_zero
- is_symmetric.has_zero
- real_qam.has_zero
- one : α
Instances of this typeclass
- inv_one_class.to_has_one
- mul_one_class.to_has_one
- add_monoid_with_one.to_has_one
- nat.has_one
- int.has_one
- fin.has_one
- unsigned.has_one
- native.float.has_one
- one_hom.has_one
- mul_hom.has_one
- monoid_hom.has_one
- pi.has_one
- mul_opposite.has_one
- add_opposite.has_one
- multiplicative.has_one
- order_dual.has_one
- lex.has_one
- prod.has_one
- with_one.has_one
- with_zero.has_one
- with_top.has_one
- with_bot.has_one
- pnat.has_one
- rat.has_one
- fin.has_one_of_ne_zero
- ulift.has_one
- distrib_mul_action_hom.has_one
- linear_map.module.End.has_one
- associates.has_one
- conj_classes.has_one
- one_mem_class.has_one
- submonoid.has_one
- positive.subtype.has_one
- subgroup.has_one
- non_unital_alg_hom.has_one
- part.has_one
- con.quotient.has_one
- add_submonoid.has_one
- set_semiring.has_one
- sub_mul_action.has_one
- submodule.has_one
- pos_num.has_one
- num.has_one
- znum.has_one
- part_enat.has_one
- cardinal.has_one
- self_adjoint.has_one
- matrix.has_one
- ring_con.quotient.has_one
- ideal.quotient.has_one
- is_idempotent_elem.subtype.has_one
- ordinal.has_one
- nonneg.has_one
- cau_seq.has_one
- cau_seq.completion.Cauchy.has_one
- real.has_one
- complex.has_one
- add_group_seminorm.has_one
- group_seminorm.has_one
- nonarch_add_group_seminorm.has_one
- add_group_norm.has_one
- group_norm.has_one
- nonarch_add_group_norm.has_one
- continuous_linear_map.has_one
- sign_type.has_one
- set.Icc.has_one
- set.Ioc.has_one
- unit_interval.has_one
- uniform_space.completion.has_one
- monoid_algebra.has_one
- add_monoid_algebra.has_one
- polynomial.has_one
- localization.has_one
- algebra.tensor_product.tensor_product.has_one
- matrix.special_linear_group.has_one
- matrix.is_block_diagonal.has_one
Instances of this typeclass
- add_semigroup.to_has_add
- add_zero_class.to_has_add
- distrib.to_has_add
- add_mem_class.has_add
- nat.has_add
- options.has_add
- int.has_add
- fin.has_add
- unsigned.has_add
- native.float.has_add
- add_hom.has_add
- add_monoid_hom.has_add
- pi.has_add
- mul_opposite.has_add
- add_opposite.has_add
- additive.has_add
- order_dual.has_add
- lex.has_add
- prod.has_add
- with_zero.has_add
- with_top.has_add
- with_bot.has_add
- rat.has_add
- multiset.has_add
- ulift.has_add
- linear_map.has_add
- add_submonoid.has_add
- positive.subtype.has_add
- pnat.has_add
- add_subgroup.has_add
- submodule.has_add
- dfinsupp.has_add
- dfinsupp.has_add₂
- finsupp.has_add
- part.has_add
- add_con.has_add
- pos_num.has_add
- num.has_add
- znum.has_add
- part_enat.has_add
- cardinal.has_add
- matrix.has_add
- ring_con.quotient.has_add
- ordinal.has_add
- affine_map.has_add
- bilin_form.has_add
- nonneg.has_add
- cau_seq.has_add
- cau_seq.completion.Cauchy.has_add
- real.has_add
- complex.has_add
- group_seminorm.has_add
- add_group_seminorm.has_add
- group_norm.has_add
- add_group_norm.has_add
- normed_add_group_hom.has_add
- continuous_linear_map.has_add
- uniform_space.completion.has_add
- seminorm.has_add
- multilinear_map.has_add
- continuous_multilinear_map.has_add
- alternating_map.has_add
- polynomial.has_add
- add_localization.has_add
- localization.has_add
- convex_cone.has_add
- dmatrix.has_add
- quadratic_form.has_add
Instances of this typeclass
- semigroup.to_has_mul
- mul_one_class.to_has_mul
- mul_zero_class.to_has_mul
- distrib.to_has_mul
- mul_mem_class.has_mul
- nat.has_mul
- int.has_mul
- fin.has_mul
- unsigned.has_mul
- native.float.has_mul
- mul_hom.has_mul
- monoid_hom.has_mul
- monoid_with_zero_hom.has_mul
- pi.has_mul
- mul_opposite.has_mul
- add_opposite.has_mul
- multiplicative.has_mul
- order_dual.has_mul
- lex.has_mul
- prod.has_mul
- with_one.has_mul
- rat.has_mul
- ulift.has_mul
- linear_map.module.End.has_mul
- associates.has_mul
- submonoid.has_mul
- positive.subtype.has_mul
- pnat.has_mul
- subgroup.has_mul
- part.has_mul
- con.has_mul
- add_submonoid.has_mul
- sub_mul_action.has_mul
- submodule.has_mul
- pos_num.has_mul
- num.has_mul
- znum.has_mul
- cardinal.has_mul
- ideal.has_mul
- self_adjoint.has_mul
- matrix.has_mul
- ring_con.quotient.has_mul
- nonneg.has_mul
- cau_seq.has_mul
- cau_seq.completion.Cauchy.has_mul
- real.has_mul
- complex.has_mul
- continuous_linear_map.has_mul
- sign_type.has_mul
- set.Icc.has_mul
- set.Ico.has_mul
- set.Ioc.has_mul
- set.Ioo.has_mul
- unit_interval.has_mul
- uniform_space.completion.has_mul
- monoid_algebra.has_mul
- add_monoid_algebra.has_mul
- polynomial.has_mul
- localization.has_mul
- matrix.special_linear_group.has_mul
- matrix.is_block_diagonal.has_mul
- inv : α → α
Instances of this typeclass
- has_involutive_inv.to_has_inv
- inv_one_class.to_has_inv
- div_inv_monoid.to_has_inv
- units.has_inv
- monoid_hom.has_inv
- pi.has_inv
- mul_opposite.has_inv
- add_opposite.has_inv
- multiplicative.has_inv
- order_dual.has_inv
- lex.has_inv
- prod.has_inv
- with_one.has_inv
- with_zero.has_inv
- rat.has_inv
- ulift.has_inv
- subgroup_class.has_inv
- subgroup.has_inv
- part.has_inv
- con.has_inv
- self_adjoint.has_inv
- filter.has_inv
- subfield.has_inv
- nonneg.has_inv
- cau_seq.completion.Cauchy.has_inv
- real.has_inv
- ennreal.has_inv
- complex.has_inv
- matrix.has_inv
- zmod.has_inv
- matrix.special_linear_group.has_inv
- quantum_set.to_has_inv
- quantum_set.A_pos_has_inv
- neg : α → α
Instances of this typeclass
- has_involutive_neg.to_has_neg
- neg_zero_class.to_has_neg
- sub_neg_monoid.to_has_neg
- int.has_neg
- native.float.has_neg
- add_units.has_neg
- add_monoid_hom.has_neg
- pi.has_neg
- mul_opposite.has_neg
- add_opposite.has_neg
- additive.has_neg
- order_dual.has_neg
- lex.has_neg
- prod.has_neg
- units.has_neg
- with_zero.has_neg
- rat.has_neg
- fin.has_neg
- ulift.has_neg
- linear_map.has_neg
- add_subgroup_class.has_neg
- add_subgroup.has_neg
- sub_mul_action.has_neg
- dfinsupp.has_neg
- finsupp.has_neg
- part.has_neg
- add_con.has_neg
- tensor_product.has_neg
- znum.has_neg
- linear_pmap.has_neg
- matrix.has_neg
- ring_con.quotient.has_neg
- affine_map.has_neg
- ray_vector.has_neg
- module.ray.has_neg
- bilin_form.has_neg
- filter.has_neg
- cau_seq.has_neg
- cau_seq.completion.Cauchy.has_neg
- real.has_neg
- complex.has_neg
- normed_add_group_hom.has_neg
- continuous_linear_map.has_neg
- unitary.has_neg
- sign_type.has_neg
- uniform_space.completion.has_neg
- multilinear_map.has_neg
- continuous_multilinear_map.has_neg
- alternating_map.has_neg
- polynomial.has_neg
- localization.has_neg
- dmatrix.has_neg
- matrix.special_linear_group.has_neg
- matrix.GL_pos.has_neg
- quadratic_form.has_neg
Instances of this typeclass
- sub_neg_monoid.to_has_sub
- nat.has_sub
- int.has_sub
- fin.has_sub
- unsigned.has_sub
- native.float.has_sub
- add_monoid_hom.has_sub
- pi.has_sub
- mul_opposite.has_sub
- additive.has_sub
- order_dual.has_sub
- lex.has_sub
- prod.has_sub
- multiset.has_sub
- ulift.has_sub
- linear_map.has_sub
- pnat.has_sub
- add_subgroup_class.has_sub
- add_subgroup.has_sub
- dfinsupp.has_sub
- finsupp.has_sub
- part.has_sub
- add_con.has_sub
- pos_num.has_sub
- num.has_sub
- with_top.has_sub
- enat.has_sub
- matrix.has_sub
- ring_con.quotient.has_sub
- finsupp.tsub
- ordinal.has_sub
- affine_map.has_sub
- bilin_form.has_sub
- nonneg.has_sub
- cau_seq.has_sub
- cau_seq.completion.Cauchy.has_sub
- real.has_sub
- nnreal.has_sub
- ennreal.has_sub
- complex.has_sub
- normed_add_group_hom.has_sub
- continuous_linear_map.has_sub
- uniform_space.completion.has_sub
- multilinear_map.has_sub
- continuous_multilinear_map.has_sub
- alternating_map.has_sub
- polynomial.has_sub
- dmatrix.has_sub
- quadratic_form.has_sub
Instances of this typeclass
- euclidean_domain.has_div
- div_inv_monoid.to_has_div
- nat.has_div
- int.has_div
- fin.has_div
- unsigned.has_div
- native.float.has_div
- monoid_hom.has_div
- pi.has_div
- add_opposite.has_div
- multiplicative.has_div
- order_dual.has_div
- lex.has_div
- prod.has_div
- with_zero.has_div
- rat.has_div
- ulift.has_div
- subgroup_class.has_div
- subgroup.has_div
- part.has_div
- con.has_div
- submodule.has_div
- num.has_div
- znum.has_div
- self_adjoint.has_div
- ordinal.has_div
- subfield.has_div
- nonneg.has_div
- nnreal.has_div
- polynomial.has_div
Instances of this typeclass
Instances of this typeclass
Instances of this typeclass
- with_bot.has_le
- with_top.has_le
- preorder.to_has_le
- nat.has_le
- list.has_le
- char.has_le
- fin.has_le
- local_context.has_le
- int.has_le
- unsigned.has_le
- native.float.has_le
- order_dual.has_le
- pi.has_le
- subtype.has_le
- prod.has_le
- Prop.has_le
- set.has_le
- multiplicative.has_le
- additive.has_le
- rat.has_le
- list.has_le'
- setoid.has_le
- omega_complete_partial_order.chain.has_le
- con.has_le
- add_con.has_le
- prod.lex.has_le
- pos_num.has_le
- num.has_le
- znum.has_le
- part_enat.has_le
- cardinal.has_le
- linear_pmap.has_le
- finsupp.has_le
- sum.has_le
- sum.lex.has_le
- cau_seq.has_le
- real.has_le
- sign_type.has_le
- localization.has_le
- add_localization.has_le
- linear_map.is_symmetric.has_le
- continuous_linear_map.has_le
Instances of this typeclass
- with_bot.has_lt
- with_top.has_lt
- preorder.to_has_lt
- nat.has_lt
- list.has_lt
- char.has_lt
- string.has_lt
- fin.has_lt
- name.has_lt
- expr.has_lt
- expr.coord.has_lt
- int.has_lt
- unsigned.has_lt
- native.float.has_lt
- pos.has_lt
- tactic.itauto.prop.has_lt
- order_dual.has_lt
- subtype.has_lt
- tactic.interactive.mono_key.has_lt
- multiplicative.has_lt
- additive.has_lt
- rat.has_lt
- list.has_lt'
- pi.lex.has_lt
- linarith.monom.has_lt
- prod.lex.has_lt
- pos_num.has_lt
- num.has_lt
- znum.has_lt
- sum.has_lt
- sum.lex.has_lt
- cau_seq.has_lt
- real.has_lt
- localization.has_lt
- add_localization.has_lt
Instances of this typeclass
Instances of this typeclass
Instances of this typeclass
Instances of this typeclass
Instances of this typeclass
Instances of this typeclass
Instances of this typeclass
Instances of this typeclass
Type classes has_emptyc
and has_insert
are
used to implement polymorphic notation for collections.
Example: {a, b, c} = insert a (insert b (singleton c))
.
Note that we use pair
in the name of lemmas about {x, y} = insert x (singleton y)
.
- emptyc : α
Instances of this typeclass
Instances of this typeclass
Type class for set-like membership
Instances of this typeclass
- set_like.has_mem
- list.has_mem
- local_context.has_mem
- set.has_mem
- array.has_mem
- option.has_mem
- rbtree.has_mem
- rbmap.has_mem
- buffer.has_mem
- widget_override.interactive_expression.expr.address.has_mem
- multiset.has_mem
- finset.has_mem
- sym.has_mem
- part.has_mem
- omega_complete_partial_order.chain.has_mem
- con.has_mem
- add_con.has_mem
- associates.factor_set.has_mem
- filter.has_mem
- filter_basis.has_mem
- ultrafilter.has_mem
- cycle.has_mem
- group_filter_basis.has_mem
- add_group_filter_basis.has_mem
- ring_filter_basis.has_mem
- module_filter_basis.group_filter_basis.has_mem
- composition_series.has_mem
Instances of this typeclass
- polynomial.has_pow
- native.float.has_float_pow
- native.float.has_nat_pow
- monoid.has_pow
- div_inv_monoid.has_pow
- pi.has_pow
- add_opposite.has_pow
- order_dual.has_pow
- order_dual.has_pow'
- lex.has_pow
- lex.has_pow'
- with_zero.nat.has_pow
- with_zero.int.has_pow
- prod.has_pow
- ulift.has_pow
- submonoid_class.has_pow
- positive.nat.has_pow
- subgroup_class.has_zpow
- subgroup.has_npow
- subgroup.has_zpow
- con.nat.has_pow
- con.has_zpow
- cardinal.has_pow
- self_adjoint.nat.has_pow
- self_adjoint.int.has_pow
- ring_con.nat.has_pow
- ordinal.has_pow
- nat.monoid.prime_pow
- subfield.int.has_pow
- nonneg.has_pow
- nonneg.has_zpow
- cau_seq.nat.has_pow
- cau_seq.completion.nat.has_pow
- set.Icc.has_pow
- set.Ioc.has_pow
- complex.has_pow
- real.has_pow
- nnreal.real.has_pow
- ennreal.real.has_pow
- matrix.special_linear_group.nat.has_pow
- matrix.is_block_diagonal.has_npow
- quantum_set.A_pos_has_pow
Instances of this typeclass
nat basic instances
This def is "max + 10". It can be used e.g. for postfix operations that should be stronger than application.
Equations
Instances of this typeclass
- default_has_sizeof
- nat.has_sizeof
- prod.has_sizeof
- sum.has_sizeof
- psum.has_sizeof
- sigma.has_sizeof
- psigma.has_sizeof
- punit.has_sizeof
- bool.has_sizeof
- option.has_sizeof
- list.has_sizeof
- subtype.has_sizeof
- bin_tree.has_sizeof_inst
- inhabited.has_sizeof_inst
- ulift.has_sizeof_inst
- plift.has_sizeof_inst
- has_well_founded.has_sizeof_inst
- setoid.has_sizeof_inst
- char.has_sizeof_inst
- char.has_sizeof
- string_imp.has_sizeof_inst
- string.iterator_imp.has_sizeof_inst
- string.has_sizeof
- fin.has_sizeof_inst
- has_repr.has_sizeof_inst
- ordering.has_sizeof_inst
- has_lift.has_sizeof_inst
- has_lift_t.has_sizeof_inst
- has_coe.has_sizeof_inst
- has_coe_t.has_sizeof_inst
- has_coe_to_fun.has_sizeof_inst
- has_coe_to_sort.has_sizeof_inst
- has_coe_t_aux.has_sizeof_inst
- has_to_string.has_sizeof_inst
- name.has_sizeof_inst
- functor.has_sizeof_inst
- has_pure.has_sizeof_inst
- has_seq.has_sizeof_inst
- has_seq_left.has_sizeof_inst
- has_seq_right.has_sizeof_inst
- applicative.has_sizeof_inst
- has_orelse.has_sizeof_inst
- alternative.has_sizeof_inst
- has_bind.has_sizeof_inst
- monad.has_sizeof_inst
- has_monad_lift.has_sizeof_inst
- has_monad_lift_t.has_sizeof_inst
- monad_functor.has_sizeof_inst
- monad_functor_t.has_sizeof_inst
- monad_run.has_sizeof_inst
- format.color.has_sizeof_inst
- monad_fail.has_sizeof_inst
- pos.has_sizeof_inst
- binder_info.has_sizeof_inst
- reducibility_hints.has_sizeof_inst
- environment.projection_info.has_sizeof_inst
- environment.implicit_infer_kind.has_sizeof_inst
- tactic.transparency.has_sizeof_inst
- tactic.new_goals.has_sizeof_inst
- tactic.apply_cfg.has_sizeof_inst
- param_info.has_sizeof_inst
- fun_info.has_sizeof_inst
- subsingleton_info.has_sizeof_inst
- occurrences.has_sizeof_inst
- tactic.rewrite_cfg.has_sizeof_inst
- tactic.dsimp_config.has_sizeof_inst
- tactic.dunfold_config.has_sizeof_inst
- tactic.delta_config.has_sizeof_inst
- tactic.unfold_proj_config.has_sizeof_inst
- tactic.simp_config.has_sizeof_inst
- tactic.simp_intros_config.has_sizeof_inst
- interactive.loc.has_sizeof_inst
- cc_config.has_sizeof_inst
- congr_arg_kind.has_sizeof_inst
- tactic.interactive.case_tag.has_sizeof_inst
- tactic.interactive.case_tag.match_result.has_sizeof_inst
- tactic.unfold_config.has_sizeof_inst
- except.has_sizeof_inst
- except_t.has_sizeof_inst
- monad_except.has_sizeof_inst
- monad_except_adapter.has_sizeof_inst
- state_t.has_sizeof_inst
- monad_state.has_sizeof_inst
- monad_state_adapter.has_sizeof_inst
- reader_t.has_sizeof_inst
- monad_reader.has_sizeof_inst
- monad_reader_adapter.has_sizeof_inst
- option_t.has_sizeof_inst
- vm_obj_kind.has_sizeof_inst
- vm_decl_kind.has_sizeof_inst
- ematch_config.has_sizeof_inst
- smt_pre_config.has_sizeof_inst
- smt_config.has_sizeof_inst
- rsimp.config.has_sizeof_inst
- expr.coord.has_sizeof_inst
- preorder.has_sizeof_inst
- partial_order.has_sizeof_inst
- linear_order.has_sizeof_inst
- int.has_sizeof_inst
- d_array.has_sizeof_inst
- widget.mouse_event_kind.has_sizeof_inst
- feature_search.feature_cfg.has_sizeof_inst
- feature_search.predictor_type.has_sizeof_inst
- feature_search.predictor_cfg.has_sizeof_inst
- doc_category.has_sizeof_inst
- tactic_doc_entry.has_sizeof_inst
- dlist.has_sizeof_inst
- pempty.has_sizeof_inst
- rbnode.has_sizeof_inst
- rbnode.color.has_sizeof_inst
- random_gen.has_sizeof_inst
- std_gen.has_sizeof_inst
- io.error.has_sizeof_inst
- io.mode.has_sizeof_inst
- io.process.stdio.has_sizeof_inst
- io.process.spawn_args.has_sizeof_inst
- monad_io.has_sizeof_inst
- monad_io_terminal.has_sizeof_inst
- monad_io_net_system.has_sizeof_inst
- monad_io_file_system.has_sizeof_inst
- monad_io_environment.has_sizeof_inst
- monad_io_process.has_sizeof_inst
- monad_io_random.has_sizeof_inst
- function.has_uncurry.has_sizeof_inst
- to_additive.value_type.has_sizeof_inst
- lint_verbosity.has_sizeof_inst
- tactic.explode.status.has_sizeof_inst
- auto.auto_config.has_sizeof_inst
- auto.case_option.has_sizeof_inst
- tactic.itauto.and_kind.has_sizeof_inst
- tactic.itauto.prop.has_sizeof_inst
- tactic.itauto.proof.has_sizeof_inst
- can_lift.has_sizeof_inst
- norm_cast.label.has_sizeof_inst
- _nest_1_1._nest_1_1.tactic.tactic_script._mut_.has_sizeof_inst
- _nest_1_1.tactic.tactic_script.has_sizeof_inst
- _nest_1_1.list.tactic.tactic_script.has_sizeof_inst
- tactic.tactic_script.has_sizeof_inst
- simps_cfg.has_sizeof_inst
- applicative_transformation.has_sizeof_inst
- traversable.has_sizeof_inst
- is_lawful_traversable.has_sizeof_inst
- tactic.suggest.head_symbol_match.has_sizeof_inst
- has_vadd.has_sizeof_inst
- has_vsub.has_sizeof_inst
- has_smul.has_sizeof_inst
- semigroup.has_sizeof_inst
- add_semigroup.has_sizeof_inst
- comm_semigroup.has_sizeof_inst
- add_comm_semigroup.has_sizeof_inst
- left_cancel_semigroup.has_sizeof_inst
- add_left_cancel_semigroup.has_sizeof_inst
- right_cancel_semigroup.has_sizeof_inst
- add_right_cancel_semigroup.has_sizeof_inst
- mul_one_class.has_sizeof_inst
- add_zero_class.has_sizeof_inst
- add_monoid.has_sizeof_inst
- monoid.has_sizeof_inst
- add_comm_monoid.has_sizeof_inst
- comm_monoid.has_sizeof_inst
- add_left_cancel_monoid.has_sizeof_inst
- left_cancel_monoid.has_sizeof_inst
- add_right_cancel_monoid.has_sizeof_inst
- right_cancel_monoid.has_sizeof_inst
- add_cancel_monoid.has_sizeof_inst
- cancel_monoid.has_sizeof_inst
- add_cancel_comm_monoid.has_sizeof_inst
- cancel_comm_monoid.has_sizeof_inst
- has_involutive_neg.has_sizeof_inst
- has_involutive_inv.has_sizeof_inst
- div_inv_monoid.has_sizeof_inst
- sub_neg_monoid.has_sizeof_inst
- neg_zero_class.has_sizeof_inst
- sub_neg_zero_monoid.has_sizeof_inst
- inv_one_class.has_sizeof_inst
- div_inv_one_monoid.has_sizeof_inst
- subtraction_monoid.has_sizeof_inst
- division_monoid.has_sizeof_inst
- subtraction_comm_monoid.has_sizeof_inst
- division_comm_monoid.has_sizeof_inst
- group.has_sizeof_inst
- add_group.has_sizeof_inst
- comm_group.has_sizeof_inst
- add_comm_group.has_sizeof_inst
- has_nat_cast.has_sizeof_inst
- add_monoid_with_one.has_sizeof_inst
- add_comm_monoid_with_one.has_sizeof_inst
- has_int_cast.has_sizeof_inst
- add_group_with_one.has_sizeof_inst
- add_comm_group_with_one.has_sizeof_inst
- unique.has_sizeof_inst
- units.has_sizeof_inst
- add_units.has_sizeof_inst
- mul_zero_class.has_sizeof_inst
- semigroup_with_zero.has_sizeof_inst
- mul_zero_one_class.has_sizeof_inst
- monoid_with_zero.has_sizeof_inst
- cancel_monoid_with_zero.has_sizeof_inst
- comm_monoid_with_zero.has_sizeof_inst
- cancel_comm_monoid_with_zero.has_sizeof_inst
- group_with_zero.has_sizeof_inst
- comm_group_with_zero.has_sizeof_inst
- fun_like.has_sizeof_inst
- zero_hom.has_sizeof_inst
- zero_hom_class.has_sizeof_inst
- add_hom.has_sizeof_inst
- add_hom_class.has_sizeof_inst
- add_monoid_hom.has_sizeof_inst
- add_monoid_hom_class.has_sizeof_inst
- one_hom.has_sizeof_inst
- one_hom_class.has_sizeof_inst
- mul_hom.has_sizeof_inst
- mul_hom_class.has_sizeof_inst
- monoid_hom.has_sizeof_inst
- monoid_hom_class.has_sizeof_inst
- monoid_with_zero_hom.has_sizeof_inst
- monoid_with_zero_hom_class.has_sizeof_inst
- embedding_like.has_sizeof_inst
- equiv_like.has_sizeof_inst
- equiv.has_sizeof_inst
- add_equiv.has_sizeof_inst
- add_equiv_class.has_sizeof_inst
- mul_equiv.has_sizeof_inst
- mul_equiv_class.has_sizeof_inst
- distrib.has_sizeof_inst
- left_distrib_class.has_sizeof_inst
- right_distrib_class.has_sizeof_inst
- non_unital_non_assoc_semiring.has_sizeof_inst
- non_unital_semiring.has_sizeof_inst
- non_assoc_semiring.has_sizeof_inst
- semiring.has_sizeof_inst
- non_unital_comm_semiring.has_sizeof_inst
- comm_semiring.has_sizeof_inst
- has_distrib_neg.has_sizeof_inst
- non_unital_non_assoc_ring.has_sizeof_inst
- non_unital_ring.has_sizeof_inst
- non_assoc_ring.has_sizeof_inst
- ring.has_sizeof_inst
- non_unital_comm_ring.has_sizeof_inst
- comm_ring.has_sizeof_inst
- has_compl.has_sizeof_inst
- has_sup.has_sizeof_inst
- has_inf.has_sizeof_inst
- is_nonstrict_strict_order.has_sizeof_inst
- semilattice_sup.has_sizeof_inst
- semilattice_inf.has_sizeof_inst
- lattice.has_sizeof_inst
- distrib_lattice.has_sizeof_inst
- has_top.has_sizeof_inst
- has_bot.has_sizeof_inst
- order_top.has_sizeof_inst
- order_bot.has_sizeof_inst
- bounded_order.has_sizeof_inst
- has_himp.has_sizeof_inst
- has_hnot.has_sizeof_inst
- generalized_heyting_algebra.has_sizeof_inst
- generalized_coheyting_algebra.has_sizeof_inst
- heyting_algebra.has_sizeof_inst
- coheyting_algebra.has_sizeof_inst
- biheyting_algebra.has_sizeof_inst
- generalized_boolean_algebra.has_sizeof_inst
- boolean_algebra.has_sizeof_inst
- non_unital_ring_hom.has_sizeof_inst
- non_unital_ring_hom_class.has_sizeof_inst
- ring_hom.has_sizeof_inst
- ring_hom_class.has_sizeof_inst
- ring_equiv.has_sizeof_inst
- ring_equiv_class.has_sizeof_inst
- rat.has_sizeof_inst
- has_rat_cast.has_sizeof_inst
- division_semiring.has_sizeof_inst
- division_ring.has_sizeof_inst
- semifield.has_sizeof_inst
- field.has_sizeof_inst
- function.embedding.has_sizeof_inst
- add_action.has_sizeof_inst
- mul_action.has_sizeof_inst
- smul_zero_class.has_sizeof_inst
- distrib_smul.has_sizeof_inst
- distrib_mul_action.has_sizeof_inst
- mul_distrib_mul_action.has_sizeof_inst
- invertible.has_sizeof_inst
- equiv_functor.has_sizeof_inst
- rel_hom.has_sizeof_inst
- rel_hom_class.has_sizeof_inst
- rel_embedding.has_sizeof_inst
- rel_iso.has_sizeof_inst
- tactic.interactive.mono_cfg.has_sizeof_inst
- tactic.interactive.mono_selection.has_sizeof_inst
- order_hom.has_sizeof_inst
- order_iso_class.has_sizeof_inst
- ordered_comm_monoid.has_sizeof_inst
- ordered_add_comm_monoid.has_sizeof_inst
- linear_ordered_add_comm_monoid.has_sizeof_inst
- linear_ordered_comm_monoid.has_sizeof_inst
- linear_ordered_add_comm_monoid_with_top.has_sizeof_inst
- ordered_cancel_add_comm_monoid.has_sizeof_inst
- ordered_cancel_comm_monoid.has_sizeof_inst
- linear_ordered_cancel_add_comm_monoid.has_sizeof_inst
- linear_ordered_cancel_comm_monoid.has_sizeof_inst
- ordered_add_comm_group.has_sizeof_inst
- ordered_comm_group.has_sizeof_inst
- linear_ordered_add_comm_group.has_sizeof_inst
- linear_ordered_add_comm_group_with_top.has_sizeof_inst
- linear_ordered_comm_group.has_sizeof_inst
- add_comm_group.positive_cone.has_sizeof_inst
- add_comm_group.total_positive_cone.has_sizeof_inst
- canonically_ordered_add_monoid.has_sizeof_inst
- canonically_ordered_monoid.has_sizeof_inst
- canonically_linear_ordered_add_monoid.has_sizeof_inst
- canonically_linear_ordered_monoid.has_sizeof_inst
- zero_le_one_class.has_sizeof_inst
- linear_ordered_comm_monoid_with_zero.has_sizeof_inst
- ordered_semiring.has_sizeof_inst
- ordered_comm_semiring.has_sizeof_inst
- ordered_ring.has_sizeof_inst
- ordered_comm_ring.has_sizeof_inst
- strict_ordered_semiring.has_sizeof_inst
- strict_ordered_comm_semiring.has_sizeof_inst
- strict_ordered_ring.has_sizeof_inst
- strict_ordered_comm_ring.has_sizeof_inst
- linear_ordered_semiring.has_sizeof_inst
- linear_ordered_comm_semiring.has_sizeof_inst
- linear_ordered_ring.has_sizeof_inst
- linear_ordered_comm_ring.has_sizeof_inst
- canonically_ordered_comm_semiring.has_sizeof_inst
- has_abs.has_sizeof_inst
- has_pos_part.has_sizeof_inst
- has_neg_part.has_sizeof_inst
- linear_ordered_comm_group_with_zero.has_sizeof_inst
- mul_semiring_action.has_sizeof_inst
- linear_ordered_semifield.has_sizeof_inst
- linear_ordered_field.has_sizeof_inst
- expr_lens.dir.has_sizeof_inst
- set_like.has_sizeof_inst
- has_star.has_sizeof_inst
- star_mem_class.has_sizeof_inst
- has_involutive_star.has_sizeof_inst
- star_semigroup.has_sizeof_inst
- star_add_monoid.has_sizeof_inst
- star_ring.has_sizeof_inst
- star_hom_class.has_sizeof_inst
- multiset.has_sizeof
- tactic.interactive.rep_arity.has_sizeof_inst
- has_Sup.has_sizeof_inst
- has_Inf.has_sizeof_inst
- complete_semilattice_Sup.has_sizeof_inst
- complete_semilattice_Inf.has_sizeof_inst
- complete_lattice.has_sizeof_inst
- complete_linear_order.has_sizeof_inst
- order.frame.has_sizeof_inst
- order.coframe.has_sizeof_inst
- complete_distrib_lattice.has_sizeof_inst
- complete_boolean_algebra.has_sizeof_inst
- galois_insertion.has_sizeof_inst
- galois_coinsertion.has_sizeof_inst
- finset.has_sizeof_inst
- fintype.has_sizeof_inst
- nonneg_hom_class.has_sizeof_inst
- subadditive_hom_class.has_sizeof_inst
- submultiplicative_hom_class.has_sizeof_inst
- mul_le_add_hom_class.has_sizeof_inst
- nonarchimedean_hom_class.has_sizeof_inst
- add_group_seminorm_class.has_sizeof_inst
- group_seminorm_class.has_sizeof_inst
- add_group_norm_class.has_sizeof_inst
- group_norm_class.has_sizeof_inst
- ring_seminorm_class.has_sizeof_inst
- ring_norm_class.has_sizeof_inst
- mul_ring_seminorm_class.has_sizeof_inst
- mul_ring_norm_class.has_sizeof_inst
- tactic.positivity.order_rel.has_sizeof_inst
- top_hom.has_sizeof_inst
- bot_hom.has_sizeof_inst
- bounded_order_hom.has_sizeof_inst
- top_hom_class.has_sizeof_inst
- bot_hom_class.has_sizeof_inst
- bounded_order_hom_class.has_sizeof_inst
- sup_hom.has_sizeof_inst
- inf_hom.has_sizeof_inst
- sup_bot_hom.has_sizeof_inst
- inf_top_hom.has_sizeof_inst
- lattice_hom.has_sizeof_inst
- bounded_lattice_hom.has_sizeof_inst
- sup_hom_class.has_sizeof_inst
- inf_hom_class.has_sizeof_inst
- sup_bot_hom_class.has_sizeof_inst
- inf_top_hom_class.has_sizeof_inst
- lattice_hom_class.has_sizeof_inst
- bounded_lattice_hom_class.has_sizeof_inst
- smul_with_zero.has_sizeof_inst
- mul_action_with_zero.has_sizeof_inst
- tactic.abel.normalize_mode.has_sizeof_inst
- module.has_sizeof_inst
- module.core.has_sizeof_inst
- mul_action_hom.has_sizeof_inst
- smul_hom_class.has_sizeof_inst
- distrib_mul_action_hom.has_sizeof_inst
- distrib_mul_action_hom_class.has_sizeof_inst
- mul_semiring_action_hom.has_sizeof_inst
- mul_semiring_action_hom_class.has_sizeof_inst
- linear_map.has_sizeof_inst
- semilinear_map_class.has_sizeof_inst
- linear_map.compatible_smul.has_sizeof_inst
- linear_equiv.has_sizeof_inst
- semilinear_equiv_class.has_sizeof_inst
- normalization_monoid.has_sizeof_inst
- gcd_monoid.has_sizeof_inst
- normalized_gcd_monoid.has_sizeof_inst
- subsemigroup.has_sizeof_inst
- add_subsemigroup.has_sizeof_inst
- submonoid.has_sizeof_inst
- add_submonoid.has_sizeof_inst
- encodable.has_sizeof_inst
- subgroup.has_sizeof_inst
- add_subgroup.has_sizeof_inst
- smul_mem_class.has_sizeof_inst
- vadd_mem_class.has_sizeof_inst
- sub_mul_action.has_sizeof_inst
- submodule.has_sizeof_inst
- dfinsupp.has_sizeof_inst
- conditionally_complete_lattice.has_sizeof_inst
- conditionally_complete_linear_order.has_sizeof_inst
- conditionally_complete_linear_order_bot.has_sizeof_inst
- finsupp.has_sizeof_inst
- absolute_value.has_sizeof_inst
- subsemiring.has_sizeof_inst
- subring.has_sizeof_inst
- algebra.has_sizeof_inst
- alg_hom.has_sizeof_inst
- alg_hom_class.has_sizeof_inst
- non_unital_alg_hom.has_sizeof_inst
- non_unital_alg_hom_class.has_sizeof_inst
- non_unital_star_alg_hom.has_sizeof_inst
- non_unital_star_alg_hom_class.has_sizeof_inst
- star_alg_hom.has_sizeof_inst
- star_alg_hom_class.has_sizeof_inst
- star_alg_equiv.has_sizeof_inst
- star_alg_equiv_class.has_sizeof_inst
- locally_finite_order.has_sizeof_inst
- locally_finite_order_top.has_sizeof_inst
- locally_finite_order_bot.has_sizeof_inst
- denumerable.has_sizeof_inst
- flag.has_sizeof_inst
- tactic.tfae.arrow.has_sizeof_inst
- part.has_sizeof_inst
- omega_complete_partial_order.has_sizeof_inst
- omega_complete_partial_order.continuous_hom.has_sizeof_inst
- add_con.has_sizeof_inst
- con.has_sizeof_inst
- tensor_product.compatible_smul.has_sizeof_inst
- alg_equiv.has_sizeof_inst
- alg_equiv_class.has_sizeof_inst
- Sup_hom.has_sizeof_inst
- Inf_hom.has_sizeof_inst
- frame_hom.has_sizeof_inst
- complete_lattice_hom.has_sizeof_inst
- Sup_hom_class.has_sizeof_inst
- Inf_hom_class.has_sizeof_inst
- frame_hom_class.has_sizeof_inst
- complete_lattice_hom_class.has_sizeof_inst
- idem_semiring.has_sizeof_inst
- idem_comm_semiring.has_sizeof_inst
- has_kstar.has_sizeof_inst
- kleene_algebra.has_sizeof_inst
- tactic.ring.normalize_mode.has_sizeof_inst
- tactic.ring.ring_nf_cfg.has_sizeof_inst
- linarith.ineq.has_sizeof_inst
- linarith.comp.has_sizeof_inst
- linarith.comp_source.has_sizeof_inst
- pos_num.has_sizeof_inst
- num.has_sizeof_inst
- znum.has_sizeof_inst
- tree.has_sizeof_inst
- succ_order.has_sizeof_inst
- pred_order.has_sizeof_inst
- linear_pmap.has_sizeof_inst
- has_quotient.has_sizeof_inst
- has_bracket.has_sizeof_inst
- basis.has_sizeof_inst
- subalgebra.has_sizeof_inst
- star_subalgebra.has_sizeof_inst
- ring_con.has_sizeof_inst
- euclidean_domain.has_sizeof_inst
- valuation.has_sizeof_inst
- valuation_class.has_sizeof_inst
- initial_seg.has_sizeof_inst
- principal_seg.has_sizeof_inst
- Well_order.has_sizeof_inst
- direct_sum.decomposition.has_sizeof_inst
- add_torsor.has_sizeof_inst
- affine_map.has_sizeof_inst
- affine_equiv.has_sizeof_inst
- affine_subspace.has_sizeof_inst
- bilin_form.has_sizeof_inst
- star_ordered_ring.has_sizeof_inst
- filter.has_sizeof_inst
- filter_basis.has_sizeof_inst
- filter.countable_filter_basis.has_sizeof_inst
- tactic.decl_reducibility.has_sizeof_inst
- ultrafilter.has_sizeof_inst
- topological_space.has_sizeof_inst
- bornology.has_sizeof_inst
- upper_set.has_sizeof_inst
- lower_set.has_sizeof_inst
- compact_exhaustion.has_sizeof_inst
- homeomorph.has_sizeof_inst
- floor_semiring.has_sizeof_inst
- floor_ring.has_sizeof_inst
- uniform_space.core.has_sizeof_inst
- uniform_space.has_sizeof_inst
- uniform_equiv.has_sizeof_inst
- continuous_map.has_sizeof_inst
- continuous_map_class.has_sizeof_inst
- add_group_with_zero_nhd.has_sizeof_inst
- group_topology.has_sizeof_inst
- add_group_topology.has_sizeof_inst
- ring_topology.has_sizeof_inst
- subfield.has_sizeof_inst
- canonically_linear_ordered_semifield.has_sizeof_inst
- real.has_sizeof_inst
- has_edist.has_sizeof_inst
- pseudo_emetric_space.has_sizeof_inst
- emetric_space.has_sizeof_inst
- has_dist.has_sizeof_inst
- pseudo_metric_space.has_sizeof_inst
- has_nndist.has_sizeof_inst
- metric_space.has_sizeof_inst
- abstract_completion.has_sizeof_inst
- complex.has_sizeof_inst
- add_group_seminorm.has_sizeof_inst
- group_seminorm.has_sizeof_inst
- nonarch_add_group_seminorm.has_sizeof_inst
- add_group_norm.has_sizeof_inst
- group_norm.has_sizeof_inst
- nonarch_add_group_norm.has_sizeof_inst
- nonarch_add_group_seminorm_class.has_sizeof_inst
- nonarch_add_group_norm_class.has_sizeof_inst
- locally_bounded_map.has_sizeof_inst
- locally_bounded_map_class.has_sizeof_inst
- isometry_equiv.has_sizeof_inst
- has_norm.has_sizeof_inst
- has_nnnorm.has_sizeof_inst
- seminormed_add_group.has_sizeof_inst
- seminormed_group.has_sizeof_inst
- normed_add_group.has_sizeof_inst
- normed_group.has_sizeof_inst
- seminormed_add_comm_group.has_sizeof_inst
- seminormed_comm_group.has_sizeof_inst
- normed_add_comm_group.has_sizeof_inst
- normed_comm_group.has_sizeof_inst
- normed_add_group_hom.has_sizeof_inst
- non_unital_semi_normed_ring.has_sizeof_inst
- semi_normed_ring.has_sizeof_inst
- non_unital_normed_ring.has_sizeof_inst
- normed_ring.has_sizeof_inst
- normed_division_ring.has_sizeof_inst
- semi_normed_comm_ring.has_sizeof_inst
- normed_comm_ring.has_sizeof_inst
- normed_field.has_sizeof_inst
- nontrivially_normed_field.has_sizeof_inst
- densely_normed_field.has_sizeof_inst
- continuous_linear_map.has_sizeof_inst
- continuous_semilinear_map_class.has_sizeof_inst
- continuous_linear_equiv.has_sizeof_inst
- continuous_semilinear_equiv_class.has_sizeof_inst
- normed_space.has_sizeof_inst
- normed_algebra.has_sizeof_inst
- linear_isometry.has_sizeof_inst
- semilinear_isometry_class.has_sizeof_inst
- linear_isometry_equiv.has_sizeof_inst
- semilinear_isometry_equiv_class.has_sizeof_inst
- is_R_or_C.has_sizeof_inst
- closure_operator.has_sizeof_inst
- lower_adjoint.has_sizeof_inst
- sign_type.has_sizeof_inst
- affine.simplex.has_sizeof_inst
- affine_basis.has_sizeof_inst
- path.has_sizeof_inst
- normed_ordered_add_group.has_sizeof_inst
- normed_ordered_group.has_sizeof_inst
- normed_linear_ordered_add_group.has_sizeof_inst
- normed_linear_ordered_group.has_sizeof_inst
- normed_linear_ordered_field.has_sizeof_inst
- normed_add_torsor.has_sizeof_inst
- affine_isometry.has_sizeof_inst
- affine_isometry_equiv.has_sizeof_inst
- local_equiv.has_sizeof_inst
- topological_space.opens.has_sizeof_inst
- topological_space.open_nhds_of.has_sizeof_inst
- local_homeomorph.has_sizeof_inst
- seminorm.has_sizeof_inst
- seminorm_class.has_sizeof_inst
- group_filter_basis.has_sizeof_inst
- add_group_filter_basis.has_sizeof_inst
- ring_filter_basis.has_sizeof_inst
- module_filter_basis.has_sizeof_inst
- multilinear_map.has_sizeof_inst
- continuous_multilinear_map.has_sizeof_inst
- has_inner.has_sizeof_inst
- inner_product_space.has_sizeof_inst
- inner_product_space.core.has_sizeof_inst
- topological_space.closeds.has_sizeof_inst
- topological_space.clopens.has_sizeof_inst
- topological_space.compacts.has_sizeof_inst
- topological_space.nonempty_compacts.has_sizeof_inst
- topological_space.positive_compacts.has_sizeof_inst
- topological_space.compact_opens.has_sizeof_inst
- continuous_linear_map.nonlinear_right_inverse.has_sizeof_inst
- bifunctor.has_sizeof_inst
- is_lawful_bifunctor.has_sizeof_inst
- jordan_holder_lattice.has_sizeof_inst
- composition_series.has_sizeof_inst
- pequiv.has_sizeof_inst
- composition.has_sizeof_inst
- composition_as_set.has_sizeof_inst
- nat.partition.has_sizeof_inst
- alternating_map.has_sizeof_inst
- polynomial.has_sizeof_inst
- add_submonoid.localization_map.has_sizeof_inst
- submonoid.localization_map.has_sizeof_inst
- submonoid.localization_with_zero_map.has_sizeof_inst
- tactic.ring_exp.coeff.has_sizeof_inst
- tactic.ring_exp.ex_type.has_sizeof_inst
- divisible_by.has_sizeof_inst
- rootable_by.has_sizeof_inst
- has_btw.has_sizeof_inst
- has_sbtw.has_sizeof_inst
- circular_preorder.has_sizeof_inst
- circular_partial_order.has_sizeof_inst
- circular_order.has_sizeof_inst
- orthonormal_basis.has_sizeof_inst
- convex_cone.has_sizeof_inst
- quadratic_form.has_sizeof_inst
- normed_add_comm_group_of_ring.has_sizeof_inst
- quantum_set.has_sizeof_inst
- wstar_algebra.has_sizeof_inst
- von_neumann_algebra.has_sizeof_inst
- qam_iso.has_sizeof_inst
- module_doc_info.has_sizeof_inst
- ext_tactic_doc_entry.has_sizeof_inst
Declare sizeof instances and lemmas for types declared before has_sizeof. From now on, the inductive compiler will automatically generate sizeof instances and lemmas.
Every type α
has a default has_sizeof instance that just returns 0 for every element of α
Equations
- default.sizeof α a = 0
Equations
- default_has_sizeof α = {sizeof := default.sizeof α}
Equations
- nat.has_sizeof = {sizeof := nat.sizeof}
Equations
- prod.has_sizeof α β = {sizeof := prod.sizeof _inst_2}
Equations
- sum.has_sizeof α β = {sizeof := sum.sizeof _inst_2}
Equations
- psum.has_sizeof α β = {sizeof := psum.sizeof _inst_2}
Equations
- sigma.has_sizeof α β = {sizeof := sigma.sizeof (λ (a : α), _inst_2 a)}
Equations
- psigma.has_sizeof α β = {sizeof := psigma.sizeof (λ (a : α), _inst_2 a)}
Equations
- punit.has_sizeof = {sizeof := punit.sizeof}
Equations
- bool.has_sizeof = {sizeof := bool.sizeof}
Equations
- option.has_sizeof α = {sizeof := option.sizeof _inst_1}
Equations
- list.has_sizeof α = {sizeof := list.sizeof _inst_1}
Equations
- subtype.has_sizeof p = {sizeof := subtype.sizeof p}
- empty : Π {α : Type u}, bin_tree α
- leaf : Π {α : Type u}, α → bin_tree α
- node : Π {α : Type u}, bin_tree α → bin_tree α → bin_tree α
Auxiliary datatype for #[ ... ] notation. #[1, 2, 3, 4] is notation for
bin_tree.node (bin_tree.node (bin_tree.leaf 1) (bin_tree.leaf 2)) (bin_tree.node (bin_tree.leaf 3) (bin_tree.leaf 4))
We use this notation to input long sequences without exhausting the system stack space.
Later, we define a coercion from bin_tree
into list
.
Instances for bin_tree
- bin_tree.has_sizeof_inst
- list.bin_tree_to_list
- bin_tree.inhabited
Like by apply_instance
, but not dependent on the tactic framework.