Docs / Morphology / Paradigm / Function

The PFM1 paradigm function

import Linglib.Morphology.Paradigm.Function · namespace Morphology

This file defines the Paradigm Function Morphology engine of Stump's book in Bonami and Stump's streamlined form, PFM1. A paradigm function applies basic stem choice to a cell ⟨L, σ⟩ and then an ordered cascade of rule blocks. A rule applies at the cell when L is in its class and its property set is contained in σ, and in each block the narrowest applicable rule wins, by Pāṇinian narrowness. The Identity Function Default and the Function Composition Default are the least narrow rules of their blocks, and their behaviour as defaults is derived from that.

Main definitions

Main results

Implementation notes

Blocks are evaluated at the cell rather than at a ⟨stem, property set⟩ pair, so the lexeme a stem is covertly indexed with persists through every block by construction. The chapter's values ⟨R, σ⟩ carry the cell's own property set, so evaluation returns the form alone. Whole-word syncretism, a clause of the paradigm function such as (5), is a property mapping of Linkage rather than a rule of referral. Morphophonological metageneralizations, conditions on a stem's phonological shape, and overabundance are outside the engine. Numbered examples refer to Bonami and Stump's chapter.

TODO

Stump's later rule conflation, which replaces a portmanteau block by a single rule combining two rules, is not modeled.

References

Declarations

A rule of exponence carries a form operation, which may consult the cell (its lexeme, with which a stem is covertly indexed, and, as Stump 2020 allows, its property set); a rule of referral carries a retargeting of property sets, at which its block is re-consulted.

inductive PFM.ActionL78–83
(L : Type u_5) (Z : Type u_6) (P : Type u_7) :
Type (max (max u_5 u_6) u_7)

Used by PFM.Action.const, PFM.identityDefault, PFM.Block, PFM.Block.exists_eq_expo_of_mem_expoFragment, PFM.selectMinimal_isSome_of_identityDefault_mem, PFM.Block.eval_of_expo, PFM.Block.eval_of_referral, PFM.functionCompositionDefault

Used in BonamiStump2016

A realization rule n, X_C, τ → f(X) of Bonami & Stump 2016 has a lexeme class C, the property set τ it realizes, and a payload: an Action for rules of exponence and referral, a stem for rules of basic stem choice.

structure PFM.RuleL88–97
(L : Type u_5) (P : Type u_6) (F : Type u_7) :
Type (max (max u_5 u_6) u_7)
  • klass : Finset L

    The lexeme class the rule applies in.

  • props : P

    The property set the rule realizes.

  • payload : F

    The action or stem the rule supplies.

Used by PFM.Rule.narrowness, PFM.Rule.narrowness_le_iff, PFM.instRuleRuleProd, PFM.Rule.applies_iff, PFM.Rule.applySet_mono, PFM.Rule.elsewhere, PFM.identityDefault, PFM.Block, PFM.Block.exists_eq_expo_of_mem_expoFragment, PFM.selectMinimal_append_elsewhere, PFM.selectMinimal_isSome_of_identityDefault_mem, PFM.Block.eval_of_expo, PFM.Block.eval_of_referral, PFM.functionCompositionDefault

Used in BonamiStump2016

Narrowness as a key: r is at least as narrow as s when r's class is properly smaller, or the classes coincide and r's property set extends s's.

def PFM.Rule.narrownessL102–104
{L : Type u_1} {P : Type u_3} {F : Type u_4} (r : Rule L P F) :
Lex (Finset L × Pᵒᵈ)

Built from

Used by PFM.Rule.narrowness_le_iff, PFM.Rule.applySet_mono, PFM.Rule.narrowness_elsewhere, PFM.selectMinimal_append_elsewhere, PFM.selectMinimal_isSome_of_identityDefault_mem, PFM.Block.eval_of_expo, PFM.Block.eval_of_referral

Used in BonamiStump2016

The least narrow rule with payload f, n, X_U, {} → f(X), applies in the class of all lexemes and realizes the empty property set.

def PFM.Rule.elsewhereL130–132
{L : Type u_1} {P : Type u_3} {F : Type u_4} [PartialOrder P] [Fintype L] [OrderBot P] (f : F) :
Rule L P F

Built from

Used by PFM.Rule.narrowness_elsewhere, PFM.Rule.elsewhere_applies, PFM.identityDefault, PFM.selectMinimal_append_elsewhere, PFM.functionCompositionDefault

L134–136

Blocks and the paradigm function

L148–149
L168–169
L171–172

A least narrow rule appended to a rule set is selected only where none of its rules applies.

theorem PFM.selectMinimal_append_elsewhereL174–178
{L : Type u_1} {P : Type u_3} {F : Type u_4} [PartialOrder P] [DecidableEq L] [DecidableLE P] [DecidableLT P] [Fintype L] [OrderBot P] (v : Exponence.RuleSet (Rule L P F)) (f : F) (c : L × P) :

Built from , ,

b.eval c w is Nar (14), [n : ⟨w, σ⟩]: the narrowest rule of b applicable at the cell c acts on the form w. A rule of referral re-selects among the rules of exponence at the retargeted cell, and w is unchanged where no rule applies.

def PFM.Block.evalL186–196
{L : Type u_1} {Z : Type u_2} {P : Type u_3} [PartialOrder P] [DecidableEq L] [DecidableLE P] [DecidableLT P] (b : Block L Z P) (c : L × P) (w : Z) :
Z

The definition is too large to print here; read it in the source.

Built from

