Order homomorphisms and sets #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Order isomorphism between two equal sets.
Equations
- order_iso.set_congr s t h = {to_equiv := equiv.set_congr h, map_rel_iff' := _}
Order isomorphism between univ : set α
and α
.
Equations
- order_iso.set.univ = {to_equiv := equiv.set.univ α, map_rel_iff' := _}
@[protected]
noncomputable
def
strict_mono_on.order_iso
{α : Type u_1}
{β : Type u_2}
[linear_order α]
[preorder β]
(f : α → β)
(s : set α)
(hf : strict_mono_on 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
- strict_mono_on.order_iso f s hf = {to_equiv := set.bij_on.equiv f _, map_rel_iff' := _}
@[simp]
theorem
strict_mono.order_iso_apply
{α : Type u_2}
{β : Type u_3}
[linear_order α]
[preorder β]
(f : α → β)
(h_mono : strict_mono f)
(a : α) :
⇑(strict_mono.order_iso f h_mono) a = ⟨f a, _⟩
@[protected]
noncomputable
def
strict_mono.order_iso
{α : Type u_2}
{β : Type u_3}
[linear_order α]
[preorder β]
(f : α → β)
(h_mono : strict_mono f) :
A strictly monotone function from a linear order is an order isomorphism between its domain and its range.
Equations
- strict_mono.order_iso f h_mono = {to_equiv := equiv.of_injective f _, map_rel_iff' := _}
noncomputable
def
strict_mono.order_iso_of_surjective
{α : Type u_2}
{β : Type u_3}
[linear_order α]
[preorder β]
(f : α → β)
(h_mono : strict_mono f)
(h_surj : function.surjective f) :
α ≃o β
A strictly monotone surjective function from a linear order is an order isomorphism.
Equations
- strict_mono.order_iso_of_surjective f h_mono h_surj = (strict_mono.order_iso f h_mono).trans ((order_iso.set_congr (set.range f) set.univ _).trans order_iso.set.univ)
@[simp]
theorem
strict_mono.coe_order_iso_of_surjective
{α : Type u_2}
{β : Type u_3}
[linear_order α]
[preorder β]
(f : α → β)
(h_mono : strict_mono f)
(h_surj : function.surjective f) :
⇑(strict_mono.order_iso_of_surjective f h_mono h_surj) = f
@[simp]
theorem
strict_mono.order_iso_of_surjective_symm_apply_self
{α : Type u_2}
{β : Type u_3}
[linear_order α]
[preorder β]
(f : α → β)
(h_mono : strict_mono f)
(h_surj : function.surjective f)
(a : α) :
⇑((strict_mono.order_iso_of_surjective f h_mono h_surj).symm) (f a) = a
theorem
strict_mono.order_iso_of_surjective_self_symm_apply
{α : Type u_2}
{β : Type u_3}
[linear_order α]
[preorder β]
(f : α → β)
(h_mono : strict_mono f)
(h_surj : function.surjective f)
(b : β) :
f (⇑((strict_mono.order_iso_of_surjective f h_mono h_surj).symm) b) = b
@[simp]
theorem
order_iso.compl_apply
(α : Type u_2)
[boolean_algebra α]
(ᾰ : α) :
⇑(order_iso.compl α) ᾰ = (⇑order_dual.to_dual ∘ has_compl.compl) ᾰ
Taking complements as an order isomorphism to the order dual.
Equations
- order_iso.compl α = {to_equiv := {to_fun := ⇑order_dual.to_dual ∘ has_compl.compl, inv_fun := has_compl.compl ∘ ⇑order_dual.of_dual, left_inv := _, right_inv := _}, map_rel_iff' := _}
@[simp]
theorem
order_iso.compl_symm_apply
(α : Type u_2)
[boolean_algebra α]
(ᾰ : αᵒᵈ) :
⇑(rel_iso.symm (order_iso.compl α)) ᾰ = (has_compl.compl ∘ ⇑order_dual.of_dual) ᾰ