AGREE ↔ TSL_2 — the inequality instance (dual of OCP) #
AGREE-style markedness in OT phonology is the non-identity dual of the
OCP: tier-adjacent symbols must agree (be equal) rather than differ.
As an instance of the generic forbidden-pair constructor
mkForbidPairsOnTier (see ForbidPairs.lean), AGREE is the
specialization with R := (· ≠ ·), just as the OCP is the R := (· = ·)
specialization.
The duality is structural, not metaphorical: the OCP penalizes adjacent
identical tier elements (the "no double" rule, forcing dissimilation);
AGREE penalizes adjacent distinct tier elements (the "no different"
rule, forcing assimilation/harmony). Consonant harmony, vowel harmony,
and tone spreading factor through TSLGrammar.agree; dissimilation,
anti-geminate, and Meeussen's rule factor through TSLGrammar.ocp. The
generic TSLGrammar.ofForbiddenPairs subsumes both — and asymmetric
patterns that are neither pure agreement nor pure dissimilation
(directional harmony driven by morphological geometry, e.g. Kikongo nasal
harmony in Phenomena/Phonology/Studies/RoseWalker2004.lean) instantiate
the generic constructor directly with their own asymmetric R.
Everything here is a one-line specialization of the generic
forbidden-pair infrastructure to R := (· ≠ ·). The AGREE-specific names
(agreeForbidden, AgreeCleanPair, TSLGrammar.agree,
mkAgreeOnTier_zero_iff_in_agree_lang) are the canonical entry points
downstream consumers reference.
Forbidden 2-factors for AGREE: pairs [some x, some y] of two distinct
non-boundary symbols. The inequality-relation specialization of
forbiddenPairsSet.
Equations
- Phonology.Subregular.agreeForbidden α = Core.Computability.Subregular.forbiddenPairsSet fun (x1 x2 : α) => x1 ≠ x2
Instances For
The TSL_2 grammar capturing "no two adjacent distinct symbols on the
tier defined by p" — equivalently, every tier-adjacent pair agrees.
The inequality-relation specialization of TSLGrammar.ofForbiddenPairs.
Equations
- Phonology.Subregular.TSLGrammar.agree p = Core.Computability.Subregular.TSLGrammar.ofForbiddenPairs (fun (x1 x2 : α) => x1 ≠ x2) p
Instances For
The AGREE relation on Option α: two augmented symbols are AGREE-clean
as a pair iff they are not both some of distinct values. The
inequality-relation specialization of CleanPair.
Equations
- Phonology.Subregular.AgreeCleanPair = Core.Computability.Subregular.CleanPair fun (x1 x2 : α) => x1 ≠ x2
Instances For
The AGREE relation is boundary-vacuous (inequality-relation instance of
CleanPair.isBoundaryVacuous).
Bridge (relational form): a candidate's AGREE score is zero iff its
raw string projects (under Tier.byClass p) to a list with no two
adjacent distinct elements — i.e. all on-tier elements are equal.
Inequality-relation specialization of mkForbidPairsOnTier_zero_iff_isChain.
Bridge (full TSL_2 language form): a candidate's AGREE score is zero
iff its raw string is in the language of the TSL_2 grammar
TSLGrammar.agree p. The two perspectives on AGREE — optimality-theoretic
constraint and subregular-complexity class — are co-extensive.
Inequality-relation specialization of mkForbidPairsOnTier_zero_iff_in_lang.
Zero-set bridge (AGREE on tier): the Language α-form
restatement of mkAgreeOnTier_zero_iff_in_agree_lang (with
extract := id). The AGREE markedness constraint's zero-set is the
corresponding AGREE-TSL_2 language. Sibling of
mkForbidPairsOnTier_zeroSet_eq in OTBound.lean and
mkOCPOnTier_zeroSet_eq in OCP.lean.