Documentation

Linglib.Morphology.Root.Certificates

Root certificates: roothood as a role #

Roothood is not a data type but a role an index plays in a Morphology.Realization, adjudicated by extensional certificates — the Prime-over-a-monoid pattern, where a predicate relative to a structure replaces a distinguished carrier. Three orthogonal axes probe the role, each decidable per fragment:

Core extraction is parametric in extract : F → Finset C, so the axis is not tied to concatenative form: the concatenative instance coreMorphsIn filters a word's morphs by Morph.IsCoreIn ([Blo33], [Qin25]); a consonantal-melody instance would take fun r => r.segments.toFinset for ConsonantalRoot (Root/Consonantal.lean), not built here.

These certificates adjudicate the descriptive taxonomy — the suppletion trichotomy, l-vs-f, per-fragment categorial freedom — and are deliberately extensional: they do not settle the derivational disputes (Arad-vs-Borer first-categorization locality), which live in the admissible lax mergers of Realization.lean (see its underdetermination paragraph). This is the root-question layer over Realization, co-equal with Paradigm/, Exponence/, and Construction/ — not a foundation beneath them.

Main declarations #

The constancy pair as a negation dichotomy #

theorem Morphology.Root.isConstantIn_iff_not_isVariantIn {R : Type u_1} {Ctx : Type u_2} {X : Type u_8} {g : RCtxFinset X} {r : R} :

Constancy and variance of a contextual map are exact complements: a strengthening of not_isConstantIn_of_isVariantIn to an Iff.

Atomicity: parametric core extraction #

