Documentation

Linglib.Studies.Heim1982.Basic

Heim (1982): File Change Semantics and Anaphora #

[Hei82]

Formal analysis of cross-sentential anaphora using [Hei82]'s File Change Semantics. This study file connects the FCS theory (Semantics/Dynamic/FileChange/Basic.lean) to the example rows in Data/Examples/Heim1982.json (Heim1982.Examples).

Key Claims Formalized #

  1. Indefinites introduce discourse referents (new file cards): "A man walked in" opens a new dref that persists across sentences.

  2. Negation blocks dref export: "John didn't see a bird" confines the bird's dref to the scope of negation — it doesn't persist.

  3. Conjunction is sequential update: "A man walked in. He sat down." = F + [∃x. man(x) ∧ walkedIn(x)] + [satDown(x)].

  4. Novelty-Familiarity Condition: indefinites require novel indices; definites require familiar ones. Violations are presupposition failure (undefinedness), not falsehood.

  5. Truth criterion (C): φ is true w.r.t. F iff Sat(F + φ) is nonempty ([Hei82], Ch III §3.2). This builds existential quantification into the notion of truth.

Connection to Empirical Data #

Each section below derives FCS predictions that account for specific example rows in Heim1982.Examples.

We work with a simple model: W = possible worlds, E = entities. Predicates are modeled as functions on possibilities.

"A man walked in. He sat down."

This accounts for Examples.indefinite_persists. The FCS analysis: the indefinite "a man" introduces dref x₁ into Dom(F). The pronoun "he" in the second sentence accesses x₁, which persists because no operator (negation, quantifier) has closed x₁'s scope.

The discourse is modeled as: F + [∃x₁. man(x₁) ∧ walkedIn(x₁)] + [satDown(x₁)] where ∃x₁ extends Dom(F) to include x₁.

noncomputable def Heim1982.aManWalkedIn {W : Type u_1} {E : Type u_2} (man walkedIn : EProp) (x : ) :

