AI for linguistics Lean checks

Local Contexts (appendix)

Local Contexts, Appendix: Comparing Five Theories of Presupposition Projection

The appendix's definitions, lemmas and theorems relating Transparency, local contexts, Kleene and Supervaluationist acceptability, and Heim's dynamic semantics, for the propositional fragment (plus abstract and special quantificational cases).

Extraction checklist: TODO.md as a page · raw

How the Lean files are checked, what was simplified, general caveats and what each category means: see Method & caveats.

Audit

Show:
Notation used in the Lean statements

Notation: I : Nat -> W -> Bool interpretation of propositional letters, C : W -> Prop context set, F : Form a formula of the propositional fragment; dyn I F C = none is C[F] = #; TranspI/TranspS = incremental/symmetric Transparency; LcCond = "each trigger's presupposition holds at every world of its incremental local context"; KleeneAccI etc. as in items 26/29.

confirmed

Theorem 1

Paper: 9c, p.41 PDF p.3

Paper textTheorem 1: Consider the propositional fragment of L. Let C ⊆ W be a context set and let F be a formula. Then: (i) Transpi(C, F) iff C[F] ≠ #. (ii) If C[F] ≠ #, C[F] = {w ∈ C: w |= F}.

StatementPropositional fragment: Transp_i(C,F) iff C[F] != #; and C[F] = {w in C : w |= F}

Lean statementtheorem1 I C F : (TranspI I C F <-> dyn I F C != none) /\ (forall D, dyn I F C = some D -> forall w, D w <-> (C w /\ ev I F w = true))

Lean: PropTheory.lean:315 · proven

