Documentation

Linglib.Phonology.OptimalityTheory.Ranking

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.

@[reducible, inline]
abbrev OptimalityTheory.Ranking (n : ) :

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
Instances For
    theorem OptimalityTheory.total_eq_of_le {α : Type u_1} {r s : ααProp} [ht : Std.Total r] [ha : Std.Antisymm s] (h : r s) :
    r = s

    A total relation is maximal among antisymmetric relations: anything above it in the pointwise lattice collapses back onto it.

    def OptimalityTheory.Ranking.Dominates {n : } (r : Ranking n) (i j : Fin n) :

    Constraint i dominates constraint j under r: it sits at a lower (more dominant) rank position.

    Equations
    • r.Dominates i j = ((Equiv.symm r) i < (Equiv.symm r) j)
    Instances For
      @[instance_reducible]
      instance OptimalityTheory.Ranking.instDecidableDominates {n : } (r : Ranking n) (i j : Fin n) :
      Decidable (r.Dominates i j)
      Equations
      @[simp]
      theorem OptimalityTheory.Ranking.dominates_apply_iff {n : } (r : Ranking n) {p q : Fin n} :
      r.Dominates (r p) (r q) p < q

      Dominance between ranked positions is position order.

      The identity ranking: rank position equals constraint index.

      Equations
      Instances For
        @[simp]
        theorem OptimalityTheory.Ranking.id_dominates_iff {n : } {i j : Fin n} :
        (id n).Dominates i j i < j

        Under the identity ranking, dominance is index order.

        @[instance_reducible]
        instance OptimalityTheory.Ranking.instSMulLexForallFin {n : } {α : Type u_1} :
        SMul (Ranking n) (Lex (Fin nα))

        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
        @[simp]
        theorem OptimalityTheory.Ranking.smul_apply {n : } {α : Type u_1} (r : Ranking n) (v : Lex (Fin nα)) (p : Fin n) :
        ofLex (r v) p = ofLex v (r p)
        @[simp]
        theorem OptimalityTheory.Ranking.id_smul {n : } {α : Type u_1} (v : Lex (Fin nα)) :
        id n v = v
        theorem OptimalityTheory.Ranking.exists_dominates {n : } {i j : Fin n} (hij : i j) :
        ∃ (r : Ranking n), r.Dominates i j

        Any two distinct constraints can be ranked either way: some ranking makes i dominate j.

        The ranking as a total order #

        def OptimalityTheory.Ranking.toRel {n : } (r : Ranking n) :
        Fin nFin nProp

        The ranking as its dominance-or-equal relation: r.toRel i j iff i is ranked at least as high as j — the reflexive closure of Dominates (toRel_iff), and a total order on constraints.

        Equations
        • r.toRel i j = ((Equiv.symm r) i (Equiv.symm r) j)
        Instances For
          @[instance_reducible]
          instance OptimalityTheory.Ranking.instDecidableToRel {n : } (r : Ranking n) (i j : Fin n) :
          Decidable (r.toRel i j)
          Equations
          instance OptimalityTheory.Ranking.instIsPartialOrderFinToRel {n : } (r : Ranking n) :
          IsPartialOrder (Fin n) r.toRel
          instance OptimalityTheory.Ranking.instTotalFinToRel {n : } (r : Ranking n) :
          Std.Total r.toRel
          theorem OptimalityTheory.Ranking.toRel_iff {n : } (r : Ranking n) {i j : Fin n} :
          r.toRel i j i = j r.Dominates i j

          toRel is the reflexive closure of Dominates.

          theorem OptimalityTheory.Ranking.toRel_iff_dominates {n : } (r : Ranking n) {i j : Fin n} (hij : i j) :
          r.toRel i j r.Dominates i j

          On distinct constraints, toRel is Dominates.

          @[simp]
          theorem OptimalityTheory.Ranking.toRel_mul {n : } (g σ : Ranking n) (i j : Fin n) :
          (g * σ).toRel i j σ.toRel (g⁻¹ i) (g⁻¹ j)

          Relabeling constraints by g pulls the induced order back along g⁻¹.

          theorem OptimalityTheory.Ranking.toRel_injective {n : } :
          Function.Injective toRel

          A ranking is recoverable from its induced total order.

          theorem OptimalityTheory.Ranking.toRel_le_toRel_iff {n : } {σ τ : Ranking n} :
          σ.toRel τ.toRel σ = τ

          Total orders comparable in the relation lattice coincide, so toRel is rigid: nothing sits strictly between two ranking-induced orders.

          theorem OptimalityTheory.Ranking.exists_toRel_eq {n : } (s : Fin nFin nProp) [IsLinearOrder (Fin n) s] :
          ∃ (σ : Ranking n), σ.toRel = s

          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.