Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 117 lines (72 sloc) 3.831 kb
5d23c7a Iavor S. Diatchki Add totality axioms, which are not used at the moment.
authored
1 These are the axioms in non-canonicalized form.
2
3
391753d Iavor S. Diatchki An explicit list of all axioms.
authored
4 General properties of equality:
5
6 eq_refl :: forall a. (a ~ a)
7 eq_trans :: forall a b c. (a ~ b, b ~ c) => (a ~ c)
8 eq_sym :: forall a b. (a ~ b) => (b ~ a)
9
10
11 Interactions between equality and any function or predicate.
12 Here, insantiated to the function and predicate symbols of the theory:
13
14 add_fun :: forall a b c1 c2. (a + b ~ c1, a + b ~ c2) => (c1 ~ c2)
15 mul_fun :: forall a b c1 c2. (a * b ~ c1, a * b ~ c2) => (c1 ~ c2)
16 exp_fun :: forall a b c1 c2. (a ^ b ~ c1, a ^ b ~ c2) => (c1 ~ c2)
17
000a0d0 Iavor S. Diatchki Fix typo.
authored
18 add_cong :: forall a b x y. (a ~ x, b ~ y) => (a + b ~ x + y)
19 mul_cong :: forall a b x y. (a ~ x, b ~ y) => (a * b ~ x * y)
20 exp_cong :: forall a b x y. (a ~ x, b ~ y) => (a ^ b ~ x ^ y)
21 leq_cong :: forall a b x y. (a ~ x, b ~ y, a <= b) => (x <= y)
391753d Iavor S. Diatchki An explicit list of all axioms.
authored
22
23
24 Definitions on literals (`a` and `b` are concrete literals):
25
26 add_def a b :: a + b ~ $(a + b)
5b15732 Iavor S. Diatchki Fix typos.
authored
27 mul_def a b :: a * b ~ $(a * b)
28 exp_def a b :: a ^ b ~ $(a ^ b)
391753d Iavor S. Diatchki An explicit list of all axioms.
authored
29 leq_def a b :: $(a <= b) => (a <= b)
30
5d23c7a Iavor S. Diatchki Add totality axioms, which are not used at the moment.
authored
31
391753d Iavor S. Diatchki An explicit list of all axioms.
authored
32 Units:
33
34 add_unit_R :: forall a. a + 0 ~ a
35 mul_unit_R :: forall a. a * 1 ~ a
36 exp_unit_R :: forall a. a ^ 1 ~ a
37
38 Anihilators:
39
40 mul_anih_R :: forall a. a * 0 ~ 0
41 exp_anih_R :: forall a. a ^ 0 ~ 1
42 exp_anih_L :: forall a. (1 <= a) => 0 ^ a ~ 0
43
44 Commutativity:
45
46 add_comm :: forall a b. a + b ~ b + a
37936ca Iavor S. Diatchki Fix typos.
authored
47 mul_comm :: forall a b. a * b ~ b * a
391753d Iavor S. Diatchki An explicit list of all axioms.
authored
48
49 Associativity:
50
51 add_assoc :: forall a b c. (a + b) + c ~ a + (b + c)
52 mul_assoc :: forall a b c. (a * b) * c ~ a * (b * c)
53
54
55 Distributivity:
56
37936ca Iavor S. Diatchki Fix typos.
authored
57 add_mul_distr :: forall a b c. (a + b) * c ~ (a * c) + (b * c)
391753d Iavor S. Diatchki An explicit list of all axioms.
authored
58 mul_exp_distr :: forall a b c. (a * b) ^ c ~ (a ^ c) * (b ^ c)
59
60
61 Exponentiation and other operators:
62
63 exp_add :: forall a b c. a ^ (b + c) ~ (a ^ b) * (a ^ c)
64 exp_mul :: forall a b c. a ^ (b * c) ~ (a ^ b) ^ c
65
66 Cancellation:
67
68 add_cancel_L :: forall a b1 b2. ( a + b1 ~ a + b2) => (b1 ~ b2)
69 mul_cancel_L :: forall a b1 b2. (1 <= a, a * b1 ~ a * b2) => (b1 ~ b2)
70 exp_cancel_L :: forall a b1 b2. (2 <= a, a ^ b1 ~ a ^ b2) => (b1 ~ b2)
71 exp_cancel_R :: forall a1 a2 b. (1 <= b, a1 ^ b ~ a2 ^ b) => (a1 ~ a2)
72
73
74 General properties of order:
75
76 leq_refl :: forall a. (a <= a)
77 leq_trans :: forall a b c. (a <= b, b <= c) => (a <= c)
78 leq_antisym :: forall a b. (a <= b, b <= a) => (a ~ b)
79
aa78bec Iavor S. Diatchki Add missing axiom "forall a. 0 <= a"
authored
80 leq0 :: forall a. 0 <= a
81
391753d Iavor S. Diatchki An explicit list of all axioms.
authored
82 Monotonicity (congruence with respect to order):
83
84 add_mono :: forall a b x y. (a <= x, b <= y) => (a + b <= x + y)
85 mul_mono :: forall a b x y. (a <= x, b <= y) => (a * b <= x * y)
86 exp_mono :: forall a b x y. (a <= x, b <= y) => (a ^ b <= x ^ y)
87
88 Cancellation and order:
89
90 leq_add_cancel_L :: forall a b1 b2. ( a + b1 <= a + b2) => (b1 <= b2)
91 leq_mul_cancel_L :: forall a b1 b2. (1 <= a, a * b1 <= a * b2) => (b1 <= b2)
92 leq_exp_cancel_L :: forall a b1 b2. (2 <= a, a ^ b1 <= a ^ b2) => (b1 <= b2)
93 leq_exp_cancel_R :: forall a1 a2 b. (1 <= b, a1 ^ b <= a2 ^ b) => (a1 <= a2)
94
5d23c7a Iavor S. Diatchki Add totality axioms, which are not used at the moment.
authored
95
96 Perhaps...
97 ----------
98
99 Totality. These do not fit with the standard evidence structure because
100 of the existential. They are useful for naming terms (i.e., the existential
101 is always eliminated by introducing a fresh variable).
102
103 -- conceptual
104 add_tot :: forall a b. exists c. a + b ~ c
105 mul_tot :: forall a b. exists c. a * b ~ c
106 exp_tot :: forall a b. exists c. a ^ b ~ c
107
108 -- To make things fit, where `c` should start off as a fresh variable.
109 add_tot a b c :: a + b ~ c
110 mul_tot a b c :: a * b ~ c
111 exp_tot a b c :: a ^ b ~ c
112
113 iMaybe this sould be done with some sort of `let` construct.
114
115
116
Something went wrong with that request. Please try again.