Simplicity relation #
We define the simplicity relation on sign sequences, i.e. the relation where x ≤ y iff x is an
initial segment of y. In the literature, this is variously denoted as x ≤ₛ y or x ⊑ y. We also
define supremum and infimum operators.
Implementation notes #
Sign sequences already have a linear ordering given by the lexicographic ordering. Since we can't
define two separate PartialOrder instances on the same type, we instead create a type alias
Simpllicity, and declare the simplicity ordering on that.
For Mathlib #
Type alias #
@[implicit_reducible]
Equations
- instInhabitedSimplicity = { default := instInhabitedSimplicity._aux_1 }
@[implicit_reducible]
Equations
- Simplicity.instBot = { bot := Simplicity.of 0 }
@[implicit_reducible]
Equations
- Simplicity.instFunLikeNatOrdinalSignType = { coe := fun (x : Simplicity) => ⇑(Simplicity.val x), coe_injective := ⋯ }
def
Simplicity.ind
{motive : Simplicity → Sort u_1}
(of : (a : SignExpansion) → motive (of a))
(a : Simplicity)
:
motive a
A recursor for Simplicity. Use as cases x.
Equations
- Simplicity.ind of a = of (Simplicity.val a)
Instances For
@[simp]
theorem
Simplicity.ind_of
{motive : Simplicity → Sort u_2}
{of : (a : SignExpansion) → motive (of a)}
(a : SignExpansion)
:
Order instances #
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
theorem
Simplicity.le_restrict_of_le_of_length_le
{x y : Simplicity}
{o : WithTop NatOrdinal}
(h : x ≤ y)
(h' : (val x).length ≤ o)
:
@[implicit_reducible]
Equations
- Simplicity.instPartialOrder = { toPreorder := Simplicity.instPreorder, le_antisymm := ⋯ }
@[implicit_reducible]
Equations
- Simplicity.instOrderBot = { toBot := Simplicity.instBot, bot_le := Simplicity.instOrderBot._proof_2 }
Infimum #
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[implicit_reducible]
Equations
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
Supremum #
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
Alias of the reverse direction of Simplicity.isLUB_sSup_iff_bddAbove.
@[implicit_reducible]
Equations
- Simplicity.instMax = { max := fun (x y : Simplicity) => sSup {x, y} }
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[implicit_reducible]
Equations
- Simplicity.instCompleteSemilatticeSupWithTop = { toPartialOrder := WithTop.instPartialOrder, toSupSet := WithTop.instSupSet, isLUB_sSup := ⋯ }
@[implicit_reducible]
Equations
- One or more equations did not get rendered due to their size.
Ordinals #
theorem
NatOrdinal.of_toSignExpansion_strictMono :
StrictMono fun (o : NatOrdinal) => Simplicity.of (toSignExpansion o)
@[simp]
@[simp]