Documentation

Linglib.Semantics.Events.Basic

Neo-Davidsonian Event Semantics #

Foundational types and basic API for neo-Davidsonian event semantics ([Dav67], [Par90]). Verbs denote predicates of events; thematic roles are independent two-place predicates (ArgumentStructure.ThematicRel).

Main definitions #

Naming note #

Event is the unified type for linguistic events. The Bach 1981/1986 distinction between "eventuality" (genus, sortless) and "event" (narrow sense, non-state) has largely collapsed in current practice — [Cha17] and [Zha25] both use "event" generically with sort/aktionsart as an inherent attribute. Tense-aspect code that doesn't care about sort simply doesn't reference .sort; sortless construction sites default to .dynamic.

References #

structure Event (Time : Type u_1) [LinearOrder Time] :
Type u_1

An event: a temporal individual with ontological sort.

  • runtime : NonemptyInterval Time

    The temporal extent of this event

  • Ontological sort (aktionsart): dynamic or stative ([Bac86]). This is the Features.Dynamicity feature — the action/state distinction at the event-token level.

Instances For

    Temporal trace #

    def Event.τ {Time : Type u_1} [LinearOrder Time] (e : Event Time) :
    NonemptyInterval Time

    Temporal trace function τ(e) = the runtime interval of event e.

    Equations
    Instances For

      Sort predicates #

      def Event.isAction {Time : Type u_1} [LinearOrder Time] (e : Event Time) :

      Is this event an action (dynamic event)?

      Equations
      Instances For
        def Event.isState {Time : Type u_1} [LinearOrder Time] (e : Event Time) :

        Is this event a state (stative event)?

        Equations
        Instances For
          @[implicit_reducible]
          instance Event.instDecidablePredIsAction {Time : Type u_1} [LinearOrder Time] :
          DecidablePred isAction
          Equations
          @[implicit_reducible]
          instance Event.instDecidablePredIsState {Time : Type u_1} [LinearOrder Time] :
          DecidablePred isState
          Equations
          theorem Event.isAction_iff_not_isState {Time : Type u_1} [LinearOrder Time] (e : Event Time) :
          e.isAction ¬e.isState

          isAction and isState are complementary.

          theorem Event.isState_iff_not_isAction {Time : Type u_1} [LinearOrder Time] (e : Event Time) :
          e.isState ¬e.isAction

          isState and isAction are complementary.

          Duration predicates #

          def Event.isPunctual {Time : Type u_1} [LinearOrder Time] (e : Event Time) :

          Is this event punctual (instantaneous)? Its runtime is a single point. The temporal-extent counterpart of the dynamicity sort; derived from the runtime via NonemptyInterval.IsPoint.

          Equations
          Instances For
            def Event.isDurative {Time : Type u_1} [LinearOrder Time] (e : Event Time) :

            Is this event durative (temporally extended)?

            Equations
            Instances For
              @[implicit_reducible]
              instance Event.instDecidablePredIsPunctual {Time : Type u_1} [LinearOrder Time] :
              DecidablePred isPunctual
              Equations
              @[implicit_reducible]
              instance Event.instDecidablePredIsDurative {Time : Type u_1} [LinearOrder Time] :
              DecidablePred isDurative
              Equations
              theorem Event.isDurative_iff_not_isPunctual {Time : Type u_1} [LinearOrder Time] (e : Event Time) :

              isDurative and isPunctual are complementary.

              Existential closure #

              def Event.existsClosure {Time : Type u_1} [LinearOrder Time] (P : Event TimeProp) :

              Existential closure: ∃e. P(e). The fundamental step from event semantics to truth conditions.

              Equations
              Instances For

                Mereology #

                class Event.Mereology (Time : Type u_2) [LinearOrder Time] :
                Type u_2

                Axioms for event part-of structure. Part-of is a partial order on events with temporal and sort constraints.

                • partOf : Event TimeEvent TimeProp

                  e₁ is a part of e₂

                • refl (e : Event Time) : partOf e e

                  Part-of is reflexive

                • antisymm (e₁ e₂ : Event Time) : partOf e₁ e₂partOf e₂ e₁e₁ = e₂

                  Part-of is antisymmetric

                • trans (e₁ e₂ e₃ : Event Time) : partOf e₁ e₂partOf e₂ e₃partOf e₁ e₃

                  Part-of is transitive

                • τ_monotone (e₁ e₂ : Event Time) : partOf e₁ e₂e₁.runtime e₂.runtime

                  τ is monotone: if e₁ ⊑ e₂ then τ(e₁) ⊆ τ(e₂)

                • sort_preserved (e₁ e₂ : Event Time) : partOf e₁ e₂e₁.sort = e₂.sort

                  Sort is preserved under part-of: parts of actions are actions, parts of states are states

                Instances
                  @[implicit_reducible]
                  instance Event.partialOrder (Time : Type u_2) [LinearOrder Time] [m : Mereology Time] :
                  PartialOrder (Event Time)

                  Event mereology induces a PartialOrder: parthood is reflexive, transitive, and antisymmetric.

                  Equations

                  Manner #

                  structure Event.Manner (Time : Type u_2) [LinearOrder Time] :
                  Type u_2

                  A manner: the "how" of an event, individuated as an equivalence class of events under a similarity relation ([Lie24] §4.3). Manners are to events what properties are to individuals.

                  • exhibits : Event TimeProp

                    The characteristic predicate: which events exhibit this manner

                  Instances For
                    def Event.manner {Time : Type u_1} [LinearOrder Time] (e : Event Time) (sim : Event TimeEvent TimeProp) :
                    Manner Time

                    The manner of an event under a similarity criterion. e.manner sim gives the manner class of e under sim.

                    Equations
                    Instances For
                      def Event.Manner.sharedBy {Time : Type u_1} [LinearOrder Time] (m : Manner Time) (e₁ e₂ : Event Time) :

                      Two events share a manner iff both satisfy the manner predicate.

                      Equations
                      Instances For

                        Run-time projection (event predicate → interval set) #

                        The event→interval projection: the set of run-time intervals of the events satisfying P, i.e. the image of P under the temporal trace τ ([Kri89], [Kri98]). This is neutral event substrate — the upper rung of the projection ladder whose tense-specific lower rungs (timeTrace, the canonical denotation patterns) live in Semantics/Tense/TemporalConnectives/. It is homed here, upstream of all aspect/tense theories, so that subinterval/homogeneity properties can be stated as order-theoretic facts about it (see Semantics/Aspect/SubintervalProperty.lean).

                        def eventDenotation {Time : Type u_1} [LinearOrder Time] (P : Event TimeProp) :
                        Set (NonemptyInterval Time)

                        The event→interval projection: the set of run-time intervals of events satisfying P, i.e. the image of P under the temporal trace τ. Every event-level temporal theory projects to the interval level through this map.

                        Equations
                        Instances For
                          @[simp]
                          theorem mem_eventDenotation {Time : Type u_1} [LinearOrder Time] {P : Event TimeProp} {i : NonemptyInterval Time} :
                          i eventDenotation P ∃ (e : Event Time), P e e.τ = i

                          Membership in eventDenotation: an interval is a run-time of some P-event.

                          theorem eventDenotation_eq_empty {Time : Type u_1} [LinearOrder Time] {P : Event TimeProp} :
                          eventDenotation P = ∀ (e : Event Time), ¬P e

                          No events satisfy P ↔ the denotation is empty.

                          theorem mem_eventDenotation_of {Time : Type u_1} [LinearOrder Time] {P : Event TimeProp} {e : Event Time} (he : P e) :

                          The run-time of any P-event is in the denotation.

                          Concrete examples (ℤ-time events) #

                          def exampleRun :
                          Event

                          Example: a running event from time 1 to 5.

                          Equations
                          Instances For

                            Example: a knowing state from time 0 to 10.

                            Equations
                            Instances For

                              The run event is an action.

                              The know event is a state.

                              The run event is not a state.

                              The know event is not an action.

                              The run event is durative.

                              theorem exampleRun_start :
                              exampleRun.τ.toProd.1 = 1

                              The run event starts at 1.

                              theorem exampleRun_finish :
                              exampleRun.τ.toProd.2 = 5

                              The run event ends at 5.

                              theorem exampleKnow_runtime :
                              exampleKnow.τ.toProd.1 = 0 exampleKnow.τ.toProd.2 = 10

                              The know event spans 0 to 10.