annotate record-ex.agda @ 300:d6a6dd305da2

arrow and lambda fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 29 Sep 2013 14:01:07 +0900
parents 3249aaddc405
children 0d7fa6fc5979
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 module record-ex where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 data _∨_ (A B : Set) : Set where
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
4 or1 : A → A ∨ B
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
5 or2 : B → A ∨ B
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 postulate A B C : Set
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 postulate a1 a2 a3 : A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 postulate b1 b2 b3 : B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 x : ( A ∨ B )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 x = or1 a1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 y : ( A ∨ B )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 y = or2 b1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
16 f : ( A ∨ B ) → A
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 f (or1 a) = a
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 f (or2 b) = a1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 record _∧_ (A B : Set) : Set where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 field
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 and1 : A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 and2 : 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 z : A ∧ B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 z = record { and1 = a1 ; and2 = b2 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 xa : A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 xa = _∧_.and1 z
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 xb : B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 xb = _∧_.and2 z
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 open _∧_
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 ya : A
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 ya = and1 z
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 open import Relation.Binary.PropositionalEquality
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 data Nat : Set where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 zero : Nat
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
42 suc : Nat → Nat
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 record Mod3 (m : Nat) : Set where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 field
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 mod3 : (suc (suc (suc m ))) ≡ m
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 n : Nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 n = m
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 open Mod3
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51
300
d6a6dd305da2 arrow and lambda fix
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 153
diff changeset
52 Lemma1 : ( x : Mod3 ( suc (suc (suc (suc zero))))) ( y : Mod3 ( suc zero ) ) → n x ≡ n y
153
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 Lemma1 x y = mod3 y
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54