PropTheory.lean:315 — lines 315–327 · open file
theorem theorem1 (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    (TranspI I C F ↔ dyn I F C ≠ none) ∧
    (∀ D, dyn I F C = some D → ∀ w, D w ↔ (C w ∧ ev I F w = true)) := by
  refine ⟨?_, (dyn_iff I F C).2⟩
  have h1 := (dyn_iff I F C).1
  have : dyn I F C ≠ none ↔ (dyn I F C).isSome = true := by
    cases dyn I F C <;> simp
  rw [this, h1]
  constructor
  · intro H t ht
    exact (local_iff I C t.1 t.2.1).mp (H t ht)
  · intro H t ht
    exact (local_iff I C t.1 t.2.1).mpr (H t ht)
not formalized

Theorem 2

Paper: 9d, p.41 PDF p.3

Paper textTheorem 2 [here we only state a consequence of Theorem 2 from Schlenker 2007a]: Let C ⊆ W be a context set and let F be a formula of L. Suppose that <C, F> satisfies Non-Triviality and Constancy. Then: (i) Transpi(C, F) iff C[F] ≠ #. (ii) If C[F] ≠ #, C[F] = {w ∈ C: w |= F}.

StatementQuantificational L, under Non-Triviality + Constancy: same as Thm 1

Lean statementnone in general. Special case (No P . QQ'), one world, D = Fin n: transNo_iff : transNo P Q <-> dynDefined P Q

Lean: Quantifier.lean:52 · not formalized (imported from Schlenker 2007a; general L, NT and Constancy not modelled); special case proven

Quantifier.lean:52 — lines 52–73 · open file
theorem transNo_iff {n : Nat} (P Q : Pred n) : transNo P Q ↔ dynDefined P Q := by
  constructor
  · intro H d hP
    refine Classical.byContradiction (fun hQ => ?_)
    have hQ' : Q d = false := by simpa using hQ
    have h := H (fun e => decide (e = d))
    have h1 : quant fNo P (fun e => Q e && decide (e = d)) = true := by
      rw [quantNo_iff]; intro e ⟨_, h2⟩
      simp at h2; obtain ⟨h3, h4⟩ := h2; subst h4; simp [hQ'] at h3
    rw [h1] at h
    have := (quantNo_iff P (fun e => decide (e = d))).mp h.symm d
    simp [hP] at this
  · intro H γ
    have : (fun d => P d && !(Q d && γ d)) = (fun d => P d && !γ d) := by
      funext d; by_cases hP : P d = true
      · simp [hP, H d hP]
      · simp [hP]
    have h2 : (fun d => P d && (Q d && γ d)) = (fun d => P d && γ d) := by
      funext d; by_cases hP : P d = true
      · simp [hP, H d hP]
      · simp [hP]
    simp only [quant, this, h2]

Why not formalized: The appendix imports this from Schlenker 2007a without proof, and it needs the full language L with quantifiers. Only the special case (No P . QQ') on one world is proven here; the general statement would need the full syntax and semantics of L, Non-Triviality and Constancy.

corrected proof

Lemma 1

Paper: 12, p.41 PDF p.3

Paper textLemma 1. Propositional Fragment. For any C ⊆ W, for any formula E, if a E b is a formula of the propositional fragment, lci(C, E, a_b) ≠ # and lcs(C, E, a_b) ≠ #.

StatementIn the propositional fragment lc_i, lc_s exist

Lean statementLC.lemma1 (hE : forall Psi, Envs Psi -> Ext Psi) C : IsLC Envs C (lc1 Envs C) for Val W Unit, with lc1 = paper's candidate plus the condition C w; instantiated as lc_exists_prop_i/s

Lean: LCAbstract.lean:145, PropTheory.lean:404, PropTheory.lean:406 · proven-corrected (see Error E1)

LCAbstract.lean:145 — lines 144–147 · open file
/-- Lemma 1 (corrected proof): in the propositional fragment the local context exists. -/
theorem lemma1 {Envs : Env W Unit → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ) (C : W → Prop) :
    IsLC Envs C (lc1 Envs C) :=
  ⟨lemma1_step1 hE C, lemma1_step2 hE C⟩
PropTheory.lean:404 — lines 403–405 · open file
/-- Lemma 1 / Existence theorem 16(a): local contexts exist in the propositional fragment. -/
theorem lc_exists_prop_i (I : Nat → W → Bool) (K : List Frame) (C : W → Prop) :
    ∃ x, LC.IsLC (EnvI I K) C x := ⟨_, LC.lemma1 (envI_ext I K) C⟩
PropTheory.lean:406 — lines 406–407 · open file
theorem lc_exists_prop_s (I : Nat → W → Bool) (K : List Frame) (C : W → Prop) :
    ∃ x, LC.IsLC (EnvS I K) C x := ⟨_, LC.lemma1 (envS_ext I K) C⟩

E1 wrong proof Lemma 1 (item 12): the candidate local context must be restricted to worlds of C

Location: Item 12 (Lemma 1), p. 41 PDF p.3

Paper text
LCi := λw. 1 iff for some formula g, for some good final b’, w ⊭^(f→F) a ^f g b’ ⇔ a g b’, where F is a contradiction.
Suggested replacement
LCi := λw. 1 iff w ∈ C and for some formula g, for some good final b’, w ⊭^(f→F) a ^f g b’ ⇔ a g b’, where F is a contradiction.

Further edits

Paper text
Step 2: For every x ∈ tri(C, F, a_b), LCi entails x.
Suggested replacement (Lemma 1, Step 2, heading (typo: F should be E))
Step 2: For every x ∈ tri(C, E, a_b), LCi entails x.
Paper text
Suppose, for contradiction, that LCi(w) = 1 and x(w) = 0. Since x ∈ tri(C, F, a_b), for every formula g,
Suggested replacement (Lemma 1, Step 2, first two sentences)
Suppose, for contradiction, that LCi(w) = 1 and x(w) = 0. Then w ∈ C, by the definition of LCi. Since x ∈ tri(C, E, a_b), for every formula g,
What the paper does, and why it fails

LCi(w) = 1 is defined without requiring that w be in the context set C. Step 2 then uses that x is a transparent restriction at w, but membership in tri(C, E, a_b) only constrains x at worlds of C, so for w outside C nothing follows. Example: for the top-level sentence pp’ (α and β empty), the paper’s LCi is true at every world (take g a tautology), so Satisfaction (17a, lci ≤ d) would wrongly require p to be a tautology.

What the change does

LCi is now false outside C, so Step 2 only ever applies transparency of x at worlds of C, where it holds. Step 1 is unchanged, and LCi is now below C, which the proof of Lemma 5 needs. The corrected lemma is proved in Lean as LC.lemma1.

Anything else affected?No other change: the statement of Lemma 1 stays true, so 16(a), Lemma 5 and Theorem 22 keep their statements; only this proof is affected.

Text note: Wording is verbatim; symbols lost in the text extraction (⊨, ⊭, ⇔, superscripts, underlining, Greek letters, primes) were restored from the PDF.

Lean evidence
LC.lemma1 — LCAbstract.lean:145
/-- Lemma 1 (corrected proof): in the propositional fragment the local context exists. -/
theorem lemma1 {Envs : Env W Unit → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ) (C : W → Prop) :
    IsLC Envs C (lc1 Envs C) :=
  ⟨lemma1_step1 hE C, lemma1_step2 hE C⟩
LC.lemma1_paper_candidate_fails — LCAbstract.lean:152
theorem lemma1_paper_candidate_fails :
    ∃ (Envs : Env Unit Unit → Prop) (C : Unit → Prop),
      (∀ Ψ, Envs Ψ → Ext Ψ) ∧ Tr Envs C bot ∧ ¬ le (lc1Paper Envs) bot := by
  refine ⟨fun Ψ => Ψ = (fun x w => x w ()), fun _ => False, ?_, ?_, ?_⟩
  · intro Ψ hΨ x y w h; subst hΨ; simp [h]
  · intro Ψ _ γ w hw; exact absurd hw id
  · intro h
    have hp : lc1Paper (fun Ψ : Env Unit Unit => Ψ = (fun x w => x w ())) () () = true := by
      simp only [lc1Paper, decide_eq_true_eq]
      refine ⟨(fun (x : Val Unit Unit) (w : Unit) => x w ()), rfl, top, ?_⟩
      simp [meet, bot, top]
    have := h () () hp
    simp [bot] at this
LC.lc1Paper — LCAbstract.lean:109
/-- The paper's candidate `LCi` of Lemma 1 EXACTLY as written (no restriction to `C`). -/
noncomputable def lc1Paper (Envs : Env W Unit → Prop) : Val W Unit :=
  fun w _ => decide (∃ Ψ, Envs Ψ ∧ ∃ γ : Val W Unit, Ψ (meet bot γ) w ≠ Ψ γ w)
LC.lc1 — LCAbstract.lean:104
/-- The paper's candidate `LCi` of Lemma 1, CORRECTED: `w ∈ C` is added. -/
noncomputable def lc1 (Envs : Env W Unit → Prop) (C : W → Prop) : Val W Unit :=
  fun w _ => decide (C w ∧ ∃ Ψ, Envs Ψ ∧ ∃ γ : Val W Unit, Ψ (meet bot γ) w ≠ Ψ γ w)
corrected proof

Lemma 1, paper's candidate

Paper: 12, p.41 PDF p.3

Paper textLCi := λw. 1 iff for some formula g, for some good final b’, w |≠f -> F a fg b’ ⇔ a g b’, where F is a contradiction.

StatementThe candidate LC^i as written is the bottom of tr

Lean statementlemma1_paper_candidate_fails : exists Envs C, (forall Psi, Envs Psi -> Ext Psi) /\ Tr Envs C bot /\ not (le (lc1Paper Envs) bot)

Lean: LCAbstract.lean:152 · counterexample found (candidate is wrong)

LCAbstract.lean:152 — lines 152–164 · open file
theorem lemma1_paper_candidate_fails :
    ∃ (Envs : Env Unit Unit → Prop) (C : Unit → Prop),
      (∀ Ψ, Envs Ψ → Ext Ψ) ∧ Tr Envs C bot ∧ ¬ le (lc1Paper Envs) bot := by
  refine ⟨fun Ψ => Ψ = (fun x w => x w ()), fun _ => False, ?_, ?_, ?_⟩
  · intro Ψ hΨ x y w h; subst hΨ; simp [h]
  · intro Ψ _ γ w hw; exact absurd hw id
  · intro h
    have hp : lc1Paper (fun Ψ : Env Unit Unit => Ψ = (fun x w => x w ())) () () = true := by
      simp only [lc1Paper, decide_eq_true_eq]
      refine ⟨(fun (x : Val Unit Unit) (w : Unit) => x w ()), rfl, top, ?_⟩
      simp [meet, bot, top]
    have := h () () hp
    simp [bot] at this

E1 wrong proof Lemma 1 (item 12): the candidate local context must be restricted to worlds of C

Location: Item 12 (Lemma 1), p. 41 PDF p.3

Paper text
LCi := λw. 1 iff for some formula g, for some good final b’, w ⊭^(f→F) a ^f g b’ ⇔ a g b’, where F is a contradiction.
Suggested replacement
LCi := λw. 1 iff w ∈ C and for some formula g, for some good final b’, w ⊭^(f→F) a ^f g b’ ⇔ a g b’, where F is a contradiction.

Further edits

Paper text
Step 2: For every x ∈ tri(C, F, a_b), LCi entails x.
Suggested replacement (Lemma 1, Step 2, heading (typo: F should be E))
Step 2: For every x ∈ tri(C, E, a_b), LCi entails x.
Paper text
Suppose, for contradiction, that LCi(w) = 1 and x(w) = 0. Since x ∈ tri(C, F, a_b), for every formula g,
Suggested replacement (Lemma 1, Step 2, first two sentences)
Suppose, for contradiction, that LCi(w) = 1 and x(w) = 0. Then w ∈ C, by the definition of LCi. Since x ∈ tri(C, E, a_b), for every formula g,
What the paper does, and why it fails

LCi(w) = 1 is defined without requiring that w be in the context set C. Step 2 then uses that x is a transparent restriction at w, but membership in tri(C, E, a_b) only constrains x at worlds of C, so for w outside C nothing follows. Example: for the top-level sentence pp’ (α and β empty), the paper’s LCi is true at every world (take g a tautology), so Satisfaction (17a, lci ≤ d) would wrongly require p to be a tautology.

What the change does

LCi is now false outside C, so Step 2 only ever applies transparency of x at worlds of C, where it holds. Step 1 is unchanged, and LCi is now below C, which the proof of Lemma 5 needs. The corrected lemma is proved in Lean as LC.lemma1.

Anything else affected?No other change: the statement of Lemma 1 stays true, so 16(a), Lemma 5 and Theorem 22 keep their statements; only this proof is affected.

Text note: Wording is verbatim; symbols lost in the text extraction (⊨, ⊭, ⇔, superscripts, underlining, Greek letters, primes) were restored from the PDF.

Lean evidence
LC.lemma1 — LCAbstract.lean:145
/-- Lemma 1 (corrected proof): in the propositional fragment the local context exists. -/
theorem lemma1 {Envs : Env W Unit → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ) (C : W → Prop) :
    IsLC Envs C (lc1 Envs C) :=
  ⟨lemma1_step1 hE C, lemma1_step2 hE C⟩
LC.lemma1_paper_candidate_fails — LCAbstract.lean:152
theorem lemma1_paper_candidate_fails :
    ∃ (Envs : Env Unit Unit → Prop) (C : Unit → Prop),
      (∀ Ψ, Envs Ψ → Ext Ψ) ∧ Tr Envs C bot ∧ ¬ le (lc1Paper Envs) bot := by
  refine ⟨fun Ψ => Ψ = (fun x w => x w ()), fun _ => False, ?_, ?_, ?_⟩
  · intro Ψ hΨ x y w h; subst hΨ; simp [h]
  · intro Ψ _ γ w hw; exact absurd hw id
  · intro h
    have hp : lc1Paper (fun Ψ : Env Unit Unit => Ψ = (fun x w => x w ())) () () = true := by
      simp only [lc1Paper, decide_eq_true_eq]
      refine ⟨(fun (x : Val Unit Unit) (w : Unit) => x w ()), rfl, top, ?_⟩
      simp [meet, bot, top]
    have := h () () hp
    simp [bot] at this
LC.lc1Paper — LCAbstract.lean:109
/-- The paper's candidate `LCi` of Lemma 1 EXACTLY as written (no restriction to `C`). -/
noncomputable def lc1Paper (Envs : Env W Unit → Prop) : Val W Unit :=
  fun w _ => decide (∃ Ψ, Envs Ψ ∧ ∃ γ : Val W Unit, Ψ (meet bot γ) w ≠ Ψ γ w)
LC.lc1 — LCAbstract.lean:104
/-- The paper's candidate `LCi` of Lemma 1, CORRECTED: `w ∈ C` is added. -/
noncomputable def lc1 (Envs : Env W Unit → Prop) (C : W → Prop) : Val W Unit :=
  fun w _ => decide (C w ∧ ∃ Ψ, Envs Ψ ∧ ∃ γ : Val W Unit, Ψ (meet bot γ) w ≠ Ψ γ w)
confirmed (typo)

Lemma 2

Paper: 13, p.41-42 PDF p.3

Paper textLemma 2: Closure under Finite Conjunction For any C ⊆ W, for any formula a d b, tri(C, d, a_b) and trs(C, d, a_b) are closed under finite conjunction.

Statementtr_i, tr_s closed under finite conjunction

Lean statementLC.lemma2 : Tr Envs C x -> Tr Envs C y -> Tr Envs C (meet x y) (any set of environments, so both versions; any D)

Lean: LCAbstract.lean:63 · proven

LCAbstract.lean:63 — lines 63–66 · open file
theorem lemma2 {Envs : Env W D → Prop} {C : W → Prop} {x y : Val W D}
    (h1 : Tr Envs C x) (h2 : Tr Envs C y) : Tr Envs C (meet x y) := by
  intro Ψ hΨ γ w hw
  rw [meet_assoc, h1 Ψ hΨ _ w hw, h2 Ψ hΨ γ w hw]

Minor typo: Def. 10 must range over all expressions; typo a' d' b' in steps 4-5

E4 proof gap Definition 10 (and 8): d’ and γ must range over all expressions of the right type, not only constituents of the formula

Location: Item 10 (p. 41); Lemma 2 (13), Theorem 21 (p. 41-43) PDF p.3

Paper text
for every constituent d’ of the same type as d, for every good final b’
Suggested replacement (Definition 10a (tri))
for every expression d’ of the same type as d, for every good final b’
Paper text
for every constituent d’ of the same type as d, C |=^(c’→x) a ^c’ d’ b ⇔ a d’ b
Suggested replacement (Definition 10b (trs))
for every expression d’ of the same type as d, C |=^(c’→x) a ^c’ d’ b ⇔ a d’ b
Paper text
then for any constituent γ of the same type as d and for any good final β’,
Suggested replacement (Definition 8a (Transpi), needed for consistency with Theorem 21)
then for any expression γ of the same type as d and for any good final β’,
Paper text
then for any constituent γ of the same type as d, C|= α (d and γ) β ⇔ α γ β
Suggested replacement (Definition 8b (Transps), needed for consistency with Theorem 21)
then for any expression γ of the same type as d, C|= α (d and γ) β ⇔ α γ β
What the paper does, and why it fails

Definition 10 quantifies over every constituent d’ of the same type as d, i.e. only over parts of the formula a d b. But the proof of Lemma 2 applies the definition to (c” and d’), and the proof of Theorem 21 applies it to (d and d”), which are not constituents of the formula.

What the change does

d’ (and γ in 8) now ranges over all expressions of the right type, which is what the proofs use and what the Expressivity assumption (item 3) makes available. Be Brief (7b, 7c) already says ‘any expression γ’.

Anything else affected?Also affects: 8a and 8b (Transparency) must say ‘expression’ too, otherwise Theorem 21 (Sat’ iff Transp) does not follow; Lemma 2, Theorem 21, Lemma 3 and Theorem 22 then go through as in Lean (all γ), with no change of statement.

Text note: Wording is verbatim; symbols lost in the text extraction (⊨, ⊭, ⇔, superscripts, underlining, Greek letters, primes) were restored from the PDF.

Judgment call: the wording of this replacement is ours and not checked in Lean. Changing 8a/8b is not in the issue as originally listed, but is needed for Theorem 21 to be consistent with the changed Definition 10; the alternative is to keep 8 and restrict Theorem 21, which loses Lemma 2.

Lean evidence
LC.Tr — LCAbstract.lean:37
/-- Def. 10: transparent restrictions (`x ∈ tr_v(C, d, α_β)`). -/
def Tr (Envs : Env W D → Prop) (C : W → Prop) (x : Val W D) : Prop :=
  ∀ Ψ, Envs Ψ → ∀ γ w, C w → Ψ (meet x γ) w = Ψ γ w
LC.lemma2 — LCAbstract.lean:63
theorem lemma2 {Envs : Env W D → Prop} {C : W → Prop} {x y : Val W D}
    (h1 : Tr Envs C x) (h2 : Tr Envs C y) : Tr Envs C (meet x y) := by
  intro Ψ hΨ γ w hw
  rw [meet_assoc, h1 Ψ hΨ _ w hw, h2 Ψ hΨ γ w hw]
LC.thm21 — LCAbstract.lean:236
/-- Theorem 21(i): `Sat' ⇔ Transp`, where `Transp` is `Tr Envs C d`. -/
theorem thm21 {Envs : Env W D → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ) {C : W → Prop}
    (d : Val W D) : SatP Envs C d ↔ Tr Envs C d := by
  constructor
  · rintro ⟨X, hX, hX'⟩
    have hle : cle C X d := hX' X (le_refl X) hX
    intro Ψ hΨ γ w hw
    have h1 := hX Ψ hΨ (meet d γ) w hw
    have h2 := hX Ψ hΨ γ w hw
    rw [← h2, ← h1]
    apply hE Ψ hΨ
    funext e
    have := hle w hw e
    by_cases hx : X w e = true
    · have := this hx; simp [meet, hx, this]
    · have : X w e = false := by simpa using hx
  ...

E9 typo Typos in the appendix (grouped)

Location: Items 2, 5b, 6, 7b, 13-17, 21, 23a, 24, 26, 29, 38b, 39, 41

Paper text
[[ E’E ]] w, s = [[ (E’ and E) ]] w, s = [[ E’]] w, s ∧ [[ E’ ]] w, s
Suggested replacement (Item 5b (Generalized Conjunction))
[[ E’E ]] w, s = [[ (E’ and E) ]] w, s = [[ E’ ]] w, s ∧ [[ E ]] w, s
Paper text
w |= (Qi<P>P'.<Q>Q') iff fi(aw, bw)=1 with aw={d∈D: <Pw(d) = 1 and> P'w(d) = 1 and (<Qw(d) = 0 or> Q'w(d) = 0)}, bw={d∈D: <Pw(d) = 1 and> P'w(d) = 1 and <Qw(d) = 1 and> Q'w(d) = 1}
Suggested replacement (Item 2 (Classical Semantics): the scope predicate is called Q as in item 6, R is used; OPTIONAL, for uniformity with item 6 (examples 23, 38 still write QQ’))
w |= (Qi<P>P'.<R>R') iff fi(aw, bw)=1 with aw={d∈D: <Pw(d) = 1 and> P'w(d) = 1 and (<Rw(d) = 0 or> R'w(d) = 0)}, bw={d∈D: <Pw(d) = 1 and> P'w(d) = 1 and <Rw(d) = 1 and> R'w(d) = 1}
Paper text
for any good final β, C |= α (d and γ) β ⇔ α γ β.
Suggested replacement (Item 7b (Be Brief, incremental version; the same words with β’ occur in 8a and are correct))
for any good final β’, C |= α (d and γ) β’ ⇔ α γ β’.
Paper text
⇔ a’ d’ b’ [because x” ∈ tri(C, d, a_b)]
Suggested replacement (Item 13 (Lemma 2), step 4)
⇔ a d’ b’ [because x” ∈ tri(C, d, a_b)]
Paper text
⇔ a’ d’ b’ [by 1.-4.]
Suggested replacement (Item 13 (Lemma 2), step 5)
⇔ a d’ b’ [by 1.-4.]
Paper text
⇔ a’ d’ b’ [by 5., since c’ and c” don’t appear]
Suggested replacement (Item 13 (Lemma 2), step 6)
⇔ a d’ b’ [by 5., since c’ and c” don’t appear]
Paper text
For every v ∈ {i, g}, if for every w ∈ C, lcv({w}, a d, a_b) ≠ #, then lcv(C, d, a_b) ≠ #.
Suggested replacement (Item 15 (Lemma 4), statement (also covers the {i, g} typo of item 14, whose fix is inside the E5 edit for Lemma 3))
For every v ∈ {i, s}, if for every w ∈ C, lcv({w}, d, a_b) ≠ #, then lcv(C, d, a_b) ≠ #.
Paper text
a. If a dd b belongs to the propositional fragment,
Suggested replacement (Item 16(a))
a. If a E b belongs to the propositional fragment,
Paper text
if for all expressions a, b, ee’ such that F = a ee’ b, lcv(C, dd’, a_b) ≠ #,
Suggested replacement (Item 17b)
if for all expressions a, b, ee’ such that F = a ee’ b, lcv(C, ee’, a_b) ≠ #,
Paper text

(insert)

Suggested replacement (Item 21(i): Transpv(C, dd’, a_b) is used but never defined in the appendix; add a definition)
c. For any expression dd’ and strings a, b such that a dd’ b is a formula: Transpi(C, dd’, a_b) holds just in case for any expression γ of the same type as d and for any good final b’, C |= a (d and γ) b’ ⇔ a γ b’; Transps(C, dd’, a_b) holds just in case for any expression γ of the same type as d, C |= a (d and γ) b ⇔ a γ b. (So Transpv(C, F) holds iff Transpv(C, dd’, a_b) holds for all dd’, a, b with F = a dd’ b.)
Paper text
obtaining an x’(w) distinct from x(w) with x’(w) ≤ x(w) (and also x ≤ x’).
Suggested replacement (Item 23a (Infinitely Many))
obtaining an x’(w) distinct from x(w) with x’(w) ≤ x(w).
Paper text
if i(p)(w)= 1, i’=(pp’)(w) = i(pp’)(w).
Suggested replacement (Item 24, clause 2)
if i(p)(w)= 1, i’(pp’)(w) = i(pp’)(w).
Paper text
just in case for any world w ∈ C, Super(α dd’β, w) ≠ #.
Suggested replacement (Item 26b (Symmetric Acceptability): α, dd’, β are free; 29b already says Kleene(F, w) and needs no change)
just in case for any world w ∈ C, Super(F, w) ≠ #.
Paper text
It was shown in (35) that Incremental Satisfaction predicts
Suggested replacement (Item 38b)
It was shown in (35) of the main text that Incremental Satisfaction predicts
Paper text
(ii) a. w |= ((pp’ and (q and g)) ⇔ (pp’ and g) [both sides are false because w1 |≠ p and thus w1 |≠ pp’] b. w |= ((p and g) and qq’) ⇔ (g and qq’) [both sides are false because w1 |≠ q and thus w1 |≠ qq’]
Suggested replacement (Item 39a, proof: list the two equivalences in the order of the two triggers (first pp’, then qq’); OPTIONAL)
(ii) a. w |= ((p and g) and qq’) ⇔ (g and qq’) [both sides are false because w1 |≠ q and thus w1 |≠ qq’] b. w |= ((pp’ and (q and g)) ⇔ (pp’ and g) [both sides are false because w1 |≠ p and thus w1 |≠ pp’]
Paper text
i”+j” = i”/(At-At(G)) ∪ j’/At(H)
Suggested replacement (Item 41, Case 3(b), the second line (i”+j”), not the first (i’+j’))
i”+j” = i”/(At-At(G)) ∪ j”/At(H)
What the paper does, and why it fails

Each item is a small slip: a wrong or missing prime, a wrong letter, a wrong cross-reference, a missing definition, or a formula with free variables. Each is spelled out in the ‘where’ field of the corresponding edit. Two of them are more than notation: 21(i) uses Transpv(C, dd’, a_b), which is only defined for whole formulas, and 26b uses α, dd’, β without quantifying over them.

What the change does

Each edit restores what the surrounding argument clearly needs (e.g. step 6 of Lemma 2 must conclude a d’ b’ ⇔ a d’ b’ with the same a; 23a only needs x’ ≤ x, since x’ is x minus one element).

Anything else affected?No other change: all edits are notational and do not affect any statement or proof they occur in; the definition added for 21(i) is used only there. Also affects: the Item 14 typo is fixed inside the E5 edit; do not apply it twice.

Judgment call: the wording of this replacement is ours and not checked in Lean. The Q/R renaming in item 2 and the reordering in 39a are optional; the paper’s own examples use QQ’ for the scope predicate. The added definition for 21(i) is our wording, modelled on 8a/8b.

corrected statement

Lemma 3

Paper: 14, p.42 PDF p.4

Paper textLemma 3: Finite Sets For every v ∈ {i, g}, if trv(C, d, a_b) is finite, lcv(C, d, a_b) ≠ #.

StatementIf tr_v is finite, lc_v != #

Lean statementLC.lemma3 (hfin : exists L, forall x, Tr Envs C x -> x in L) : exists x, IsLC Envs C x (uses top in tr, unstated in paper)

Lean: LCAbstract.lean:92 · proven

LCAbstract.lean:92 — lines 92–99 · open file
theorem lemma3 {Envs : Env W D → Prop} {C : W → Prop}
    (hfin : ∃ L : List (Val W D), ∀ x, Tr Envs C x → x ∈ L) :
    ∃ x, IsLC Envs C x := by
  obtain ⟨L, hL⟩ := hfin
  obtain ⟨b, hb, hbL⟩ := fold_bottom (α := Val W D) meet top (Tr Envs C) le
    (tr_top Envs C) (fun _ _ h1 h2 => lemma2 h1 h2) le_meet_left le_meet_right
    (fun _ _ _ => le_trans) L
  exact ⟨b, hb, fun y hy => hbL y (hL y hy) hy⟩

E5 proof gap Lemma 3 needs the (unstated) fact that tr is non-empty; the finiteness argument in 16(b) only works up to the value at w

Location: Item 14 (Lemma 3) and item 16(b), p. 42 PDF p.4

Paper text
For every v ∈ {i, g}, if trv(C, d, a_b) is finite, lcv(C, d, a_b) ≠ #. Proof: Immediate from 13.
Suggested replacement (Item 14, Lemma 3 (also corrects the typo {i, g} to {i, s}))
For every v ∈ {i, s}, if trv(C, d, a_b) is finite, lcv(C, d, a_b) ≠ #. Proof: trv(C, d, a_b) is not empty, since it contains λw. 1 (restricting c’ to a value that is true everywhere changes nothing). By 13, the conjunction of the finitely many elements of trv(C, d, a_b) belongs to trv(C, d, a_b), and it entails each of them: it is the bottom element.
Paper text
there are only finitely many functions of type τ with Ds = {w}23. It follows that trv({w}, E, a_b) is finite. By Lemma 3 [14], we construct lcv({w}, E, a_b) for every w ∈ C.
Suggested replacement (Item 16(b), proof)
there are only finitely many functions of type τ with Ds = {w}23. Whether an object belongs to trv({w}, E, a_b) depends only on its value at w. It follows that trv({w}, E, a_b) is finite once objects with the same value at w are identified. By Lemma 3 [14], applied to these values, we construct lcv({w}, E, a_b) (as far as its value at w is concerned) for every w ∈ C.
What the paper does, and why it fails

(1) Lemma 3 says ‘if tr is finite then lc exists’ and calls this immediate from Lemma 2, but a bottom element also requires tr to be non-empty; this is true (λw. 1 is in tr) but never said. (2) In 16(b), tr({w}, E, a_b) is said to be finite because there are finitely many functions with Ds = {w}, but the objects in tr are intensions defined on all of W, so tr is infinite whenever W is; only their values at w are finitely many.

What the change does

Lemma 3 now records why tr is non-empty and why the conjunction is the bottom element. In 16(b), finiteness is claimed only for the values at w, which is all that Lemma 4 uses when it builds lc world by world.

Anything else affected?Also affects: Theorem 22(i), which cites 16(b), inherits this repair. The abstract version of 16(b) is proved in Lean (LC.existence, with finiteness of D → Bool as hypothesis); it is not formalized for the full language L.

Judgment call: the wording of this replacement is ours and not checked in Lean. The exact wording of the ‘identified up to the value at w’ repair is mine; the Lean statement takes finiteness of D → Bool as a hypothesis.

Lean evidence
LC.lemma3 — LCAbstract.lean:92
theorem lemma3 {Envs : Env W D → Prop} {C : W → Prop}
    (hfin : ∃ L : List (Val W D), ∀ x, Tr Envs C x → x ∈ L) :
    ∃ x, IsLC Envs C x := by
  obtain ⟨L, hL⟩ := hfin
  obtain ⟨b, hb, hbL⟩ := fold_bottom (α := Val W D) meet top (Tr Envs C) le
    (tr_top Envs C) (fun _ _ h1 h2 => lemma2 h1 h2) le_meet_left le_meet_right
    (fun _ _ _ => le_trans) L
  exact ⟨b, hb, fun y hy => hbL y (hL y hy) hy⟩
LC.existence — LCAbstract.lean:202
theorem existence {Envs : Env W D → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ)
    (hD : ∃ L : List (D → Bool), ∀ s, s ∈ L) (C : W → Prop) :
    ∃ x, IsLC Envs C x := by
  obtain ⟨L, hL⟩ := hD
  apply lemma4 hE
  intro w _
  obtain ⟨s, hs, hmin⟩ := fold_bottom (α := D → Bool) (fun a b d => a d && b d) (fun _ => true)
    (fun s => Tr Envs (fun v => v = w) (fun _ => s)) (fun a b => ∀ d, a d = true → b d = true)
    (tr_top Envs (fun v => v = w))
    (by
      intro a b ha hb
      exact lemma2 ha hb)
    (by intro a b d h; simp at h; exact h.1)
    (by intro a b d h; simp at h; exact h.2)
    (by intro a b c h1 h2 d h; exact h2 d (h1 d h)) L
  refine ⟨s, hs, ?_⟩
  ...
LC.lemma4 — LCAbstract.lean:167
theorem lemma4 {Envs : Env W D → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ) {C : W → Prop}
    (hloc : ∀ w, C w → ∃ s : D → Bool,
      Tr Envs (fun v => v = w) (fun _ => s) ∧
      ∀ y, Tr Envs (fun v => v = w) y → ∀ d, s d = true → y w d = true) :
    ∃ x, IsLC Envs C x := by
  classical
  have hex : ∀ w, ∃ s : D → Bool, C w → (Tr Envs (fun v => v = w) (fun _ => s) ∧
      ∀ y, Tr Envs (fun v => v = w) y → ∀ d, s d = true → y w d = true) := by
    intro w
    by_cases h : C w
    · obtain ⟨s, hs⟩ := hloc w h
      exact ⟨s, fun _ => hs⟩
    · exact ⟨fun _ => false, fun h' => absurd h' h⟩
  let f : W → D → Bool := fun w => Classical.choose (hex w)
  have hf : ∀ w, C w → (Tr Envs (fun v => v = w) (fun _ => f w) ∧
      ∀ y, Tr Envs (fun v => v = w) y → ∀ d, f w d = true → y w d = true) :=
  ...

E9 typo Typos in the appendix (grouped)

Location: Items 2, 5b, 6, 7b, 13-17, 21, 23a, 24, 26, 29, 38b, 39, 41

Paper text
[[ E’E ]] w, s = [[ (E’ and E) ]] w, s = [[ E’]] w, s ∧ [[ E’ ]] w, s
Suggested replacement (Item 5b (Generalized Conjunction))
[[ E’E ]] w, s = [[ (E’ and E) ]] w, s = [[ E’ ]] w, s ∧ [[ E ]] w, s
Paper text
w |= (Qi<P>P'.<Q>Q') iff fi(aw, bw)=1 with aw={d∈D: <Pw(d) = 1 and> P'w(d) = 1 and (<Qw(d) = 0 or> Q'w(d) = 0)}, bw={d∈D: <Pw(d) = 1 and> P'w(d) = 1 and <Qw(d) = 1 and> Q'w(d) = 1}
Suggested replacement (Item 2 (Classical Semantics): the scope predicate is called Q as in item 6, R is used; OPTIONAL, for uniformity with item 6 (examples 23, 38 still write QQ’))
w |= (Qi<P>P'.<R>R') iff fi(aw, bw)=1 with aw={d∈D: <Pw(d) = 1 and> P'w(d) = 1 and (<Rw(d) = 0 or> R'w(d) = 0)}, bw={d∈D: <Pw(d) = 1 and> P'w(d) = 1 and <Rw(d) = 1 and> R'w(d) = 1}
Paper text
for any good final β, C |= α (d and γ) β ⇔ α γ β.
Suggested replacement (Item 7b (Be Brief, incremental version; the same words with β’ occur in 8a and are correct))
for any good final β’, C |= α (d and γ) β’ ⇔ α γ β’.
Paper text
⇔ a’ d’ b’ [because x” ∈ tri(C, d, a_b)]
Suggested replacement (Item 13 (Lemma 2), step 4)
⇔ a d’ b’ [because x” ∈ tri(C, d, a_b)]
Paper text
⇔ a’ d’ b’ [by 1.-4.]
Suggested replacement (Item 13 (Lemma 2), step 5)
⇔ a d’ b’ [by 1.-4.]
Paper text
⇔ a’ d’ b’ [by 5., since c’ and c” don’t appear]
Suggested replacement (Item 13 (Lemma 2), step 6)
⇔ a d’ b’ [by 5., since c’ and c” don’t appear]
Paper text
For every v ∈ {i, g}, if for every w ∈ C, lcv({w}, a d, a_b) ≠ #, then lcv(C, d, a_b) ≠ #.
Suggested replacement (Item 15 (Lemma 4), statement (also covers the {i, g} typo of item 14, whose fix is inside the E5 edit for Lemma 3))
For every v ∈ {i, s}, if for every w ∈ C, lcv({w}, d, a_b) ≠ #, then lcv(C, d, a_b) ≠ #.
Paper text
a. If a dd b belongs to the propositional fragment,
Suggested replacement (Item 16(a))
a. If a E b belongs to the propositional fragment,
Paper text
if for all expressions a, b, ee’ such that F = a ee’ b, lcv(C, dd’, a_b) ≠ #,
Suggested replacement (Item 17b)
if for all expressions a, b, ee’ such that F = a ee’ b, lcv(C, ee’, a_b) ≠ #,
Paper text

(insert)

Suggested replacement (Item 21(i): Transpv(C, dd’, a_b) is used but never defined in the appendix; add a definition)
c. For any expression dd’ and strings a, b such that a dd’ b is a formula: Transpi(C, dd’, a_b) holds just in case for any expression γ of the same type as d and for any good final b’, C |= a (d and γ) b’ ⇔ a γ b’; Transps(C, dd’, a_b) holds just in case for any expression γ of the same type as d, C |= a (d and γ) b ⇔ a γ b. (So Transpv(C, F) holds iff Transpv(C, dd’, a_b) holds for all dd’, a, b with F = a dd’ b.)
Paper text
obtaining an x’(w) distinct from x(w) with x’(w) ≤ x(w) (and also x ≤ x’).
Suggested replacement (Item 23a (Infinitely Many))
obtaining an x’(w) distinct from x(w) with x’(w) ≤ x(w).
Paper text
if i(p)(w)= 1, i’=(pp’)(w) = i(pp’)(w).
Suggested replacement (Item 24, clause 2)
if i(p)(w)= 1, i’(pp’)(w) = i(pp’)(w).
Paper text
just in case for any world w ∈ C, Super(α dd’β, w) ≠ #.
Suggested replacement (Item 26b (Symmetric Acceptability): α, dd’, β are free; 29b already says Kleene(F, w) and needs no change)
just in case for any world w ∈ C, Super(F, w) ≠ #.
Paper text
It was shown in (35) that Incremental Satisfaction predicts
Suggested replacement (Item 38b)
It was shown in (35) of the main text that Incremental Satisfaction predicts
Paper text
(ii) a. w |= ((pp’ and (q and g)) ⇔ (pp’ and g) [both sides are false because w1 |≠ p and thus w1 |≠ pp’] b. w |= ((p and g) and qq’) ⇔ (g and qq’) [both sides are false because w1 |≠ q and thus w1 |≠ qq’]
Suggested replacement (Item 39a, proof: list the two equivalences in the order of the two triggers (first pp’, then qq’); OPTIONAL)
(ii) a. w |= ((p and g) and qq’) ⇔ (g and qq’) [both sides are false because w1 |≠ q and thus w1 |≠ qq’] b. w |= ((pp’ and (q and g)) ⇔ (pp’ and g) [both sides are false because w1 |≠ p and thus w1 |≠ pp’]
Paper text
i”+j” = i”/(At-At(G)) ∪ j’/At(H)
Suggested replacement (Item 41, Case 3(b), the second line (i”+j”), not the first (i’+j’))
i”+j” = i”/(At-At(G)) ∪ j”/At(H)
What the paper does, and why it fails

Each item is a small slip: a wrong or missing prime, a wrong letter, a wrong cross-reference, a missing definition, or a formula with free variables. Each is spelled out in the ‘where’ field of the corresponding edit. Two of them are more than notation: 21(i) uses Transpv(C, dd’, a_b), which is only defined for whole formulas, and 26b uses α, dd’, β without quantifying over them.

What the change does

Each edit restores what the surrounding argument clearly needs (e.g. step 6 of Lemma 2 must conclude a d’ b’ ⇔ a d’ b’ with the same a; 23a only needs x’ ≤ x, since x’ is x minus one element).

Anything else affected?No other change: all edits are notational and do not affect any statement or proof they occur in; the definition added for 21(i) is used only there. Also affects: the Item 14 typo is fixed inside the E5 edit; do not apply it twice.

Judgment call: the wording of this replacement is ours and not checked in Lean. The Q/R renaming in item 2 and the reordering in 39a are optional; the paper’s own examples use QQ’ for the scope predicate. The added definition for 21(i) is our wording, modelled on 8a/8b.

confirmed (typo)

Lemma 4

Paper: 15, p.42 PDF p.4

Paper textLemma 4: Point-wise Construction of Local Contexts (This lemma crucially relies on the extensionality of the fragment) For every v ∈ {i, g}, if for every w ∈ C, lcv({w}, a d, a_b) ≠ #, then lcv(C, d, a_b) ≠ #.

StatementIf lc_v({w}, ..) exists for all w in C, lc_v(C, ..) exists (pointwise construction; extensionality)

Lean statementLC.lemma4 (hyp.: for each w in C a local bottom s : D -> Bool of tr({w}))

Lean: LCAbstract.lean:167 · proven

LCAbstract.lean:167 — lines 167–190 · open file
theorem lemma4 {Envs : Env W D → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ) {C : W → Prop}
    (hloc : ∀ w, C w → ∃ s : D → Bool,
      Tr Envs (fun v => v = w) (fun _ => s) ∧
      ∀ y, Tr Envs (fun v => v = w) y → ∀ d, s d = true → y w d = true) :
    ∃ x, IsLC Envs C x := by
  classical
  have hex : ∀ w, ∃ s : D → Bool, C w → (Tr Envs (fun v => v = w) (fun _ => s) ∧
      ∀ y, Tr Envs (fun v => v = w) y → ∀ d, s d = true → y w d = true) := by
    intro w
    by_cases h : C w
    · obtain ⟨s, hs⟩ := hloc w h
      exact ⟨s, fun _ => hs⟩
    · exact ⟨fun _ => false, fun h' => absurd h' h⟩
  let f : W → D → Bool := fun w => Classical.choose (hex w)
  have hf : ∀ w, C w → (Tr Envs (fun v => v = w) (fun _ => f w) ∧
      ∀ y, Tr Envs (fun v => v = w) y → ∀ d, f w d = true → y w d = true) :=
    fun w => Classical.choose_spec (hex w)
  let x : Val W D := fun w d => if C w then f w d else false
  refine ⟨x, ?_, ?_⟩
  · intro Ψ hΨ γ w hw
    have h1 := (hf w hw).1 Ψ hΨ γ w rfl
    rw [← h1]
    apply hE Ψ hΨ
    funext d
  ...

Minor typo: typo in item 15: lc_v({w}, a d, a_b)

E9 typo Typos in the appendix (grouped) (details above)

corrected proof

Existence thm

Paper: 16a, p.42 PDF p.4

Paper textExistence Theorem: Existence of Local Contexts Let C ⊆ W be a context set and let a E b be any formula. a. If a dd b belongs to the propositional fragment, then for every v ∈ {i, s}, lcv(C, E, a_b) ≠ #.

StatementPropositional fragment: local contexts exist

Lean statementlc_exists_prop_i/s (I K C) : exists x, IsLC (EnvI/EnvS I K) C x

Lean: PropTheory.lean:404, PropTheory.lean:406 · proven (via corrected Lemma 1)

PropTheory.lean:404 — lines 403–405 · open file
/-- Lemma 1 / Existence theorem 16(a): local contexts exist in the propositional fragment. -/
theorem lc_exists_prop_i (I : Nat → W → Bool) (K : List Frame) (C : W → Prop) :
    ∃ x, LC.IsLC (EnvI I K) C x := ⟨_, LC.lemma1 (envI_ext I K) C⟩
PropTheory.lean:406 — lines 406–407 · open file
theorem lc_exists_prop_s (I : Nat → W → Bool) (K : List Frame) (C : W → Prop) :
    ∃ x, LC.IsLC (EnvS I K) C x := ⟨_, LC.lemma1 (envS_ext I K) C⟩

E9 typo Typos in the appendix (grouped)

Location: Items 2, 5b, 6, 7b, 13-17, 21, 23a, 24, 26, 29, 38b, 39, 41

Paper text
[[ E’E ]] w, s = [[ (E’ and E) ]] w, s = [[ E’]] w, s ∧ [[ E’ ]] w, s
Suggested replacement (Item 5b (Generalized Conjunction))
[[ E’E ]] w, s = [[ (E’ and E) ]] w, s = [[ E’ ]] w, s ∧ [[ E ]] w, s
Paper text
w |= (Qi<P>P'.<Q>Q') iff fi(aw, bw)=1 with aw={d∈D: <Pw(d) = 1 and> P'w(d) = 1 and (<Qw(d) = 0 or> Q'w(d) = 0)}, bw={d∈D: <Pw(d) = 1 and> P'w(d) = 1 and <Qw(d) = 1 and> Q'w(d) = 1}
Suggested replacement (Item 2 (Classical Semantics): the scope predicate is called Q as in item 6, R is used; OPTIONAL, for uniformity with item 6 (examples 23, 38 still write QQ’))
w |= (Qi<P>P'.<R>R') iff fi(aw, bw)=1 with aw={d∈D: <Pw(d) = 1 and> P'w(d) = 1 and (<Rw(d) = 0 or> R'w(d) = 0)}, bw={d∈D: <Pw(d) = 1 and> P'w(d) = 1 and <Rw(d) = 1 and> R'w(d) = 1}
Paper text
for any good final β, C |= α (d and γ) β ⇔ α γ β.
Suggested replacement (Item 7b (Be Brief, incremental version; the same words with β’ occur in 8a and are correct))
for any good final β’, C |= α (d and γ) β’ ⇔ α γ β’.
Paper text
⇔ a’ d’ b’ [because x” ∈ tri(C, d, a_b)]
Suggested replacement (Item 13 (Lemma 2), step 4)
⇔ a d’ b’ [because x” ∈ tri(C, d, a_b)]
Paper text
⇔ a’ d’ b’ [by 1.-4.]
Suggested replacement (Item 13 (Lemma 2), step 5)
⇔ a d’ b’ [by 1.-4.]
Paper text
⇔ a’ d’ b’ [by 5., since c’ and c” don’t appear]
Suggested replacement (Item 13 (Lemma 2), step 6)
⇔ a d’ b’ [by 5., since c’ and c” don’t appear]
Paper text
For every v ∈ {i, g}, if for every w ∈ C, lcv({w}, a d, a_b) ≠ #, then lcv(C, d, a_b) ≠ #.
Suggested replacement (Item 15 (Lemma 4), statement (also covers the {i, g} typo of item 14, whose fix is inside the E5 edit for Lemma 3))
For every v ∈ {i, s}, if for every w ∈ C, lcv({w}, d, a_b) ≠ #, then lcv(C, d, a_b) ≠ #.
Paper text
a. If a dd b belongs to the propositional fragment,
Suggested replacement (Item 16(a))
a. If a E b belongs to the propositional fragment,
Paper text
if for all expressions a, b, ee’ such that F = a ee’ b, lcv(C, dd’, a_b) ≠ #,
Suggested replacement (Item 17b)
if for all expressions a, b, ee’ such that F = a ee’ b, lcv(C, ee’, a_b) ≠ #,
Paper text

(insert)

Suggested replacement (Item 21(i): Transpv(C, dd’, a_b) is used but never defined in the appendix; add a definition)
c. For any expression dd’ and strings a, b such that a dd’ b is a formula: Transpi(C, dd’, a_b) holds just in case for any expression γ of the same type as d and for any good final b’, C |= a (d and γ) b’ ⇔ a γ b’; Transps(C, dd’, a_b) holds just in case for any expression γ of the same type as d, C |= a (d and γ) b ⇔ a γ b. (So Transpv(C, F) holds iff Transpv(C, dd’, a_b) holds for all dd’, a, b with F = a dd’ b.)
Paper text
obtaining an x’(w) distinct from x(w) with x’(w) ≤ x(w) (and also x ≤ x’).
Suggested replacement (Item 23a (Infinitely Many))
obtaining an x’(w) distinct from x(w) with x’(w) ≤ x(w).
Paper text
if i(p)(w)= 1, i’=(pp’)(w) = i(pp’)(w).
Suggested replacement (Item 24, clause 2)
if i(p)(w)= 1, i’(pp’)(w) = i(pp’)(w).
Paper text
just in case for any world w ∈ C, Super(α dd’β, w) ≠ #.
Suggested replacement (Item 26b (Symmetric Acceptability): α, dd’, β are free; 29b already says Kleene(F, w) and needs no change)
just in case for any world w ∈ C, Super(F, w) ≠ #.
Paper text
It was shown in (35) that Incremental Satisfaction predicts
Suggested replacement (Item 38b)
It was shown in (35) of the main text that Incremental Satisfaction predicts
Paper text
(ii) a. w |= ((pp’ and (q and g)) ⇔ (pp’ and g) [both sides are false because w1 |≠ p and thus w1 |≠ pp’] b. w |= ((p and g) and qq’) ⇔ (g and qq’) [both sides are false because w1 |≠ q and thus w1 |≠ qq’]
Suggested replacement (Item 39a, proof: list the two equivalences in the order of the two triggers (first pp’, then qq’); OPTIONAL)
(ii) a. w |= ((p and g) and qq’) ⇔ (g and qq’) [both sides are false because w1 |≠ q and thus w1 |≠ qq’] b. w |= ((pp’ and (q and g)) ⇔ (pp’ and g) [both sides are false because w1 |≠ p and thus w1 |≠ pp’]
Paper text
i”+j” = i”/(At-At(G)) ∪ j’/At(H)
Suggested replacement (Item 41, Case 3(b), the second line (i”+j”), not the first (i’+j’))
i”+j” = i”/(At-At(G)) ∪ j”/At(H)
What the paper does, and why it fails

Each item is a small slip: a wrong or missing prime, a wrong letter, a wrong cross-reference, a missing definition, or a formula with free variables. Each is spelled out in the ‘where’ field of the corresponding edit. Two of them are more than notation: 21(i) uses Transpv(C, dd’, a_b), which is only defined for whole formulas, and 26b uses α, dd’, β without quantifying over them.

What the change does

Each edit restores what the surrounding argument clearly needs (e.g. step 6 of Lemma 2 must conclude a d’ b’ ⇔ a d’ b’ with the same a; 23a only needs x’ ≤ x, since x’ is x minus one element).

Anything else affected?No other change: all edits are notational and do not affect any statement or proof they occur in; the definition added for 21(i) is used only there. Also affects: the Item 14 typo is fixed inside the E5 edit; do not apply it twice.

Judgment call: the wording of this replacement is ours and not checked in Lean. The Q/R renaming in item 2 and the reordering in 39a are optional; the paper’s own examples use QQ’ for the scope predicate. The added definition for 21(i) is our wording, modelled on 8a/8b.

corrected statement

Existence thm

Paper: 16b, p.42 PDF p.4

Paper textLet C ⊆ W be a context set and let a E b be any formula. [...] b. If for every w ∈ C, the domain of individuals in w is of finite size, then for every v ∈ {i, s}, lcv(C, E, a_b) ≠ #.

StatementFinite domains: local contexts exist

Lean statementLC.existence (hE) (hD : exists L, forall s : D -> Bool, s in L) C : exists x, IsLC Envs C x (abstract environments over any W, finite D -> Bool)

Lean: LCAbstract.lean:202 · proven for the abstract framework; not formalized for the full language L (no syntax of quantifiers)

LCAbstract.lean:202 — lines 202–225 · open file
theorem existence {Envs : Env W D → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ)
    (hD : ∃ L : List (D → Bool), ∀ s, s ∈ L) (C : W → Prop) :
    ∃ x, IsLC Envs C x := by
  obtain ⟨L, hL⟩ := hD
  apply lemma4 hE
  intro w _
  obtain ⟨s, hs, hmin⟩ := fold_bottom (α := D → Bool) (fun a b d => a d && b d) (fun _ => true)
    (fun s => Tr Envs (fun v => v = w) (fun _ => s)) (fun a b => ∀ d, a d = true → b d = true)
    (tr_top Envs (fun v => v = w))
    (by
      intro a b ha hb
      exact lemma2 ha hb)
    (by intro a b d h; simp at h; exact h.1)
    (by intro a b d h; simp at h; exact h.2)
    (by intro a b c h1 h2 d h; exact h2 d (h1 d h)) L
  refine ⟨s, hs, ?_⟩
  intro y hy d hd
  have hyc : Tr Envs (fun v => v = w) (fun _ => y w) := by
    intro Ψ hΨ γ v hv
    subst hv
    rw [← hy Ψ hΨ γ v rfl]
    apply hE Ψ hΨ
    funext d'; simp [meet]
  exact hmin (y w) (hL _) hyc d hd

E5 proof gap Lemma 3 needs the (unstated) fact that tr is non-empty; the finiteness argument in 16(b) only works up to the value at w

Location: Item 14 (Lemma 3) and item 16(b), p. 42 PDF p.4

Paper text
For every v ∈ {i, g}, if trv(C, d, a_b) is finite, lcv(C, d, a_b) ≠ #. Proof: Immediate from 13.
Suggested replacement (Item 14, Lemma 3 (also corrects the typo {i, g} to {i, s}))
For every v ∈ {i, s}, if trv(C, d, a_b) is finite, lcv(C, d, a_b) ≠ #. Proof: trv(C, d, a_b) is not empty, since it contains λw. 1 (restricting c’ to a value that is true everywhere changes nothing). By 13, the conjunction of the finitely many elements of trv(C, d, a_b) belongs to trv(C, d, a_b), and it entails each of them: it is the bottom element.
Paper text
there are only finitely many functions of type τ with Ds = {w}23. It follows that trv({w}, E, a_b) is finite. By Lemma 3 [14], we construct lcv({w}, E, a_b) for every w ∈ C.
Suggested replacement (Item 16(b), proof)
there are only finitely many functions of type τ with Ds = {w}23. Whether an object belongs to trv({w}, E, a_b) depends only on its value at w. It follows that trv({w}, E, a_b) is finite once objects with the same value at w are identified. By Lemma 3 [14], applied to these values, we construct lcv({w}, E, a_b) (as far as its value at w is concerned) for every w ∈ C.
What the paper does, and why it fails

(1) Lemma 3 says ‘if tr is finite then lc exists’ and calls this immediate from Lemma 2, but a bottom element also requires tr to be non-empty; this is true (λw. 1 is in tr) but never said. (2) In 16(b), tr({w}, E, a_b) is said to be finite because there are finitely many functions with Ds = {w}, but the objects in tr are intensions defined on all of W, so tr is infinite whenever W is; only their values at w are finitely many.

What the change does

Lemma 3 now records why tr is non-empty and why the conjunction is the bottom element. In 16(b), finiteness is claimed only for the values at w, which is all that Lemma 4 uses when it builds lc world by world.

Anything else affected?Also affects: Theorem 22(i), which cites 16(b), inherits this repair. The abstract version of 16(b) is proved in Lean (LC.existence, with finiteness of D → Bool as hypothesis); it is not formalized for the full language L.

Judgment call: the wording of this replacement is ours and not checked in Lean. The exact wording of the ‘identified up to the value at w’ repair is mine; the Lean statement takes finiteness of D → Bool as a hypothesis.

Lean evidence
LC.lemma3 — LCAbstract.lean:92
theorem lemma3 {Envs : Env W D → Prop} {C : W → Prop}
    (hfin : ∃ L : List (Val W D), ∀ x, Tr Envs C x → x ∈ L) :
    ∃ x, IsLC Envs C x := by
  obtain ⟨L, hL⟩ := hfin
  obtain ⟨b, hb, hbL⟩ := fold_bottom (α := Val W D) meet top (Tr Envs C) le
    (tr_top Envs C) (fun _ _ h1 h2 => lemma2 h1 h2) le_meet_left le_meet_right
    (fun _ _ _ => le_trans) L
  exact ⟨b, hb, fun y hy => hbL y (hL y hy) hy⟩
LC.existence — LCAbstract.lean:202
theorem existence {Envs : Env W D → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ)
    (hD : ∃ L : List (D → Bool), ∀ s, s ∈ L) (C : W → Prop) :
    ∃ x, IsLC Envs C x := by
  obtain ⟨L, hL⟩ := hD
  apply lemma4 hE
  intro w _
  obtain ⟨s, hs, hmin⟩ := fold_bottom (α := D → Bool) (fun a b d => a d && b d) (fun _ => true)
    (fun s => Tr Envs (fun v => v = w) (fun _ => s)) (fun a b => ∀ d, a d = true → b d = true)
    (tr_top Envs (fun v => v = w))
    (by
      intro a b ha hb
      exact lemma2 ha hb)
    (by intro a b d h; simp at h; exact h.1)
    (by intro a b d h; simp at h; exact h.2)
    (by intro a b c h1 h2 d h; exact h2 d (h1 d h)) L
  refine ⟨s, hs, ?_⟩
  ...
LC.lemma4 — LCAbstract.lean:167
theorem lemma4 {Envs : Env W D → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ) {C : W → Prop}
    (hloc : ∀ w, C w → ∃ s : D → Bool,
      Tr Envs (fun v => v = w) (fun _ => s) ∧
      ∀ y, Tr Envs (fun v => v = w) y → ∀ d, s d = true → y w d = true) :
    ∃ x, IsLC Envs C x := by
  classical
  have hex : ∀ w, ∃ s : D → Bool, C w → (Tr Envs (fun v => v = w) (fun _ => s) ∧
      ∀ y, Tr Envs (fun v => v = w) y → ∀ d, s d = true → y w d = true) := by
    intro w
    by_cases h : C w
    · obtain ⟨s, hs⟩ := hloc w h
      exact ⟨s, fun _ => hs⟩
    · exact ⟨fun _ => false, fun h' => absurd h' h⟩
  let f : W → D → Bool := fun w => Classical.choose (hex w)
  have hf : ∀ w, C w → (Tr Envs (fun v => v = w) (fun _ => f w) ∧
      ∀ y, Tr Envs (fun v => v = w) y → ∀ d, f w d = true → y w d = true) :=
  ...
corrected proof

Lemma 5

Paper: 19, p.42-43 PDF p.4

Paper textLemma 5: when local contexts exist, 18 and 17 are equivalent. For every v ∈ {i, s}, if lcv(C, dd’, a_b) ≠ #, Satv(C, dd’, a_b) iff Sat’v(C, dd’, a_b)

StatementIf lc_v exists: Sat_v iff Sat'_v

Lean statementLC.lemma5 (hx : IsLC Envs C x) d : SatLC x d <-> SatP Envs C d; prop. fragment: lemma5_prop_i : SatI I C F <-> SatI' I C F

Lean: LCAbstract.lean:258, PropTheory.lean:427 · proven

LCAbstract.lean:258 — lines 257–266 · open file
/-- Lemma 5: when the local context `x` exists, `Sat ⇔ Sat'`. -/
theorem lemma5 {Envs : Env W D → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ) {C : W → Prop}
    {x : Val W D} (hx : IsLC Envs C x) (d : Val W D) : SatLC x d ↔ SatP Envs C d := by
  constructor
  · intro h
    refine ⟨x, hx.1, ?_⟩
    intro X' hle _ w _ e hX'
    exact h w e (hle w e hX')
  · intro h
    exact hx.2 d ((thm21 hE d).mp h)
PropTheory.lean:427 — lines 426–435 · open file
/-- Lemma 5 (propositional fragment): `Sat ⇔ Sat'` -/
theorem lemma5_prop_i (I : Nat → W → Bool) (C : W → Prop) (F : Form) (hE : Expressive I) :
    SatI I C F ↔ SatI' I C F := by
  constructor
  · rintro H t ht
    obtain ⟨x, hx, hle⟩ := H t ht
    exact (LC.lemma5 (envI_ext I t.1) hx _).mp hle
  · intro H t ht
    obtain ⟨x, hx⟩ := lc_exists_prop_i I t.1 C
    exact ⟨x, hx, (LC.lemma5 (envI_ext I t.1) hx _).mpr (H t ht)⟩

E6 proof gap Proof of Lemma 5: justify the step ‘lc ≤ C’

Location: Def. 18 and proof of Lemma 5 (item 19), p. 42-43 PDF p.4

Paper text
By the definition trv(C, dd’, a_b) and lcv(C, dd’, a_b), it must be the case that lcv(C, dd’, a_b) ≤ C. Therefore lcv(C, dd’, a_b) ≤ d.
Suggested replacement
The context set C itself belongs to trv(C, dd’, a_b) (restricting c’ to C is innocuous within C), and lcv(C, dd’, a_b) is the bottom element of trv(C, dd’, a_b); hence lcv(C, dd’, a_b) ≤ C. Together with C |=^(c’→lcv(C, dd’, a_b)) c’ ≤ d, this gives lcv(C, dd’, a_b) ≤ d.

Further edits

Paper text
for some X ∈ trv(C, dd’, a_b), for every X’, if [X’ ≤ X and X’ ∈ trv(C, dd’, a_b)], then C |=^(c’→X’) c’ ≤ d
Suggested replacement (Definition 18a (OPTIONAL simplification; if adopted, the two sentences of the proof of Lemma 5 that restate 18a must be shortened in the same way))
for some X ∈ trv(C, dd’, a_b), C |=^(c’→X) c’ ≤ d
What the paper does, and why it fails

The proof simply asserts that lcv ≤ C ‘by the definition’ of tr and lc, without saying why. Here ≤ is entailment between context sets as functions on all worlds, while what we know from 18 is only that lcv entails d on the worlds of C. Also, Definition 18a has a redundant clause (‘for every X’ ≤ X in tr’), which mixes the global order ≤ with the C-relative order.

What the change does

The step is now justified: C is one of the transparent restrictions, so the bottom element lies below it. Then ‘lcv ≤ d on C’ and ‘lcv ≤ C’ give ‘lcv ≤ d’ on all worlds. The optional change to 18a removes the redundant clause without changing what Sat’ means.

Anything else affected?No other change: Lemma 5 stays true (proved in Lean as LC.lemma5), and Theorems 21 and 22 use it unchanged.

Text note: Wording is verbatim; symbols lost in the text extraction (⊨, ⊭, ⇔, superscripts, underlining, Greek letters, primes) were restored from the PDF.

Judgment call: the wording of this replacement is ours and not checked in Lean. The justification ‘C ∈ tr’ is our reconstruction; the Lean proof of LC.lemma5 is organised differently.

Lean evidence
LC.lemma5 — LCAbstract.lean:258
/-- Lemma 5: when the local context `x` exists, `Sat ⇔ Sat'`. -/
theorem lemma5 {Envs : Env W D → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ) {C : W → Prop}
    {x : Val W D} (hx : IsLC Envs C x) (d : Val W D) : SatLC x d ↔ SatP Envs C d := by
  constructor
  · intro h
    refine ⟨x, hx.1, ?_⟩
    intro X' hle _ w _ e hX'
    exact h w e (hle w e hX')
  · intro h
    exact hx.2 d ((thm21 hE d).mp h)
lemma5_prop_i — PropTheory.lean:427
/-- Lemma 5 (propositional fragment): `Sat ⇔ Sat'` -/
theorem lemma5_prop_i (I : Nat → W → Bool) (C : W → Prop) (F : Form) (hE : Expressive I) :
    SatI I C F ↔ SatI' I C F := by
  constructor
  · rintro H t ht
    obtain ⟨x, hx, hle⟩ := H t ht
    exact (LC.lemma5 (envI_ext I t.1) hx _).mp hle
  · intro H t ht
    obtain ⟨x, hx⟩ := lc_exists_prop_i I t.1 C
    exact ⟨x, hx, (LC.lemma5 (envI_ext I t.1) hx _).mpr (H t ht)⟩
confirmed

Theorem 20 a-c

Paper: 20, p.43 PDF p.5

Paper textFor any context set C, for all expressions dd’ and for all strings a, b, a. tri(C, dd’, a_b) ⊆ trs(C, dd’, a_b). Furthermore, if lcs(C, d, a_b) ≠ # and lci(C, d, a_b) ≠ #, b. lcs(C, d, a_b) ≤ lci(C, d, a_b) c. if Sati(C, d, a_b), then Sats(C, d, a_b)

Statementtr_i subset tr_s; lc_s <= lc_i; Sat_i implies Sat_s

Lean statementLC.thm20a, LC.thm20bc; prop.: thm20_prop : SatI I C F -> SatS I C F; also transpI_transpS

Lean: LCAbstract.lean:270, LCAbstract.lean:275, PropTheory.lean:445, PropTheory.lean:84 · proven

LCAbstract.lean:270 — lines 269–272 · open file
/-- 20a : `tr_i ⊆ tr_s` (the symmetric environments are among the incremental ones). -/
theorem thm20a {Es Ei : Env W D → Prop} (h : ∀ Ψ, Es Ψ → Ei Ψ) {C : W → Prop} {x : Val W D}
    (hx : Tr Ei C x) : Tr Es C x :=
  fun Ψ hΨ => hx Ψ (h Ψ hΨ)
LCAbstract.lean:275 — lines 274–278 · open file
/-- 20b/20c : if both local contexts exist, `lc_s ≤ lc_i`, and `Sat_i → Sat_s`. -/
theorem thm20bc {Es Ei : Env W D → Prop} (h : ∀ Ψ, Es Ψ → Ei Ψ) {C : W → Prop}
    {xs xi : Val W D} (hs : IsLC Es C xs) (hi : IsLC Ei C xi) (d : Val W D) :
    le xs xi ∧ (SatLC xi d → SatLC xs d) :=
  ⟨hs.2 xi (thm20a h hi.1), fun H => le_trans (hs.2 xi (thm20a h hi.1)) H⟩
PropTheory.lean:445 — lines 445–450 · open file
theorem thm20_prop (I : Nat → W → Bool) (hE : Expressive I) (C : W → Prop) (F : Form) :
    SatI I C F → SatS I C F := by
  intro H t ht
  obtain ⟨xi, hi, hle⟩ := H t ht
  obtain ⟨xs, hs⟩ := lc_exists_prop_s I t.1 C
  exact ⟨xs, hs, (LC.thm20bc (envS_sub_envI I t.1) hs hi _).2 hle⟩
PropTheory.lean:84 — lines 84–86 · open file
theorem transpI_transpS (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    TranspI I C F → TranspS I C F :=
  fun h t ht γ w hw => h t ht t.1 (forall₂_same_refl _) γ w hw
confirmed (typo)

Theorem 21

Paper: 21, p.43 PDF p.5

Paper textLet C ⊆ W be a context set. Then: (i) For any v ∈ {i, s}, for every formula that has the form a dd’ b, Sat’v(C, dd’, a _ b) iff Transpv(C, dd’, a _ b). (ii) In particular, for any v ∈ {i, s}, for every formula F, Sat’v(C, F) iff Transpv(C, F).

StatementSat'_v(C,dd',a_b) iff Transp_v(C,dd',a_b); hence for formulas

Lean statementLC.thm21 (hE) d : SatP Envs C d <-> Tr Envs C d; prop.: thm21_prop_i/s : SatI' I C F <-> TranspI I C F (given Expressive I), likewise symmetric

Lean: LCAbstract.lean:236, PropTheory.lean:410, PropTheory.lean:418 · proven

LCAbstract.lean:236 — lines 235–255 · open file
/-- Theorem 21(i): `Sat' ⇔ Transp`, where `Transp` is `Tr Envs C d`. -/
theorem thm21 {Envs : Env W D → Prop} (hE : ∀ Ψ, Envs Ψ → Ext Ψ) {C : W → Prop}
    (d : Val W D) : SatP Envs C d ↔ Tr Envs C d := by
  constructor
  · rintro ⟨X, hX, hX'⟩
    have hle : cle C X d := hX' X (le_refl X) hX
    intro Ψ hΨ γ w hw
    have h1 := hX Ψ hΨ (meet d γ) w hw
    have h2 := hX Ψ hΨ γ w hw
    rw [← h2, ← h1]
    apply hE Ψ hΨ
    funext e
    have := hle w hw e
    by_cases hx : X w e = true
    · have := this hx; simp [meet, hx, this]
    · have : X w e = false := by simpa using hx
      simp [meet, this]
  · intro h
    refine ⟨d, h, ?_⟩
    intro X' hle _ w _ e hx
    exact hle w e hx
PropTheory.lean:410 — lines 409–416 · open file
/-- Theorem 21(ii), incremental, propositional fragment. -/
theorem thm21_prop_i (I : Nat → W → Bool) (hE : Expressive I) (C : W → Prop) (F : Form) :
    SatI' I C F ↔ TranspI I C F := by
  constructor
  · intro H t ht K' hK γ w hw
    exact (bridge_i I hE C t.1 t.2.1).mp ((LC.thm21 (envI_ext I t.1) (dval I t.2.1)).mp (H t ht)) K' hK γ w hw
  · intro H t ht
    exact (LC.thm21 (envI_ext I t.1) (dval I t.2.1)).mpr ((bridge_i I hE C t.1 t.2.1).mpr (H t ht))
PropTheory.lean:418 — lines 418–424 · open file
theorem thm21_prop_s (I : Nat → W → Bool) (hE : Expressive I) (C : W → Prop) (F : Form) :
    SatS' I C F ↔ TranspS I C F := by
  constructor
  · intro H t ht γ w hw
    exact (bridge_s I hE C t.1 t.2.1).mp ((LC.thm21 (envS_ext I t.1) (dval I t.2.1)).mp (H t ht)) γ w hw
  · intro H t ht
    exact (LC.thm21 (envS_ext I t.1) (dval I t.2.1)).mpr ((bridge_s I hE C t.1 t.2.1).mpr (H t ht))

Minor typo: Def. 10 constituents gap; Transp_v(C,dd',a_b) undefined in 21(i)

E4 proof gap Definition 10 (and 8): d’ and γ must range over all expressions of the right type, not only constituents of the formula (details above)

E9 typo Typos in the appendix (grouped) (details above)

corrected statement

Theorem 22

Paper: 22, p.43 PDF p.5

Paper textLet C ⊆ W be a context set and F be a formula which satisfy Non-Triviality and Constancy. Then: (i) for all expressions a, b, dd’ , if F = a dd’ b, lci(C, dd’, a _ b) ≠ #. Furthermore, (ii) Sati(C, F) iff Sat’i(C, F) iff C[F] ≠ #.

StatementUnder NT + Constancy: lc exist; Sat_i iff Sat'_i iff C[F] != #

Lean statementprop. fragment, no side conditions: thm22_prop : (SatI I C F <-> SatI' I C F) /\ (SatI' I C F <-> dyn I F C != none)

Lean: PropTheory.lean:439 · proven for the propositional fragment; general L not formalized (rests on Theorem 2)

PropTheory.lean:439 — lines 439–441 · open file
theorem thm22_prop (I : Nat → W → Bool) (hE : Expressive I) (C : W → Prop) (F : Form) :
    (SatI I C F ↔ SatI' I C F) ∧ (SatI' I C F ↔ dyn I F C ≠ none) :=
  ⟨lemma5_prop_i I C F hE, (thm21_prop_i I hE C F).trans (theorem1 I C F).1⟩

E2 overclaim Sentence introducing Example 23: Sat’ is not equivalent to Dynamic Semantics in general

Location: Text before item 23, p. 43-44 PDF p.5

Paper text
resort to the alternative definition of satisfaction, Sat’, whose incremental version yields full equivalence with Dynamic Semantics
Suggested replacement
resort to the alternative definition of satisfaction, Sat’, whose incremental version is equivalent to Incremental Transparency (21), but not in general to Dynamic Semantics (the equivalence in 22 requires Non-Triviality and Constancy)
What the paper does, and why it fails

The sentence says that the incremental version of Sat’ is fully equivalent to Dynamic Semantics. But Theorem 22 proves this only under Non-Triviality and Constancy, and Example 23b, right below, shows Sat’i(C, F) holding without the Dynamic Semantics presupposition C ⊨ (Every P . Q).

What the change does

The sentence now states exactly what Theorems 21 and 22 prove: Sat’i is equivalent to Incremental Transparency, and to Dynamic Semantics only under Non-Triviality and Constancy. It is now consistent with Example 23b.

Anything else affected?No other change: Theorem 22 and Example 23 are already stated correctly; only this introductory sentence was too strong.

Lean evidence
example23b — InfinitelyMany.lean:75
theorem example23b :
    LC.Tr Envs C Qinf ∧ LC.SatP Envs C Qinf ∧ ¬ (∀ d : Nat, Qinf () d = true) := by
  have hT : LC.Tr Envs C Qinf := by
    rw [tr_iff]
    intro γ
    apply inf_congr_iff _ _ 0
    intro m hm
    simp [Qinf, hm]
  refine ⟨hT, (LC.thm21 (by rintro Ψ rfl; exact Ψinf_ext) Qinf).mpr hT, ?_⟩
  intro h; have := h 0; simp [Qinf] at this

E3 typo Proof of Theorem 22(ii): the cross-reference should be 9d (Theorem 2), not 9c (Theorem 1)

Location: Item 22, proof of (ii), p. 43 PDF p.5

Paper text
The second equivalence follows from (i), 9c and 21(ii).
Suggested replacement
The second equivalence follows from (i), 9d and 21(ii).
What the paper does, and why it fails

9c is Theorem 1, which only covers the propositional fragment. Theorem 22 is about the full language L, so the fact that Transpi(C, F) holds iff C[F] ≠ # must come from 9d (Theorem 2).

What the change does

The citation now points to the theorem that covers the quantificational language (under Non-Triviality and Constancy, which are hypotheses of Theorem 22).

Anything else affected?No other change. Note that Theorem 2 (9d) is imported from Schlenker 2007a and is not formalized in Lean, so this step of 22(ii) rests on that import.

Lean evidence
thm22_prop — PropTheory.lean:439
theorem thm22_prop (I : Nat → W → Bool) (hE : Expressive I) (C : W → Prop) (F : Form) :
    (SatI I C F ↔ SatI' I C F) ∧ (SatI' I C F ↔ dyn I F C ≠ none) :=
  ⟨lemma5_prop_i I C F hE, (thm21_prop_i I hE C F).trans (theorem1 I C F).1⟩

E10 note Note: in the propositional fragment the converse of Theorem 38 also holds

Location: Theorem 38 (item 38) and Theorem 22, p. 43, 47-48 PDF p.5

Paper text
If Transpi(C, F), then Kleene-accepti(C, F) (and thus also Super-accepti(C, F)) - but in general the converse does not hold.
Suggested replacement (optional remark at the end of the statement of Theorem 38 (item 38))

(delete)

Paper text

(insert)

Suggested replacement (optional; optional remark at the end of the statement of Theorem 38 (item 38))
(In the propositional fragment the converse does hold: Transpi(C, F), Kleene-accepti(C, F), Super-accepti(C, F) and C[F] ≠ # are all equivalent there, so a counterexample to the converse needs quantifiers, as in the proof of b.)
What the paper does, and why it fails

The paper says the converse of Theorem 38 fails ‘in general’ and gives a counterexample with a quantifier, (No P . QQ’). It does not say that the converse is true for the propositional fragment, so a reader could think a propositional counterexample exists.

What the change does

No edit is needed; this is a new result (Lean: prop_fragment_collapse). The optional remark records where the non-equivalence can and cannot occur.

Anything else affected?No other change: the counterexample in 38b is quantificational and remains correct (Lean: theorem38b_39b). Also, Theorem 22 needs neither Non-Triviality nor Constancy in the propositional fragment (Lean: thm22_prop).

Lean evidence
prop_fragment_collapse — KleeneTheory.lean:364
theorem prop_fragment_collapse (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    (TranspI I C F ↔ dyn I F C ≠ none) ∧ (KleeneAccI I C F ↔ TranspI I C F) ∧
    (SuperAccI I C F ↔ TranspI I C F) := by
  refine ⟨(theorem1 I C F).1, ⟨fun h => ?_, fun h => (theorem38a I C F h).1⟩,
    ⟨fun h => ?_, fun h => (theorem38a I C F h).2⟩⟩
  · exact (transpI_iff_lcCond I C F).mpr (superAcc_lcCond I F C (lemma8_i_super I C F h))
  · exact (transpI_iff_lcCond I C F).mpr (superAcc_lcCond I F C h)
thm22_prop — PropTheory.lean:439
theorem thm22_prop (I : Nat → W → Bool) (hE : Expressive I) (C : W → Prop) (F : Form) :
    (SatI I C F ↔ SatI' I C F) ∧ (SatI' I C F ↔ dyn I F C ≠ none) :=
  ⟨lemma5_prop_i I C F hE, (thm21_prop_i I hE C F).trans (theorem1 I C F).1⟩
theorem38b_39b — Quantifier.lean:167
theorem theorem38b_39b :
    Det (VP P2 Q2 Q2') ∧ ¬ transNo P2 Q2 ∧ ¬ dynDefined P2 Q2 :=
  ⟨ex_kleene_acceptable, ex_not_transparent, ex_dynamic_undefined⟩
confirmed (typo)

Example 23a

Paper: 23a, p.44 PDF p.6

Paper textConsider the formula F = (Infinitely-many P . QQ’). We assume that there are infinitely many elements in P(w). a. QQ’ has no local context in the context set {w}.

StatementQQ' in (Infinitely-many P . QQ') has no local context in {w}

Lean statementexample23a : not (exists x, IsLC Envs C x) (W = Unit, D = Nat, Inf = infinitely many)

Lean: InfinitelyMany.lean:49 · proven

InfinitelyMany.lean:49 — lines 49–68 · open file
theorem example23a : ¬ ∃ x, LC.IsLC Envs C x := by
  rintro ⟨x, hx, hmin⟩
  have hx' := (tr_iff x).mp hx
  -- x is infinite
  have hinf : Inf (x ()) := by
    have := (hx' (fun _ => true)).mpr (by intro N; exact ⟨N, Nat.le_refl _, rfl⟩)
    simpa using this
  obtain ⟨a, _, ha⟩ := hinf 0
  -- remove one element
  let y : LC.Val Unit Nat := fun _ d => x () d && decide (d ≠ a)
  have hy : LC.Tr Envs C y := by
    rw [tr_iff]
    intro γ
    have h1 := hx' γ
    refine Iff.trans ?_ h1
    apply inf_congr_iff _ _ a
    intro m hm
    simp [y, hm]
  have := hmin y hy () a ha
  simp [y] at this

Minor typo: 23a: "(and also x <= x')" false as inclusion; harmless

E9 typo Typos in the appendix (grouped) (details above)

confirmed (typo)

Example 23b

Paper: 23b, p.44 PDF p.6

Paper textConsider the formula F = (Infinitely-many P . QQ’). We assume that there are infinitely many elements in P(w). [...] b. Sat’i(C, F) (or equivalently Transpi(C, F)) need not entail that C |= (Every P . Q)

StatementSat'_i/Transp_i holds without C |= (Every P . Q)

Lean statementexample23b : Tr Envs C Qinf /\ SatP Envs C Qinf /\ not (forall d, Qinf () d = true) (Q d := d != 0)

Lean: InfinitelyMany.lean:75 · proven

InfinitelyMany.lean:75 — lines 75–84 · open file
theorem example23b :
    LC.Tr Envs C Qinf ∧ LC.SatP Envs C Qinf ∧ ¬ (∀ d : Nat, Qinf () d = true) := by
  have hT : LC.Tr Envs C Qinf := by
    rw [tr_iff]
    intro γ
    apply inf_congr_iff _ _ 0
    intro m hm
    simp [Qinf, hm]
  refine ⟨hT, (LC.thm21 (by rintro Ψ rfl; exact Ψinf_ext) Qinf).mpr hT, ?_⟩
  intro h; have := h 0; simp [Qinf] at this

Minor typo: overclaim in sentence introducing 23: Sat' does not give full dynamic equivalence

E2 overclaim Sentence introducing Example 23: Sat’ is not equivalent to Dynamic Semantics in general (details above)

confirmed

Lemma 6

Paper: 30, p.45 PDF p.7

Paper textLemma 6. Let F be any formula of L, and assume that for every expression dd’, if dd’ occurs in F, it occurs exactly once. Then for any world w, Super(F, w) = Kleene(F, w)

StatementIf each trigger occurs once, Super = Kleene

Lean statementlemma6 I F (hL : LinK symS F) w : Super I F w = Kleene I F w (propositional; hyp. = distinct trigger symbols)

Lean: KleeneCore.lean:328 · proven (propositional)

KleeneCore.lean:328 — lines 327–331 · open file
/-- items 30: if each symbol occurs at most once, Super = Kleene (= standard Kleene). -/
theorem lemma6 (I : Nat → W → Bool) (F : Form) (hL : LinK symS F) (w : W) :
    Super I F w = Kleene I F w := by
  unfold Super
  rw [valOpt_vk_sk I symS F hL w, theorem41]
confirmed

Lemma 7

Paper: 31, p.45-46 PDF p.7

Paper textLemma 7. For any formula F, for any world w, if Kleene(F, w) ≠ #, then Super(F, w) ≠ # and Super(F, w) = Kleene(F, w).

StatementKleene(F,w) != # implies Super = Kleene

Lean statementlemma7 I F w (h : Kleene I F w != none) : Super I F w = Kleene I F w

Lean: KleeneCore.lean:350 · proven (propositional)

KleeneCore.lean:350 — lines 349–363 · open file
/-- **Lemma 7**: if `Kleene(F,w) ≠ #` then `Super(F,w) = Kleene(F,w)`. -/
theorem lemma7 (I : Nat → W → Bool) (F : Form) (w : W) (h : Kleene I F w ≠ none) :
    Super I F w = Kleene I F w := by
  cases hk : Kleene I F w with
  | none => exact absurd hk h
  | some v =>
    have h1 := (valOpt_eq_some _ _).mp hk
    unfold Super
    rw [valOpt_eq_some]
    obtain ⟨v0, hv0⟩ := VK_nonempty I symS F w
    have h0 := vk_sym_sub_tok I F w v0 hv0
    have hv : v0 = v := by
      cases v <;> cases v0 <;> simp_all
    subst hv
    exact ⟨hv0, fun h' => h1.2 (vk_sym_sub_tok I F w _ h')⟩
confirmed

Lemma 8

Paper: 32, p.46 PDF p.8

Paper textLemma 8. For every v ∈ {i, s}, for any formula F, for any context set C ⊆ W, if Kleene-acceptv(C, F), then: (i) Super-acceptv(C, F), and (ii) for every w ∈ C, Kleene(F, w) = Super(F, w).

StatementKleene-acc_v(C,F) implies Super-acc_v(C,F) and Kleene = Super on C

Lean statementlemma8_i_super, lemma8_s_super, lemma8_i_eq, lemma8_s_eq, kleeneAccI_S

Lean: KleeneTheory.lean:314, KleeneTheory.lean:321, KleeneTheory.lean:343, KleeneTheory.lean:331, KleeneTheory.lean:336 · proven (propositional)

KleeneTheory.lean:314 — lines 313–318 · open file
/-- Lemma 8(i) (incremental) -/
theorem lemma8_i_super (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    KleeneAccI I C F → SuperAccI I C F := by
  intro h t ht K' hK w hw
  have := h t ht K' hK w hw
  rw [lemma7 I _ w this]; exact this
KleeneTheory.lean:321 — lines 320–325 · open file
/-- Lemma 8(i) (symmetric) -/
theorem lemma8_s_super (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    KleeneAccS I C F → SuperAccS I C F := by
  intro h w hw
  have := h w hw
  rw [lemma7 I _ w this]; exact this
KleeneTheory.lean:343 — lines 342–345 · open file
/-- Lemma 8(ii), incremental -/
theorem lemma8_i_eq (I : Nat → W → Bool) (C : W → Prop) (F : Form) (h : KleeneAccI I C F) :
    ∀ w, C w → Kleene I F w = Super I F w :=
  lemma8_s_eq I C F (kleeneAccI_S I C F h)
KleeneTheory.lean:331 — lines 330–333 · open file
/-- Lemma 8(ii), symmetric -/
theorem lemma8_s_eq (I : Nat → W → Bool) (C : W → Prop) (F : Form) (h : KleeneAccS I C F) :
    ∀ w, C w → Kleene I F w = Super I F w :=
  fun w hw => (lemma7 I F w (h w hw)).symm
KleeneTheory.lean:336 — lines 335–340 · open file
/-- `Kleene-accept_i ⇒ Kleene-accept_s` (used in the proof of Lemma 8(ii) for `v = i`). -/
theorem kleeneAccI_S (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    KleeneAccI I C F → KleeneAccS I C F := by
  intro h w hw
  have hl := superAcc_lcCond I F C (lemma8_i_super I C F h)
  rw [theorem41, lemmaY I F C hl w hw]; simp
not formalized

Lemmas 9, 10, Def. 33

Paper: 33-35, p.46-47 PDF p.8

Paper textLemma 9 a. Kleene-accepti(C, F, n) iff for every underlined expression dd', for all strings α, β, if F = α dd' β and there are at most n underlined tokens in α dd', then for every good final β' which does not contain any underlined expressions, for all i, i' ∈ Ext(F#, n), for all w ∈ C, i([α dd']# β') = i'([α dd']# β').

Statementn-indexed acceptability, prefix lemmas

Lean statement--

not formalized (auxiliary machinery of the paper's inductive proofs of 36/38; our proofs of those theorems use a different route)

Why not formalized: Auxiliary machinery for the paper's inductive proofs of Theorems 36 and 38. Our Lean proofs of those theorems take a different route and do not need these lemmas, so they were not formalized.

corrected proof

Theorem 36

Paper: 36, p.47 PDF p.9

Paper textTheorem. Incremental Kleene = Incremental Supervaluations For any formula F, for any context set C ⊆ W, a. Kleene-accepti(C, F) iff Super-accepti(C, F), and b. if Kleene-accepti(C, F), then for every world w ∈ C, Kleene(F, w) = Super(F, w).

Statement(a) Kleene-acc_i iff Super-acc_i; (b) then Kleene(F,w)=Super(F,w) on C

Lean statementtheorem36 I C F : (KleeneAccI I C F <-> SuperAccI I C F) /\ (KleeneAccI I C F -> forall w, C w -> Kleene I F w = Super I F w)

Lean: KleeneTheory.lean:349 · proven (propositional fragment; the paper's proof has a gap, E7)

KleeneTheory.lean:349 — lines 349–353 · open file
theorem theorem36 (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    (KleeneAccI I C F ↔ SuperAccI I C F) ∧
    (KleeneAccI I C F → ∀ w, C w → Kleene I F w = Super I F w) :=
  ⟨⟨lemma8_i_super I C F, fun h => lcCond_kleeneAccI I C F (superAcc_lcCond I F C h)⟩,
   lemma8_i_eq I C F⟩

E7 proof gap Theorem 36, proof of (a): the induction must cover all formulas and use w ∈ C

Location: Item 36 (Theorem 36), p. 47 PDF p.9

Paper text
P(n): If Super-accepti(C, F, n), Kleene-accepti(C, F, n).
Suggested replacement (Theorem 36, statement of the induction hypothesis)
P(n): For every formula F, if Super-accepti(C, F, n), then Kleene-accepti(C, F, n).
Paper text
for every good finals β’ that does not contain any underlined expression, for all w ∈ W,
Suggested replacement (Theorem 36, induction step, first occurrence of ‘w ∈ W’)
for every good finals β’ that does not contain any underlined expression, for all w ∈ C,
Paper text
Since D β’ does not contain any underlined expressions, by the induction hypothesis Kleene-accepti(C, α D β’, m)
Suggested replacement (Theorem 36, induction step, application of the induction hypothesis to α D β’)
Since D β’ does not contain any underlined expressions, the underlined expressions of α D β’ are those of α, and Super-accepti(C, α D β’, m) holds because Super-accepti(C, F, m) only constrains the material up to each of these expressions and arbitrary good finals; so by the induction hypothesis, applied to the formula α D β’, Kleene-accepti(C, α D β’, m)
Paper text
for every good final β’ that does not contain any underlined material, for all i’ such that I** ∠ i’, for all w ∈ W,
Suggested replacement (Theorem 36, induction step, last occurrence of ‘w ∈ W’)
for every good final β’ that does not contain any underlined material, for all i’ such that I** ∠ i’, for all w ∈ C,
What the paper does, and why it fails

P(n) is stated for the fixed formula F, but the induction step applies the hypothesis to a different formula, α D β’, and never shows that α D β’ is super-acceptable up to m (Lemma 10a gives this only for α dd’ β’). Also ‘for all w ∈ W’ should be ‘w ∈ C’: acceptability is only required on the worlds of C.

What the change does

P(n) is now stated for every formula, so it can be applied to α D β’, and the missing super-acceptability of α D β’ is spelled out. Quantification over worlds is restricted to C as in the definitions of acceptability.

Anything else affected?No other change: Theorem 36 is true for the propositional fragment (proved in Lean by a different route: superAcc_lcCond, lcCond_kleeneAccI); Theorem 38 and Lemma 11 do not use this proof. The quantificational case is not formalized.

Judgment call: the wording of this replacement is ours and not checked in Lean. The added justification for Super-accepti(C, α D β’, m) is our reconstruction of the paper’s route; Lean proves the theorem by another route, so this exact repair is not machine-checked.

Lean evidence
theorem36 — KleeneTheory.lean:349
theorem theorem36 (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    (KleeneAccI I C F ↔ SuperAccI I C F) ∧
    (KleeneAccI I C F → ∀ w, C w → Kleene I F w = Super I F w) :=
  ⟨⟨lemma8_i_super I C F, fun h => lcCond_kleeneAccI I C F (superAcc_lcCond I F C h)⟩,
   lemma8_i_eq I C F⟩
superAcc_lcCond — KleeneTheory.lean:262
/-- **Converse direction**: super-acceptability forces the local-context condition. -/
theorem superAcc_lcCond (I : Nat → W → Bool) : ∀ (F : Form) (C : W → Prop), SuperAccI I C F →
    LcCond I C F := by
  intro F
  induction F with
  | atom a => intro C _ t ht; simp [occs] at ht
  | trig a b k =>
    intro C h t ht w hw
    simp [occs] at ht; subst ht
    have := h ([], a, b, k) (by simp [occs]) [] F2.nil w hw
    simp only [plug] at this
    exact (super_trig_ne I a b k w).mp this
  | neg F ih =>
    intro C h
    rw [lcCond_neg]
    apply ih
  ...
lcCond_kleeneAccI — KleeneTheory.lean:187
theorem lcCond_kleeneAccI (I : Nat → W → Bool) (C : W → Prop) (F : Form) (h : LcCond I C F) :
    KleeneAccI I C F := by
  intro t ht K' hK w hw
  rw [theorem41]
  exact lcCond_sk_acc I F C h t ht K' hK w hw
auxiliary results

(new)

Paper: -- PDF

StatementIn the propositional fragment all incremental notions coincide

Lean statementprop_fragment_collapse : (TranspI <-> dyn != none) /\ (KleeneAccI <-> TranspI) /\ (SuperAccI <-> TranspI)

Lean: KleeneTheory.lean:364 · proven

KleeneTheory.lean:364 — lines 364–370 · open file
theorem prop_fragment_collapse (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    (TranspI I C F ↔ dyn I F C ≠ none) ∧ (KleeneAccI I C F ↔ TranspI I C F) ∧
    (SuperAccI I C F ↔ TranspI I C F) := by
  refine ⟨(theorem1 I C F).1, ⟨fun h => ?_, fun h => (theorem38a I C F h).1⟩,
    ⟨fun h => ?_, fun h => (theorem38a I C F h).2⟩⟩
  · exact (transpI_iff_lcCond I C F).mpr (superAcc_lcCond I F C (lemma8_i_super I C F h))
  · exact (transpI_iff_lcCond I C F).mpr (superAcc_lcCond I F C h)

E10 note Note: in the propositional fragment the converse of Theorem 38 also holds (details above)

confirmed

Lemma 11

Paper: 37, p.47 PDF p.9

Paper textLemma 11 If Kleene-accepts(C, F), then Super-accepts(C, F), but in general the converse is not true.

StatementKleene-acc_s implies Super-acc_s; converse fails for (pp' or (not pp')) if p not a tautology

Lean statementlemma8_s_super; lemma11_super : SuperAccS I C (exF a b) (every C); lemma11_not_kleene (hw : C w) (hp : I a w = false) : not KleeneAccS I C (exF a b)

Lean: KleeneTheory.lean:321, KleeneTheory.lean:377, KleeneTheory.lean:388 · proven

KleeneTheory.lean:321 — lines 320–325 · open file
/-- Lemma 8(i) (symmetric) -/
theorem lemma8_s_super (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    KleeneAccS I C F → SuperAccS I C F := by
  intro h w hw
  have := h w hw
  rw [lemma7 I _ w this]; exact this
KleeneTheory.lean:377 — lines 376–385 · open file
/-- Lemma 11, positive half: `(pp' or not pp')` is symmetrically super-acceptable everywhere. -/
theorem lemma11_super (I : Nat → W → Bool) (a b : Nat) (C : W → Prop) :
    SuperAccS I C (exF a b) := by
  intro w _
  have : Super I (exF a b) w = some true := by
    rw [super_eq_some_iff]
    intro ρ _
    simp only [exF, evK, Bop.eval]
    cases ρ (symS.κ a b 0) w <;> rfl
  rw [this]; simp
KleeneTheory.lean:388 — lines 387–393 · open file
/-- Lemma 11, negative half: if `p` is false somewhere in `C` it is not Kleene-acceptable. -/
theorem lemma11_not_kleene (I : Nat → W → Bool) (a b : Nat) (C : W → Prop) (w : W)
    (hw : C w) (hp : I a w = false) : ¬ KleeneAccS I C (exF a b) := by
  intro h
  have := h w hw
  rw [theorem41] at this
  simp [exF, sk, hp, skop] at this
confirmed (typo)

Theorem 38 (a)

Paper: 38a, p.47-48 PDF p.9

Paper textTheorem: Incremental Transparency predicts stronger presuppositions than Incremental Kleene and Incremental Supervaluations. If Transpi(C, F), then Kleene-accepti(C, F) (and thus also Super-accepti(C, F)) - but in general the converse does not hold.

StatementTransp_i(C,F) implies Kleene-acc_i(C,F) and Super-acc_i

Lean statementtheorem38a I C F : TranspI I C F -> KleeneAccI I C F /\ SuperAccI I C F

Lean: KleeneTheory.lean:356 · proven (propositional); predicative triggers/quantifiers not formalized

KleeneTheory.lean:356 — lines 355–360 · open file
/-- **Theorem 38a** (propositional fragment): `Transp_i ⇒ Kleene-accept_i` (and Super-accept_i). -/
theorem theorem38a (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    TranspI I C F → KleeneAccI I C F ∧ SuperAccI I C F := by
  intro h
  have h1 := lcCond_kleeneAccI I C F ((transpI_iff_lcCond I C F).mp h)
  exact ⟨h1, lemma8_i_super I C F h1⟩

Minor typo: typos/gaps in proof of 38a (D vs D', g indices, two wrong formulas)

E8 proof gap Theorem 38a, proof: D’ is used but D is defined; g0/g1/g2 mixed up; two wrong formulas in Case 2

Location: Item 38a, p. 47-49 PDF p.9

Paper text
D = {i’(dd’^(m+1))(w): i’ ∈ Ext(F#, m+1)}
Suggested replacement (Theorem 38a, definitions before Step 1)
D’ = {i’(dd’^(m+1))(w): i’ ∈ Ext(F#, m+1)}
Paper text
it is clear that I**(d and g1)(w) = I**(d and g2)(w) = 0 = I**(d and d’)(w)
Suggested replacement (Theorem 38a, Step 1, Case 1, second bullet)
it is clear that I**(d and g0)(w) = I**(d and g1)(w) = 0 = I**(d and d’)(w)
Paper text
I**(g)(w)(x) = i’(dd’^(m+1))(w)(x) if I**(d’)(w)(x) = 0.
Suggested replacement (Theorem 38a, Step 1, Case 2, the choice of g)
I**(g)(w)(x) = i’(dd’^(m+1))(w)(x) if I**(d)(w)(x) = 0.
Paper text
It is clear that I**(g)(w) = i’(d)(w), and furthermore
Suggested replacement (Theorem 38a, Step 1, Case 2, first claim about g)
It is clear that I**(g)(w) = i’(dd’^(m+1))(w), and furthermore
Paper text
which is identical to i’(d)(w), belongs to G’.
Suggested replacement (Theorem 38a, Step 1, Case 2, last sentence)
which is identical to i’(dd’^(m+1))(w), belongs to G’.
What the paper does, and why it fails

The proof defines a set called D but then proves ‘D’ ⊆ G’; in Case 1 the two chosen expressions are called g0, g1 and then g1, g2; and in Case 2 the value of the extension of dd’ is written i’(d)(w) (the extension of d alone) and one condition mentions I(d’) where it should mention I(d).

What the change does

The set is named consistently, the two expressions are g0 and g1 throughout, and Case 2 states that I**(g)(w) equals the extension i’(dd’^(m+1))(w), which is what is needed to conclude that this value is in G’.

Anything else affected?No other change: the statement of Theorem 38a is unaffected (it is proved in Lean for the propositional fragment as theorem38a; the predicative case is not formalized).

Text note: In the paper dd’^(m+1) is written with the underlined trigger dd’ and the index m+1 as a superscript; here ‘^(m+1)’ marks the superscript and underlining is not reproduced.

Lean evidence
theorem38a — KleeneTheory.lean:356
/-- **Theorem 38a** (propositional fragment): `Transp_i ⇒ Kleene-accept_i` (and Super-accept_i). -/
theorem theorem38a (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    TranspI I C F → KleeneAccI I C F ∧ SuperAccI I C F := by
  intro h
  have h1 := lcCond_kleeneAccI I C F ((transpI_iff_lcCond I C F).mp h)
  exact ⟨h1, lemma8_i_super I C F h1⟩

E10 note Note: in the propositional fragment the converse of Theorem 38 also holds (details above)

confirmed (typo)

Theorem 38 (b)

Paper: 38b, p.48 PDF p.10

Paper textb. To show that Kleene-accepti(C, F) need not entail that Transpi(C, F), we consider the formula and the situation in (ii): (ii) a. (No P . QQ’) b. C = {w}, and there are two P-individuals d1 and d2 in w: d1 does not satisfy Q, but d2 does, and d2 also satisfies Q’.

StatementConverse fails: (No P . QQ'), C={w}, d1 not Q, d2 Q and Q'

Lean statementtheorem38b_39b : Det (VP P2 Q2 Q2') /\ not transNo P2 Q2 /\ not dynDefined P2 Q2 (also ex_value_false : valOpt (VP P2 Q2 Q2') = some false; general characterisation kleeneNo_iff)

Lean: Quantifier.lean:167, Quantifier.lean:153, Quantifier.lean:81 · counterexample found (claim confirmed; needs quantifiers: false in the propositional fragment)

Quantifier.lean:167 — lines 167–169 · open file
theorem theorem38b_39b :
    Det (VP P2 Q2 Q2') ∧ ¬ transNo P2 Q2 ∧ ¬ dynDefined P2 Q2 :=
  ⟨ex_kleene_acceptable, ex_not_transparent, ex_dynamic_undefined⟩
Quantifier.lean:153 — lines 152–163 · open file
/-- more precisely the sentence is Kleene-false (and super-false) in the context (not `#`) -/
theorem ex_value_false : valOpt (VP P2 Q2 Q2') = some false := by
  rw [valOpt_eq_some]
  have h := (kleeneNo_iff P2 Q2 Q2').mpr (Or.inl ⟨1, rfl, by simp [Q2], by simp [Q2']⟩)
  refine ⟨⟨fun d => Q2 d && Q2' d, fun d hq => by simp [hq], ?_⟩, ?_⟩
  · have : ¬ quant fNo P2 (fun d => Q2 d && Q2' d) = true := by
      rw [quantNo_iff]; intro hh; apply hh 1; simp [P2, Q2, Q2']
    simpa using this
  · rintro ⟨ρ, hρ, hv⟩
    have : quant fNo P2 ρ = true := hv
    rw [quantNo_iff] at this
    exact this 1 ⟨rfl, by rw [hρ 1 (by simp [Q2])]; simp [Q2']⟩
Quantifier.lean:81 — lines 81–104 · open file
theorem kleeneNo_iff {n : Nat} (P Q Q' : Pred n) :
    Det (VP P Q Q') ↔ (∃ d, P d = true ∧ Q d = true ∧ Q' d = true) ∨ dynDefined P Q := by
  unfold Det
  constructor
  · intro h
    refine Classical.byContradiction (fun hne => ?_)
    have h1 : ¬ ∃ d, P d = true ∧ Q d = true ∧ Q' d = true := fun h' => hne (Or.inl h')
    have h2 : ¬ dynDefined P Q := fun h' => hne (Or.inr h')
    obtain ⟨d1, hd1P, hd1Q⟩ : ∃ d, P d = true ∧ Q d = false := by
      refine Classical.byContradiction (fun hh => h2 (fun d hP => ?_))
      by_cases hq : Q d = true
      · exact hq
      · exact absurd ⟨d, hP, by simpa using hq⟩ hh
    have t : VP P Q Q' true := by
      refine ⟨fun d => Q d && Q' d, fun d hq => by simp [hq], ?_⟩
      rw [quantNo_iff]; intro d ⟨hp, hq⟩
      simp at hq; exact h1 ⟨d, hp, hq.1, hq.2⟩
    have f : VP P Q Q' false := by
      refine ⟨fun d => if Q d then Q' d else true, fun d hq => by simp [hq], ?_⟩
      have : ¬ quant fNo P (fun d => if Q d then Q' d else true) = true := by
        rw [quantNo_iff]; intro hh; apply hh d1; simp [hd1P, hd1Q]
      simpa using this
    rcases h with ⟨_, h⟩ | ⟨_, h⟩
    · exact h f
  ...

Minor typo: 38b: "(35)" is a main-text item, not appendix Lemma 10

E9 typo Typos in the appendix (grouped) (details above)

E10 note Note: in the propositional fragment the converse of Theorem 38 also holds (details above)

confirmed (typo)

Theorem 39 (a)

Paper: 39a, p.48-49 PDF p.10

Paper text (symbols restored from the PDF)a. Sometimes Symmetric Kleene and Symmetric Supervaluations predict stronger presuppositions than Symmetric Transparency. [...] (i) a. (pp’ and qq’) b. C = {w1, w2}, w1 ⊭ p, w1 ⊭ q, w2 |= p and w2 |= q

Statement(pp' and qq'), C={w1,w2}: sym. Transp holds, sym. Kleene and Super fail

Lean statementtheorem39a : TranspS I39 (fun _ => True) F39 /\ not KleeneAccS I39 (fun _ => True) F39 /\ not SuperAccS I39 (fun _ => True) F39

Lean: KleeneTheory.lean:405 · counterexample found (claim confirmed)

KleeneTheory.lean:405 — lines 405–428 · open file
theorem theorem39a :
    TranspS I39 (fun _ => True) F39 ∧ ¬ KleeneAccS I39 (fun _ => True) F39 ∧
    ¬ SuperAccS I39 (fun _ => True) F39 := by
  refine ⟨?_, ?_, ?_⟩
  · intro t ht γ w _
    simp only [F39, occs, List.mem_append, List.mem_map, List.mem_singleton] at ht
    rcases ht with ⟨u, hu, rfl⟩ | ⟨u, hu, rfl⟩
    · have hu' : u = ([], 0, 1, 0) := by simpa [occs] using hu
      subst hu'
      cases w <;> simp [plug, Frame.fill, ev, I39, Bop.eval]
    · have hu' : u = ([], 2, 3, 0) := by simpa [occs] using hu
      subst hu'
      cases w <;> simp [plug, Frame.fill, ev, I39, Bop.eval]
  · intro h
    have := h false trivial
    rw [theorem41] at this
    simp [F39, sk, I39, skop] at this
  · intro h
    have := h false trivial
    have hL : LinK symS F39 := by
      simp [F39, LinK, keys, symS]
    unfold SuperAccS at h
    rw [show Super I39 F39 false = Kleene I39 F39 false from lemma6 I39 F39 hL false,
      theorem41] at this
  ...

Minor typo: proof of 39: items (ii)a/(ii)b in opposite order of the two triggers

E9 typo Typos in the appendix (grouped) (details above)

confirmed (typo)

Theorem 39 (b)

Paper: 39b, p.49 PDF p.11

Paper textb. Sometimes Symmetric Transparency predicts stronger presuppositions than Symmetric Kleene and Symmetric Supervaluations. [...] b. The example is the same as in 38 b (in this case there is no difference between incremental and symmetric notions, because the presupposition trigger appears at the end of the formula).

Statement(No P . QQ') same model: sym. Kleene/Super hold, sym. Transp fails

Lean statementtheorem38b_39b (trigger last, so incremental = symmetric)

Lean: Quantifier.lean:167 · counterexample found (claim confirmed)

Quantifier.lean:167 — lines 167–169 · open file
theorem theorem38b_39b :
    Det (VP P2 Q2 Q2') ∧ ¬ transNo P2 Q2 ∧ ¬ dynDefined P2 Q2 :=
  ⟨ex_kleene_acceptable, ex_not_transparent, ex_dynamic_undefined⟩

Minor typo: proof of 39: items (ii)a/(ii)b in opposite order of the two triggers

E9 typo Typos in the appendix (grouped) (details above)

confirmed (typo)

Theorem 41

Paper: 41, p.49-50 PDF p.11

Paper textTheorem. Equivalence between the two definitions of Strong Kleene in the propositional case. If F belongs to the propositional fragment of 1, Standard-Kleene(F, w) = Kleene(F, w)

StatementPropositional fragment: Standard-Kleene(F,w) = Kleene(F,w)

Lean statementtheorem41 I F w : Kleene I F w = sk I F w

Lean: KleeneCore.lean:322 · proven

KleeneCore.lean:322 — lines 322–324 · open file
theorem theorem41 (I : Nat → W → Bool) (F : Form) (w : W) : Kleene I F w = sk I F w := by
  unfold Kleene
  rw [valOpt_vk_sk I tokS _ (linK_numF F 0) w, sk_numF]

Minor typo: typo in 41, Case 3(b): j'/At(H) should be j''

E9 typo Typos in the appendix (grouped) (details above)

confirmed

Sanity

Paper: -- PDF

Not in the paper.

Statementpp' presupposes p; (p and pp') presupposes nothing; (pp' and p) presupposes p

Lean statementsanity_* (4 theorems)

Lean: Sanity.lean · proven

A1suggested new result

In the propositional fragment, symmetric Kleene-acceptability implies symmetric Transparency

Statement to add (After Theorem 39 (item 39, p. 48-49) as a remark/corollary, or as a companion of Theorem 38(a) for the symmetric versions.)
Proposition. For every F of the propositional fragment and every context set C: if Kleene-acc_s(C,F) then Transp_s(C,F). Hence, together with Theorem 38(a), Transp_i ⇒ Kleene-acc_i ⇒ Kleene-acc_s ⇒ Transp_s; and Theorem 39(b) (Kleene-acc_s without Transp_s) needs quantifiers, while Theorem 39(a) shows Transp_s ⇏ Kleene-acc_s already for (pp' and qq').
Why it is useful

Completes the comparison of Theorems 38/39 for the symmetric theories: one direction always holds in the propositional fragment, so the second direction of 39(b) genuinely depends on quantificational triggers.

Proof idea

If Kleene(F,w) is defined for w in C and the trigger p is false at w, the trigger is # there, so some sibling on the path to the root must be absorbing (false for 'and', true for 'or', false antecedent or true consequent for 'if'); then the context is constant in the hole and (p and γ) and γ have the same value at w. If p is true at w the two are trivially equal. The absorbing sibling's classical value equals its defined Kleene value.

FidelityPropositional fragment only (as the rest of the formalization); Kleene = standard Strong Kleene via Theorem 41. Transp_s is the 'actual good final' version of item 8. Brute-force on 2 and 3 worlds agreed before proving.

Lean evidence
LCProp.kleeneAccS_transpS — Additions.lean:68
/-- **A1.** Propositional fragment: `Kleene-acc_s(C,F)` implies `Transp_s(C,F)`. -/
theorem kleeneAccS_transpS (I : Nat → W → Bool) (C : W → Prop) (F : Form) :
    KleeneAccS I C F → TranspS I C F := by
  intro h t ht γ w hw
  have hF := occs_plug F t ht
  have hk := h w hw
  rw [theorem41, ← hF] at hk
  rw [ev_plug, ev_plug]
  by_cases ha : I t.2.1 w = true
  · simp [ev, ha, Bop.eval]
  · have hs : sk I (.trig t.2.1 t.2.2.1 t.2.2.2) w = none := by simp [sk, ha]
    exact sk_plug_const I w _ hs t.1 hk _ _
LCProp.sk_plug_const — Additions.lean:38
theorem sk_plug_const (I : Nat → W → Bool) (w : W) (X : Form) (hX : sk I X w = none) :
    ∀ K : List Frame, sk I (plug K X) w ≠ none → ∀ b1 b2, applyK I w K b1 = applyK I w K b2 := by
  intro K
  induction K with
  | nil => intro h; simp [plug, hX] at h
  | cons f K ih =>
    intro h b1 b2
    cases hY : sk I (plug K X) w with
    | some v =>
      have := ih (by simp [hY]) b1 b2
      simp only [applyK, this]
    | none =>
      cases f with
      | neg => simp [plug, Frame.fill, sk, hY] at h
      | left o G =>
        simp only [plug, Frame.fill, sk, hY] at h
  ...
LCProp.sk_ev — Additions.lean:13
/-- a defined standard-Kleene value is the classical value -/
theorem sk_ev (I : Nat → W → Bool) (w : W) : ∀ (G : Form) (e : Bool), sk I G w = some e →
    ev I G w = e := by
  intro G
  induction G with
  | atom a => intro e h; simp [sk] at h; simp [ev, h]
  | trig a b k =>
    intro e h
    by_cases ha : I a w = true
    · simp [sk, ha] at h; simp [ev, ha, h]
    · simp [sk, ha] at h
  | neg F ih =>
    intro e h
    cases hF : sk I F w with
    | none => simp [sk, hF] at h
    | some b =>
  ...
A2suggested new result

A propositional sentence that is symmetrically Super-acceptable but not symmetrically Transparent

Statement to add (After Lemma 11 (item 37, p. 47) as a second half of its example, and in the discussion of Theorem 39(b) as a propositional way to separate Super-acc_s from Transp_s.)
Proposition. Let p be false at some world w of C. Then (pp' or (not pp')) is Super-acc_s in C (Lemma 11) but not Transp_s in C: for the second occurrence, (pp' or (not (p and γ))) and (pp' or (not γ)) differ at w for γ a tautology.
Why it is useful

With A1 it shows the symmetric Super and Kleene theories differ in their relation to Transparency: Kleene-acc_s implies Transp_s, Super-acc_s does not, so Theorem 39(b) can be witnessed for Super without quantifiers.

Proof idea

Super-acc_s is Lemma 11. For failure, take the occurrence of pp' inside the negation, right of 'or', and γ = a tautology: at w where p is false, (p and γ) is false so the negation is true, whereas ¬γ is false and the left disjunct pp' is false, so the two disjunctions differ.

FidelityPropositional fragment, one witnessing sentence; uses the paper's own example from Lemma 11.

Lean evidence
LCProp.exF_superAccS_not_transpS — Additions.lean:82
theorem exF_superAccS_not_transpS (I : Nat → W → Bool) (a b : Nat) (C : W → Prop) (w : W)
    (hw : C w) (hp : I a w = false) : SuperAccS I C (exF a b) ∧ ¬ TranspS I C (exF a b) := by
  refine ⟨lemma11_super I a b C, fun h => ?_⟩
  have := h ([Frame.right .or (.trig a b 0), Frame.neg], a, b, 0)
    (by simp [exF, occs]) Form.tt w hw
  simp [plug, Frame.fill, ev, ev_tt, hp, Bop.eval] at this
A3suggested new result

Minimal separation of incremental from symmetric theories: (pp' and p)

Statement to add (After Theorem 20 (item 20, p. 43) as a remark on strictness, or after Theorem 38 (item 38, p. 47-48) in the summary of the relations between the theories.)
Proposition. If p is false at some world of C, then (pp' and p) satisfies Kleene-acc_s, Super-acc_s and Transp_s in C but none of Transp_i, Kleene-acc_i, Super-acc_i (Dynamic Semantics also gives C[(pp' and p)] = #). So the inclusions of Theorem 20 (Transp_i ⊆ Transp_s, Sat_i ⇒ Sat_s) and Lemma 8 are strict already in the propositional fragment.
Why it is useful

Gives the shortest countermodel to the natural conjecture that symmetric and incremental versions coincide, and it is one line, with no quantifiers or two-world model needed.

Proof idea

At a world where p is false, pp' is # but the conjunct p is false, so the conjunction is false: Kleene-defined, hence Super-defined and (by A1) symmetrically transparent. Incrementally, the good final may be replaced by a true sibling: (pp' and true) then depends on p, so Transp_i fails; by the propositional collapse Kleene-acc_i and Super-acc_i fail too.

FidelityPropositional fragment; uses prop_fragment_collapse and A1 (kleeneAccS_transpS). The paper's item 23/39 contain other separating examples, this one is the simplest unconditional propositional one.

Lean evidence
LCProp.andP_separation — Additions.lean:94
theorem andP_separation (I : Nat → W → Bool) (a b : Nat) (C : W → Prop) (w : W)
    (hw : C w) (hp : I a w = false) :
    (KleeneAccS I C (andP a b) ∧ SuperAccS I C (andP a b) ∧ TranspS I C (andP a b)) ∧
    (¬ TranspI I C (andP a b) ∧ ¬ KleeneAccI I C (andP a b) ∧ ¬ SuperAccI I C (andP a b)) := by
  have hK : KleeneAccS I C (andP a b) := by
    intro v _
    rw [theorem41]
    by_cases ha : I a v = true
    · cases hb : I b v <;> simp [andP, sk, ha, hb, skop]
    · simp [andP, sk, ha, skop]
  have hT : ¬ TranspI I C (andP a b) := by
    intro h
    have := h ([Frame.left .and (.atom a)], a, b, 0) (by simp [andP, occs])
      [Frame.left .and Form.tt] (F2.cons (by simp [Frame.same]) F2.nil) Form.tt w hw
    simp [plug, Frame.fill, ev, ev_tt, hp, Bop.eval] at this
  refine ⟨⟨hK, lemma8_s_super I C _ hK, kleeneAccS_transpS I C _ hK⟩, hT, ?_, ?_⟩
  ...

Files