Documentation

Linglib.Theories.Semantics.Tense.Basic

Tense Theory Infrastructure: Shared Types #

@cite{abusch-1997} @cite{deal-2020} @cite{heim-kratzer-1998} @cite{klecha-2016} @cite{kratzer-1998} @cite{ogihara-1996} @cite{sharvit-2003} @cite{von-stechow-2009} @cite{wurmbrand-2014} @cite{zeijlstra-2012} @cite{banfield-1982} @cite{comrie-1985} @cite{egressy-2026} @cite{ogihara-sharvit-2012} @cite{schlenker-2003}

Shared types and infrastructure for the tense theories formalized in Semantics.Intensional/Tense/ and Minimalism/Tense/.

Design Principle #

Verdicts are derived from compositional semantics, not stipulated. Each theory file proves derivation theorems for the phenomena it handles; the comparison matrix (Comparisons/TenseTheories.lean) is assembled from what's been proven. There is no TheoryVerdict enum — whether a theory "handles" a phenomenon is witnessed by the existence (or absence) of a derivation theorem in that theory's file.

Key Types #

The 24 temporal phenomena that distinguish tense theories.

Each phenomenon represents an empirical domain where theories make different predictions or use different mechanisms. The comparison matrix is built from which derivation theorems each theory proves for each phenomenon.

