Constraint rankings #
A constraint ranking is a permutation of Fin n ([Pri02]'s total domination
order ≫): r i is the constraint at rank position i, position 0 most dominant.
Ranking.Dominates is the induced strict dominance relation between constraints and
Ranking.toRel its reflexive closure — the ranking as a total order, from which the
ranking is recoverable (toRel_le_toRel_iff). The Tableau machinery evaluates
under a ranking, and the elementary-ranking-condition layer
(ElementaryRankingCondition.lean) infers rankings from winner–loser pairs.
A constraint ranking: a permutation of Fin n ([Pri02]'s total domination
order ≫). r i is the constraint at rank position i (position 0 is most
dominant); r.symm k is the rank position of k.
Equations
- OptimalityTheory.Ranking n = Equiv.Perm (Fin n)
Instances For
A total relation is maximal among antisymmetric relations: anything above it in the pointwise lattice collapses back onto it.
Equations
Dominance between ranked positions is position order.
The identity ranking: rank position equals constraint index.
Equations
- OptimalityTheory.Ranking.id n = Equiv.refl (Fin n)
Instances For
Under the identity ranking, dominance is index order.
The ranking's reading of a lex-ordered vector: coordinate p of r • v is the
value of v at the constraint ranked p-th. Reordering is the one operation that
breaks and reconstitutes the lex order — the Sₙ action whose orbit structure is
constraint ranking. (With this convention the action is a right action:
(r * s) • v = s • r • v.)
Equations
- OptimalityTheory.Ranking.instSMulLexForallFin = { smul := fun (r : OptimalityTheory.Ranking n) (v : Lex (Fin n → α)) => toLex fun (p : Fin n) => ofLex v (r p) }
Any two distinct constraints can be ranked either way: some ranking makes i
dominate j.
The ranking as a total order #
Equations
Relabeling constraints by g pulls the induced order back along g⁻¹.
A ranking is recoverable from its induced total order.
Every linear order on Fin n is the induced order of a ranking — the
surjectivity companion to toRel_injective: enumerate the constraints in
s-order (Finset.sort) and read off the ranking.