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.
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
.
- refl : ∀ {α : Sort u} (a : α), a == 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.
- 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.
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
- eq.decidable
- decidable_eq_of_decidable_le
- classical.prop_decidable
- decidable_eq_of_subsingleton
- decidable_lt_of_decidable_le
- has_lt.lt.decidable
- has_le.le.decidable
- list.decidable_forall_mem
- con.quotient.decidable_eq
- add_con.quotient.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
- widget.filter_type.decidable_eq
- widget.local_collection.decidable_eq
- option.decidable_forall_mem
- option.decidable_exists_mem
- doc_category.decidable_eq
- 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
- lint_verbosity.decidable_eq
- bool.decidable_forall_bool
- bool.decidable_exists_bool
- function.decidable_eq_pfun
- 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
- prod.lex.decidable
- order.preimage.decidable
- sum.decidable_eq
- sigma.decidable_eq
- psigma.decidable_eq
- with_bot.decidable_le
- with_bot.decidable_lt
- with_top.decidable_le
- with_top.decidable_lt
- set.decidable_set_of
- set.univ_decidable
- set.compl.decidable_mem
- units.decidable_eq
- add_units.decidable_eq
- tactic.interactive.mono_selection.decidable_eq
- nat.decidable_ball_lt
- nat.decidable_forall_fin
- nat.decidable_ball_le
- nat.decidable_lo_hi
- nat.decidable_lo_hi_le
- nat.decidable_exists_lt
- nat.decidable_exists_le
- int.decidable_dvd
- list.decidable_sublist
- list.decidable_prefix
- list.decidable_suffix
- list.decidable_infix
- list.decidable_exists_mem
- list.lex.decidable_rel
- list.decidable_perm
- multiset.has_decidable_eq
- multiset.decidable_mem
- multiset.decidable_dforall_multiset
- multiset.decidable_eq_pi_multiset
- multiset.decidable_dexists_multiset
- tactic.interactive.mono_function.decidable_eq
- multiset.nodup_decidable
- expr_lens.dir.decidable_eq
- finset.has_decidable_eq
- finset.decidable_mem
- finset.decidable_mem'
- finset.decidable_dforall_finset
- finset.decidable_eq_pi_finset
- finset.decidable_dexists_finset
- finset.decidable_disjoint
- vector.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
- list.decidable_sorted
- list.decidable_duplicate
- sym.decidable_mem
- plift.decidable_eq
- ulift.decidable_eq
- 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
- pnat.decidable_eq
- ulower.decidable_eq
- nat.coprime.decidable
- rat.decidable_eq
- rat.decidable_nonneg
- rat.decidable_le
- string.decidable_lt
- string.decidable_le
- set.decidable_mem_mul
- set.decidable_mem_pow
- tactic.ring.normalize_mode.decidable_eq
- linarith.ineq.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
- lex.decidable_eq
- real.decidable_lt
- real.decidable_le
- real.decidable_eq
- tactic.ring_exp.coeff.decidable_eq
- tactic.ring_exp.ex_type.decidable_eq
- omega.nat.preterm.decidable_eq
- monoid_hom.decidable_mem_mker
- add_monoid_hom.decidable_mem_mker
- set.decidable_mem_center
- submonoid.decidable_mem_center
- subgroup.decidable_mem_center
- monoid_hom.decidable_mem_range
- add_monoid_hom.decidable_mem_range
- monoid_hom.decidable_mem_ker
- add_monoid_hom.decidable_mem_ker
- quotient_group.left_rel_decidable
- quotient_add_group.left_rel_decidable
- quotient_group.right_rel_decidable
- quotient_add_group.right_rel_decidable
- subsemiring.decidable_mem_center
- subring.decidable_mem_center
- dfinsupp.decidable_zero
- dfinsupp.decidable_eq
- finsupp.decidable_eq
- finsupp.decidable_le
- part.none_decidable
- part.some_decidable
- part.of_option_decidable
- enat.dom.decidable
- enat.decidable_le
Equations
- decidable_pred r = Π (a : α), decidable (r a)
Equations
- decidable_rel r = Π (a b : α), decidable (r a b)
- pattern : unification_constraint
- constraints : list unification_constraint
- zero : α
Instances
- 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
- pi.has_zero
- order_dual.has_zero
- zero_hom.has_zero
- add_hom.has_zero
- add_monoid_hom.has_zero
- with_zero.has_zero
- additive.has_zero
- mul_opposite.has_zero
- prod.has_zero
- with_top.has_zero
- with_bot.has_zero
- multiset.has_zero
- rat.has_zero
- num.has_zero
- znum.has_zero
- cau_seq.has_zero
- cau_seq.completion.Cauchy.has_zero
- real.has_zero
- myint.has_zero
- add_submonoid.has_zero
- add_subgroup.has_zero
- add_con.quotient.has_zero
- distrib_mul_action_hom.has_zero
- linear_map.has_zero
- sub_mul_action.has_zero
- submodule.has_zero
- associates.has_zero
- dfinsupp.has_zero
- finsupp.has_zero
- enat.has_zero
- linear_equiv.has_zero
- nonneg.has_zero
- ennreal.has_zero
- finset.has_zero
- set.has_zero
- one : α
Instances
- mul_one_class.to_has_one
- nat.has_one
- int.has_one
- fin.has_one
- unsigned.has_one
- native.float.has_one
- pi.has_one
- one_hom.has_one
- mul_hom.has_one
- monoid_hom.has_one
- with_one.has_one
- with_zero.has_one
- multiplicative.has_one
- mul_opposite.has_one
- prod.has_one
- with_top.has_one
- with_bot.has_one
- order_dual.has_one
- pnat.has_one
- rat.has_one
- pos_num.has_one
- num.has_one
- znum.has_one
- cau_seq.has_one
- cau_seq.completion.Cauchy.has_one
- real.has_one
- myint.has_one
- submonoid.has_one
- conj_classes.has_one
- subgroup.has_one
- con.quotient.has_one
- distrib_mul_action_hom.has_one
- linear_map.module.End.has_one
- associates.has_one
- enat.has_one
- alg_equiv.has_one
- nonneg.has_one
- finset.has_one
- set.has_one
- add : α → α → α
Instances
- add_semigroup.to_has_add
- add_zero_class.to_has_add
- distrib.to_has_add
- nat.has_add
- options.has_add
- int.has_add
- fin.has_add
- unsigned.has_add
- native.float.has_add
- pi.has_add
- add_monoid_hom.has_add
- with_zero.has_add
- additive.has_add
- mul_opposite.has_add
- prod.has_add
- with_top.has_add
- order_dual.has_add
- multiset.has_add
- pnat.has_add
- rat.has_add
- pos_num.has_add
- num.has_add
- znum.has_add
- cau_seq.has_add
- cau_seq.completion.Cauchy.has_add
- real.has_add
- myint.has_add
- add_submonoid.has_add
- add_subgroup.has_add
- add_con.has_add
- linear_map.has_add
- submodule.has_add
- dfinsupp.has_add
- finsupp.has_add
- enat.has_add
- nonneg.has_add
- finset.has_add
- set.has_add
- mul : α → α → α
Instances
- semigroup.to_has_mul
- mul_one_class.to_has_mul
- mul_zero_class.to_has_mul
- distrib.to_has_mul
- nat.has_mul
- int.has_mul
- fin.has_mul
- unsigned.has_mul
- native.float.has_mul
- pi.has_mul
- monoid_hom.has_mul
- with_one.has_mul
- multiplicative.has_mul
- mul_opposite.has_mul
- prod.has_mul
- order_dual.has_mul
- pnat.has_mul
- rat.has_mul
- pos_num.has_mul
- num.has_mul
- znum.has_mul
- cau_seq.has_mul
- cau_seq.completion.Cauchy.has_mul
- real.has_mul
- myint.has_mul
- submonoid.has_mul
- subgroup.has_mul
- con.has_mul
- linear_map.module.End.has_mul
- associates.has_mul
- nonneg.has_mul
- finset.has_mul
- set.has_mul
- inv : α → α
Instances
- div_inv_monoid.to_has_inv
- pi.has_inv
- units.has_inv
- monoid_hom.has_inv
- with_one.has_inv
- with_zero.has_inv
- multiplicative.has_inv
- mul_opposite.has_inv
- prod.has_inv
- order_dual.has_inv
- rat.has_inv
- cau_seq.completion.Cauchy.has_inv
- real.has_inv
- subgroup.has_inv
- con.has_inv
- nonneg.has_inv
- ennreal.has_inv
- submonoid.has_inv
- set.has_inv
- neg : α → α
Instances
- sub_neg_monoid.to_has_neg
- int.has_neg
- native.float.has_neg
- pi.has_neg
- add_units.has_neg
- add_monoid_hom.has_neg
- units.has_neg
- with_zero.has_neg
- additive.has_neg
- mul_opposite.has_neg
- prod.has_neg
- order_dual.has_neg
- fin.has_neg
- rat.has_neg
- znum.has_neg
- cau_seq.has_neg
- cau_seq.completion.Cauchy.has_neg
- real.has_neg
- myint.has_neg
- add_subgroup.has_neg
- add_con.has_neg
- linear_map.has_neg
- sub_mul_action.has_neg
- submodule.has_neg
- dfinsupp.has_neg
- set.has_neg
- sub : α → α → α
Instances
- sub_neg_monoid.to_has_sub
- nat.has_sub
- int.has_sub
- fin.has_sub
- unsigned.has_sub
- native.float.has_sub
- pi.has_sub
- add_monoid_hom.has_sub
- additive.has_sub
- mul_opposite.has_sub
- prod.has_sub
- with_top.has_sub
- order_dual.has_sub
- multiset.has_sub
- pnat.has_sub
- pos_num.has_sub
- num.has_sub
- cau_seq.has_sub
- cau_seq.completion.Cauchy.has_sub
- real.has_sub
- add_subgroup.has_sub
- add_con.has_sub
- linear_map.has_sub
- dfinsupp.has_sub
- finsupp.has_sub
- finsupp.tsub
- nonneg.has_sub
- nnreal.has_sub
- ennreal.has_sub
- div : α → α → α
Instances
- 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
- pi.has_div
- monoid_hom.has_div
- with_zero.has_div
- multiplicative.has_div
- prod.has_div
- order_dual.has_div
- num.has_div
- znum.has_div
- subgroup.has_div
- con.has_div
- nonneg.has_div
- nnreal.has_div
- dvd : α → α → Prop
Instances
- mod : α → α → α
- le : α → α → Prop
Instances
- 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
- prod.has_le
- set.has_le
- list.has_le'
- rat.has_le
- string.has_le
- pos_num.has_le
- num.has_le
- znum.has_le
- lex_has_le
- cau_seq.has_le
- real.has_le
- setoid.has_le
- setoid.partition.le
- con.has_le
- add_con.has_le
- enat.has_le
- omega_complete_partial_order.chain.has_le
- lt : α → α → Prop
Instances
- 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
- set.has_lt
- tactic.interactive.mono_key.has_lt
- list.has_lt'
- rat.has_lt
- string.has_lt'
- linarith.monom.has_lt
- pos_num.has_lt
- num.has_lt
- znum.has_lt
- lex_has_lt
- cau_seq.has_lt
- real.has_lt
- append : α → α → α
- andthen : α → β → σ
- union : α → α → α
- inter : α → α → α
- sdiff : α → α → α
- equiv : α → α → Prop
Instances
- subset : α → α → Prop
- ssubset : α → α → Prop
Instances
- emptyc : α
Instances
- list.has_emptyc
- local_context.has_emptyc
- set.has_emptyc
- widget.html.has_emptyc
- multiset.has_emptyc
- finset.has_emptyc
- insert : α → γ → γ
- singleton : α → β
- sep : (α → Prop) → γ → γ
Instances
- mem : α → γ → Prop
Instances
- 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
- con.has_mem
- add_con.has_mem
- part.has_mem
- omega_complete_partial_order.chain.has_mem
- pow : α → β → α
- insert_emptyc_eq : ∀ (x : α), {x} = {x}
- sizeof : α → ℕ
Instances
- 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
- 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
- dlist.has_sizeof_inst
- doc_category.has_sizeof_inst
- tactic_doc_entry.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
- lint_verbosity.has_sizeof_inst
- function.has_uncurry.has_sizeof_inst
- to_additive.value_type.has_sizeof_inst
- parse_result.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
- unique.has_sizeof_inst
- equiv.has_sizeof_inst
- has_sup.has_sizeof_inst
- has_inf.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
- generalized_boolean_algebra.has_sizeof_inst
- has_compl.has_sizeof_inst
- boolean_algebra.core.has_sizeof_inst
- boolean_algebra.has_sizeof_inst
- has_vadd.has_sizeof_inst
- has_scalar.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
- div_inv_monoid.has_sizeof_inst
- sub_neg_monoid.has_sizeof_inst
- group.has_sizeof_inst
- add_group.has_sizeof_inst
- comm_group.has_sizeof_inst
- add_comm_group.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
- function.embedding.has_sizeof_inst
- distrib.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
- ring_hom.has_sizeof_inst
- ring_hom_class.has_sizeof_inst
- comm_semiring.has_sizeof_inst
- ring.has_sizeof_inst
- comm_ring.has_sizeof_inst
- invertible.has_sizeof_inst
- has_abs.has_sizeof_inst
- has_pos_part.has_sizeof_inst
- has_neg_part.has_sizeof_inst
- add_equiv.has_sizeof_inst
- mul_equiv.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
- 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_comm_monoid_with_zero.has_sizeof_inst
- linear_ordered_add_comm_monoid_with_top.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
- 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
- has_ordered_sub.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
- ordered_semiring.has_sizeof_inst
- ordered_comm_semiring.has_sizeof_inst
- linear_ordered_semiring.has_sizeof_inst
- ordered_ring.has_sizeof_inst
- ordered_comm_ring.has_sizeof_inst
- linear_ordered_ring.has_sizeof_inst
- linear_ordered_comm_ring.has_sizeof_inst
- ring.positive_cone.has_sizeof_inst
- ring.total_positive_cone.has_sizeof_inst
- canonically_ordered_comm_semiring.has_sizeof_inst
- add_action.has_sizeof_inst
- mul_action.has_sizeof_inst
- distrib_mul_action.has_sizeof_inst
- mul_distrib_mul_action.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
- complete_distrib_lattice.has_sizeof_inst
- complete_boolean_algebra.has_sizeof_inst
- directed_order.has_sizeof_inst
- galois_insertion.has_sizeof_inst
- galois_coinsertion.has_sizeof_inst
- multiset.has_sizeof
- tactic.interactive.rep_arity.has_sizeof_inst
- division_ring.has_sizeof_inst
- field.has_sizeof_inst
- linear_ordered_field.has_sizeof_inst
- expr_lens.dir.has_sizeof_inst
- finset.has_sizeof_inst
- fintype.has_sizeof_inst
- smul_with_zero.has_sizeof_inst
- mul_action_with_zero.has_sizeof_inst
- encodable.has_sizeof_inst
- euclidean_domain.has_sizeof_inst
- rat.has_sizeof_inst
- module.has_sizeof_inst
- module.core.has_sizeof_inst
- set_like.has_sizeof_inst
- submonoid.has_sizeof_inst
- add_submonoid.has_sizeof_inst
- conditionally_complete_lattice.has_sizeof_inst
- conditionally_complete_linear_order.has_sizeof_inst
- conditionally_complete_linear_order_bot.has_sizeof_inst
- tactic.ring.normalize_mode.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
- ring_equiv.has_sizeof_inst
- tactic.abel.normalize_mode.has_sizeof_inst
- floor_semiring.has_sizeof_inst
- floor_ring.has_sizeof_inst
- has_star.has_sizeof_inst
- has_involutive_star.has_sizeof_inst
- star_monoid.has_sizeof_inst
- star_add_monoid.has_sizeof_inst
- star_ring.has_sizeof_inst
- star_ordered_ring.has_sizeof_inst
- star_module.has_sizeof_inst
- absolute_value.has_sizeof_inst
- cau_seq.is_complete.has_sizeof_inst
- real.has_sizeof_inst
- Q1a.X.has_sizeof_inst
- tactic.ring_exp.coeff.has_sizeof_inst
- tactic.ring_exp.ex_type.has_sizeof_inst
- omega.ee.has_sizeof_inst
- omega.ee_state.has_sizeof_inst
- omega.int.preterm.has_sizeof_inst
- omega.int.preform.has_sizeof_inst
- omega.nat.preterm.has_sizeof_inst
- omega.nat.preform.has_sizeof_inst
- tactic.tfae.arrow.has_sizeof_inst
- locally_finite_order.has_sizeof_inst
- quiver.has_sizeof_inst
- prefunctor.has_sizeof_inst
- quiver.total.has_sizeof_inst
- quiver.path.has_sizeof_inst
- quiver.arborescence.has_sizeof_inst
- quiver.has_reverse.has_sizeof_inst
- category_theory.category_struct.has_sizeof_inst
- category_theory.category.has_sizeof_inst
- equiv_functor.has_sizeof_inst
- bifunctor.has_sizeof_inst
- is_lawful_bifunctor.has_sizeof_inst
- two_sided_inverse.has_sizeof_inst
- bool2.has_sizeof_inst
- partition.has_sizeof_inst
- indexed_partition.has_sizeof_inst
- X.has_sizeof_inst
- has_quotient.has_sizeof_inst
- subgroup.has_sizeof_inst
- add_subgroup.has_sizeof_inst
- add_con.has_sizeof_inst
- con.has_sizeof_inst
- subsemiring.has_sizeof_inst
- subring.has_sizeof_inst
- mul_semiring_action.has_sizeof_inst
- mul_action_hom.has_sizeof_inst
- distrib_mul_action_hom.has_sizeof_inst
- mul_semiring_action_hom.has_sizeof_inst
- linear_map.has_sizeof_inst
- linear_map.compatible_smul.has_sizeof_inst
- linear_equiv.has_sizeof_inst
- sub_mul_action.has_sizeof_inst
- submodule.has_sizeof_inst
- normalization_monoid.has_sizeof_inst
- gcd_monoid.has_sizeof_inst
- normalized_gcd_monoid.has_sizeof_inst
- dfinsupp.pre.has_sizeof_inst
- finsupp.has_sizeof_inst
- denumerable.has_sizeof_inst
- part.has_sizeof_inst
- omega_complete_partial_order.has_sizeof_inst
- omega_complete_partial_order.continuous_hom.has_sizeof_inst
- algebra.has_sizeof_inst
- alg_hom.has_sizeof_inst
- alg_equiv.has_sizeof_inst
- linear_ordered_comm_group_with_zero.has_sizeof_inst
- mynnreal.has_sizeof_inst
- module_doc_info.has_sizeof_inst
- ext_tactic_doc_entry.has_sizeof_inst
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}
Equations
- combinator.K a b = a
Equations
- combinator.S x y z = x z (y z)
- 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
.
Like by apply_instance
, but not dependent on the tactic framework.