The first 11 are the core comparison set. The next 7 are eventual targets documented with data frames. The final 6 are added for @cite{zeijlstra-2012}, @cite{wurmbrand-2014}, @cite{sharvit-2003}, and @cite{tsilia-zhao-2026} coverage.

  • pastUnderPast_shifted : TensePhenomenon

    "John said Mary was sick" — shifted reading (sick before saying)

  • pastUnderPast_simultaneous : TensePhenomenon

    "John said Mary was sick" — simultaneous reading (sick at saying)

  • presentUnderPast_doubleAccess : TensePhenomenon

    "John said Mary is sick" — double-access reading

  • futureUnderPast : TensePhenomenon

    "John said Mary would leave" — embedded future

  • sotVsNonSOT : TensePhenomenon

    English (SOT) vs Japanese (non-SOT) parametric variation

  • upperLimitConstraint : TensePhenomenon

    Abusch's upper limit constraint: no forward-shifted readings

  • relativeClauseTense : TensePhenomenon

    "the man who was tall" — relative clause tense interpretation

  • modalTenseInteraction : TensePhenomenon

    "John might have left" — modal scoping over past

  • counterfactualTense : TensePhenomenon

    "If John were here..." — past morphology, non-temporal

  • temporalDeRe : TensePhenomenon

    "John believed it was raining" — de re temporal reference

  • deletionVsAmbiguity : TensePhenomenon

    Kratzer (deletion) vs Ogihara (zero tense ambiguity) debate

  • sotInIndirectQuestions : TensePhenomenon

    "John asked who was sick" — SOT in indirect questions

  • freeIndirectDiscourse : TensePhenomenon

    "She walked to the window. The garden was beautiful." — FID perspective shift without attitude verb

  • historicalPresent : TensePhenomenon

    "Napoleon enters the room. He sees..." — present tense, past reference

  • perfectTenseInteraction : TensePhenomenon

    "John said Mary had been sick" — pluperfect disambiguates to shifted only

  • futureOrientedComplements : TensePhenomenon

    "John wanted/planned to leave" — future-oriented complements without standard SOT

  • adjunctClauseTense : TensePhenomenon

    "Before John left, Mary was happy" — tense in temporal adjuncts

  • indexicalTenseShift : TensePhenomenon

    Amharic/Zazaki: tense shifts under attitudes paralleling pronoun shift

  • embeddedPresentPuzzle : TensePhenomenon

    "John will say Mary is sick" — present under future, simultaneous with future saying time

  • lifetimeEffects : TensePhenomenon

    "Aristotle was a philosopher" — past tense ↔ subject no longer exists implication (@cite{musan-1995}/1997)

  • fakePast : TensePhenomenon

    "If John were taller..." — past morphology, non-past semantics (@cite{iatridou-2000}, beyond Deal's counterfactual tense)

  • optionalSOT : TensePhenomenon

    Hebrew-type optional SOT: "John said Mary {was/is} sick" — both possible with different readings

  • dependentVsIndependentTense : TensePhenomenon

    @cite{wurmbrand-2014}: three-way classification of infinitival tense (future irrealis / propositional / restructuring)

  • thenPresentIncompatibility : TensePhenomenon

    Temporal "then" is incompatible with shifted present but compatible with deleted tense — derived from tense presuppositions anchored to π

  • sizeSensitiveSOT : TensePhenomenon

    Hungarian-type size-sensitive SOT: simultaneous reading available in TP complements but blocked in CP complements. Clause size determines whether [uPAST] can Agree upward across the complement boundary

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

      A tense theory's identity card.

      This records the structural properties of each account — what mechanisms it posits — without encoding verdicts. Whether the theory handles a given phenomenon is determined by the existence of derivation theorems in the theory's file.

      Fields are Bool because they describe categorical properties of the formal system, not graded judgments.

      • name : String

        Theory name (e.g., "@cite{abusch-1997}")

      • citation : String

        Full citation

      • hasTemporalDeRe : Bool

        Does the theory have a temporal de re mechanism?

      • hasULC : Bool

        Does the theory impose an upper limit constraint?

      • hasZeroTense : Bool

        Does the theory posit a zero tense (ambiguous past)?

      • hasSOTDeletion : Bool

        Does the theory use SOT deletion for the simultaneous reading?

      • hasAgreeBasedSOT : Bool

        Does the theory use syntactic Agree for SOT?

      • hasPresuppositionalTense : Bool

        Does the theory treat tenses as presupposition triggers?

      • hasSizeSensitiveSOT : Bool

        Does the theory predict size-sensitive SOT?

      • simultaneousMechanism : String

        How the theory derives the simultaneous reading

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

          How an attitude verb shifts the evaluation time for its complement.

          All six theories agree that attitude verbs modify the temporal evaluation context of their complement. They differ in the formal mechanism (eval time shift, feature checking, deletion, binding). This structure captures the shared interface.

          • shiftEvalTime : Core.Reichenbach.ReichenbachFrame TimeTime

            Given a matrix Reichenbach frame, compute the eval time for the embedded clause. Typically = matrix event time.

          • embeddedConstraint : TimeTimeProp

            The temporal constraint imposed on the embedded clause: embeddedRefTime must stand in this relation to the shifted eval time.

          Instances For

            Standard eval time shift: embedded eval time = matrix event time. This is the default across all six theories.

            Equations
            Instances For

              Standard shift gives matrix event time.

              def Semantics.Tense.embeddedFrame {Time : Type u_1} (matrixFrame : Core.Reichenbach.ReichenbachFrame Time) (embeddedR embeddedE : Time) :

              Construct the Reichenbach frame for an embedded clause under an attitude verb.

              The key operation: embedded perspective time P' = matrix event time E. The embedded clause's tense locates its R' relative to P' = E_matrix, not relative to S (speech time).

              embeddedR and embeddedE are the embedded clause's reference and event times, determined by its tense and aspect.

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

                The two available readings for embedded past under past.

                When past tense appears in the complement of a past-tense attitude verb, the embedded past can be interpreted as:

                • shifted: the embedded event occurred BEFORE the matrix event (R' < P' = E_matrix)
                • simultaneous: the embedded event occurred AT the matrix event time (R' = P' = E_matrix), via SOT deletion (@cite{ogihara-1989}, §11.2 (83))
                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    The simultaneous reading: embedded R = matrix E.

                    "John said Mary was sick" (she was sick AT THE TIME of saying). The embedded reference time equals the matrix event time, so embedded tense = PRESENT relative to embedded P.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      def Semantics.Tense.shiftedFrame {Time : Type u_1} (matrixFrame : Core.Reichenbach.ReichenbachFrame Time) (embeddedR embeddedE : Time) :

                      The shifted reading: embedded R < matrix E.

                      "John said Mary had been sick" (she was sick BEFORE the saying). The embedded reference time precedes the matrix event time, so embedded tense = PAST relative to embedded P.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        theorem Semantics.Tense.past_under_past_shifted_is_past {Time : Type u_1} [LinearOrder Time] (S P R E R' : Time) (h_root : P = S) (h_matrix_past : R < P) (h_perfective : E R) (h_shifted : R' < E) :
                        R' < S

                        In a past-under-past configuration with the shifted reading, the embedded reference time is past relative to speech time.

                        Derivation: R' < E_matrix ≤ R_matrix < P_matrix = S Therefore R' < S, which is PAST relative to speech time.

                        theorem Semantics.Tense.past_under_past_simultaneous_is_past {Time : Type u_1} [LinearOrder Time] (S P R E R' : Time) (h_root : P = S) (h_matrix_past : R < P) (h_perfective : E R) (h_simultaneous : R' = E) :
                        R' < S

                        In a past-under-past configuration with the simultaneous reading, the embedded reference time is still past relative to speech time.

                        Derivation: R' = E_matrix ≤ R_matrix < P_matrix = S Therefore R' < S.

                        Present-under-past with the simultaneous reading: embedded R = matrix E.

                        theorem Semantics.Tense.simultaneousFrame_is_present {Time : Type u_1} (matrixFrame : Core.Reichenbach.ReichenbachFrame Time) (embeddedE : Time) :
                        (simultaneousFrame matrixFrame embeddedE).isPresent

                        The simultaneous frame satisfies PRESENT (R = P) relative to embedded P.

                        theorem Semantics.Tense.simultaneousFrame_satisfies_time_eq {Time : Type u_1} (matrixFrame : Core.Reichenbach.ReichenbachFrame Time) (embeddedE : Time) :
                        (simultaneousFrame matrixFrame embeddedE).referenceTime = (simultaneousFrame matrixFrame embeddedE).perspectiveTime

                        The simultaneousFrame satisfies the time-equality R = P.

                        @cite{abusch-1997}'s Upper Limit Constraint #

                        In intensional contexts, tense reference cannot exceed the local evaluation time. From branching futures: at the attitude event time, future branches diverge, so no time beyond the attitude time is accessible across all doxastic alternatives.

                        ULC: embedded R' ≤ matrix E (= embedded P).

                        @[reducible, inline]
                        abbrev Semantics.Tense.upperLimitConstraint {Time : Type u_1} [LE Time] (embeddedR matrixE : Time) :

                        @cite{abusch-1997}'s Upper Limit Constraint. In intensional contexts, the tense reference cannot exceed the local evaluation time.

                        Equations
                        Instances For
                          theorem Semantics.Tense.ulc_blocks_forward_shift {Time : Type u_1} [LinearOrder Time] (embeddedR matrixE : Time) (h_ulc : upperLimitConstraint embeddedR matrixE) (h_forward : embeddedR > matrixE) :

                          The ULC blocks the forward-shifted reading. If embedded R' must satisfy R' ≤ E_matrix (ULC) AND R' > E_matrix (forward shift), contradiction.

                          theorem Semantics.Tense.shifted_satisfies_ulc {Time : Type u_1} [Preorder Time] (embeddedR matrixE : Time) (h : embeddedR < matrixE) :
                          upperLimitConstraint embeddedR matrixE

                          Shifted reading satisfies ULC: R' < E_matrix → R' ≤ E_matrix.

                          theorem Semantics.Tense.simultaneous_satisfies_ulc {Time : Type u_1} [Preorder Time] (embeddedR matrixE : Time) (h : embeddedR = matrixE) :
                          upperLimitConstraint embeddedR matrixE

                          Simultaneous reading satisfies ULC: R' = E_matrix → R' ≤ E_matrix.

                          TensePronoun Projections onto SOT Frames #

                          The TensePronoun type in Core.Tense unifies the five views of tense. The following theorems show that simultaneousFrame and shiftedFrame are projections of specific tense pronouns — a bound present pronoun gives the simultaneous reading; a free past pronoun gives the shifted reading.

                          theorem Semantics.Tense.simultaneousFrame_from_tense_pronoun {Time : Type u_1} (matrixFrame : Core.Reichenbach.ReichenbachFrame Time) (g : Core.Tense.TemporalAssignment Time) (n : ) (embeddedE : Time) (tp : Core.Tense.TensePronoun) (hIdx : tp.varIndex = n) (_hPres : tp.constraint = Core.Tense.GramTense.present) (hResolve : Core.Tense.interpTense n g = matrixFrame.eventTime) :
                          tp.toFrame g matrixFrame.speechTime matrixFrame.eventTime embeddedE = simultaneousFrame matrixFrame embeddedE

                          The simultaneous reading = bound present tense pronoun. A present-constraint tense pronoun whose variable resolves to P (the matrix event time) produces a simultaneousFrame.

                          theorem Semantics.Tense.shiftedFrame_from_tense_pronoun {Time : Type u_1} (matrixFrame : Core.Reichenbach.ReichenbachFrame Time) (g : Core.Tense.TemporalAssignment Time) (n : ) (embeddedR embeddedE : Time) (tp : Core.Tense.TensePronoun) (hIdx : tp.varIndex = n) (_hPast : tp.constraint = Core.Tense.GramTense.past) (hResolve : Core.Tense.interpTense n g = embeddedR) :
                          tp.toFrame g matrixFrame.speechTime matrixFrame.eventTime embeddedE = shiftedFrame matrixFrame embeddedR embeddedE

                          The shifted reading = free past tense pronoun. A past-constraint tense pronoun whose variable resolves to some R' < P produces a shiftedFrame.

                          theorem Semantics.Tense.doubleAccess_present_under_past {Time : Type u_1} [LinearOrder Time] (matrixFrame : Core.Reichenbach.ReichenbachFrame Time) (_embeddedE : Time) (p : TimeProp) (h_simul : p matrixFrame.eventTime) (h_speech : p matrixFrame.speechTime) :
                          Core.Tense.doubleAccess p matrixFrame.speechTime matrixFrame.eventTime

                          Double-access: present-under-past requires the complement to hold at BOTH speech time AND matrix event time.

                          This bridges the doubleAccess definition from Core.Tense to the SOT analysis: the present-under-past frame's R = P (simultaneous), and the speech time is independently accessible via indexical rigidity.

                          Ogihara's synthesis: bound tense (zero tense) + attitude binding = simultaneous reading. The zero tense variable receives the matrix event time via lambda abstraction; the Reichenbach frame has R = P.

                          A "then"-type temporal adverb. Cross-linguistically, "then" shifts the perspective time P away from the speech time S (@cite{zhao-2025}, @cite{tsilia-zhao-2026}).

                          • language : String

                            Language name

                          • form : String

                            Surface form

                          • gloss : String

                            English gloss

                          • shiftsPerspective : Bool

                            "then" shifts P away from S: P ≠ S after "then" applies.

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