-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.agda
94 lines (79 loc) · 2.49 KB
/
index.agda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
module index where
-- natural numbers
--- additions
import Nats.Add.Assoc
using (nat-add-assoc) -- associative law
import Nats.Add.Comm
using (nat-add-comm) -- commutative law
import Nats.Add.Invert
using (nat-add-invert) -- a + a == b + b implies a == b
using (nat-add-invert-1) -- a + 1 == b + 1 implies a == b
--- multiplications
import Nats.Multiply.Comm
using (nat-multiply-comm) -- commutative law
import Nats.Multiply.Distrib
using (nat-multiply-distrib) -- distributive law
import Nats.Multiply.Assoc
using (nat-multiply-assoc) -- associative law
-- integers
--- some properties
import Ints.Properties
using (eq-int-to-nat) -- for natrual number a, + a == + a implis a == a
using (eq-neg-int-to-nat) -- for natrual number a, - a == - a implis a == a
using (eq-nat-to-int) -- for natrual number a, a == a implis + a == + a
using (eq-neg-nat-to-int) -- for natrual number a, a == a implis - a == - a
--- additions
import Ints.Add.Comm
using (int-add-comm) -- commutative law
import Ints.Add.Assoc
using (int-add-assoc) -- associative law
import Ints.Add.Invert
using (int-add-invert) -- a + a == b + b implis a == b
-- non-negative rationals
--- some properties
import Rationals.Properties
-- if b is not zero, n times b div b is the original number
using (times-div-id)
-- additions
import Rationals.Add.Comm
using (rational-add-comm) -- commutative law
import Rationals.Add.Assoc
using (rational-add-assoc) -- associative law
-- multiplications
import Rationals.Multiply.Comm
using (rational-multiply-comm) -- commutative law
-- logics
--- the "and" relations
import Logics.And
using (and-comm) -- commutative law
using (and-assoc) -- associative law
--- the "or" relations
import Logics.Or
using (or-comm) -- commutative law
using (or-assoc) -- associative law
using (or-elim) -- elimination rule
--- negations
import Logics.Not
-- law that negative twice will make a positive
using (not-not)
using (contrapositive) -- contrapositive
-- vectors
--- reverse twice gives the original vector
import Vecs.Reverse
using (vec-rev-rev-id)
-- lists
--- reverse twice gives the original vector
import Lists.Reverse
using (list-rev-rev-id)
-- isomorphisms
--- natrual numbers and others
import Isos.NatLike
using (iso-nat-vec) -- with vector
using (iso-nat-list) -- with list
--- trees
import Isos.TreeLike
using (iso-seven-tree-in-one) -- seven trees in one
-- groups
--- s3 group, xxx=e, yy=e, yx=xxy
import Groups.Symm.S3
using (s3-property-1) -- given s3, prove xyx≡y