@@ -414,18 +414,25 @@ indicators. Lewis's entire proof collapses.
414414-/
415415
416416lemma B3_fails
417- (h2a : ¬ frame.rel i s s )
418- (h2b : frame.rel i s t) :
417+ (h2 : two_worlds s t )
418+ (hst : frame.rel i s t) :
419419 ∃ (w : frame.World) (φ ψ : frame.World → Prop ), R i φ w ∧ Ind i φ ψ w ∧ ¬ R i ψ w := by
420420 let w := s
421421 let ψ := fun w => w ≠ t
422- let φ := fun w => w ≠ s
422+ let φ : frame.World → Prop : = fun _ => True
423423 have h4 : R i φ s := by intro v hv; aesop
424- have h5 : Ind i φ ψ s := by rw [Ind]; aesop
424+ have h5 : Ind i φ ψ s := by
425+ constructor
426+ · exact h4
427+ · intro _
428+ -- Need to prove ψ s, i.e., s ≠ t
429+ -- From h2 : two_worlds s t, we have t ≠ s
430+ have hts : t ≠ s := h2; exact hts.symm
425431 have h6 : ¬ R i ψ s := by aesop
426432 exact ⟨s, φ, ψ, h4, h5, h6⟩
427433
428434
435+
429436/-!
430437### Axiom `B4`: Transitivity of indication
431438
@@ -582,22 +589,70 @@ Target: ψ = "at world s"
582589**Conclusion:** `C4` fails in this Kripke frame.
583590-/
584591
585- lemma C4_fails
586- (h2a : ¬ frame.rel i s s)
587- (h2b : frame.rel i s t):
588- ∃ (w : frame.World) (φ ψ : frame.World → Prop ), (Ind i φ ψ w ∧ ¬ R i (Ind j φ ψ) w) := by
589- let φ := fun _ : frame.World => True
590- let ψ := fun w : frame.World => w = s
591- have h3 : Ind i φ ψ s := by
592- constructor
593- { intro w _; aesop } -- R i True s (trivial)
594- { aesop }
595- have h3a : ¬ R i (Ind j φ ψ) s := by
596- rw [R]; push_neg; use t
597- constructor
598- · exact h2b
599- · intro hn; have hp : ψ t := hn.2 trivial; aesop
600- exact ⟨s, φ, ψ, h3, h3a⟩
592+ lemma C4_fails {i1 i2 : Agent}
593+ (h1 : three_worlds s u v)
594+ (h2 : two_agents i1 i2)
595+ (h3 : frame.rel = fun i w1 w2 =>
596+ (i = i1 ∧ w1 = s ∧ w2 = u) ∨
597+ (w1 = v ∧ w2 = v) ∨
598+ (i = i2 ∧ w1 = s ∧ w2 = s) ∨
599+ (i = i2 ∧ w1 = u ∧ w2 = v)) :
600+ ∃ (w : frame.World) (φ ψ : frame.World → Prop ), (Ind i1 φ ψ w ∧ ¬ R i1 (Ind i2 φ ψ) w) := by
601+ -- Extract the inequalities from three_worlds
602+ obtain ⟨hus, hvu, hvs⟩ : u ≠ s ∧ v ≠ u ∧ v ≠ s := by
603+ simpa [three_worlds] using h1
604+
605+ -- Define φ and ψ
606+ let φ : frame.World → Prop := fun w => w ≠ v
607+ let ψ : frame.World → Prop := fun w => w ≠ v
608+
609+ -- We'll show the counterexample holds at world s
610+ use s, φ, ψ
611+ constructor
612+
613+ -- Part 1: Show Ind i1 φ ψ s
614+ · constructor
615+ -- Show R i1 φ s
616+ · intro w hw
617+ -- If i1 can see w from s, then w = u (by h3)
618+ have hw_eq : w = u := by
619+ have : (i1 = i1 ∧ s = s ∧ w = u) ∨ (s = v ∧ w = v) ∨
620+ (i1 = i2 ∧ s = s ∧ w = s) ∨ (i1 = i2 ∧ s = u ∧ w = v) := by
621+ simpa [h3] using hw
622+ cases this with
623+ | inl h => exact h.2 .2
624+ | inr h => cases h with
625+ | inl h' => exact (hvs h'.1 .symm).elim
626+ | inr h' => cases h' with
627+ | inl h'' => exact (h2.1 h''.1 ).elim
628+ | inr h'' => exact (h2.1 h''.1 ).elim
629+ -- Since w = u and u ≠ v, we have φ w
630+ rw [hw_eq]
631+ show u ≠ v
632+ exact Ne.symm hvu
633+ -- Show φ s → ψ s (trivial since φ = ψ)
634+ · intro _; assumption
635+
636+ -- Part 2: Show ¬ R i1 (Ind i2 φ ψ) s
637+ · intro hcontra
638+ -- If R i1 (Ind i2 φ ψ) s, then Ind i2 φ ψ u (since i1 sees u from s)
639+ have rel_s_u : frame.rel i1 s u := by
640+ rw [h3]; left; exact ⟨rfl, rfl, rfl⟩
641+ have hInd_u : Ind i2 φ ψ u := hcontra u rel_s_u
642+
643+ -- From Ind i2 φ ψ u, we get R i2 φ u
644+ have hR2_u : R i2 φ u := hInd_u.1
645+
646+ -- But i2 can see v from u (by h3)
647+ have rel_u_v : frame.rel i2 u v := by
648+ rw [h3]; right; right; right; exact ⟨rfl, rfl, rfl⟩
649+
650+ -- So φ v must hold, i.e., v ≠ v
651+ have : φ v := hR2_u v rel_u_v
652+
653+ -- But this is a contradiction
654+ exact this rfl
655+
601656
602657/-!
603658---
0 commit comments