Order homomorphisms and sets #
Order isomorphism between two equal sets.
Equations
- OrderIso.setCongr s t h = { toEquiv := Equiv.setCongr h, map_rel_iff' := ⋯ }
Instances For
Order isomorphism between univ : Set α
and α
.
Equations
- OrderIso.Set.univ = { toEquiv := Equiv.Set.univ α, map_rel_iff' := ⋯ }
Instances For
noncomputable def
OrderEmbedding.orderIso
{α : Type u_2}
{β : Type u_3}
[LE α]
[LE β]
{f : α ↪o β}
:
We can regard an order embedding as an order isomorphism to its range.
Equations
- OrderEmbedding.orderIso = let __src := Equiv.ofInjective ⇑f ⋯; { toEquiv := __src, map_rel_iff' := ⋯ }
Instances For
noncomputable def
StrictMonoOn.orderIso
{α : Type u_6}
{β : Type u_7}
[LinearOrder α]
[Preorder β]
(f : α → β)
(s : Set α)
(hf : StrictMonoOn f s)
:
If a function f
is strictly monotone on a set s
, then it defines an order isomorphism
between s
and its image.
Equations
- StrictMonoOn.orderIso f s hf = { toEquiv := Set.BijOn.equiv f ⋯, map_rel_iff' := ⋯ }
Instances For
@[simp]
theorem
StrictMono.orderIso_apply
{α : Type u_2}
{β : Type u_3}
[LinearOrder α]
[Preorder β]
(f : α → β)
(h_mono : StrictMono f)
(a : α)
:
(StrictMono.orderIso f h_mono) a = { val := f a, property := ⋯ }
noncomputable def
StrictMono.orderIso
{α : Type u_2}
{β : Type u_3}
[LinearOrder α]
[Preorder β]
(f : α → β)
(h_mono : StrictMono f)
:
A strictly monotone function from a linear order is an order isomorphism between its domain and its range.
Equations
- StrictMono.orderIso f h_mono = { toEquiv := Equiv.ofInjective f ⋯, map_rel_iff' := ⋯ }
Instances For
noncomputable def
StrictMono.orderIsoOfSurjective
{α : Type u_2}
{β : Type u_3}
[LinearOrder α]
[Preorder β]
(f : α → β)
(h_mono : StrictMono f)
(h_surj : Function.Surjective f)
:
α ≃o β
A strictly monotone surjective function from a linear order is an order isomorphism.
Equations
- StrictMono.orderIsoOfSurjective f h_mono h_surj = OrderIso.trans (StrictMono.orderIso f h_mono) (OrderIso.trans (OrderIso.setCongr (Set.range f) Set.univ ⋯) OrderIso.Set.univ)
Instances For
@[simp]
theorem
StrictMono.coe_orderIsoOfSurjective
{α : Type u_2}
{β : Type u_3}
[LinearOrder α]
[Preorder β]
(f : α → β)
(h_mono : StrictMono f)
(h_surj : Function.Surjective f)
:
⇑(StrictMono.orderIsoOfSurjective f h_mono h_surj) = f
@[simp]
theorem
StrictMono.orderIsoOfSurjective_symm_apply_self
{α : Type u_2}
{β : Type u_3}
[LinearOrder α]
[Preorder β]
(f : α → β)
(h_mono : StrictMono f)
(h_surj : Function.Surjective f)
(a : α)
:
(OrderIso.symm (StrictMono.orderIsoOfSurjective f h_mono h_surj)) (f a) = a
theorem
StrictMono.orderIsoOfSurjective_self_symm_apply
{α : Type u_2}
{β : Type u_3}
[LinearOrder α]
[Preorder β]
(f : α → β)
(h_mono : StrictMono f)
(h_surj : Function.Surjective f)
(b : β)
:
f ((OrderIso.symm (StrictMono.orderIsoOfSurjective f h_mono h_surj)) b) = b
@[simp]
theorem
OrderIso.compl_apply
(α : Type u_2)
[BooleanAlgebra α]
:
∀ (a : α), (OrderIso.compl α) a = (⇑OrderDual.toDual ∘ compl) a
@[simp]
theorem
OrderIso.compl_symm_apply
(α : Type u_2)
[BooleanAlgebra α]
:
∀ (a : αᵒᵈ), (RelIso.symm (OrderIso.compl α)) a = (compl ∘ ⇑OrderDual.ofDual) a
Taking complements as an order isomorphism to the order dual.
Equations
- OrderIso.compl α = { toEquiv := { toFun := ⇑OrderDual.toDual ∘ compl, invFun := compl ∘ ⇑OrderDual.ofDual, left_inv := ⋯, right_inv := ⋯ }, map_rel_iff' := ⋯ }