This commit is contained in:
pingu committed 2025-12-22 16:15:02 +01:00
1 parent c68edf0f52
commit 23474cecc4
1 file changed
+36 -12
+36 -12
View File
@@ -17,6 +17,15 @@ data Σ (A : Type) (B : A -> Type) : Type where
∃ : {A : Type} (B : A → Type) → Type ∃ : {A : Type} (B : A → Type) → Type
∃ {A} B = Σ A B ∃ {A} B = Σ A B
record _×_ (A B : Type) : Type where
field
fst : A
snd : B
data _∪_ (A B : Type) : Type where
inl : A → A ∪ B
inr : B → A ∪ B
data Formula : Type where data Formula : Type where
⊥ : Formula ⊥ : Formula
atom : Nat → Formula atom : Nat → Formula
@@ -72,15 +81,30 @@ record M (W : Type) : Type₁ where
R : Rel W W R : Rel W W
L : W → List Nat L : W → List Nat
infixr 2 _,_⊩_ infix 2 _,_⊩_
data _,_⊩_ {W : Type} (Model : M W) (x : W) : (p : Formula) → Type where _,_⊩_ : {W : Type} (Model : M W) (x : W) (p : Formula) → Type
top : Model , x ⊩ ⊤ Model , x ⊩ ⊥ = Bottom
atom : {p : Nat} → p ∈ (M.L Model x) → Model , x ⊩ atom p Model , x ⊩ atom n = n ∈ M.L Model x
neg : {p : Formula} → ¬ (Model , x ⊩ p) → Model , x ⊩ ∼ p Model , x ⊩ (∼ p) = ¬ (Model , x ⊩ p)
and : {p q : Formula} → Model , x ⊩ p → Model , x ⊩ q → Model , x ⊩ p ∧ q Model , x ⊩ (p ∧ q) = (Model , x ⊩ p) × (Model , x ⊩ q)
orl : {p q : Formula} → Model , x ⊩ p → Model , x ⊩ p ∨ q Model , x ⊩ (p ∨ q) = (Model , x ⊩ p) ∪ (Model , x ⊩ q)
orr : {p q : Formula} → Model , x ⊩ q → Model , x ⊩ p ∨ q Model , x ⊩ p ⇒ q = Model , x ⊩ p → Model , x ⊩ q
impl : {p q : Formula} → Model , x ⊩ p → Model , x ⊩ q → Model , x ⊩ p ⇒ q Model , x ⊩ (□ p) = ∀ y → M.R Model x y → Model , y ⊩ p
-- impln : {p q : Formula} → ¬ (Model , x ⊩ p) → Model , x ⊩ p ⇒ q Model , x ⊩ (◇ p) = ∃ λ y → M.R Model x y → Model , y ⊩ p
box : {p : Formula} → (∀ (y : W) → M.R Model x y → Model , y ⊩ p) → Model , x ⊩ □ p
dia : {p : Formula} → (∃ λ (y : W) → M.R Model x y → Model , y ⊩ p) → Model , x ⊩ ◇ p data R : Nat → Nat → Type where
zeroone : R 0 1
zerotwo : R 0 2
onetwo : R 1 2
ExampleModel : M Nat
ExampleModel .M.R = R
ExampleModel .M.L 0 = 0 ∷ []
ExampleModel .M.L 1 = 1 ∷ 2 ∷ []
ExampleModel .M.L 2 = 0 ∷ 2 ∷ []
ExampleModel .M.L _ = []
Example : ExampleModel , 0 ⊩ □ (atom 2)
Example y zeroone = succ 2 (2 ∷ []) (zero 2 [])
Example y zerotwo = succ 2 (2 ∷ []) (zero 2 [])