Equivalences for Option α #
We define
Equiv.optionCongr: theOption α ≃ Option βconstructed frome : α ≃ βby sendingnonetonone, and applyingeelsewhere.Equiv.removeNone: theα ≃ βconstructed fromOption α ≃ Option βby removingnonefrom 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 })
:
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]