Orders on a sigma type #
This file defines two orders on a sigma type:
- The disjoint sum of orders.
ais lessbiffaandbare in the same summand andais less thanbthere. - The lexicographical order.
ais less thanbif its summand is strictly less than the summand ofbor they are in the same summand andais less thanbthere.
We make the disjoint sum of orders the default set of instances. The lexicographic order goes on a type synonym.
Notation #
_root_.Lex (Sigma α): Sigma type equipped with the lexicographic order. Type synonym ofΣ i, α i.
See also #
Related files are:
Data.Finset.CoLex: Colexicographic order on finite sets.Data.List.Lex: Lexicographic order on lists.Data.Pi.Lex: Lexicographic order onΠₗ i, α i.Data.PSigma.Order: Lexicographic order onΣₗ' i, α i. Basically a twin of this file.Data.Prod.Lex: Lexicographic order onα × β.
TODO #
Upgrade Equiv.sigma_congr_left, Equiv.sigma_congr, Equiv.sigma_assoc,
Equiv.sigma_prod_of_equiv, Equiv.sigma_equiv_prod, ... to order isomorphisms.
instance
Sigma.preorder
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Preorder (α i)]
:
Preorder ((i : ι) × α i)
Equations
- Sigma.preorder = { toLE := Sigma.instLE_mathlib, toLT := Sigma.instLT_mathlib, le_refl := ⋯, le_trans := ⋯, lt_iff_le_not_ge := ⋯ }
instance
Sigma.instPartialOrder
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → PartialOrder (α i)]
:
PartialOrder ((i : ι) × α i)
Equations
- Sigma.instPartialOrder = { toPreorder := Sigma.preorder, le_antisymm := ⋯ }
instance
Sigma.instDenselyOrdered
{ι : Type u_1}
{α : ι → Type u_2}
[(i : ι) → Preorder (α i)]
[∀ (i : ι), DenselyOrdered (α i)]
:
DenselyOrdered ((i : ι) × α i)
The notation Σₗ i, α i refers to a sigma type equipped with the lexicographic order.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pretty printer defined by notation3 command.
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
Sigma.Lex.preorder
{ι : Type u_1}
{α : ι → Type u_2}
[Preorder ι]
[(i : ι) → Preorder (α i)]
:
The lexicographical preorder on a sigma type.
Equations
- Sigma.Lex.preorder = { toLE := Sigma.Lex.LE, toLT := Sigma.Lex.LT, le_refl := ⋯, le_trans := ⋯, lt_iff_le_not_ge := ⋯ }
instance
Sigma.Lex.partialOrder
{ι : Type u_1}
{α : ι → Type u_2}
[Preorder ι]
[(i : ι) → PartialOrder (α i)]
:
PartialOrder (Σₗ (i : ι), α i)
The lexicographical partial order on a sigma type.
Equations
- Sigma.Lex.partialOrder = { toPreorder := Sigma.Lex.preorder, le_antisymm := ⋯ }
instance
Sigma.Lex.linearOrder
{ι : Type u_1}
{α : ι → Type u_2}
[LinearOrder ι]
[(i : ι) → LinearOrder (α i)]
:
LinearOrder (Σₗ (i : ι), α i)
The lexicographical linear order on a sigma type.
Equations
- One or more equations did not get rendered due to their size.
instance
Sigma.Lex.boundedOrder
{ι : Type u_1}
{α : ι → Type u_2}
[PartialOrder ι]
[BoundedOrder ι]
[(i : ι) → Preorder (α i)]
[OrderBot (α ⊥)]
[OrderTop (α ⊤)]
:
BoundedOrder (Σₗ (i : ι), α i)
The lexicographical linear order on a sigma type.
Equations
- Sigma.Lex.boundedOrder = { toOrderTop := Sigma.Lex.orderTop, toOrderBot := Sigma.Lex.orderBot }
instance
Sigma.Lex.denselyOrdered
{ι : Type u_1}
{α : ι → Type u_2}
[Preorder ι]
[DenselyOrdered ι]
[∀ (i : ι), Nonempty (α i)]
[(i : ι) → Preorder (α i)]
[∀ (i : ι), DenselyOrdered (α i)]
:
DenselyOrdered (Σₗ (i : ι), α i)
instance
Sigma.Lex.denselyOrdered_of_noMaxOrder
{ι : Type u_1}
{α : ι → Type u_2}
[Preorder ι]
[(i : ι) → Preorder (α i)]
[∀ (i : ι), DenselyOrdered (α i)]
[∀ (i : ι), NoMaxOrder (α i)]
:
DenselyOrdered (Σₗ (i : ι), α i)
instance
Sigma.Lex.denselyOrdered_of_noMinOrder
{ι : Type u_1}
{α : ι → Type u_2}
[Preorder ι]
[(i : ι) → Preorder (α i)]
[∀ (i : ι), DenselyOrdered (α i)]
[∀ (i : ι), NoMinOrder (α i)]
:
DenselyOrdered (Σₗ (i : ι), α i)
instance
Sigma.Lex.noMaxOrder_of_nonempty
{ι : Type u_1}
{α : ι → Type u_2}
[Preorder ι]
[(i : ι) → Preorder (α i)]
[NoMaxOrder ι]
[∀ (i : ι), Nonempty (α i)]
:
NoMaxOrder (Σₗ (i : ι), α i)
instance
Sigma.Lex.noMinOrder_of_nonempty
{ι : Type u_1}
{α : ι → Type u_2}
[Preorder ι]
[(i : ι) → Preorder (α i)]
[NoMinOrder ι]
[∀ (i : ι), Nonempty (α i)]
:
NoMinOrder (Σₗ (i : ι), α i)
instance
Sigma.Lex.noMaxOrder
{ι : Type u_1}
{α : ι → Type u_2}
[Preorder ι]
[(i : ι) → Preorder (α i)]
[∀ (i : ι), NoMaxOrder (α i)]
:
NoMaxOrder (Σₗ (i : ι), α i)
instance
Sigma.Lex.noMinOrder
{ι : Type u_1}
{α : ι → Type u_2}
[Preorder ι]
[(i : ι) → Preorder (α i)]
[∀ (i : ι), NoMinOrder (α i)]
:
NoMinOrder (Σₗ (i : ι), α i)