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 #
@[instance_reducible]
Equations
- instInhabitedSimplicity = { default := instInhabitedSimplicity._aux_1 }
@[instance_reducible]
Equations
- Simplicity.instBot = { bot := Simplicity.of 0 }
@[instance_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 #
@[instance_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) :
@[instance_reducible]
Equations
- Simplicity.instPartialOrder = { toPreorder := Simplicity.instPreorder, le_antisymm := ⋯ }
@[instance_reducible]
Equations
- Simplicity.instOrderBot = { toBot := Simplicity.instBot, bot_le := Simplicity.instOrderBot._proof_2 }
Infimum #
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
Supremum #
@[instance_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.
@[instance_reducible]
Equations
- Simplicity.instMax = { max := fun (x y : Simplicity) => sSup {x, y} }
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
Equations
- Simplicity.instCompleteSemilatticeSupWithTop = { toPartialOrder := WithTop.instPartialOrder, toSupSet := WithTop.instSupSet, isLUB_sSup := ⋯ }
@[instance_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]