annotate a02/agda/practice-logic.agda @ 406:a60132983557

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 08 Nov 2023 21:35:54 +0900
parents b3f05cd08d24
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 {-# OPTIONS --allow-unsolved-metas #-}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 module practice-logic where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 postulate A : Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 postulate B : Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
53
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
7 postulate b : B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
9 lemma0 : A -> B
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
10 lemma0 a = {!!}
53
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
11
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
12 id : { A : Set } → ( A → A )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
13 id = {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
14
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
15 id' : { A : Set } → ( A → A )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
16 id' x = {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
17
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
18 _・_ : {A B C : Set } → {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
19 f ・ g = λ x → f ( g x )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
20
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
21
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 Lemma1 : Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 Lemma1 = A -> ( A -> B ) -> B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 lemma1 : Lemma1
139
3be1afb87f82 add utm
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 55
diff changeset
26 lemma1 a f = f a
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 -- lemma1 a a-b = a-b a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
30 lemma2 : Lemma1 -- π
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 lemma2 = \a b -> {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 -- lemma1 = \a a-b -> a-b a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 -- lemma1 = \a b -> b a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 -- lemma1 a b = b a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 lemma3 : Lemma1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 lemma3 = \a -> ( \b -> {!!} )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 record _∧_ (A B : Set) : Set where
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
41 constructor _,_
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 field
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
43 π1 : A
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
44 π2 : B
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 data _∧d_ ( A B : Set ) : Set where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 and : A -> B -> A ∧d B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 Lemma4 : Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 Lemma4 = B -> A -> (B ∧ A)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 lemma4 : Lemma4
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 lemma4 = \b -> \a -> {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 Lemma5 : Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 Lemma5 = (A ∧ B) -> B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 lemma5 : Lemma5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 lemma5 = \a -> {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 data _∨_ (A B : Set) : Set where
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
61 case1 : A -> A ∨ B
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
62 case2 : B -> A ∨ B
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 Lemma6 : Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 Lemma6 = B -> ( A ∨ B )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 lemma6 : Lemma6
55
ba5ee7eb2866 fix graph
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
68 lemma6 = \b -> {!!}
ba5ee7eb2866 fix graph
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
69
ba5ee7eb2866 fix graph
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
70 open _∧_
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71
53
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
72 ex1 : {A B : Set} → ( A ∧ B ) → A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
73 ex1 a∧b = {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
74
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
75 ex2 : {A B : Set} → ( A ∧ B ) → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
76 ex2 a∧b = {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
77
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
78 ex3 : {A B : Set} → A → B → ( A ∧ B )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
79 ex3 a b = {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
80
55
ba5ee7eb2866 fix graph
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
81 ex4 : {A : Set} → A → ( A ∧ A )
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
82 ex4 a = record { π1 = {!!} ; π2 = {!!} }
53
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
83
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
84 ex5 : {A B C : Set} → ( A ∧ B ) ∧ C → A ∧ (B ∧ C)
55
ba5ee7eb2866 fix graph
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
85 ex5 a∧b∧c = {!!}
53
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
86
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
87 ex6 : {A B C : Set} → ( (A → B ) ∧ ( B → C) ) → A → C
55
ba5ee7eb2866 fix graph
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
88 ex6 p a = {!!}
53
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
89
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
90 ex7 : {A : Set} → ( A ∨ A ) → A
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
91 ex7 (case1 a) = a
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
92 ex7 (case2 a) = a
53
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
93
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
94 ex8 : {A B : Set} → B → ( A ∨ ( B → A ) ) → A
55
ba5ee7eb2866 fix graph
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
95 ex8 = {!!}
53
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 52
diff changeset
96
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 open import Relation.Nullary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 open import Relation.Binary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 open import Data.Empty
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 contra-position : {A : Set } {B : Set } → (A → B) → ¬ B → ¬ A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 contra-position {A} {B} f ¬b a = {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
104 contra-position' : {A : Set } {B : Set } → (A → B) → (B → ⊥) → A → ⊥
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
105 contra-position' f ¬b a = {!!}
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
106
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
107 contra-position1 : {A : Set } {B : Set } → (B ∨ ( ¬ B )) → (¬ B → ¬ A )→ (A → B)
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
108 contra-position1 {A} {B} = {!!}
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
109
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
110 double-neg : {A : Set } → A → ¬ (¬ A)
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
111 double-neg = {!!}
55
ba5ee7eb2866 fix graph
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
112
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
113 double-neg' : {A : Set } → A → ( A → ⊥ ) → ⊥
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
114 double-neg' = {!!}
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
115
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
116 double-neg1 : {A : Set } → ¬ (¬ A) → A
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
117 double-neg1 x = {!!}
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
118
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
119 lem : {A : Set } → A ∨ ( ¬ A ) -- 排中律 law of exclude middle LEM
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
120 lem = {!!}
55
ba5ee7eb2866 fix graph
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
121
ba5ee7eb2866 fix graph
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
122 lemma : {A : Set } → A ∨ ( ¬ A ) → ¬ ¬ A → A
ba5ee7eb2866 fix graph
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 53
diff changeset
123 lemma = {!!}
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 double-neg2 : {A : Set } → ¬ ¬ ¬ A → ¬ A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 double-neg2 = {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
128 de-mcasegan : {A B : Set } → A ∧ B → ¬ ( (¬ A ) ∨ (¬ B ) )
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
129 de-mcasegan {A} {B} = {!!}
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
131 dont-case : {A : Set } { B : Set } → A ∨ B → ¬ A → B
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
132 dont-case {A} {B} = {!!}
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134