Correspondence Theory #
A correspondence between two strings ([McCP95] (10)) is a relation ℛ
between their positions, and a faithfulness constraint is a condition on ℛ: MAX reads
its domain, DEP its range, IDENT the segments at corresponding positions.
Correspondence Role α carries one string per role (form) and the relation
edge r₁ r₂ for every ordered pair of roles, so the input–output, base–reduplicant
and output–output ([Ben97]) relations of one candidate are cells of a single
diagram. The relation is directed, as ℛ is; "correspondents of one another" is the
derived property IsSymmetric.
The constraints of Appendix A are families Correspondence Role α → Role → Role → ℕ
counting offending elements; a named constraint is a partial application (MAX-IO is
(·.maxViol .input .output)), and each cardinal family vanishes iff the relation has
the matching order-theoretic property (maxViol_eq_zero_iff, …). Positions are
Fin-indexed, so every pair of edge is in range by type. The position-relation
encoding follows [PVH17] and [PP02] (base–reduplicant
relations: [DH20b]).
Main definitions #
Correspondence— role-indexed strings with a directed relation between the positions of each ordered pair of roles.Correspondence.maxViol,depViol,identViol,identViolFeature,contigIViol,contigOViol,anchorLViol,anchorRViol,linearityViol,uniformityViol,integrityViol— the constraint families of Appendix A;maxViolOn,depViolOnare their segment-class restrictions (MAX-V, DEP-C, …), andmaxViolAt,depViolAttheir restrictions to positions (positional faithfulness).Correspondence.ofPairs,diagram,parallel,identity,reduplication— constructors: from index pairs, the diagonal on a role predicate, and the binary and input–base–reduplicant diagonal diagrams.Correspondence.IsSymmetric,IsFaithful— symmetry of the relation; freedom from the five order-relevant violations on an edge.Correspondence.IsFaithfulness,IsMarkedness— the structural faithfulness/markedness split for constraints over correspondences.
Main results #
Correspondence.isFaithful_iff_exists_orderIso— an edge is faithful iff it is the graph of an order isomorphism between the two position orders.Correspondence.diagram_isSymmetric— a diagonal diagram over a symmetric role predicate is symmetric.Correspondence.isMarkedness_iff_exists_comap— a markedness constraint is exactly a constraint on strings pulled back along the output form.
References #
- J. J. McCarthy and A. Prince, Faithfulness and Reduplicative Identity (1995)
- L. Benua, Transderivational Identity: Phonological Relations between Words (1997)
- A. Payne, M. H. Vu and J. Heinz, A Formal Analysis of Correspondence Theory (2017)
- C. Potts and G. K. Pullum, Model Theory and the Content of OT Constraints (2002)
- H. Dolatian and J. Heinz, Computing and Classifying Reduplication with 2-Way Finite-State Transducers (2020)
A correspondence diagram consists of a string for each role and, for each ordered pair of roles, a directed relation between their positions.
- form : Role → List α
Instances For
The roles of a binary correspondence are its two strings, as in Correspondence.parallel
and Correspondence.identity.
- lhs : BinaryRole
- rhs : BinaryRole
Instances For
Equations
- OptimalityTheory.instDecidableEqBinaryRole x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- OptimalityTheory.instReprBinaryRole = { reprPrec := OptimalityTheory.instReprBinaryRole.repr }
The roles of the basic model of reduplication are the input, the base and the reduplicant.
- input : ReduplicationRole
- base : ReduplicationRole
- reduplicant : ReduplicationRole
Instances For
Equations
- OptimalityTheory.instDecidableEqReduplicationRole x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Correspondence is symmetric when each relation is the converse of the reverse one.
Equations
- c.IsSymmetric = ∀ (r₁ r₂ : Role), c.edge r₂ r₁ = Finset.image Prod.swap (c.edge r₁ r₂)
Instances For
Constraint families #
MAX (A.1) counts the positions of form r₁ without a correspondent in form r₂.
Instances For
DEP (A.2) counts the positions of form r₂ without a correspondent in form r₁.
Instances For
MAX (A.1) restricted to the positions of form r₁ whose segment satisfies P — the
segment-class instances MAX-V, MAX-C.
Equations
- OptimalityTheory.Correspondence.maxViolOn P c r₁ r₂ = ({i : Fin (c.form r₁).length | P (c.form r₁)[i]} \ Finset.image Prod.fst (c.edge r₁ r₂)).card
Instances For
DEP (A.2) restricted to the positions of form r₂ whose segment satisfies P — the
segment-class instances DEP-V, DEP-C.
Equations
- OptimalityTheory.Correspondence.depViolOn P c r₁ r₂ = ({j : Fin (c.form r₂).length | P (c.form r₂)[j]} \ Finset.image Prod.snd (c.edge r₁ r₂)).card
Instances For
MAX restricted to the positions of form r₁ that satisfy P, the positional
faithfulness constraints that protect a segment by where it stands, not by what it is.
Equations
- OptimalityTheory.Correspondence.maxViolAt P c r₁ r₂ = ({i : Fin (c.form r₁).length | P ↑i} \ Finset.image Prod.fst (c.edge r₁ r₂)).card
Instances For
DEP restricted to the positions of form r₂ that satisfy P.
Equations
- OptimalityTheory.Correspondence.depViolAt P c r₁ r₂ = ({j : Fin (c.form r₂).length | P ↑j} \ Finset.image Prod.snd (c.edge r₁ r₂)).card
Instances For
IDENT (A.3) on whole segments counts the corresponding pairs whose segments differ.
Instances For
IDENT(F) (A.3) for the feature proj counts the corresponding pairs that differ under
proj.
Equations
- OptimalityTheory.Correspondence.identViolFeature proj c r₁ r₂ = {p ∈ c.edge r₁ r₂ | proj (c.form r₁)[p.1] ≠ proj (c.form r₂)[p.2]}.card
Instances For
MAX of a privative property along a segmental correspondence counts the corresponding
pairs whose first member has P and whose second lacks it, the autosegment being lost.
Equations
- OptimalityTheory.Correspondence.maxViolFeature P c r₁ r₂ = {p ∈ c.edge r₁ r₂ | P (c.form r₁)[p.1] ∧ ¬P (c.form r₂)[p.2]}.card
Instances For
DEP of a privative property along a segmental correspondence counts the corresponding pairs
whose second member has P and whose first lacks it, the autosegment being inserted.
Equations
- OptimalityTheory.Correspondence.depViolFeature P c r₁ r₂ = {p ∈ c.edge r₁ r₂ | ¬P (c.form r₁)[p.1] ∧ P (c.form r₂)[p.2]}.card
Instances For
maxViolFeature is positive exactly when some correspondent loses P.
I-CONTIG, "No Skipping" (A.4a): whether the domain of the relation is a contiguous
substring of form r₁.
Equations
- c.contigIViol r₁ r₂ = if List.IsChain (fun (a b : ℕ) => b = a + 1) ((Finset.image Fin.val (Finset.image Prod.fst (c.edge r₁ r₂))).sort fun (x1 x2 : ℕ) => x1 ≤ x2) then 0 else 1
Instances For
O-CONTIG, "No Intrusion" (A.4b): whether the range of the relation is a contiguous
substring of form r₂.
Equations
- c.contigOViol r₁ r₂ = if List.IsChain (fun (a b : ℕ) => b = a + 1) ((Finset.image Fin.val (Finset.image Prod.snd (c.edge r₁ r₂))).sort fun (x1 x2 : ℕ) => x1 ≤ x2) then 0 else 1
Instances For
L-ANCHOR (A.5): whether the leftmost positions correspond; vacuous when either string is empty.
Equations
- c.anchorLViol r₁ r₂ = if h : 0 < (c.form r₁).length ∧ 0 < (c.form r₂).length then if (⟨0, ⋯⟩, ⟨0, ⋯⟩) ∈ c.edge r₁ r₂ then 0 else 1 else 0
Instances For
R-ANCHOR (A.5): whether the rightmost positions correspond; vacuous when either string is empty.
Equations
Instances For
LINEARITY, "No Metathesis" (A.6), counts the pairs of correspondences (i₁, j₁),
(i₂, j₂) with i₁ < i₂ but j₂ < j₁.
Equations
- c.linearityViol r₁ r₂ = {pq ∈ c.edge r₁ r₂ ×ˢ c.edge r₁ r₂ | pq.1.1 < pq.2.1 ∧ pq.2.2 < pq.1.2}.card
Instances For
UNIFORMITY, "No Coalescence" (A.7), counts the positions of form r₂ with more than one
correspondent in form r₁.
Equations
- c.uniformityViol r₁ r₂ = {j : Fin (c.form r₂).length | 1 < {p ∈ c.edge r₁ r₂ | p.2 = j}.card}.card
Instances For
INTEGRITY, "No Breaking" (A.8), counts the positions of form r₁ with more than one
correspondent in form r₂.
Equations
- c.integrityViol r₁ r₂ = {i : Fin (c.form r₁).length | 1 < {p ∈ c.edge r₁ r₂ | p.1 = i}.card}.card
Instances For
Vanishing characterizations #
Each cardinal constraint vanishes iff the relation has the corresponding order-theoretic property: left-total, right-total, functional, injective, order-preserving.
Constructors #
The index pairs (0, 0), …, (k - 1, k - 1) of a parallel correspondence.
Equations
- OptimalityTheory.Correspondence.diagonalPairs k = List.map (fun (i : ℕ) => (i, i)) (List.range k)
Instances For
The relation on positions given by index pairs; pairs out of range are dropped.
Equations
- OptimalityTheory.Correspondence.edgeOfPairs m n l = (List.filterMap (fun (p : ℕ × ℕ) => if h : p.1 < m ∧ p.2 < n then some (⟨p.1, ⋯⟩, ⟨p.2, ⋯⟩) else none) l).toFinset
Instances For
ofPairs form pairs is the correspondence whose relation edge r₁ r₂ reads the index
pairs pairs r₁ r₂ into the two position types.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The diagonal (0, 0), (1, 1), … of Fin m × Fin n, one pair per index of the
shorter string.
Equations
- OptimalityTheory.Correspondence.diagonal m n = Finset.image (fun (i : Fin (min m n)) => (Fin.castLE ⋯ i, Fin.castLE ⋯ i)) Finset.univ
Instances For
The diagonal correspondence on every pair of roles satisfying hasEdge, empty
elsewhere.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The diagonal correspondence between two strings, truncated to the shorter.
Equations
- One or more equations did not get rendered due to their size.
Instances For
identity s is the fully faithful candidate, the diagonal correspondence of a string with
itself.
Instances For
The input–base–reduplicant diagram with diagonal correspondence between each pair of distinct roles.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Faithfulness on the diagonal #
MAX, DEP and IDENT vanish on a diagonal edge between equal strings — the fully faithful candidate, and total reduplication read on its base–reduplicant edge.
On a diagonal edge MAX counts the truncated tail of the first string.
On a diagonal edge DEP counts the tail of the second string beyond the first.
Faithfulness as order isomorphism #
An edge is faithful when it has no MAX, DEP, INTEGRITY, UNIFORMITY or LINEARITY violation — exactly the hypotheses under which it is the graph of an order isomorphism.
- max : c.maxViol r₁ r₂ = 0
- dep : c.depViol r₁ r₂ = 0
- integrity : c.integrityViol r₁ r₂ = 0
- uniformity : c.uniformityViol r₁ r₂ = 0
- linearity : c.linearityViol r₁ r₂ = 0
Instances For
Without MAX or INTEGRITY violations the edge is the graph of a function.
A faithful edge joins strings of equal length.
Faithfulness and markedness constraints #
A constraint over correspondences is faithfulness when the fully faithful candidate
satisfies it, and markedness when it reads only the output string. The split is
structural, and non-vacuous: *STRUC is markedness and fires on identity s.
A constraint over binary correspondences is faithfulness when the fully faithful
candidate identity s satisfies it.
Equations
- OptimalityTheory.Correspondence.IsFaithfulness k = ∀ (s : List α), k (OptimalityTheory.Correspondence.identity s) = 0
Instances For
A constraint is markedness for the role out when it depends only on
form out.
Equations
- OptimalityTheory.Correspondence.IsMarkedness out k = Function.FactorsThrough k fun (x : OptimalityTheory.Correspondence Role α) => x.form out
Instances For
A constraint on strings pulled back along the output form is markedness.
A constraint is markedness for the role out exactly when it is a constraint on strings
pulled back along form out.