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.
@[deprecated Equiv.removeNoneAux (since := "2026-06-06")]
Alias of Equiv.removeNoneAux.
If we have a value on one side of an Equiv of Option
we also have a value on the other side of the equivalence
Equations
Instances For
@[deprecated Equiv.removeNoneAux_none (since := "2026-06-06")]
theorem
Equiv.removeNone_aux_none
{α : Type u_1}
{β : Type u_2}
(e : Option α ≃ Option β)
{x : α}
(h : e (some x) = none)
:
Alias of Equiv.removeNoneAux_none.
@[deprecated Equiv.removeNoneAux_inv (since := "2026-06-06")]
Alias of Equiv.removeNoneAux_inv.
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.removeNoneAux, invFun := e.symm.removeNoneAux, 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]