Removed older proofs in order to avoid having to rewrite them every time
This commit is contained in:
parent
01a029bc39
commit
b11c60fc3d
@ -67,107 +67,3 @@ module PropositionalKripke (PV : Set) where
|
|||||||
⟦ andi p₁ p₂ ⟧ wΓ = ⟨ (⟦ p₁ ⟧ wΓ) , (⟦ p₂ ⟧ wΓ) ⟩
|
⟦ andi p₁ p₂ ⟧ wΓ = ⟨ (⟦ p₁ ⟧ wΓ) , (⟦ p₂ ⟧ wΓ) ⟩
|
||||||
⟦ ande₁ p ⟧ wΓ = proj₁ $ ⟦ p ⟧ wΓ
|
⟦ ande₁ p ⟧ wΓ = proj₁ $ ⟦ p ⟧ wΓ
|
||||||
⟦ ande₂ p ⟧ wΓ = proj₂ $ ⟦ p ⟧ wΓ
|
⟦ ande₂ p ⟧ wΓ = proj₂ $ ⟦ p ⟧ wΓ
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module CompletenessProof where
|
|
||||||
|
|
||||||
-- First, we define the Universal Kripke Model with (⊢⁺)⁻¹ as world order
|
|
||||||
UK : Kripke
|
|
||||||
UK = record {
|
|
||||||
Worlds = Con;
|
|
||||||
_≤_ = λ x y → y ⊢⁺ x;
|
|
||||||
refl≤ = refl⊢⁺;
|
|
||||||
tran≤ = λ ΓΓ' Γ'Γ'' → tran⊢⁺ Γ'Γ'' ΓΓ';
|
|
||||||
_⊩_ = λ Γ x → Γ ⊢ Var x;
|
|
||||||
mon⊩ = λ ba bx → halftran⊢⁺ ba bx
|
|
||||||
}
|
|
||||||
open Kripke UK
|
|
||||||
|
|
||||||
-- Now we can prove that ⊩ᶠ and ⊢ act in the same way
|
|
||||||
⊩ᶠ→⊢ : {F : Form} → {Γ : Con} → Γ ⊩ᶠ F → Γ ⊢ F
|
|
||||||
⊢→⊩ᶠ : {F : Form} → {Γ : Con} → Γ ⊢ F → Γ ⊩ᶠ F
|
|
||||||
⊢→⊩ᶠ {Var x} h = h
|
|
||||||
⊢→⊩ᶠ {F ⇒ F₁} h {Γ'} iq hF = ⊢→⊩ᶠ {F₁} (app {Γ'} {F} {F₁} (lam (app (halftran⊢⁺ (addhyp⊢⁺ (right∈* refl∈*) iq) h) (zero zero∈))) (⊩ᶠ→⊢ hF))
|
|
||||||
⊢→⊩ᶠ {F ∧∧ G} h = ⟨ (⊢→⊩ᶠ {F} (ande₁ h)) , (⊢→⊩ᶠ {G} (ande₂ h)) ⟩
|
|
||||||
⊩ᶠ→⊢ {Var x} h = h
|
|
||||||
⊩ᶠ→⊢ {F ⇒ F₁} {Γ} h = lam (⊩ᶠ→⊢ (h (addhyp⊢⁺ (right∈* refl∈*) refl⊢⁺) (⊢→⊩ᶠ {F} {F ∷ Γ} (zero zero∈))))
|
|
||||||
⊩ᶠ→⊢ {F ∧∧ G} ⟨ hF , hG ⟩ = andi (⊩ᶠ→⊢ {F} hF) (⊩ᶠ→⊢ {G} hG)
|
|
||||||
|
|
||||||
-- Finally, we can deduce completeness of the Kripke model
|
|
||||||
completeness : {F : Form} → [] ⊫ F → [] ⊢ F
|
|
||||||
completeness {F} ⊫F = ⊩ᶠ→⊢ (⊫F tt)
|
|
||||||
|
|
||||||
module NormalizationProof where
|
|
||||||
|
|
||||||
-- First we define the Universal model with (⊢⁰⁺)⁻¹ as world order
|
|
||||||
-- It is slightly different from the last Model, but proofs are the same
|
|
||||||
UK⁰ : Kripke
|
|
||||||
UK⁰ = record {
|
|
||||||
Worlds = Con;
|
|
||||||
_≤_ = λ x y → y ⊢⁰⁺ x;
|
|
||||||
refl≤ = refl⊢⁰⁺;
|
|
||||||
tran≤ = λ ΓΓ' Γ'Γ'' → tran⊢⁰⁺ Γ'Γ'' ΓΓ';
|
|
||||||
_⊩_ = λ Γ x → Γ ⊢⁰ Var x;
|
|
||||||
mon⊩ = λ ba bx → halftran⊢⁰⁺⁰ ba bx
|
|
||||||
}
|
|
||||||
open Kripke UK⁰
|
|
||||||
|
|
||||||
-- We can now prove the normalization, i.e. the quote and function exists
|
|
||||||
-- The mutual proofs are exactly the same as the ones used in completeness
|
|
||||||
-- quote
|
|
||||||
⊩ᶠ→⊢ : {F : Form} → {Γ : Con} → Γ ⊩ᶠ F → Γ ⊢* F
|
|
||||||
-- unquote
|
|
||||||
⊢→⊩ᶠ : {F : Form} → {Γ : Con} → Γ ⊢⁰ F → Γ ⊩ᶠ F
|
|
||||||
|
|
||||||
⊢→⊩ᶠ {Var x} h = h
|
|
||||||
⊢→⊩ᶠ {F ⇒ F₁} h {Γ'} iq hF = ⊢→⊩ᶠ {F₁} (app {Γ'} {F} {F₁} (halftran⊢⁰⁺⁰ iq h) (⊩ᶠ→⊢ hF))
|
|
||||||
⊢→⊩ᶠ {F ∧∧ G} h = ⟨ (⊢→⊩ᶠ {F} (ande₁ h)) , (⊢→⊩ᶠ {G} (ande₂ h)) ⟩
|
|
||||||
⊩ᶠ→⊢ {Var x} h = neu⁰ h
|
|
||||||
⊩ᶠ→⊢ {F ⇒ F₁} {Γ} h = lam (⊩ᶠ→⊢ (h (addhyp⊢⁰⁺ (right∈* refl∈*) refl⊢⁰⁺) (⊢→⊩ᶠ {F} {F ∷ Γ} (zero zero∈))))
|
|
||||||
⊩ᶠ→⊢ {F ∧∧ G} ⟨ hF , hG ⟩ = andi (⊩ᶠ→⊢ {F} hF) (⊩ᶠ→⊢ {G} hG)
|
|
||||||
|
|
||||||
module OtherProofs where
|
|
||||||
|
|
||||||
-- We will try to define the Kripke models using the following embeddings
|
|
||||||
|
|
||||||
-- Strongest is using the ⊢⁺ relation directly
|
|
||||||
|
|
||||||
-- -> See module CompletenessProof
|
|
||||||
|
|
||||||
-- We can also use the relation ⊢⁰⁺, which is compatible with ⊢⁰ and ⊢*
|
|
||||||
|
|
||||||
-- -> See module NormalizationProof
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{- Renamings : ∈* -}
|
|
||||||
UK∈* : Kripke
|
|
||||||
UK∈* = record {
|
|
||||||
Worlds = Con;
|
|
||||||
_≤_ = _∈*_;
|
|
||||||
refl≤ = refl∈*;
|
|
||||||
tran≤ = tran∈*;
|
|
||||||
_⊩_ = λ Γ x → Γ ⊢ Var x;
|
|
||||||
mon⊩ = λ x x₁ → addhyp⊢ x x₁
|
|
||||||
}
|
|
||||||
{-
|
|
||||||
{- Weakening anywhere, order preserving, duplication authorized : ⊂⁺ -}
|
|
||||||
UK⊂⁺ : Kripke
|
|
||||||
UK⊂⁺ = record {
|
|
||||||
Worlds = Con;
|
|
||||||
_≤_ = _⊂⁺_;
|
|
||||||
refl≤ = refl⊂⁺;
|
|
||||||
tran≤ = tran⊂⁺;
|
|
||||||
_⊩_ = λ Γ x → Γ ⊢ Var x;
|
|
||||||
mon⊩ = λ x x₁ → addhyp⊢ x x₁
|
|
||||||
}
|
|
||||||
-}
|
|
||||||
{- Weakening anywhere, no duplication, order preserving : ⊂ -}
|
|
||||||
|
|
||||||
|
|
||||||
{- Weakening at the end : ⊆-}
|
|
||||||
|
|
||||||
-- This is exactly our relation ⊆
|
|
||||||
|
|||||||
14
Readme.agda
14
Readme.agda
@ -116,23 +116,19 @@ module PierceDisproof where
|
|||||||
|
|
||||||
|
|
||||||
module CompletenessAndNormalization where
|
module CompletenessAndNormalization where
|
||||||
|
|
||||||
-- With Kripke models, we can even prove completeness
|
-- With Kripke models, we can even prove completeness
|
||||||
-- Using the Universal Kripke Model
|
-- Using the Universal Kripke Model
|
||||||
|
|
||||||
completenessQuote = CompletenessProof.⊩ᶠ→⊢
|
|
||||||
completenessUnquote = CompletenessProof.⊢→⊩ᶠ
|
|
||||||
|
|
||||||
-- With a slightly different universal model (using normal and neutral forms),
|
-- With a slightly different universal model (using normal and neutral forms),
|
||||||
-- we can make a normalization proof
|
-- we can make a normalization proof
|
||||||
normalizationQuote = NormalizationProof.⊩ᶠ→⊢
|
|
||||||
normalizationUnquote = NormalizationProof.⊢→⊩ᶠ
|
-- This normalization proof has first been made in the biggest Kripke model possible
|
||||||
|
|
||||||
-- This normalization proof has been made in the biggest Kripke model possible
|
|
||||||
-- that is, the one using the relation ⊢⁰⁺
|
-- that is, the one using the relation ⊢⁰⁺
|
||||||
-- But we can also prove it with tighter relations: ∈*, ⊂⁺, ⊂, ⊆
|
-- But we can also prove it with tighter relations: ∈*, ⊂⁺, ⊂, ⊆
|
||||||
|
|
||||||
-- As all those proofs are really similar, we created a NormalizationFrame structure
|
-- As all those proofs are really similar, we created a NormalizationFrame structure
|
||||||
-- that computes most of the proof with only a few lemmas
|
-- that computes most of the proofs with only a few lemmas
|
||||||
open import PropositionalKripkeGeneral String
|
open import PropositionalKripkeGeneral String
|
||||||
|
|
||||||
-- We now have access to quote and unquote functions with this
|
-- We now have access to quote and unquote functions with this
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user