Used by PFM.Block.eval_of_expo, PFM.Block.eval_of_referral, PFM.evalBlocks, PFM.evalBlocks_cons, PFM.functionCompositionDefault, PFM.Block.eval_portmanteau_of_applicable_eq_nil, PFM.Block.eval_portmanteau_of_applicable_ne_nil

Used in BonamiStump2016

A selected rule of referral evaluates its block's rules of exponence at the retargeted cell, as in the Sanskrit vocative (17).

theorem PFM.Block.eval_of_referralL205–216
{L : Type u_1} {Z : Type u_2} {P : Type u_3} [PartialOrder P] [DecidableEq L] [DecidableLE P] [DecidableLT P] {b : Block L Z P} {c : L × P} {r : Rule L P (Action L Z P)} {g : P → P} (hr : Exponence.RuleSet.selectMinimal b Rule.narrowness c = some r) (hg : r.payload = Action.referral g) (w : Z) :
b.eval c w = b.expoFragment.eval (c.1, g c.2) w

Built from , , , , ,

evalBlocks bs c w threads the form w through the blocks bs, listed inner-first, at the cell c.

def PFM.evalBlocksL218–221
{L : Type u_1} {Z : Type u_2} {P : Type u_3} [PartialOrder P] [DecidableEq L] [DecidableLE P] [DecidableLT P] (bs : List (Block L Z P)) (c : L × P) (w : Z) :
Z

Built from ,

Used by PFM.evalBlocks_nil, PFM.evalBlocks_cons, PFM.paradigmFunction, Linkage.realized_eq_paradigmFunction

L223–224
L226–228

The paradigm function (13) applies basic stem choice and then the blocks bs, listed inner-first, so that paradigmFunction stem [i, ii, iii] realizes [iii : [ii : [i : Stem]]].

def PFM.paradigmFunctionL230–233
{L : Type u_1} {Z : Type u_2} {P : Type u_3} [PartialOrder P] [DecidableEq L] [DecidableLE P] [DecidableLT P] (stem : L × P → Z) (bs : List (Block L Z P)) (c : L × P) :
Z

Built from ,

Used by Linkage.realized_eq_paradigmFunction

Used in BonamiStump2016, Stump2016

Portmanteau blocks

The Function Composition Default (24) of a portmanteau block [m, n] is the least narrow rule realizing [m : [n : ⟨X, σ⟩]].

def PFM.functionCompositionDefaultL240–243
{L : Type u_1} {Z : Type u_2} {P : Type u_3} [PartialOrder P] [DecidableEq L] [DecidableLE P] [DecidableLT P] [Fintype L] [OrderBot P] (bm bn : Block L Z P) :
Rule L P (Action L Z P)

Built from , , , ,

Used by PFM.Block.portmanteau

A portmanteau block [m, n] of Stump 2001 has rules bmn in paradigmatic opposition to blocks m and n together, and the Function Composition Default.

def PFM.Block.portmanteauL245–248
{L : Type u_1} {Z : Type u_2} {P : Type u_3} [PartialOrder P] [DecidableEq L] [DecidableLE P] [DecidableLT P] [Fintype L] [OrderBot P] (bmn bm bn : Block L Z P) :
Block L Z P

Built from ,

Used by PFM.Block.eval_portmanteau_of_applicable_eq_nil, PFM.Block.eval_portmanteau_of_applicable_ne_nil

Where no portmanteau rule applies, block [m, n] is the composition of blocks m and n, the Function Composition Default (24).

theorem PFM.Block.eval_portmanteau_of_applicable_eq_nilL250–258
{L : Type u_1} {Z : Type u_2} {P : Type u_3} [PartialOrder P] [DecidableEq L] [DecidableLE P] [DecidableLT P] [Fintype L] [OrderBot P] {bmn bm bn : Block L Z P} {c : L × P} (h : Exponence.RuleSet.applicable bmn c = []) (w : Z) :
(bmn.portmanteau bm bn).eval c w = bm.eval c (bn.eval c w)

Built from , ,

Where a portmanteau rule of exponence applies, it overrides blocks m and n.

theorem PFM.Block.eval_portmanteau_of_applicable_ne_nilL260–271
{L : Type u_1} {Z : Type u_2} {P : Type u_3} [PartialOrder P] [DecidableEq L] [DecidableLE P] [DecidableLT P] [Fintype L] [OrderBot P] {bmn bm bn : Block L Z P} {c : L × P} (hbmn : ∀ r ∈ bmn, ∃ (f : L × P → Z → Z), r.payload = Action.expo f) (h : Exponence.RuleSet.applicable bmn c ≠ []) (w : Z) :
(bmn.portmanteau bm bn).eval c w = bmn.eval c w

Built from , ,

Under the default rule of paradigm linkage (27), with property-preserving property mapping, form cells realized by the block cascade at their stem's L-index, and the convention (11) that a basic stem's L-index is its lexeme, a content cell realizes as the paradigm function.

theorem Linkage.realized_eq_paradigmFunctionL275–284
{L : Type u_1} {Z : Type u_2} {P : Type u_3} [PartialOrder P] [DecidableEq L] [DecidableLE P] [DecidableLT P] [DecidableEq Z] (ℓ : Linkage L Z P P) (lindex : Z → L) (stem : L × P → Z) (bs : List (PFM.Block L Z P)) (h : ℓ.IsPropertyPreserving id) (hstem : ∀ (l : L) (σ : P), ℓ.realize l σ = {stem (l, σ)}) (hl : ∀ (c : L × P), lindex (stem c) = c.1) (l : L) (σ : P) :
ℓ.realized (fun (z : Z) (τ : P) => PFM.evalBlocks bs (lindex z, τ) z) l σ = {(PFM.paradigmFunction stem bs (l, σ), σ)}

Built from , ,