Tableaux #
The OT evaluation vocabulary and machinery. A candidate's violation profile under a constraint
set is its violation vector ordered lexicographically, Lex (Fin n → ℕ) ([Rig09b]); the
lexicographic order is Optimality Theory's strict domination, while Harmonic Grammar weights the
same vector without ordering it (HarmonicGrammar.harmonyScore). A Tableau is the
lexicographic minimisation problem [PS93] solves — a finite candidate set ranked
by a ViolationProfile-valued objective, whose winners are the candidates with a profile at most
every candidate's under mathlib's Pi.Lex order. On top of the vocabulary: smart constructors and
the structural optimality theorems.
Main definitions #
ViolationProfile n—Lex (Fin n → ℕ), a fixed-length violation vector. The profile of a candidatecunder a constraint setconread in rank orderristoLex fun p ↦ con (r p) c.Tableau C n— a finite OT tableau over candidatesCwithnconstraints.Tableau.optimal— the winner set; optimality is plain membership.Ranking ι n— a constraint ranking ([Pri02]'s domination order).Tableau.ofPerm— a tableau from a constraint setcon : ConstraintSet C ιunder a rankingr : Ranking ι n(priority positionpreads constraintr p).Tableau.ofRanking— the list form: ranked constraint list, list order = priority (position0most dominant);Tableau.ofPermunder the identity ranking.Tableau.ofFintype— the same over every candidate of a finite type.Tableau.ofOrder— a tableau from a constraint order (labels, most dominant first) and the candidates' violation marks by label: the paper-tableau form.
Main results #
Tableau.mem_optimal_iff/Tableau.optimal_nonempty/Tableau.optimal_subset— the winner characterization; winners exist.Tableau.optimal_eq_singleton_iff/Tableau.optimal_eq_singleton_iff_pair— sole winner ⟺ strict domination.Tableau.ofPerm_profile_lt_iff/Tableau.ofPerm_profile_lt_iff_exists_dominates— a candidate beats another under a ranking iff the most dominant constraint distinguishing them prefers it, iff some constraint preferring it dominates every constraint preferring the other.Tableau.notMem_optimal_of_lt/Tableau.ofPerm_notMem_optimal_of_lt— harmonic bounding: a candidate beaten pointwise never wins.Tableau.forall_ofPerm_profile_lt_iff/Tableau.exists_mem_ofPerm_optimal_iff_pair— a candidate beats a competitor under every ranking iff it bounds it, so a candidate wins against its only competitor under some ranking iff it is not bounded.Tableau.ofPerm_zero_mem_optimal/Tableau.ofRanking_zero_mem_optimal— a candidate with no violations wins under every ranking, andTableau.ofPerm_eq_zero_of_mem_optimal— then every winner has no violations.Tableau.ofRanking_optimal_zero_first— a satisfiable top constraint forces all winners to satisfy it, viaViolationProfile.le_apply_zero.
References #
Violation profiles #
A fixed-length violation profile, the violation vector Fin n → ℕ under its lexicographic
order.
Equations
- OptimalityTheory.ViolationProfile n = Lex (Fin n → ℕ)
Instances For
A profile at most another is at most it on the first constraint.
The tableau vocabulary #
An OT tableau is a finite candidate set scored by a fixed-length violation profile, with a witness that there is a candidate.
- candidates : Finset C
The candidates.
- profile : C → ViolationProfile n
Each candidate's violation profile.
- nonempty : self.candidates.Nonempty
A tableau has a candidate.
Instances For
The winning candidates, those whose profile is lexicographically at most every
candidate's; the comparison is decided by Pi.Lex.decidableLE. Optimality is plain membership
c ∈ t.optimal, unfolded by mem_optimal_iff; there is no separate winner predicate.
Equations
- t.optimal = {c ∈ t.candidates | ∀ d ∈ t.candidates, t.profile c ≤ t.profile d}
Instances For
A winner is a candidate whose profile is lexicographically below that of every candidate.
Every tableau has a winner, since the linearly ordered image of a nonempty finset has a minimum.
A winner's profile bounds every candidate's.
Optimality factors through the profile, so it transports along profile equality: scoring like a winner is winning.
A candidate whose profile vanishes wins, since 0 is the least profile.
A tableau has sole winner m iff m strictly lex-dominates every other
candidate.
A tableau with a single candidate has it as sole winner.
A two-candidate tableau has sole winner c iff c strictly lex-dominates d.
In a two-candidate tableau, c wins iff d does not strictly lex-dominate it.
A candidate strictly lex-dominated by a competitor is no winner.
Tableau constructors #
ofPerm con r candidates is the tableau of a constraint set con : ConstraintSet C ι under a
ranking r : Ranking ι n. Priority position p reads constraint r p, so coordinate 0 of the
lexicographic profile is the most dominant constraint. Candidates are deduplicated via
List.toFinset.
Equations
- OptimalityTheory.Tableau.ofPerm con r candidates h = { candidates := candidates.toFinset, profile := fun (c : C) => toLex fun (p : Fin n) => con (r p) c, nonempty := ⋯ }
Instances For
Build a Tableau C ranking.length from a candidate list and a ranked constraint
list, list order being priority (position 0 most dominant): Tableau.ofPerm under the
identity ranking. Study files use this as
(Tableau.ofRanking candidates ranking h).optimal = {.winner}.
Equations
- OptimalityTheory.Tableau.ofRanking candidates ranking h = OptimalityTheory.Tableau.ofPerm ranking.get (Equiv.refl (Fin ranking.length)) candidates h
Instances For
Build a Tableau C ranking.length whose candidates are every inhabitant of the finite
type C — the form for a candidate type that enumerates exactly the candidate set.
Equations
- OptimalityTheory.Tableau.ofFintype ranking = { candidates := Finset.univ, profile := fun (c : C) => toLex fun (x : Fin ranking.length) => ranking.get x c, nonempty := ⋯ }
Instances For
Build a tableau from a constraint order — labels L, most dominant first — and each
candidate's violation marks by label, as a paper's tableau is printed: order is its column
order and marks c l the cell. Candidates are every inhabitant of C.
Equations
- OptimalityTheory.Tableau.ofOrder order marks = { candidates := Finset.univ, profile := fun (c : C) => toLex fun (p : Fin order.length) => marks c (order.get p), nonempty := ⋯ }
Instances For
Candidates in (Tableau.ofRanking ...).optimal belong to the original list.
Candidates in (Tableau.ofPerm ...).optimal belong to the original list.
Under a ranking, one candidate beats another iff their violation vectors are lexicographically ordered under dominance: the most dominant constraint that distinguishes them prefers it.
One candidate beats another iff some constraint preferring it dominates every constraint preferring the other, which is the elementary ranking condition.
A candidate is the sole winner under a ranking iff, against each competitor, some constraint preferring it dominates every constraint preferring the competitor.
A candidate that beats another pointwise on the constraint set beats it under every ranking of the set.
A candidate beaten pointwise on the constraint set by a competitor is harmonically bounded, that is, optimal under no ranking of the set.
A candidate that harmonically bounds every competitor is the sole winner under every ranking of the constraint set.
A candidate beats a competitor under a ranking that puts a constraint preferring it on top.
A candidate beats a competitor under some ranking iff some constraint prefers it.
A candidate beats a competitor under every ranking iff it harmonically bounds it, beating it pointwise on the constraint set.
A candidate wins against its only competitor under some ranking iff the competitor does not harmonically bound it.
A candidate is the sole winner against its only competitor under some ranking iff some constraint prefers it.
Top-constraint optimality #
If any candidate has 0 violations on the top-ranked constraint, every optimal
candidate has 0 violations on it — constraint dominance: a satisfiable constraint
promoted to the top of the ranking forces all winners to satisfy it perfectly.
A candidate with 0 violations on every constraint of con is optimal in
Tableau.ofPerm con r under every ranking r, since permuting the coordinates of the
all-zero profile leaves it zero.
If some candidate satisfies every constraint of con, then under every ranking so does every
optimal candidate.
The list form of ofPerm_zero_mem_optimal.