annotate a02/agda/lambda.agda @ 406:a60132983557

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 08 Nov 2023 21:35:54 +0900
parents 407684f806e4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
266
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
1 module lambda ( A B : Set) (a : A ) (b : B ) where
138
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
266
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
3 -- λ-intro
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
4 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
5 -- A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
6 -- -------- id
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
7 -- A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
8 -- -------- λ-intro ( = λ ( x : A ) → x )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
9 -- A → A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
10
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
11 A→A : A → A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
12 A→A = λ ( x : A ) → x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
13
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
14 A→A'' : A → A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
15 A→A'' = λ x → x
138
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
266
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
17 A→A' : A → A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
18 A→A' x = x
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
20 lemma2 : (A : Set ) → A → A -- これは A → ( A → A ) とは違う
330
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
21 lemma2 = ?
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
22
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
23 lemma3 : {A B : Set } → B → ( A → B ) -- {} implicit variable
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
24 lemma3 b = λ _ → b -- _ anonymous variable
266
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
25
330
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
26 -- λ-intro
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
27 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
28 -- a : A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
29 -- : f : A → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
30 -- b : B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
31 -- ------------- f
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
32 -- A → B
139
3be1afb87f82 add utm
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 138
diff changeset
33
266
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
34 -- λ-elim
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
35 --
330
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
36 -- a : A f : A → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
37 -- ------------------------ λ-elim
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 266
diff changeset
38 -- f a : B
266
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
39
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
40 →elim : A → ( A → B ) → B
139
3be1afb87f82 add utm
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 138
diff changeset
41 →elim a f = f a
138
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 ex1 : {A B : Set} → Set
266
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
44 ex1 {A} {B} = {!!} -- ( A → B ) → A → B
138
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 ex2 : {A : Set} → Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 ex2 {A} = A → ( A → A )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
49 proof2 : {A : Set } → ex2 {A}
266
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
50 proof2 {A} = {!!} where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
51 p1 : {!!} --- ex2 {A} を C-C C-N する
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
52 p1 = {!!}
138
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
266
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
54 ex3 : A → B -- インチキの例
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
55 ex3 a = {!!}
138
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
266
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
57 ex4 : {A B : Set} → A → (B → B) -- 仮定を無視してる
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
58 ex4 {A}{B} a b = b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
59
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
60 --- [A]₁ not used --- a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
61 --- ────────────────────
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
62 --- [B]₂ --- b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
63 --- ──────────────────── (₂)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
64 --- B → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
65 --- ──────────────────── (₁) λ-intro
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
66 --- A → (B → B)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
67
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
68
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
69 ex4' : A → (B → B) -- インチキできる / 仮定を使える
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
70 ex4' = {!!}
138
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
72 ex5 : {A B : Set} → A → B → A
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
73 ex5 = {!!}
138
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
77 postulate
266
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
78 Domain : Set -- Range Domain : Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
79 Range : Set -- codomain Domain → Range, coRange ← coDomain
141
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
80 r : Range
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
81
b3f05cd08d24 clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 139
diff changeset
82 ex6 : Domain → Range
138
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 ex6 a = {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85
266
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
86 --- A → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
87 -- :
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
88 --- A → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
89 --- ───────────────────────────
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
90 --- ( A → B ) → A → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
91 ---
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
92 --- [A]₁ [A → B ]₂
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
93 --- ─────────────────────────── λ-elim
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
94 --- B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
95 --- ─────────────────────────── ₁
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
96 --- A → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
97 --- ─────────────────────────── ₂
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
98 --- ( A → B ) → A → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
99
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
100 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
101 -- 上の二つの図式に対応する二つの証明に対応するラムダ項がある
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
102 --
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
103 ex11 : ( A → B ) → A → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 141
diff changeset
104 ex11 = {!!}
138
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 ex12 : (A B : Set) → ( A → B ) → A → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 ex12 = {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 ex13 : {A B : Set} → ( A → B ) → A → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 ex13 {A} {B} = {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 ex14 : {A B : Set} → ( A → B ) → A → B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 ex14 x = {!!}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115