Documentation

Linglib.Syntax.Minimalist.SyntacticObject.Selection

Selection-driven heads on the SyntacticObject carrier #

This file defines the c-selection head of a syntactic object: whichever sister's head selects the saturated other projects — [Adg03]'s identification of the projecting item with the selecting item, instantiating the bare-phrase-structure projection ([Cho95a] §4) that [MCB25] §1.13.3 abstracts as head functions (Definition 1.13.6 / Lemma 1.13.7). Like the book's head functions it is partial: 0 at exocentric nodes.

Main declarations #

Main results #

Implementation notes #

SelectionState is a one-field structure over Option (LIToken × List Cat): the Option is implementation, 0 is the public spelling of the exocentric failure — the absorbing element of [MCB25]'s renormalization reading of partial head functions (off-domain values as the "meaningless infinities" of computation, their §1.13.2 remark). No One (two saturated states multiply to 0 — exocentricity is a zero divisor) and no associativity claim, so the structure is CommMagma + MulZeroClass only. Index-free traces: a bare trace leaf gets the canonical saturated value .of (mkTraceToken 0) []; selCheck reads only the token's category and outerSel, both index-independent.

The selection state #

A constituent's selection state: the projecting head with its residual stack (.of tok [] = saturated), 0 off the endocentric domain.

Instances For
    def Minimalist.instDecidableEqSelectionState.decEq (x✝ x✝¹ : SelectionState) :
    Decidable (x✝ = x✝¹)
    Equations
    Instances For

      A defined selection state: projecting head tok with residual stack stack.

      Equations
      Instances For
        @[instance_reducible]
        Equations

        The projecting head token; none off the endocentric domain.

        Equations
        Instances For

          The residual selectional stack (some [] = saturated).

          Equations
          Instances For
            @[simp]
            theorem Minimalist.SelectionState.head_of (tok : LIToken) (stack : List Cat) :
            (of tok stack).head = some tok

            Carrier-free selection combinators #

            def Minimalist.selCombine :
            SelectionStateSelectionStateOption (Bool × LIToken × List Cat)

            The selection decision at a binary node — (which sister projects, head, residual), none at exocentric nodes; * and selSide are its projections.

            Equations
            Instances For
              def Minimalist.selSide (x y : SelectionState) :
              Option Bool

              Which daughter projects: some true = left, some false = right.

              Equations
              Instances For
                theorem Minimalist.selCombine_comm (x y : SelectionState) :
                selCombine x y = Option.map (fun (p : Bool × LIToken × List Cat) => (!p.1, p.2)) (selCombine y x)

                Swapping the sisters flips the side and keeps the head and residual.

                theorem Minimalist.selSide_comm (x y : SelectionState) :
                selSide x y = Option.map not (selSide y x)

                S₂-equivariance: swap acts on the sisters, Bool.not on the side — MCB's per-vertex edge-marking (Lemma 1.13.4).

                @[instance_reducible]

                The selection product: the head-and-residual of the selCombine decision ([MCB25] §1.13); 0 is absorbing.

                Equations
                • One or more equations did not get rendered due to their size.
                theorem Minimalist.SelectionState.mul_def (x y : SelectionState) :
                x * y = { toOption := Option.map (fun (x : Bool × LIToken × List Cat) => x.2) (selCombine x y) }

                * unfolded: the canonical accessor for the selection product.

                theorem Minimalist.selCombine_eq_some {x y : SelectionState} {b : Bool} {hd : LIToken} {res : List Cat} (h : selCombine x y = some (b, hd, res)) :
                (bif b then x else y).head = some hd

                Coherence: the projected head is the head of the sister on the reported side.

                theorem Minimalist.SelectionState.head_mul {x y : SelectionState} {r : LIToken} (h : (x * y).head = some r) :
                x.head = some r y.head = some r

                The head of x * y (when defined) is one of x/y's heads.

                Selection check on the carriers #

                The selection algebra: the SyntacticObject.mergeAlgebra of token + outerSel leaves and the saturated, index-free trace.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem Minimalist.selNode_perm (a : SOLabel) {l₁ l₂ : List SelectionState} (h : l₁.Perm l₂) :
                  selNode a l₁ = selNode a l₂

                  selNode is invariant under permutation of the daughter states.

                  Selection check on a planar tree: the catamorphism of selNode.

                  Equations
                  Instances For

                    Reduction of selCheckPlanar at a node: fold the algebra over the daughters.

                    selCheckPlanar is Perm-invariant, so it descends to the quotient.

                    Selection check on the nonplanar carrier.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For

                      The selection-driven head on SyntacticObject #

                      Selection-driven head check: the selection instance of [MCB25]'s head functions; computable.

                      Equations
                      Instances For

                        The projecting head's lexical item, by c-selection.

                        Equations
                        Instances For

                          Residual pending selectional features (some [] = saturated).

                          Equations
                          Instances For

                            The projecting head's outer category (the phase-head selector); none at exocentric nodes.

                            Equations
                            Instances For

                              selCheck as a morphism of magmas ([MCB25] §1.13's algebraic frame): the lift of the leaf data.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                theorem Minimalist.SyntacticObject.selHead_node {l r : SyntacticObject} {h : LIToken} (hlr : (l.node r).selHead = some h) :
                                l.selHead = some h r.selHead = some h

                                Endocentricity: a node's projecting head is one of its daughters' heads — bare-phrase-structure projection ([Cho95a] §4, abstracted as [MCB25] Definition 1.13.6 / Lemma 1.13.7).