-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(Modal): Full Strength Analysis of Modal Cube Part.1 (#171)
* refactor geach * KT_KTB * K4, K5, KDB, KTB * K45_KB4 * KB5_S5 * KTB_S5 * KT_S4 * KB_KDB, KD_KDB * K4_KD4, K5_KD5 * KD4_KD45, KD5_KD45 * KD45_S5
- Loading branch information
Showing
32 changed files
with
1,094 additions
and
193 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
import Foundation.Modal.Kripke.Geach | ||
import Foundation.Modal.Kripke.Geach.Systems | ||
|
||
namespace LO.Modal.Hilbert | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
import Foundation.Modal.Kripke.Geach.Systems | ||
|
||
namespace LO.Modal.Hilbert | ||
|
||
open System | ||
open Modal.Kripke | ||
open Formula | ||
open Formula.Kripke | ||
|
||
lemma K45_weakerThan_KB4 : (Hilbert.K45 ℕ) ≤ₛ (Hilbert.KB4 ℕ) := by | ||
apply Kripke.weakerThan_of_subset_FrameClass TransitiveEuclideanFrameClass SymmetricTransitiveFrameClass; | ||
rintro F ⟨h_symm, h_trans⟩; | ||
refine ⟨h_trans, (eucl_of_symm_trans h_symm h_trans)⟩; | ||
|
||
theorem K45_strictlyWeakerThan_KB4 : (Hilbert.K45 ℕ) <ₛ (Hilbert.KB4 ℕ) := by | ||
constructor; | ||
. exact K45_weakerThan_KB4; | ||
. apply weakerThan_iff.not.mpr; | ||
push_neg; | ||
use ((atom 0) ➝ □◇(atom 0)); | ||
constructor; | ||
. exact Deduction.maxm! $ by simp; | ||
. apply K45.Kripke.sound.not_provable_of_countermodel; | ||
suffices ∃ F : Frame, Transitive F.Rel ∧ Euclidean F.Rel ∧ ∃ V : Valuation F, ∃ w : F.World, ¬(Kripke.Satisfies ⟨F, V⟩ w _) by | ||
simp [ValidOnModel, ValidOnFrame, Satisfies]; | ||
tauto; | ||
use ⟨Fin 2, λ x y => y = 1⟩; | ||
refine ⟨?_, ?_, ?_⟩; | ||
. simp [Transitive]; | ||
. simp [Euclidean]; | ||
. use (λ w _ => w = 0), 0; | ||
simp [Satisfies, Semantics.Realize]; | ||
|
||
end LO.Modal.Hilbert |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
import Foundation.Modal.Kripke.Geach.Systems | ||
|
||
namespace LO.Modal.Hilbert | ||
|
||
open System | ||
open Modal.Kripke | ||
open Formula | ||
open Formula.Kripke | ||
|
||
lemma K4_weakerThan_K45 : (Hilbert.K4 α) ≤ₛ (Hilbert.K45 α) := normal_weakerThan_of_subset $ by intro; aesop; | ||
|
||
theorem K4_strictlyWeakerThan_K45 : (Hilbert.K4 ℕ) <ₛ (Hilbert.K45 ℕ) := by | ||
constructor; | ||
. exact K4_weakerThan_K45; | ||
. apply weakerThan_iff.not.mpr; | ||
push_neg; | ||
use (◇(atom 0) ➝ □◇(atom 0)); | ||
constructor; | ||
. exact Deduction.maxm! $ by simp; | ||
. apply K4.Kripke.sound.not_provable_of_countermodel; | ||
suffices ∃ F : Frame, Transitive F.Rel ∧ ∃ V : Valuation F, ∃ w : F.World, ¬(Kripke.Satisfies ⟨F, V⟩ w _) by | ||
simp [ValidOnModel, ValidOnFrame, Satisfies]; | ||
tauto; | ||
let F : Frame := ⟨Fin 2, λ x y => x < y⟩; | ||
use F; | ||
constructor; | ||
. simp [Transitive]; | ||
omega; | ||
. use (λ w _ => w = 1), 0; | ||
suffices (0 : F.World) ≺ 1 ∧ ∃ x : F.World, (0 : F.World) ≺ x ∧ ¬x ≺ 1 by | ||
simpa [Semantics.Realize, Satisfies]; | ||
constructor; | ||
. omega; | ||
. use 1; omega; | ||
|
||
end LO.Modal.Hilbert |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import Foundation.Modal.Kripke.Geach.Systems | ||
|
||
namespace LO.Modal.Hilbert | ||
|
||
open System | ||
open Modal.Kripke | ||
open Formula | ||
open Formula.Kripke | ||
|
||
lemma K4_weakerThan_KD4 : (Hilbert.K4 α) ≤ₛ (Hilbert.KD4 α) := normal_weakerThan_of_subset $ by intro; aesop; | ||
|
||
theorem K4_strictlyWeakerThan_KD4 : (Hilbert.K4 ℕ) <ₛ (Hilbert.KD4 ℕ) := by | ||
constructor; | ||
. exact K4_weakerThan_KD4; | ||
. apply weakerThan_iff.not.mpr; | ||
push_neg; | ||
use (□(atom 0) ➝ ◇(atom 0)); | ||
constructor; | ||
. exact Deduction.maxm! $ by simp; | ||
. apply K4.Kripke.sound.not_provable_of_countermodel; | ||
suffices ∃ F : Frame, Transitive F.Rel ∧ ∃ V : Valuation F, ∃ w : F.World, ¬(Kripke.Satisfies ⟨F, V⟩ w _) by | ||
simp [ValidOnModel, ValidOnFrame, Satisfies]; | ||
tauto; | ||
let F : Frame := ⟨Fin 1, λ x y => False⟩; | ||
use F; | ||
constructor; | ||
. simp [Transitive]; | ||
. use (λ w _ => w = 0), 0; | ||
simp [Semantics.Realize, Satisfies]; | ||
|
||
end LO.Modal.Hilbert |
Oops, something went wrong.