Skip to content

Commit c158219

Browse files
committed
small improvements
1 parent 4e9e741 commit c158219

File tree

2 files changed

+80
-24
lines changed

2 files changed

+80
-24
lines changed

Sillari_refutation.lean

Lines changed: 75 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -414,18 +414,25 @@ indicators. Lewis's entire proof collapses.
414414
-/
415415

416416
lemma 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
---

Vromen_justification_logic.lean

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -575,9 +575,10 @@ This captures common knowledge as an infinite hierarchy of nested reasons to bel
575575
Everyone believes `φ`, everyone believes everyone believes `φ`, and so on forever.
576576
-/
577577

578-
inductive Gclosure (φ : Prop) : PropProp
579-
| base : Gclosure φ φ
580-
| step (p : Prop) (i : individual) : Gclosure φ p → Gclosure φ (R rb i p)
578+
inductive Rclosure (rb : reason → individual → PropProp) (φ : Prop) : PropProp
579+
| base : Rclosure rb φ φ
580+
| step (p : Prop) (i : individual) : Rclosure rb φ p → Rclosure rb φ (R rb i p)
581+
581582

582583
/-!
583584
### Lewis's Theorem on Common Knowledge
@@ -627,7 +628,7 @@ theorem Lewis (A φ : Prop) (p : Prop)
627628
(C2 : ∀ i j, Ind rb A i (R rb j A))
628629
(C3 : ∀ i, Ind rb A i φ)
629630
(C4 : ∀ α i j, Ind rb A i α → R rb i (Ind rb A j α))
630-
(h7 : @Gclosure individual reason rb φ p) :
631+
(h7 : Rclosure rb φ p) :
631632
∀ i, R rb i p := by
632633
intro i
633634
-- Prove stronger claim: Ind A i p (then use A1 + C1)

0 commit comments

Comments
 (0)