Documentation

Linglib.Syntax.Category.Verb.ArgumentFrame.Takes

Verb–complementizer selection #

The selection relation between the Verb and Complementizer entry APIs: which clause-typers a predicate takes. A complement position and a clause-typer each record a bundle of partial axis values (ArgumentFrame.Position.Axes) in the flat order, and a position takes a typer when the two bundles are consistent (Compat) and overlap (Overlap): some axis both record. One relation, lifted twice: a frame or verb takes a typer when some complement or frame does. All decidable. A typer records only the [Noo07] coding and the sentence types it types, so the relation lives on those two axes (takes_iff_coding_types): matching needs positive evidence on one of them, a non-clausal position takes nothing, and the subject-requirement axis is position-side and never matched.

Main definitions #

Main results #

Consistency checks against Fragment data live in Studies (e.g. Bondarenko2022.hanaxa_typers).

References #

Two bundles overlap when some axis is recorded on both.

Equations
Instances For
    @[instance_reducible]
    instance ArgumentFrame.Position.instDecidableOverlap (f g : Axes) :
    Decidable (Overlap f g)
    Equations
    theorem ArgumentFrame.Position.overlap_self_iff {f : Axes} :
    Overlap f f ↔ f ≠ ⊥

    A bundle overlaps itself exactly when it records something.

    The axes a clause-typer records: its coding and the sentence types it types; the other axes are a complement position's alone.

    Equations
    Instances For

      A bundle is consistent with a typer's exactly on the coding and types axes.

      A bundle overlaps a typer's exactly on the coding and types axes.

      The clausal position z types carries z's coding and sentence types, with the subject requirement s the selecting predicate adds.

      Equations
      Instances For

        The position takes clause-typer z: the two bundles are consistent and overlap, some axis recorded on both sides. Matching needs positive evidence, so a typer or position recording nothing — in particular any non-clausal position — takes nothing.

        Equations
        Instances For
          @[instance_reducible]
          Equations
          theorem ArgumentFrame.Position.takes_iff {p : Position} {z : Complementizer} :
          p.Takes z ↔ (∀ (a : Axis), Compat (p.axes a) (z.axes a)) ∧ ∃ (a : Axis), p.axes a ≠ ⊥ ∧ z.axes a ≠ ⊥

          Axis by axis, every axis is consistent and some axis is recorded on both sides.

          theorem ArgumentFrame.Position.takes_iff_coding_types {p : Position} {z : Complementizer} :
          p.Takes z ↔ (Compat (p.axes Axis.coding) z.coding ∧ Compat (p.axes Axis.types) z.types) ∧ (p.axes Axis.coding ≠ ⊥ ∧ z.coding ≠ none ∨ p.axes Axis.types ≠ ⊥ ∧ z.types ≠ ⊥)

          On the two axes a typer records, coding and types are consistent and one of them is recorded on both sides.

          The position z types takes z' exactly when the two typers' bundles are consistent and overlap; the subject requirement plays no part.

          The position z types takes z itself exactly when z records something; the ← direction is takes_of_le.

          theorem ArgumentFrame.Position.not_takes_of_blank_left {p : Position} {z : Complementizer} (hc : p.coding? = none) (ht : p.types = ⊥) :
          ¬p.Takes z

          A position recording neither shared axis takes nothing.

          theorem ArgumentFrame.Position.not_takes_of_blank_right {p : Position} {z : Complementizer} (hc : z.coding = none) (ht : z.types = ⊥) :
          ¬p.Takes z

          A typer recording neither axis takes nothing.

          A non-clausal position takes nothing: it records no axis a typer does.

          A position taking a typer is clausal.

          theorem ArgumentFrame.Position.exists_takes_iff {z : Complementizer} :
          (∃ (p : Position), p.Takes z) ↔ z.coding ≠ none ∨ z.types ≠ ⊥

          Some position takes a typer exactly when the typer records a coding or a sentence type.

          theorem ArgumentFrame.Position.takes_of_le {p : Position} {z : Complementizer} (h : z.axes ≤ p.axes) (hz : z.axes ≠ ⊥) :
          p.Takes z

          A typer whose bundle lies below the position's, and records something, is taken: the positive witness in general.

          theorem ArgumentFrame.Position.Takes.mono_of_compat {p q : Position} {z : Complementizer} (hpq : p ≤ q) (hc : Compat q.axes z.axes) (h : p.Takes z) :
          q.Takes z

          Refining a position keeps a typer it takes, as long as the refinement stays consistent with the typer.

          theorem ArgumentFrame.Position.Takes.of_le_of_overlap {p q : Position} {z : Complementizer} (hpq : p ≤ q) (ho : Overlap p.axes z.axes) (h : q.Takes z) :
          p.Takes z

          Coarsening a position keeps a typer it takes, as long as the coarsening still overlaps the typer.

          The frame takes z when some complement does.

          Equations
          Instances For
            theorem ArgumentFrame.Takes.mono {fr fr' : ArgumentFrame} {z : Complementizer} (hsub : fr.complements ⊆ fr'.complements) (h : fr.Takes z) :
            fr'.Takes z

            Taking is monotone under complement extension.

            A frame taking a typer has a clausal complement.

            theorem ArgumentFrame.not_takes_of_blank {fr : ArgumentFrame} {z : Complementizer} (hc : z.coding = none) (ht : z.types = ⊥) :
            ¬fr.Takes z

            No frame takes a typer recording neither axis.

            Small clauses take no clause-typer.

            An indicative typer typing declaratives or nothing recorded takes the finite-clause frame.

            The frame a typer types #

            The frame whose one complement is the clause z types, with the subject requirement s: the frame a fragment derives from its complementizer entry rather than retyping the typer's axes.

            Equations
            Instances For

              The frame z types takes z' exactly when the two typers' bundles are consistent and overlap.

              The frame z types takes z exactly when z records something.

              The verb takes z when some frame does.

              Equations
              Instances For
                @[instance_reducible]
                instance Verb.instDecidableTakes {v : Verb} {z : Complementizer} :
                Decidable (v.Takes z)
                Equations

                A verb taking a typer takes a clausal complement.

                theorem Verb.not_takes_of_blank {v : Verb} {z : Complementizer} (hc : z.coding = none) (ht : z.types = ⊥) :
                ¬v.Takes z

                No verb takes a typer recording neither axis, as a converb suffix records none.

                def Verb.typers (v : Verb) (inv : List Complementizer) :

                The typers of v within a language's complementizer inventory.

                Equations
                Instances For
                  @[simp]
                  theorem Verb.mem_typers {v : Verb} {z : Complementizer} {inv : List Complementizer} :
                  z ∈ v.typers inv ↔ z ∈ inv ∧ v.Takes z