Containment hierarchies: score selection #
Elsewhere insertion and Superset spellout. The DM winner maximizes
threshold as an instantiation of the core's Exponence.selectBy, so
winner_isElsewhereWinner is an instance of selectBy_isElsewhereWinner
discharged by moreSpecific_iff_threshold_le. The nanosyntax
spelloutWinner minimizes spans; its SupersetRule carrier is a
semireducible synonym that does not sit cleanly under selectBy, so it
runs on SpanRule directly and spelloutWinner_isElsewhereWinner
transports the result onto the core's Superset reading. maxThreshold
and minSpan are the score aggregates the plateau theorems
(Containment/Contiguity.lean) reason about — contexts and scores share
Fin n.
Main declarations #
winner,realize— Elsewhere selection and the realized patternspelloutWinner,spellout— Minimize-Junk selection and the spelled patternwinner_isElsewhereWinner,spelloutWinner_isElsewhereWinner— both are Elsewhere winners of the shared coremaxThreshold,minSpan— the score aggregates, with their transfer lemmas
General list helpers #
Subset reading: Elsewhere selection #
The rules applicable at grade g, in vocabulary order.
Equations
Instances For
The greatest applicable threshold at grade g — the specificity
level of the Elsewhere winner, ⊥ when nothing applies.
Equations
- Morphology.Containment.maxThreshold v g = (List.map Morphology.Containment.SpanRule.threshold (Morphology.Containment.applicable v g)).maximum
Instances For
A winning threshold persists downward as long as it stays applicable, which is what makes Elsewhere selection plateau between grades.
The Elsewhere winner at grade g: the applicable rule with greatest
threshold — the most specific applicable rule — as Exponence.selectBy.
Equations
Instances For
The realized pattern: at each grade, the Elsewhere winner's
exponent (none when no rule applies — a paradigm gap). Definitionally
Exponence.realize SpanRule.threshold.
Equations
- Morphology.Containment.realize v g = Option.map Morphology.Containment.SpanRule.exponent (Morphology.Containment.winner v g)
Instances For
The containment engine's Elsewhere winner is an Elsewhere winner of
the shared core — an instance of selectBy_isElsewhereWinner.
Superset reading: Minimize-Junk selection #
The dual engine, on the SupersetRule reading. The nanosyntax lexical
entry stores a constituent and can spell out any structure it contains,
with competition selecting the smallest matching entry (Minimize Junk).
spelloutWinner selects by least matching span; minSpan is the score
aggregate the completeness lemmas reason about. The SupersetRule
carrier is a semireducible synonym, so the selection here runs directly
on SpanRule; spelloutWinner_isElsewhereWinner transports the result
onto the superset reading of the shared core.
The entries matching at grade g, in vocabulary order.
Equations
- Morphology.Containment.matching v g = List.filter (fun (it : Morphology.Containment.SpanRule n F) => decide (it.Matches g)) v
Instances For
The least matching span at grade g — Minimize Junk: the winning
entry stores as little unrealized structure as possible. ⊤ when no
entry matches.
Equations
- Morphology.Containment.minSpan v g = (List.map Morphology.Containment.SpanRule.spans (Morphology.Containment.matching v g)).minimum
Instances For
The key transfer lemma, dual to maxThreshold_eq_coe_of_between: a
winning span persists upward as long as the grade stays inside it.
The spellout winner at grade g: the first entry attaining the
least matching span.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The spelled-out pattern: at each grade, the Minimize-Junk winner's
exponent (none when no entry contains the structure — a spellout
gap).
Equations
Instances For
Spellout gaps propagate upward: an entry matching a higher grade
would match the lower one too, so a gap at g forces gaps at every
g' ≥ g — [Dek21]'s paradigm-gap monotonicity for indefinites.
Minimize-Junk selection is an Elsewhere winner of the shared core under the Superset reading — with no side conditions: over a linear hierarchy the span order is total, so the least-span match is maximally specific.
The chain decomposition: containment as feature decomposition #
The linear containment engine is the chain instance of the general
feature-decomposition engine (Exponence/Decomposition.lean): decompose the
grade space Fin n by initial segments chainDecomp i = Finset.Iic i, and a
span rule realizing [0, threshold] becomes a decomposition rule specified for
exactly those features. Threshold containment is then Subset containment
(applies_toDecomposition), the specificity orders correspond
(SpanRule.toDecomposition_le_iff), and the Elsewhere winner selected by
maximizing threshold is the same rule the decomposition engine selects by
maximizing feats.card = threshold + 1 — an Elsewhere winner of the shared core
under the decomposition reading (winner_isElsewhereWinner_toDecomposition).
The chain decomposition of an n-grade hierarchy: grade i carries the
initial segment [0, i].
Equations
- Morphology.Containment.chainDecomp = Finset.Iic
Instances For
A span rule read as a feature-decomposition rule over chainDecomp: its
threshold becomes the initial-segment feature set [0, threshold], the exponent
unchanged.
Equations
- it.toDecomposition = { feats := Finset.Iic it.threshold, exponent := it.exponent }
Instances For
Applicability agreement: threshold containment is Subset containment of initial segments.
The feature count of a chain rule is one more than its threshold, so
feats.card-maximization is threshold-maximization: the two engines optimize
the same score.
Specificity agreement: the chain map reflects the specificity preorder —
it is at least as specific as jt under the linear threshold order iff its
decomposition image is under Subset inclusion.
Winner agreement: the containment Elsewhere winner, read through the
chain map, is an Elsewhere winner of the shared core under the decomposition
reading — so Containment.winner (maximizing threshold) and
Decomposition.pattern (selectBy feats.card) pick the same rule.