-
Notifications
You must be signed in to change notification settings - Fork 273
Expand file tree
/
Copy pathTrivial-Logic.agda
More file actions
60 lines (51 loc) · 1.92 KB
/
Copy pathTrivial-Logic.agda
File metadata and controls
60 lines (51 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
----------------------------------------------------------------------------
-- The Agda standard library
--
-- Logic with 'trivial truth' connective + related proof
----------------------------------------------------------------------------
{-# OPTIONS --cubical-compatible --safe #-}
module Logic.Connectives.Trivial-Logic where
open import Logic.Logic
open import Logic.Punctuation.Leftid-Logic
open import Logic.Connectives.Truth-Logic
open import Logic.Structural-Rules.K-Logic
open import Data.Product using (_×_; proj₁; proj₂) renaming (_,_ to ⟨_,_⟩)
record Trivial-Logic
{Lang : Set} {Struct : Set} (S : Lang → Struct)
(_⊢_ : Struct → Lang → Set)
(C⟨_⟩ : Struct → Struct )
(_⨾_ : Struct → Struct → Struct)
(_⇒_ : Lang → Lang → Lang)
(⊤ ⊥ : Lang) : Set where
field
is-logic : Logic S _⊢_ C⟨_⟩ _⨾_ _⇒_
⊤-introduction :
∀ {X : Struct} →
---------
X ⊢ ⊤
⊥-elimination :
∀ {X : Struct} {A : Lang} →
X ⊢ ⊥ →
------------
C⟨ X ⟩ ⊢ A
-- Lemma 2.32
t-⊤-equiv :
∀ (Lang : Set) (Struct : Set) (S : Lang → Struct)
(_⊢_ : Struct → Lang → Set)
(C⟨_⟩ : Struct → Struct)
(_⨾_ : Struct → Struct → Struct) (∅ : Struct)
(_⇒_ : Lang → Lang → Lang) (t ⊤ ⊥ : Lang) →
Truth-Logic S _⊢_ C⟨_⟩ _⨾_ ∅ _⇒_ t →
Trivial-Logic S _⊢_ C⟨_⟩ _⨾_ _⇒_ ⊤ ⊥ →
K-Logic S _⊢_ C⟨_⟩ _⨾_ _⇒_ →
------------------------------------------
∀ {A B : Lang} → (S t) ⊢ ⊤ × (S ⊤) ⊢ t
t-⊤-equiv Lang Struct S _⊢_ C⟨_⟩ _⨾_ ∅ _⇒_ t ⊤ ⊥ x y z =
⟨ (Trivial-Logic.⊤-introduction y) ,
Logic.context w
(lPo-Logic.left-pop u)
(Logic.context w (K-Logic.weaken z) (Truth-Logic.t-introduction x)) ⟩
where
w = K-Logic.is-logic z
v = Truth-Logic.is-leftid-Logic x
u = Leftid-Logic.is-left-pop v