Metrical feet #
The canonical metrical foot ([Sel80]; [NV86]; [Hay95a];
[Kag99]): a flat, headed constituent over syllable positions — a non-empty,
ordered sequence of syllables with one distinguished head (the stressed daughter /
head terminal). Headedness (trochaic/iambic), binarity, and the
trochee/iamb/moraic inventory are all derived from the structure, not stored — the
moraic/syllabic split is a counting parameter on moraCount, not a different kind of
foot. Re-representations into the prosodic tree (Prosody.Tree) and the metrical grid
are functions that recover the same head.
Main definitions #
isFootTree/IsFoot— structural foot well-formedness on the prosodic-tree carrier (anf-node over a non-empty list of σ-leaves; the Layeredness core).Foot— a headed constituent over syllable positions (head : Fin _, so non-empty).Foot.IsTrochaic/IsIambic/IsBinary/IsDegenerate— derived shape predicates.Foot.moraCount— mora count under a weight reading (the quantity axis).Foot.IsSyllabicTrochee/IsMoraicTrochee/IsCanonicalIamb— the derived inventory.Foot.toProsTree/Foot.toGrid/Foot.headFlags— re-representations that preserve the head (the prosodic tree, its metrical grid, and its head-flag row).footMorae— mora count of aTree-extracted weight-list foot (the flat metrical parse is nowProsody.Footing).
Main results #
Foot.itl_gap— the Iambic/Trochaic Law ([Hay85]): a binary iamb need not be weight-blind-characterizable, unlike a binary (syllabic) trochee.Foot.headFlags_toProsTree— the prosodic-tree re-representation carries the same head profile asheadFlags(head-preservation, the functorial spine).Foot.isFoot_toProsTree— everyFoot's prosodic tree is a well-formed foot tree (IsFoot): the functoriality/well-formedness bridge onto the carrier.
Carrier well-formedness #
The structural Bool foot checker on the prosodic-tree carrier ([Sel80];
matches Foot.toProsTree): an f-node dominating a non-empty list of σ-leaves.
Equations
- Prosody.isFootTree (RoseTree.node a cs) = (a.isFt && !cs.isEmpty && cs.all fun (x : RoseTree Prosody.Constituent) => match x with | RoseTree.node b ds => b.isSyl && ds.isEmpty)
Instances For
A well-formed foot: an f-node dominating a non-empty list of σ-leaves — the
inviolable Layeredness + σ-Headedness core ([Sel80]; [Hay95a]). Foot
binarity (FtBin) and recursive internally-layered feet (contested — Golston 2021 vs
[MPK15]) are violable and deferred; this is flat feet, the
sibling of IsWord's Layeredness.
Equations
- Prosody.IsFoot t = (Prosody.isFootTree t = true)
Instances For
Equations
The canonical foot #
The canonical metrical foot ([Sel80]; [Hay95a]; [Kag99]): a
non-empty, ordered sequence of syllable positions with one distinguished head
(the stressed daughter, the head). The Fin index forces non-emptiness by construction.
The inventory and headedness are derived below, not stored.
- syllables : List S
The dominated syllable positions, left to right.
- head : Fin self.syllables.length
The distinguished (stressed) daughter; the
Finindex forces non-emptiness.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Prosody.instReprFoot = { reprPrec := Prosody.instReprFoot.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
A monosyllabic foot (σ́).
Equations
- Prosody.Foot.monosyllable a = { syllables := [a], head := 0 }
Instances For
A head-initial disyllable (σ́σ) — trochaic.
Equations
- Prosody.Foot.trochee a b = { syllables := [a, b], head := 0 }
Instances For
A head-final disyllable (σσ́) — iambic.
Equations
- Prosody.Foot.iamb a b = { syllables := [a, b], head := 1 }
Instances For
Derived shape predicates #
Equations
- f.instDecidableIsTrochaic = id inferInstance
Equations
- f.instDecidableIsIambic = id inferInstance
Equations
- f.instDecidableIsBinary = id inferInstance
Equations
- f.instDecidableIsDegenerate = id inferInstance
Above the monosyllable, headedness is exclusive: a foot is not both trochaic and iambic (at length 1 the sole σ is both head-initial and head-final).
Quantity and the derived inventory #
Mora count under a weight reading w — the quantity axis the moraic/syllabic
split parameterizes (FtBin-by-μ).
Equations
- Prosody.Foot.moraCount w f = (List.map w f.syllables).sum
Instances For
Syllabic trochee (σ́σ): head-initial and binary, weight-blind ([Hay95a]).
Equations
- f.IsSyllabicTrochee = (f.IsTrochaic ∧ f.IsBinary)
Instances For
Moraic trochee (H)/(LL): head-initial and bimoraic ([Hay95a]).
Equations
- Prosody.Foot.IsMoraicTrochee w f = (f.IsTrochaic ∧ Prosody.Foot.moraCount w f = 2)
Instances For
Canonical iamb over Hayes' right-prominent inventory {(H),(LL),(LH)}
([Hay95a]): head-final, and either a bimoraic monosyllable or an even/right-heavy
bi-or-trimoraic disyllable. Unlike the trochee, the iamb references weight — the
quantity-sensitivity the Iambic/Trochaic Law predicts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- f.instDecidableIsSyllabicTrochee = id inferInstance
Equations
- Prosody.Foot.instDecidableIsMoraicTrochee w f = id inferInstance
Equations
- Prosody.Foot.instDecidableIsCanonicalIamb w f = id inferInstance
The Iambic/Trochaic Law ([Hay85], after Bolton 1894): a binary iamb is
not characterizable weight-blind — the head-final binary cell admits the
left-heavy (H L̗) that Hayes' canonical inventory excludes — whereas a binary
trochee is exactly IsSyllabicTrochee (weight-blind). Witness: (H L̗).
Re-representations (preserving the head) #
Re-represent as a prosodic tree ([Sel80]; [IM03]): a depth-1 .f
node over .σ leaves, the head σ marked via Constituent.isHead. The .f node
itself is marked isHead when the foot heads its ω (the isHead argument, set by the
caller building the word tree).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The metrical grid of a foot in isolation ([Hay95a]): the head σ carries 2 grid marks,
every other σ 1.
Equations
Instances For
The two re-representations carry the same head profile: the prosodic tree's
σ-leaf head flags are exactly headFlags f. So both recover the foot's head.
Functoriality / well-formedness bridge: a Foot record's prosodic-tree
re-representation is always a well-formed foot tree — toProsTree lands in the
depth-1 f/σ band that isFootTree carves out. With headFlags_toProsTree
(head-preservation) this is the load-bearing half of the Foot S ≃ {t // IsFoot t}
embedding that bridges footing-on-Foot to OT-on-Tree.
Foot mora count #
Mora count of a foot given as a weight-list (each weight is a mora count). The
moraic measure for Tree-extracted feet (Prosody.feet, in Word.lean); for a
headed Foot S, use Foot.moraCount.
Equations
- Prosody.footMorae ws = List.foldl (fun (x1 x2 : ℕ) => x1 + x2) 0 ws
Instances For
Footings #
A footing: a flat parse into feet and stray (unfooted) syllables, no designated head
([Lam22b]); the σ-type S carries quantity (Unit insensitive, Syllable.Weight not).
A prosodic word ω (an IsWord tree, Prosody/Word.lean) is the headed refinement of a
footing.
A footing: a flat sequence of feet and stray (unfooted) syllables, no designated head ([Lam22b]).
Equations
- Prosody.Footing S = List (Prosody.Foot S ⊕ S)
Instances For
The stray (unfooted) syllables, left to right.
Equations
- fc.strays = List.filterMap Sum.getRight? fc
Instances For
The total number of syllables, footed and stray.
Equations
- fc.size = (List.map (Sum.elim Prosody.Foot.length fun (x : S) => 1) fc).sum
Instances For
The Parse(σ) violation profile ([Lam22b]): 1 at each stray σ, 0 at each footed.
Equations
- fc.strayMarks = List.flatMap (Sum.elim (fun (x : Prosody.Foot S) => List.replicate x.length 0) fun (x : S) => [1]) fc