The indefinite "a man walked in" as an FCP: ∃x. man(x) ∧ walkedIn(x).

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def Heim1982.heSatDown {W : Type u_1} {E : Type u_2} (satDown : EProp) (x : ) :

    "He sat down" as an FCP: satDown(x).

    Equations
    Instances For
      noncomputable def Heim1982.indefinitePersistsDiscourse {W : Type u_1} {E : Type u_2} (man walkedIn satDown : EProp) (x : ) :

      The full discourse "A man walked in. He sat down."

      Equations
      Instances For

        When x is novel, the indefinite FCP is defined (not a presupposition failure) — provided the body is total.

        theorem Heim1982.indef_adds_to_dom {W : Type u_1} {E : Type u_2} (x : ) (body : Semantics.Dynamic.FileChangeSemantics.FCP W E) (F F' : Semantics.Dynamic.FileChangeSemantics.HeimFile W E) (hnovel : F.novel x) (hres : Semantics.Dynamic.FileChangeSemantics.FCP.indef x body F = some F') (hbody_dom : ∀ (G G' : Semantics.Dynamic.FileChangeSemantics.HeimFile W E), body G = some G'x G.domx G'.dom) :
        x F'.dom

        After the indefinite, x is in the domain — provided the body preserves domain membership.

        This is the formal content of "indefinites introduce discourse referents" — the defining claim of [Hei82].

        "John didn't see a bird. *It was singing."

        This accounts for Examples.standard_negation_blocks. The FCS analysis: negation closes the scope of the indefinite's dref. After F + [¬(∃x. bird(x) ∧ saw(j,x))], x is NOT in Dom — the negation's domain matches the input domain, not the extended one.

        A variable introduced inside negation is NOT in the output domain.

        Negation preserves the input domain (neg_preserves_dom), so a novel variable stays novel after negation — the dref is trapped inside the scope of ¬.

        The Novelty-Familiarity Condition is [Hei82]'s formalization of the indefinite/definite contrast (Ch III §2.2, p. 202):

        Violations cause undefinedness (presupposition failure), not falsehood. This is modeled by FCPs returning none.

        An indefinite with a familiar index causes presupposition failure.

        This accounts for why "*A man₁ walked in. A man₁ sat down." is infelicitous when the second indefinite reuses index 1.

        A definite with a novel index causes presupposition failure.

        This accounts for why "#He₁ sat down." is infelicitous at the start of a discourse (when no index 1 dref has been established).

        theorem Heim1982.indef_then_def_defined {W : Type u_1} {E : Type u_2} (x : ) (bodyIndef bodyDef : Semantics.Dynamic.FileChangeSemantics.FCP W E) (F : Semantics.Dynamic.FileChangeSemantics.HeimFile W E) (_hnovel : F.novel x) (F₁ : Semantics.Dynamic.FileChangeSemantics.HeimFile W E) (_hstep1 : Semantics.Dynamic.FileChangeSemantics.FCP.indef x bodyIndef F = some F₁) (hfam : F₁.familiar x) :

        An indefinite followed by a definite with the same index is well-defined: the indefinite makes x familiar for the definite.

        "A man₁ walked in. He₁ sat down." — after the indefinite introduces dref 1, the definite "he₁" finds it familiar.

        [Hei82]'s truth definition (Ch III §3.2, p. 214):

        (C) A formula φ is true w.r.t. a file F if F + φ is true, and false w.r.t. F if F + φ is false.

        A file is true iff Sat(F) ≠ ∅. So truth of φ w.r.t. F amounts to Sat(F + φ) being nonempty. Crucially, this builds existential quantification into the notion of truth, making Existential Closure dispensable (Ch III §3.1).

        Truth unfolds to: F + φ is defined and has nonempty Sat.

        Falsity unfolds to: F + φ is defined but has empty Sat.

        Support is idempotent: if F supports φ, then updating twice equals updating once.

        [Hei82]'s Principle (A): file change only eliminates possibilities, never adds them. This holds for atomic updates, negation, and their compositions.

        theorem Heim1982.neg_is_eliminative {W : Type u_1} {E : Type u_2} (φ : Semantics.Dynamic.FileChangeSemantics.FCP W E) (F F' : Semantics.Dynamic.FileChangeSemantics.HeimFile W E) (h : φ.neg F = some F') :
        F'.sat F.sat

        Negation is eliminative: Sat(F + ¬φ) ⊆ Sat(F).

        theorem Heim1982.seq_is_eliminative {W : Type u_1} {E : Type u_2} (φ ψ : Semantics.Dynamic.FileChangeSemantics.FCP W E) ( : ∀ (F F' : Semantics.Dynamic.FileChangeSemantics.HeimFile W E), φ F = some F'F'.sat F.sat) ( : ∀ (F F' : Semantics.Dynamic.FileChangeSemantics.HeimFile W E), ψ F = some F'F'.sat F.sat) (F F' : Semantics.Dynamic.FileChangeSemantics.HeimFile W E) (h : (φ +> ψ) F = some F') :
        F'.sat F.sat

        Sequential composition preserves eliminativity.

        We instantiate the FCS framework with a concrete finite model to verify the theory matches the empirical data in Heim1982.Examples.

        A simple model world type.

        Instances For
          @[implicit_reducible]
          Equations
          def Heim1982.instReprExWorld.repr :
          ExWorldStd.Format
          Equations
          Instances For
            @[implicit_reducible]
            Equations

            A simple entity type.

            Instances For
              @[implicit_reducible]
              Equations
              @[implicit_reducible]
              Equations
              def Heim1982.instReprExEntity.repr :
              ExEntityStd.Format
              Equations
              Instances For

                Starting file: no discourse referents, all possibilities.

                Equations
                Instances For

                  Each row in Heim1982.Examples corresponds to a structural property of FCS. The per-row theorems below check the row's recorded judgment against the FCS prediction derived above.

                  Indefinite persistence is judged acceptable; FCS predicts this via indef_adds_to_dom (the indefinite extends Dom and nothing closes it).

                  Single negation blocks; FCS predicts this via neg_blocks_dref (negation preserves the input domain).

                  Definite reference is acceptable; FCS predicts this via indef_then_def_defined (the established dref satisfies familiarity).

                  If-clause indefinites don't persist; FCS predicts this via the conditional's negation encoding (¬(φ ∧ ¬ψ)) and neg_blocks_dref.