annotate record-ex.agda @ 153:3249aaddc405

sync
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 17 Aug 2013 21:09:34 +0900
parents
children d6a6dd305da2
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
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 or1 : A -> A ∨ B
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 or2 : B -> A ∨ B
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
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 f : ( A ∨ B ) -> A
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
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 suc : Nat -> Nat
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
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 Lemma1 : ( x : Mod3 ( suc (suc (suc (suc zero))))) ( y : Mod3 ( suc zero ) ) -> n x ≡ n y
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