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
    @[implicit_reducible]
    Equations
    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.Time.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
              @[implicit_reducible]
              Equations
              • One or more equations did not get rendered due to their size.
              @[implicit_reducible]
              Equations
              • One or more equations did not get rendered due to their size.
              @[implicit_reducible]
              Equations
              • One or more equations did not get rendered due to their size.
              @[implicit_reducible]
              Equations
              • One or more equations did not get rendered due to their size.

              Every phenomenon falls into exactly one of the five categories.

              def Semantics.Tense.embeddedFrame {Time : Type u_1} (matrixFrame : Core.Time.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
                  @[implicit_reducible]
                  Equations
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    Available readings depend on the SOT parameter of the language.

                    SOT languages (English): both shifted and simultaneous readings. Non-SOT languages (Japanese): only shifted (absolute tense).

                    Equations
                    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.Time.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.Time.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.Time.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 #

                          The Upper Limit Constraint is stated by @cite{abusch-1997} §7 (p. 25): "the now of an epistemic alternative is an upper limit for the denotation of tenses". The motivation is branching futures: at the now of an intensional context, future branches diverge across epistemic alternatives, so forward reference past the now is unsupported. The presuppositional construal — ULC as a constraint on definedness of semantic values, projecting via Karttunen-Heim — is due to @cite{heim-1994-comments}; @cite{abusch-1997} fn 20 endorses this construal.

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

                          Note on faithfulness: the value-level reduction embeddedR ≤ matrixE strips the modal-alternative quantification Abusch's formulation carries (the "now of an epistemic alternative" quantifies over doxastic alternatives). A modal-layer formulation (over WorldHistory W Time, à la @cite{klecha-2016}'s actualHistoryBase) would be more faithful to the original; deferred future work.

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

                          The Upper Limit Constraint.

                          Stated by @cite{abusch-1997} §7 ("the now of an epistemic alternative is an upper limit for the denotation of tenses"); presuppositional construal due to @cite{heim-1994-comments}, endorsed by Abusch 1997 fn 20. The current value-level reduction is embeddedR ≤ matrixE against bare [LE 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) :
                            False

                            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.Time.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.Time.Reichenbach.ReichenbachFrame Time) (g : Core.Time.Tense.TemporalAssignment Time) (n : ) (embeddedE : Time) (tp : Core.Time.Tense.TensePronoun) (hIdx : tp.varIndex = n) (_hPres : tp.constraint = Core.Time.Tense.GramTense.present) (hResolve : Core.Time.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.Time.Reichenbach.ReichenbachFrame Time) (g : Core.Time.Tense.TemporalAssignment Time) (n : ) (embeddedR embeddedE : Time) (tp : Core.Time.Tense.TensePronoun) (hIdx : tp.varIndex = n) (_hPast : tp.constraint = Core.Time.Tense.GramTense.past) (hResolve : Core.Time.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.Time.Reichenbach.ReichenbachFrame Time) (_embeddedE : Time) (p : TimeProp) (h_simul : p matrixFrame.eventTime) (h_speech : p matrixFrame.speechTime) :

                            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.Time.Tense to the SOT analysis: the present-under-past frame's R = P (simultaneous), and the speech time is independently accessible via indexical rigidity.

                            theorem Semantics.Tense.bound_tense_simultaneous {Time : Type u_1} [LinearOrder Time] (g : Core.Time.Tense.TemporalAssignment Time) (n : ) (matrixFrame : Core.Time.Reichenbach.ReichenbachFrame Time) :

                            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
                                def Semantics.Tense.instDecidableEqThenAdverb.decEq (x✝ x✝¹ : ThenAdverb) :
                                Decidable (x✝ = x✝¹)
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For