def Morphology.Root.cellCores {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {C : Type u_5} (S : Realization R Ctx F) (extract : FFinset C) [DecidableEq C] :
RCtxFinset C

The cores a realization exposes at a cell: the union, over the cell's forms, of each form's cores under extract. The third instantiation of the IsConstantIn/IsVariantIn contextual-map slot, after realize and interp.

Equations
Instances For
    @[simp]
    theorem Morphology.Root.cellCores_singleton {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} (S : Realization R Ctx F) [DecidableEq F] (r : R) (c : Ctx) :
    cellCores S (fun (f : F) => {f}) r c = S.realize r c
    def Morphology.Root.HasNonemptyCores {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {C : Type u_5} (S : Realization R Ctx F) (extract : FFinset C) [DecidableEq C] :

    Atomicity: every licensed cell decomposes to at least one core — the root always contributes segmental substance where it is realized.

    Equations
    Instances For
      theorem Morphology.Root.hasNonemptyCores_of_extract_nonempty {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {C : Type u_5} (S : Realization R Ctx F) (extract : FFinset C) [DecidableEq C] (hne : ∀ (f : F), (extract f).Nonempty) :

      An extraction that never returns an empty core certifies atomicity: the Option-shaped and total realizations are atomic under any pointwise-nonempty extract (e.g. a stem projection).

      The suppletion trichotomy #

      def Morphology.Root.HasSuppletiveCore {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {C : Type u_5} (S : Realization R Ctx F) (extract : FFinset C) [DecidableEq C] (r : R) :

      Suppletive core: the cores themselves vary across contexts — go/went, where no shared core survives the alternation. The IsVariantIn instance at cellCores.

      Equations
      Instances For
        def Morphology.Root.IsAffixallyInflected {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {C : Type u_5} (S : Realization R Ctx F) (extract : FFinset C) [DecidableEq C] (r : R) :

        Affixal inflection: forms vary but cores do not — cat/cats, one core across an added affix. Form-variance with a constant core.

        Equations
        Instances For
          theorem Morphology.Root.isAffixallyInflected_iff {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {C : Type u_5} (S : Realization R Ctx F) (extract : FFinset C) [DecidableEq C] {r : R} :
          IsAffixallyInflected S extract r S.IsSuppletive r ¬HasSuppletiveCore S extract r

          Affixal inflection is exactly form-variance without a suppletive core: the two core-axis outcomes are mutually exclusive.

          theorem Morphology.Root.suppletive_core_dichotomy {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {C : Type u_5} (S : Realization R Ctx F) (extract : FFinset C) [DecidableEq C] {r : R} (h : S.IsSuppletive r) :
          IsAffixallyInflected S extract r HasSuppletiveCore S extract r

          The core-axis dichotomy: a form-variant root is either affixally inflected (cat/cats) or has a suppletive core (go/went), exhaustively and exclusively.

          theorem Morphology.Root.suppletive_taxonomy {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {C : Type u_5} (S : Realization R Ctx F) (extract : FFinset C) [DecidableEq C] {r : R} (h : S.IsSuppletive r) :
          (S.IsOverabundant r S.IsProperlySuppletive r) (IsAffixallyInflected S extract r HasSuppletiveCore S extract r)

          The suppletion trichotomy: a form-variant root is classified by two orthogonal cuts — the landed cell-locus cut (IsOverabundant, cell-internal dived/dove, versus IsProperlySuppletive, cross-cell go/went) and the core-axis cut (IsAffixallyInflected versus HasSuppletiveCore). Their cross product is the descriptive taxonomy of root-form variation.

          theorem Morphology.Root.hasSuppletiveCore_singleton {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} (S : Realization R Ctx F) [DecidableEq F] (r : R) :
          HasSuppletiveCore S (fun (f : F) => {f}) r S.IsSuppletive r

          Under the identity core-extraction (a monomorphemic form is its own core), having a suppletive core coincides with form-suppletion: whole-root alternations like go/went are suppletive-cored. The bridge that lets a study certify a suppletive inventory without recomputing its fibers.

          The concatenative core-extraction instance #

          def Morphology.Root.coreMorphsIn (words freeForms : List (List Morph)) (w : List Morph) :
          Finset Morph

          The cores of a word ([Blo33], [Qin25]): its morphs that occur in some primary word, i.e. that satisfy Morph.IsCoreIn relative to the fragment's word and free-form inventories. The affix side (-s, -ness) is filtered out, so cat and cats share the single core cat.

          Equations
          Instances For

            Listedness: the l/f-morpheme divide #

            def Morphology.Root.IsFunctionalInventory {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {M : Type u_4} {T : Type u_7} (S : Realization.Interpreted R Ctx F M) (τ : RT) :

            An f-morpheme inventory ([HN99]): the interpretation-and-form profile factors through a grammatical type — same type, same profile — so the index carries no information its type does not.

            Equations
            Instances For
              def Morphology.Root.DoesLexicalWork {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {M : Type u_4} {T : Type u_7} (S : Realization.Interpreted R Ctx F M) (τ : RT) (r : R) :

              An index does lexical work ([Emb21]): another index shares its type yet differs in profile, so the type underdetermines it — the l-morpheme witness against IsFunctionalInventory.

              Equations
              Instances For
                theorem Morphology.Root.isFunctionalInventory_iff_no_lexicalWork {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {M : Type u_4} {T : Type u_7} (S : Realization.Interpreted R Ctx F M) (τ : RT) :
                IsFunctionalInventory S τ ∀ (r : R), ¬DoesLexicalWork S τ r

                The l/f dichotomy: an inventory is functional iff no index does lexical work. The Harley–Noyer split ([HN99], [Emb21]) as the negation duality between the two certificates.

                Categorial freedom #

                def Morphology.Root.IsCrossCategorial {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {K : Type u_6} (S : Realization R Ctx F) (k : CtxK) (r : R) :

                Categorial freedom ([Mar97], [Ara05]): one index is licensed in two contexts of distinct category k — DM acategoriality, the per-fragment decidable complement to the hom-tier merger theorems of Realization.lean.

                Equations
                Instances For

                  Decidability #

                  @[implicit_reducible]
                  instance Morphology.Root.instDecidableHasNonemptyCoresOfFintypeOfDecidableEq {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {C : Type u_5} (S : Realization R Ctx F) (extract : FFinset C) [Fintype R] [Fintype Ctx] [DecidableEq F] [DecidableEq C] :
                  Decidable (HasNonemptyCores S extract)
                  Equations
                  @[implicit_reducible]
                  instance Morphology.Root.instDecidableHasSuppletiveCoreOfFintype {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {C : Type u_5} (S : Realization R Ctx F) (extract : FFinset C) [Fintype Ctx] [DecidableEq C] (r : R) :
                  Decidable (HasSuppletiveCore S extract r)
                  Equations
                  @[implicit_reducible]
                  instance Morphology.Root.instDecidableIsAffixallyInflectedOfFintypeOfDecidableEq {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {C : Type u_5} (S : Realization R Ctx F) (extract : FFinset C) [Fintype Ctx] [DecidableEq F] [DecidableEq C] (r : R) :
                  Decidable (IsAffixallyInflected S extract r)
                  Equations
                  @[implicit_reducible]
                  instance Morphology.Root.instDecidableIsCrossCategorialOfFintypeOfDecidableEq {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {K : Type u_6} (S : Realization R Ctx F) [Fintype Ctx] [DecidableEq F] [DecidableEq K] (k : CtxK) (r : R) :
                  Decidable (IsCrossCategorial S k r)
                  Equations
                  @[implicit_reducible]
                  instance Morphology.Root.instDecidableProfileEqOfFintypeOfDecidableEq {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {M : Type u_4} (S : Realization.Interpreted R Ctx F M) [Fintype Ctx] [DecidableEq F] [DecidableEq M] (r r' : R) :
                  Decidable (S.ProfileEq r r')
                  Equations
                  @[implicit_reducible]
                  instance Morphology.Root.instDecidableIsFunctionalInventoryOfFintypeOfDecidableEq {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {M : Type u_4} {T : Type u_7} (S : Realization.Interpreted R Ctx F M) (τ : RT) [Fintype R] [Fintype Ctx] [DecidableEq T] [DecidableEq F] [DecidableEq M] :
                  Decidable (IsFunctionalInventory S τ)
                  Equations
                  @[implicit_reducible]
                  instance Morphology.Root.instDecidableDoesLexicalWorkOfFintypeOfDecidableEq {R : Type u_1} {Ctx : Type u_2} {F : Type u_3} {M : Type u_4} {T : Type u_7} (S : Realization.Interpreted R Ctx F M) (τ : RT) [Fintype R] [Fintype Ctx] [DecidableEq T] [DecidableEq F] [DecidableEq M] (r : R) :
                  Decidable (DoesLexicalWork S τ r)
                  Equations