annotate list-nat.agda @ 790:1e7319868d77

Sets is CCC
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 19 Apr 2019 23:42:19 +0900
parents 92eb707498c7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
1 module list-nat where
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
2
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
3 open import Level
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
130
5f331dfc000b remove Kleisli record
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
6 postulate A : Set
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
130
5f331dfc000b remove Kleisli record
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
8 postulate a : A
5f331dfc000b remove Kleisli record
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
9 postulate b : A
5f331dfc000b remove Kleisli record
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
10 postulate c : A
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
11
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 infixr 40 _::_
130
5f331dfc000b remove Kleisli record
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
14 data List (A : Set ) : Set where
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 [] : List A
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
16 _::_ : A → List A → List A
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 infixl 30 _++_
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
20 _++_ : {A : Set } → List A → List A → List A
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 [] ++ ys = ys
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 (x :: xs) ++ ys = x :: (xs ++ ys)
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 l1 = a :: []
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 l2 = a :: b :: a :: c :: []
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 l3 = l1 ++ l2
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
130
5f331dfc000b remove Kleisli record
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
29 data Node ( A : Set ) : Set where
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
30 leaf : A → Node A
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
31 node : Node A → Node A → Node A
30
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
32
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
33 flatten : { A : Set } → Node A → List A
30
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
34 flatten ( leaf a ) = a :: []
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
35 flatten ( node a b ) = flatten a ++ flatten b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
36
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
37 n1 = node ( leaf a ) ( node ( leaf b ) ( leaf c ))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
38
18
da1b8250e72a reasoning worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
39 open import Relation.Binary.PropositionalEquality
da1b8250e72a reasoning worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
40
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 infixr 20 _==_
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
43 data _==_ {A : Set } : List A → List A → Set where
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
44 reflection : {x : List A} → x == x
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
45
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
46 cong1 : {A : Set } { B : Set } →
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
47 ( f : List A → List B ) → {x : List A } → {y : List A} → x == y → f x == f y
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
48 cong1 f reflection = reflection
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
49
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
50 eq-cons : {A : Set } {x y : List A} ( a : A ) → x == y → ( a :: x ) == ( a :: y )
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
51 eq-cons a z = cong1 ( λ x → ( a :: x) ) z
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
52
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
53 trans-list : {A : Set } {x y z : List A} → x == y → y == z → x == z
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
54 trans-list reflection reflection = reflection
18
da1b8250e72a reasoning worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
55
da1b8250e72a reasoning worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
56
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
57 ==-to-≡ : {A : Set } {x y : List A} → x == y → x ≡ y
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
58 ==-to-≡ reflection = refl
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
60 list-id-l : { A : Set } → { x : List A} → [] ++ x == x
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 list-id-l = reflection
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
63 list-id-r : { A : Set } → ( x : List A ) → x ++ [] == x
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 list-id-r [] = reflection
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
65 list-id-r (x :: xs) = eq-cons x ( list-id-r xs )
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
67 list-assoc : {A : Set } → ( xs ys zs : List A ) →
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 ( ( xs ++ ys ) ++ zs ) == ( xs ++ ( ys ++ zs ) )
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 list-assoc [] ys zs = reflection
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
70 list-assoc (x :: xs) ys zs = eq-cons x ( list-assoc xs ys zs )
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71
18
da1b8250e72a reasoning worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
72
130
5f331dfc000b remove Kleisli record
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
73 module ==-Reasoning (A : Set ) where
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
74
606
92eb707498c7 fix for new agda
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 300
diff changeset
75 infix 3 _∎
30
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
76 infixr 2 _==⟨_⟩_ _==⟨⟩_
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
77 infix 1 begin_
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
80 data _IsRelatedTo_ (x y : List A) :
130
5f331dfc000b remove Kleisli record
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 30
diff changeset
81 Set where
18
da1b8250e72a reasoning worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
82 relTo : (x≈y : x == y ) → x IsRelatedTo y
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
83
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
84 begin_ : {x : List A } {y : List A} →
18
da1b8250e72a reasoning worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
85 x IsRelatedTo y → x == y
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
86 begin relTo x≈y = x≈y
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
87
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
88 _==⟨_⟩_ : (x : List A ) {y z : List A} →
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
89 x == y → y IsRelatedTo z → x IsRelatedTo z
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
90 _ ==⟨ x≈y ⟩ relTo y≈z = relTo (trans-list x≈y y≈z)
18
da1b8250e72a reasoning worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
91
30
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
92 _==⟨⟩_ : (x : List A ) {y : List A}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
93 → x IsRelatedTo y → x IsRelatedTo y
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
94 _ ==⟨⟩ x≈y = x≈y
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
95
20
e34c93046acf clean up list-nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
96 _∎ : (x : List A ) → x IsRelatedTo x
18
da1b8250e72a reasoning worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
97 _∎ _ = relTo reflection
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
98
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
99 lemma11 : (A : Set ) ( x : List A ) → x == x
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
100 lemma11 A x = let open ==-Reasoning A in
18
da1b8250e72a reasoning worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
101 begin x ∎
da1b8250e72a reasoning worked.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
102
606
92eb707498c7 fix for new agda
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 300
diff changeset
103
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
104 ++-assoc : (L : Set ) ( xs ys zs : List L ) → (xs ++ ys) ++ zs == xs ++ (ys ++ zs)
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
105 ++-assoc A [] ys zs = let open ==-Reasoning A in
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
106 begin -- to prove ([] ++ ys) ++ zs == [] ++ (ys ++ zs)
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 ( [] ++ ys ) ++ zs
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
108 ==⟨ reflection ⟩
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 ys ++ zs
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
110 ==⟨ reflection ⟩
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 [] ++ ( ys ++ zs )
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
113
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
114 ++-assoc A (x :: xs) ys zs = let open ==-Reasoning A in
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
115 begin -- to prove ((x :: xs) ++ ys) ++ zs == (x :: xs) ++ (ys ++ zs)
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 ((x :: xs) ++ ys) ++ zs
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
117 ==⟨ reflection ⟩
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 (x :: (xs ++ ys)) ++ zs
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
119 ==⟨ reflection ⟩
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 x :: ((xs ++ ys) ++ zs)
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
121 ==⟨ cong1 (_::_ x) (++-assoc A xs ys zs) ⟩
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 x :: (xs ++ (ys ++ zs))
17
03d39cabebb7 not working yet
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
123 ==⟨ reflection ⟩
15
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 (x :: xs) ++ (ys ++ zs)
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126
730a4a59a7bd list nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
128
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
129 --data Bool : Set where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
130 -- true : Bool
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
131 -- false : Bool
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
132
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
133
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
134 --postulate Obj : Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
135
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
136 --postulate Hom : Obj → Obj → Set
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
137
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
138
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
139 --postulate id : { a : Obj } → Hom a a
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
140
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
141
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
142 --infixr 80 _○_
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
143 --postulate _○_ : { a b c : Obj } → Hom b c → Hom a b → Hom a c
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
144
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
145 -- postulate axId1 : {a b : Obj} → ( f : Hom a b ) → f == id ○ f
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
146 -- postulate axId2 : {a b : Obj} → ( f : Hom a b ) → f == f ○ id
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
147
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
148 --assoc : { a b c d : Obj } →
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
149 -- (f : Hom c d ) → (g : Hom b c) → (h : Hom a b) →
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
150 -- (f ○ g) ○ h == f ○ ( g ○ h)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
151
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
152
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
153 --a = Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
154
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
155 -- ListObj : {A : Set} → List A
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
156 -- ListObj = List Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
157
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
158 -- ListHom : ListObj → ListObj → Set
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 130
diff changeset
159