Advertisement
Guest User

Untitled

a guest
Aug 29th, 2015
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. {-
  2.  
  3. A natural deduction presentation of classical logic (Nc), using de Bruijn indices.
  4.  
  5. Basic proof theory
  6. A.S. Troelstra, H. Schwichtenberg, 2000
  7.  
  8. -}
  9.  
  10. module NcB (Value : Set) where
  11.  
  12.  
  13. infixr 9 ¬_
  14. infixl 8 _∧_
  15. infixl 8 _∨_
  16. infixr 7 _⊃_
  17. infixr 7 _⊃⊂_
  18.  
  19. infixl 7 _,_
  20. infixl 5 _∈_
  21. infixr 3 _+_⊢_
  22.  
  23.  
  24. data Formula : Set where
  25. _⊃_ : Formula → Formula → Formula
  26. _∧_ : Formula → Formula → Formula
  27. _∨_ : Formula → Formula → Formula
  28. ∇ : (Value → Formula) → Formula
  29. ∃ : (Value → Formula) → Formula
  30. ⊥ : Formula
  31.  
  32. _⊃⊂_ : Formula → Formula → Formula
  33. A ⊃⊂ B = (A ⊃ B) ∧ (B ⊃ A)
  34.  
  35. ¬_ : Formula → Formula
  36. ¬ A = A ⊃ ⊥
  37.  
  38. ⊤ : Formula
  39. ⊤ = ⊥ ⊃ ⊥
  40.  
  41.  
  42. data List (X : Set) : Set where
  43. ε : List X
  44. _,_ : List X → X → List X
  45.  
  46. data _∈_ {X} (x : X) : List X → Set where
  47. zero : ∀ {Γ} → x ∈ Γ , x
  48. suc : ∀ {Γ y} → x ∈ Γ → x ∈ Γ , y
  49.  
  50.  
  51. data _+_⊢_ (V : List Value) (Γ : List Formula) : Formula → Set where
  52. hyp : ∀ {A} → A ∈ Γ
  53. → V + Γ ⊢ A
  54. ⊃I : ∀ {A B} → V + Γ , A ⊢ B
  55. → V + Γ ⊢ A ⊃ B
  56. ⊃E : ∀ {A B} → V + Γ ⊢ A ⊃ B → V + Γ ⊢ A
  57. → V + Γ ⊢ B
  58. ∧I : ∀ {A B} → V + Γ ⊢ A → V + Γ ⊢ B
  59. → V + Γ ⊢ A ∧ B
  60. ∧Eᴸ : ∀ {A B} → V + Γ ⊢ A ∧ B
  61. → V + Γ ⊢ A
  62. ∧Eᴿ : ∀ {A B} → V + Γ ⊢ A ∧ B
  63. → V + Γ ⊢ B
  64. ∨Iᴸ : ∀ {A B} → V + Γ ⊢ A
  65. → V + Γ ⊢ A ∨ B
  66. ∨Iᴿ : ∀ {A B} → V + Γ ⊢ B
  67. → V + Γ ⊢ A ∨ B
  68. ∨E : ∀ {A B C} → V + Γ ⊢ A ∨ B → V + Γ , A ⊢ C → V + Γ , B ⊢ C
  69. → V + Γ ⊢ C
  70. ∇I : ∀ {P x} → V , x + Γ ⊢ P x
  71. → V + Γ ⊢ ∇ P
  72. ∇E : ∀ {P x} → V + Γ ⊢ ∇ P → x ∈ V
  73. → V + Γ ⊢ P x
  74. ∃I : ∀ {P x} → V + Γ ⊢ P x → x ∈ V
  75. → V + Γ ⊢ ∃ P
  76. ∃E : ∀ {P x A} → V + Γ ⊢ ∃ P → V + Γ , P x ⊢ A
  77. → V + Γ ⊢ A
  78. ⊥E : ∀ {A} → V + Γ , ¬ A ⊢ ⊥
  79. → V + Γ ⊢ A
  80.  
  81.  
  82. I : ∀ {V Γ A} → V + Γ ⊢ A ⊃ A
  83. I = ⊃I x
  84. where
  85. x = hyp zero
  86.  
  87. K : ∀ {V Γ A B} → V + Γ ⊢ A ⊃ B ⊃ A
  88. K = ⊃I (⊃I x)
  89. where
  90. x = hyp (suc zero)
  91.  
  92. S : ∀ {V Γ A B C} → V + Γ ⊢ (A ⊃ B ⊃ C) ⊃ (A ⊃ B) ⊃ A ⊃ C
  93. S = ⊃I (⊃I (⊃I (⊃E (⊃E f x)
  94. (⊃E g x))))
  95. where
  96. f = hyp (suc (suc zero))
  97. g = hyp (suc zero)
  98. x = hyp zero
  99.  
  100. WTF : ∀ {V Γ P} → V + Γ ⊢ ¬(∇ \x → ¬(P x)) ⊃ ∃ P
  101. WTF = ⊃I (⊥E (⊃E w
  102. (∇I (⊃I (⊃E u
  103. (∃I v zero))))))
  104. where
  105. w = hyp (suc zero)
  106. u = hyp (suc zero)
  107. v = hyp zero
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement