@@ -28,15 +28,15 @@ module MAKER
28
28
// TODO : add stability fees (interest)
29
29
30
30
rule
31
- <k> exec(Address:ETHAddress opens vault Vault:ETHAddress) => .K </k>
31
+ <k> exec(Address:ETHAddress opens vault Vault:ETHAddress) => .K ... </k>
32
32
<V> V => V[(Vault) <- Address:ETHAddress] </V>
33
33
<S> B => B[(Vault in 0) <- 0:Int][(Vault in SAI) <- 0:Int] </S>
34
34
<B> ... .List => ListItem(Address opens vault Vault) </B>
35
35
requires notBool((Vault in 0) in keys(B)) andBool notBool((Vault in SAI) in keys(B)) andBool notBool((Vault) in keys(V))
36
36
37
37
38
38
rule
39
- <k> exec(Address:ETHAddress opens vault Vault:ETHAddress) => FAIL </k>
39
+ <k> exec(Address:ETHAddress opens vault Vault:ETHAddress) => FAIL ... </k>
40
40
<V> V </V>
41
41
<S> B </S>
42
42
<B> ... .List => ListItem(Address opens vault Vault) </B>
49
49
<k> exec(Address:ETHAddress locks Amount:Int collateral to vault Vault:ETHAddress) =>
50
50
Address in 0 gets (0 -Int Amount) ~>
51
51
Vault in 0 gets Amount
52
- </k>
52
+ ... </k>
53
53
<V> ... Vault |-> Address ... </V>
54
54
<B> ... .List => ListItem(Address locks Amount collateral to vault Vault) </B>
55
55
56
56
rule
57
- <k> exec(Address:ETHAddress locks Amount:Int collateral to vault Vault:ETHAddress) => FAIL </k>
57
+ <k> exec(Address:ETHAddress locks Amount:Int collateral to vault Vault:ETHAddress) => FAIL ... </k>
58
58
<V> V </V>
59
59
<B> ... .List => ListItem(Address locks Amount collateral to vault Vault) </B>
60
60
requires notBool( Vault in keys(V) )
66
66
<k> exec(Address:ETHAddress draws Amount:Int debt from vault Vault:ETHAddress) =>
67
67
Address in SAI gets Amount ~>
68
68
Vault in SAI gets Amount
69
- </k>
69
+ ... </k>
70
70
<V> ... Vault |-> Address ... </V>
71
71
<P> ... (0 , SAI) |-> Px ... </P>
72
72
<S> ... (Vault in 0) |-> TotalCollateral (Vault in SAI) |-> TotalDebt ... </S>
73
73
<B> ... .List => ListItem(Address draws Amount debt from vault Vault) </B>
74
74
requires TotalCollateral *Int Px *Int 100 >=Int 150 *Int (TotalDebt +Int Amount)
75
75
76
76
rule
77
- <k> exec(Address:ETHAddress draws Amount:Int debt from vault Vault:ETHAddress) => FAIL </k>
77
+ <k> exec(Address:ETHAddress draws Amount:Int debt from vault Vault:ETHAddress) => FAIL ... </k>
78
78
<V> V </V>
79
79
<P> P </P>
80
80
<S> S </S>
83
83
84
84
85
85
rule
86
- <k> exec(Address:ETHAddress draws Amount:Int debt from vault Vault:ETHAddress) => FAIL </k>
86
+ <k> exec(Address:ETHAddress draws Amount:Int debt from vault Vault:ETHAddress) => FAIL ... </k>
87
87
<V> ... Vault |-> Address ... </V>
88
88
<P> ... (0 , SAI) |-> Px ... </P>
89
89
<S> ... (Vault in 0) |-> TotalCollateral (Vault in SAI) |-> TotalDebt ... </S>
97
97
<k> exec(Address:ETHAddress frees Amount:Int collateral from vault Vault:ETHAddress) =>
98
98
Address in 0 gets Amount ~>
99
99
Vault in 0 gets (0 -Int Amount)
100
- </k>
100
+ ... </k>
101
101
<V> ... Vault |-> Address ... </V>
102
102
<P> ... (0 , SAI) |-> Px ... </P>
103
103
<S> ... (Vault in 0) |-> TotalCollateral (Vault in SAI) |-> TotalDebt ... </S>
107
107
108
108
rule
109
109
<k> exec(Address:ETHAddress frees Amount:Int collateral from vault Vault:ETHAddress) => FAIL
110
- </k>
110
+ ... </k>
111
111
<V> V </V>
112
112
<P> P </P>
113
113
<S> S </S>
116
116
117
117
rule
118
118
<k> exec(Address:ETHAddress frees Amount:Int collateral from vault Vault:ETHAddress) => FAIL
119
- </k>
119
+ ... </k>
120
120
<V> ... Vault |-> Address ... </V>
121
121
<P> ... (0 , SAI) |-> Px ... </P>
122
122
<S> ... (Vault in 0) |-> TotalCollateral (Vault in SAI) |-> TotalDebt ... </S>
@@ -130,21 +130,21 @@ rule
130
130
<k> exec(Address:ETHAddress wipes Amount:Int debt from vault Vault:ETHAddress) =>
131
131
Address in SAI gets (0 -Int Amount) ~>
132
132
Vault in SAI gets (0 -Int Amount)
133
- </k>
133
+ ... </k>
134
134
<V> ... Vault |-> Address ... </V>
135
135
<S> ... (Vault in SAI) |-> TotalDebt ... </S>
136
136
<B> ... .List => ListItem(Address wipes Amount debt from vault Vault) </B>
137
137
requires (TotalDebt >=Int Amount)
138
138
139
139
rule
140
- <k> exec(Address:ETHAddress wipes Amount:Int debt from vault Vault:ETHAddress) => FAIL </k>
140
+ <k> exec(Address:ETHAddress wipes Amount:Int debt from vault Vault:ETHAddress) => FAIL ... </k>
141
141
<V> V </V>
142
142
<S> S </S>
143
143
<B> ... .List => ListItem(Address wipes Amount debt from vault Vault) </B>
144
144
requires notBool((Vault in keys(V)) andBool ((Vault in SAI) in keys(S)))
145
145
146
146
rule
147
- <k> exec(Address:ETHAddress wipes Amount:Int debt from vault Vault:ETHAddress) => FAIL </k>
147
+ <k> exec(Address:ETHAddress wipes Amount:Int debt from vault Vault:ETHAddress) => FAIL ... </k>
148
148
<V> ... Vault |-> Address ... </V>
149
149
<S> ... (Vault in SAI) |-> TotalDebt ... </S>
150
150
<B> ... .List => ListItem(Address wipes Amount debt from vault Vault) </B>
@@ -159,21 +159,21 @@ rule
159
159
Vault in 0 gets 0 -Int ((130 *Int TotalDebt) /Int (Px *Int 100)) ~> // 30% penalty
160
160
Address in SAI gets TotalDebt ~>
161
161
Address in 0 gets (0 -Int ((90 *Int TotalDebt) /Int (Px *Int 100)) ) //10% discount
162
- </k>
162
+ ... </k>
163
163
<P> ... (0 , SAI) |-> Px ... </P>
164
164
<S> ... (Vault in 0) |-> TotalCollateral (Vault in SAI) |-> TotalDebt ... </S>
165
165
<B> ... .List => ListItem(Address bites vault Vault) </B>
166
166
requires (TotalCollateral *Int Px *Int 100 <Int 150 *Int TotalDebt) andBool (Px >Int 0)
167
167
168
168
rule
169
- <k> exec(Address:ETHAddress bites vault Vault:ETHAddress) => FAIL </k>
169
+ <k> exec(Address:ETHAddress bites vault Vault:ETHAddress) => FAIL ... </k>
170
170
<P> P </P>
171
171
<S> S </S>
172
172
<B> ... .List => ListItem(Address bites vault Vault) </B>
173
173
requires notBool ( ( (0 , SAI) in keys(P) ) andBool ((Vault in 0) in keys(S)) andBool ((Vault in SAI) in keys(S)))
174
174
175
175
rule
176
- <k> exec(Address:ETHAddress bites vault Vault:ETHAddress) => FAIL </k>
176
+ <k> exec(Address:ETHAddress bites vault Vault:ETHAddress) => FAIL ... </k>
177
177
<P> ... (0 , SAI) |-> Px ... </P>
178
178
<S> ... (Vault in 0) |-> TotalCollateral (Vault in SAI) |-> TotalDebt ... </S>
179
179
<B> ... .List => ListItem(Address bites vault Vault) </B>
@@ -183,12 +183,12 @@ rule
183
183
184
184
185
185
rule
186
- <k> exec(Address:ETHAddress is given vault Vault:ETHAddress) => .K </k>
186
+ <k> exec(Address:ETHAddress is given vault Vault:ETHAddress) => .K ... </k>
187
187
<V> ... Vault |-> (_ => Address) ... </V>
188
188
<B> ... .List => ListItem(Address is given vault Vault) </B>
189
189
190
190
rule
191
- <k> exec(Address:ETHAddress is given vault Vault:ETHAddress) => FAIL </k>
191
+ <k> exec(Address:ETHAddress is given vault Vault:ETHAddress) => FAIL ... </k>
192
192
<V> V </V>
193
193
<B> ... .List => ListItem(Address is given vault Vault) </B>
194
194
requires notBool(Vault in keys(V))
0 commit comments