Documentation

Linglib.Phenomena.TenseAspect.Studies.HeimKratzer1998

Tense Phenomena: Bridge Theorems #

@cite{lakoff-1970}

Per-theory × per-phenomenon derivation theorems connecting the empirical data in Data.lean to the nine tense theories in Theories/Semantics.Intensional/Tense/ and Theories/Minimalism/Tense/.

Also absorbs the former Phenomena/SequenceOfTense/Bridge.lean content: frame verification, constructor matching, SOT parameter bridges, aspect pipeline, ULC bridges.

Structure #

For each concrete data frame and each theory, this file proves that the theory's mechanism produces the expected Reichenbach frame. The comparison matrix in Comparisons/TenseTheories.lean is assembled from these per-datum verification theorems.

Past rule generates "walked" from "walk".

Present rule generates "walks" from "walk".

Future rule generates "will leave" from "leave".

Irregular past form overrides default.

Past participle rule generates "walked" from "walk".

Periphrastic past generates "used to walk".

Periphrastic future generates "going to leave".

All synthetic tense rules are semantically vacuous — temporal semantics comes from the Theory layer, not morphology.

theorem Phenomena.TenseAspect.Bridge.tensePronoun_past_root :
have tp := { varIndex := 1, constraint := Core.Tense.GramTense.past, mode := Core.ReferentialMode.ReferentialMode.indexical }; have g := fun (n : ) => if n = 1 then -2 else 0; have frame := tp.toFrame g 0 0 (-2); frame.isPast

An indexical past tense pronoun at root level (g maps var 1 to -2, P = S = 0) produces a frame satisfying isPast.

theorem Phenomena.TenseAspect.Bridge.tensePronoun_present_root :
have tp := { varIndex := 1, constraint := Core.Tense.GramTense.present, mode := Core.ReferentialMode.ReferentialMode.indexical }; have g := fun (x : ) => 0; have frame := tp.toFrame g 0 0 0; frame.isPresent

An indexical present tense pronoun at root level produces a frame satisfying isPresent (R = P).

theorem Phenomena.TenseAspect.Bridge.tensePronoun_future_root :
have tp := { varIndex := 1, constraint := Core.Tense.GramTense.future, mode := Core.ReferentialMode.ReferentialMode.indexical }; have g := fun (n : ) => if n = 1 then 3 else 0; have frame := tp.toFrame g 0 0 3; frame.isFuture

An indexical future tense pronoun at root level produces a frame satisfying isFuture (P < R).

The tense pronoun's presupposition matches the frame's tense classification: a past tense pronoun presupposes R < P.

The shiftedFrame constructor reproduces the data frame.

Both readings yield overall past relative to speech time.

The compositional pipeline from aspect to tense is well-typed.

theorem Phenomena.TenseAspect.Bridge.evalPast_iff_PAST {W : Type u_1} {Time : Type u_2} [LinearOrder Time] (p : Semantics.Tense.Aspect.Core.PointPred W Time) (tc : Time) (w : W) :
Semantics.TenseAspectComposition.evalPast p tc w ∃ (t : Time), Semantics.Tense.PAST p { world := w, time := t } { world := w, time := tc }

evalPast agrees with PAST.

theorem Phenomena.TenseAspect.Bridge.evalPres_iff_toSitProp {W : Type u_1} {Time : Type u_2} (p : Semantics.Tense.Aspect.Core.PointPred W Time) (tc : Time) (w : W) :
Semantics.TenseAspectComposition.evalPres p tc w p { world := w, time := tc }

evalPres agrees with PointPred application at speech time.

The matrix "said" frame is perfective (E = R).

Abusch derives the shifted data frame via free past variable.

Kratzer derives the shifted frame via genuine past (no deletion).

Klecha derives the modal-past data: past tense checked against modal eval time.

Zeijlstra derives the simultaneous data frame: embedded T has [uPAST] (semantically vacuous via Agree), so the embedded clause is interpreted at matrix event time.

Zeijlstra derives the shifted data frame: embedded T has [iPAST] (independent tense, no Agree), contributing genuine past semantics.

Sharvit derives the indirect question simultaneous reading: the simultaneous tense in "John asked who was sick" locates sickness at the asking time.

Sharvit derives the embedded present puzzle: present under future → simultaneous tense at future eval time.

False tense and fake past produce identical frames: the distinction is pragmatic (politeness vs counterfactuality), not temporal-structural.

Both time-sphere frames have identical event time: the structural difference is R's relation to P, not E's location.

End-to-end derivational chain connecting Fragment entries → Theory operators → composed semantics → Reichenbach data → empirical phenomena.

The chain for English simple past:

Fragment entry (kratzerSimplePast)
  ↓.tensePronoun.constraint =.present (.hasPerfect = true)
Theory operators (TensePronoun + PERF + PRFV from ViewpointAspect)
  ↓ evalPres (PERF (PRFV V))
Composed semantics = presPerfSimple (from TenseAspectComposition)
  ↓ evalPres evaluates at speech time
Reichenbach frame: R = P (isPresent) — present time-sphere
  ↓ matches §28 data
Phenomena: perfectVisitedParis.isPresent ✓

Fragment: canBeDeictic = true → Data: outOfTheBlue = true ✓

The chain for German Preterit:

Fragment entry (kratzerPreterit)
  ↓.tensePronoun.constraint =.past (.hasPerfect = false)
Theory operators (TensePronoun with genuine PAST)
  ↓ evalPast (PRFV V).atPoint
Composed semantics = simplePast (from TenseAspectComposition)
  ↓ evalPast existentially quantifies over past times
Reichenbach frame: R < P (isPast) — past time-sphere
  ↓ matches §28 data
Phenomena: preteritVisitedParis.isPast ✓

Fragment: canBeDeictic = false → Data: outOfTheBlue = false ✓

English full chain: Fragment entry → Theory → Composed semantics → Data.

  1. Fragment: underlying tense head is PRESENT (not PAST)
  2. Fragment: the form can be used deictically (indexical mode)
  3. Theory→Pipeline: the decomposition maps to presPerfSimple
  4. Pipeline→Reichenbach: present tense head → present time-sphere
  5. Reichenbach→Data: matches §28 perfectVisitedParis.isPresent
  6. Data: outOfTheBlue = true agrees with Fragment's deictic prediction

If ANY layer changes — Fragment decomposition, Theory operators, Pipeline composition, Reichenbach frame, or empirical data — this theorem breaks.

German Preterit full chain: Fragment → Theory → Pipeline → Data.

  1. Fragment: underlying tense head is PAST
  2. Fragment: the form CANNOT be used deictically (anaphoric mode)
  3. Theory→Pipeline: maps to simplePast (genuine existential past)
  4. Pipeline→Reichenbach: past tense head → past time-sphere
  5. Data: outOfTheBlue = false agrees with Fragment's anaphoric prediction
  6. Data–Fragment agreement: not deictic ↔ anaphoric mode

Zero tense chain: the SOT simultaneous reading connects Kratzer's zero tense to the existing SOT deletion mechanism.

  1. Theory: zero tense is bound PRESENT (not ambiguous PAST)
  2. Theory: surfaces as phonologically zero
  3. Theory: SOT deletion yields the simultaneous frame (R = P)
  4. Existing derivation: kratzer_derives_embeddedSickSimultaneous