Lexicographic order and order isomorphisms #
Main declarations #
OrderIso.sumLexIioIci
andOrderIso.sumLexIicIoi
: ifα
is a linear order andx : α
, thenα
is order isomorphic to bothIio x ⊕ₗ Ici x
andIic x ⊕ₗ Ioi x
.Prod.Lex.prodUnique
andProd.Lex.uniqueProd
:α ×ₗ β
is order isomorphic to one side if the other side isUnique
.
Relation isomorphism #
def
RelIso.sumLexComplLeft
{α : Type u_1}
(r : α → α → Prop)
(x : α)
[IsTrans α r]
[IsTrichotomous α r]
[DecidableRel r]
:
A relation is isomorphic to the lexicographic sum of elements less than x
and elements not
less than x
.
Equations
- RelIso.sumLexComplLeft r x = { toEquiv := Equiv.sumCompl fun (x_1 : α) => r x_1 x, map_rel_iff' := ⋯ }
Instances For
def
RelIso.sumLexComplRight
{α : Type u_1}
(r : α → α → Prop)
(x : α)
[IsTrans α r]
[IsTrichotomous α r]
[DecidableRel r]
:
A relation is isomorphic to the lexicographic sum of elements not greater than x
and elements
greater than x
.
Equations
- RelIso.sumLexComplRight r x = { toEquiv := (Equiv.sumComm { x_1 : α // ¬r x x_1 } (Subtype (r x))).trans (Equiv.sumCompl (r x)), map_rel_iff' := ⋯ }
Instances For
@[simp]
theorem
RelIso.sumLexComplRight_apply
{α : Type u_1}
{r : α → α → Prop}
{x : α}
[IsTrans α r]
[IsTrichotomous α r]
[DecidableRel r]
(a : { x_1 : α // ¬r x x_1 } ⊕ Subtype (r x))
:
@[simp]
theorem
RelIso.sumLexComplRight_symm_apply
{α : Type u_1}
{r : α → α → Prop}
{x : α}
[IsTrans α r]
[IsTrichotomous α r]
[DecidableRel r]
(a : { x_1 : α // ¬r x x_1 } ⊕ Subtype (r x))
:
Order isomorphism #
A linear order is isomorphic to the lexicographic sum of elements less than x
and elements
greater or equal to x
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
@[simp]
theorem
OrderIso.sumLexIioIci_symm_apply_of_lt
{α : Type u_1}
[LinearOrder α]
{x y : α}
(h : y < x)
:
theorem
OrderIso.sumLexIioIci_symm_apply_of_ge
{α : Type u_1}
[LinearOrder α]
{x y : α}
(h : x ≤ y)
:
@[simp]
theorem
OrderIso.sumLexIioIci_symm_apply_Iio
{α : Type u_1}
[LinearOrder α]
{x : α}
(a : ↑(Set.Iio x))
:
@[simp]
theorem
OrderIso.sumLexIioIci_symm_apply_Ici
{α : Type u_1}
[LinearOrder α]
{x : α}
(a : ↑(Set.Ici x))
:
A linear order is isomorphic to the lexicographic sum of elements less or equal to x
and
elements greater than x
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
@[simp]
theorem
OrderIso.sumLexIicIoi_symm_apply_of_le
{α : Type u_1}
[LinearOrder α]
{x y : α}
(h : y ≤ x)
:
theorem
OrderIso.sumLexIicIoi_symm_apply_of_lt
{α : Type u_1}
[LinearOrder α]
{x y : α}
(h : x < y)
:
@[simp]
theorem
OrderIso.sumLexIicIoi_symm_apply_Iic
{α : Type u_1}
[LinearOrder α]
{x : α}
(a : ↑(Set.Iic x))
:
@[simp]
theorem
OrderIso.sumLexIicIoi_symm_apply_Ioi
{α : Type u_1}
[LinearOrder α]
{x : α}
(a : ↑(Set.Ioi x))
:
Degenerate products #
Lexicographic product type with Unique
type on the right is OrderIso
to the left.
Equations
Instances For
@[simp]
theorem
Prod.Lex.prodUnique_apply
{α : Type u_2}
{β : Type u_3}
[PartialOrder α]
[Preorder β]
[Unique β]
(x : Lex (α × β))
: