Equivalences for Option α
#
We define
Equiv.optionCongr
: theOption α ≃ Option β
constructed frome : α ≃ β
by sendingnone
tonone
, and applyinge
elsewhere.Equiv.removeNone
: theα ≃ β
constructed fromOption α ≃ Option β
by removingnone
from both sides.
A universe-polymorphic version of EquivFunctor.mapEquiv Option e
.
Equations
- e.optionCongr = { toFun := Option.map ⇑e, invFun := Option.map ⇑e.symm, left_inv := ⋯, right_inv := ⋯ }
Instances For
@[simp]
@[simp]
@[simp]
When α
and β
are in the same universe, this is the same as the result of
EquivFunctor.mapEquiv
.
Given an equivalence between two Option
types, eliminate none
from that equivalence by
mapping e.symm none
to e none
.
Equations
- e.removeNone = { toFun := e.removeNone_aux, invFun := e.symm.removeNone_aux, left_inv := ⋯, right_inv := ⋯ }
Instances For
@[simp]
Equivalences between Option α
and β
that send none
to x
are equivalent to
equivalences between α
and {y : β // y ≠ x}
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Equiv.optionSubtype_symm_apply_apply_coe
{α : Type u_1}
{β : Type u_2}
[DecidableEq β]
(x : β)
(e : α ≃ { y : β // y ≠ x })
(a : α)
:
@[simp]
theorem
Equiv.optionSubtype_symm_apply_apply_some
{α : Type u_1}
{β : Type u_2}
[DecidableEq β]
(x : β)
(e : α ≃ { y : β // y ≠ x })
(a : α)
:
@[simp]
theorem
Equiv.optionSubtype_symm_apply_apply_none
{α : Type u_1}
{β : Type u_2}
[DecidableEq β]
(x : β)
(e : α ≃ { y : β // y ≠ x })
:
Any type with a distinguished element is equivalent to an Option
type on the subtype excluding
that element.
Equations
- Equiv.optionSubtypeNe a = ↑((Equiv.optionSubtype a).symm (Equiv.refl { y : α // y ≠ a }))
Instances For
@[simp]
@[simp]
theorem
Equiv.optionSubtypeNe_apply
{α : Type u_1}
[DecidableEq α]
(a : α)
(a✝ : Option { y : α // y ≠ a })
:
@[simp]
@[simp]
theorem
Equiv.optionSubtypeNe_some
{α : Type u_1}
[DecidableEq α]
(a : α)
(b : { b : α // b ≠ a })
: