Case Allomorphy and Syncretism — Substrate #
@cite{blake-1994} @cite{caha-2009} @cite{bobaljik-2012}
Framework-neutral substrate for talking about allomorphy and syncretism patterns over morphological case. Provides:
AllomorphyPattern: a 4-tuple of form-class indices over the four core cases (NOM, ACC, GEN, DAT); decidableViolatesABA/IsContiguouspredicates derived fromMorphology.Containment.HierarchyAdjacent/InventoryAdjacent: adjacency relations on cases, the latter relativized to a particular language's inventory.Syncretism: a record-pair of cases that share an exponent.- A handful of well-known syncretism patterns (NOM/ACC, COM/INST) and decidability theorems for adjacency on small inventories.
What explains the *ABA gap is contested between DM (post-syntactic
VI + Elsewhere ordering — @cite{bobaljik-2012}) and Nanosyntax
(phrasal spellout + Superset Principle — @cite{caha-2009}). This
file commits to neither; per-paper analyses live in
Phenomena/Case/Studies/.
An allomorphy pattern over the four core cases (NOM, ACC, GEN, DAT), represented as a form-class index for each case.
- nom : ℕ
- acc : ℕ
- gen : ℕ
- dat : ℕ
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
A pattern violates *ABA when its 4-position projection violates the
generic contiguity predicate. By construction this reduces by rfl
to the generic substrate's ViolatesABA on the list.
Equations
- p.ViolatesABA = Morphology.Containment.ViolatesABA [p.nom, p.acc, p.gen, p.dat]
Instances For
Is a pattern contiguous? Each form class occupies a contiguous span on the hierarchy. Equivalent to ¬ViolatesABA.
Equations
- p.IsContiguous = ¬p.ViolatesABA
Instances For
case_violatesABA_iff_generic was previously a named Iff.rfl
bridge here. Dropped: by construction AllomorphyPattern.ViolatesABA
is the generic predicate applied to the 4-cell projection
(definitionally), so the bridge unfolds for free at every use site
via Iff.rfl or rfl-shaped simp rewrites. Naming a rfl
bridge polluted the API surface for no benefit.
Equations
- Core.Case.Allomorphy.abbPattern = { nom := 0, acc := 1, gen := 1, dat := 1 }
Instances For
Equations
- Core.Case.Allomorphy.aabPattern = { nom := 0, acc := 0, gen := 0, dat := 1 }
Instances For
Equations
- Core.Case.Allomorphy.aabbPattern = { nom := 0, acc := 0, gen := 1, dat := 1 }
Instances For
Equations
- Core.Case.Allomorphy.ababPattern = { nom := 0, acc := 1, gen := 0, dat := 1 }
Instances For
Equations
- Core.Case.Allomorphy.abaPattern = { nom := 0, acc := 1, gen := 0, dat := 0 }
Instances For
Equations
- Core.Case.Allomorphy.babPattern = { nom := 1, acc := 0, gen := 1, dat := 0 }
Instances For
Equations
- Core.Case.Allomorphy.uniformPattern = { nom := 0, acc := 0, gen := 0, dat := 0 }
Instances For
Smoke tests for the named patterns: each evaluates as the
AllomorphyPattern shape its name implies. Demoted from theorem
to example because nothing in the codebase consumes them by
name.
Containment rank preserves Blake's typological ordering on the core cases (NOM, ACC, GEN, DAT): the orderings are inverses. Blake ranks by "how likely a language is to have it" (NOM most common → highest), while the containment view ranks by "how much structure it contains" (NOM least complex → lowest). This is a theorem about the Blake hierarchy, framework-neutral.
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Are two cases adjacent on the hierarchy (same rank or ranks differ by 1)?
Equations
- Core.Case.Allomorphy.HierarchyAdjacent c1 c2 = (c1.hierarchyRank = c2.hierarchyRank ∨ c1.hierarchyRank + 1 = c2.hierarchyRank ∨ c2.hierarchyRank + 1 = c1.hierarchyRank)
Instances For
Relaxed adjacency: no case in the inventory falls strictly between the two syncretic cases on the hierarchy.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Core.Case.Allomorphy.instDecidableInventoryAdjacent inv c1 c2 = id inferInstance
Equations
- Core.Case.Allomorphy.nomAccSyncretism = { case1 := UD.Case.nom, case2 := UD.Case.acc, neq := Core.Case.Allomorphy.nomAccSyncretism._proof_1 }
Instances For
Equations
- Core.Case.Allomorphy.comInstSyncretism = { case1 := UD.Case.com, case2 := UD.Case.inst, neq := Core.Case.Allomorphy.comInstSyncretism._proof_1 }
Instances For
Adjacency-on-canonical-hierarchy smoke tests. The named theorems
below have no codebase consumers (Tamil/Case.lean defines its own
locally-named com_inst_adjacent, not a use of this one); all are
examples. The one consumed lemma is same_tier_adjacent, kept
as theorem because it is parametric over the hierarchy ranks
(not a fixed pair).
Same-tier cases are always strictly adjacent. (Parametric over
the rank — kept as named theorem for downstream re-use.)
Five fixed AllomorphyPattern shapes that show up in the
syncretism literature. Demoted to example for the same reason as
the smoke tests above: no by-name consumers.