@@ -66,9 +66,8 @@ module UniformCorrectness {
66
66
lemma UniformFullCorrectness (n: nat , i: nat )
67
67
requires 0 <= i < n
68
68
ensures
69
- var e := UniformFullCorrectnessHelper (n, i);
70
- && e in RandomNumberGenerator. event_space
71
- && RandomNumberGenerator. mu (e) == 1. 0 / (n as real )
69
+ && UniformFullCorrectnessHelper (n, i) in RandomNumberGenerator. event_space
70
+ && RandomNumberGenerator. mu (UniformFullCorrectnessHelper(n, i)) == 1. 0 / (n as real )
72
71
{
73
72
var e := UniformFullCorrectnessHelper (n, i);
74
73
var p := (s: RandomNumberGenerator. RNG) => UniformPowerOfTwoModel. ProbUnif (n-1)(s). 0 < n;
@@ -192,15 +191,13 @@ module UniformCorrectness {
192
191
var k := Helper. SandwichBetweenPowers (2, n - 1);
193
192
var e2 := UniformFullCorrectnessHelper2 (n, i);
194
193
assert RandomNumberGenerator. mu (e2) == 1. 0 / (Helper. Power (2, k + 1) as real ) by {
195
- assert Helper. Power (2, k) <= n - 1 < Helper. Power (2, k + 1) by {
196
- assume false ;
197
- }
194
+ assert Helper. Power (2, k) <= n - 1 < Helper. Power (2, k + 1);
198
195
UniformPowerOfTwoCorrectness. UnifCorrectness (n - 1, k + 1);
199
196
assert UniformPowerOfTwoCorrectness. UnifIsCorrect (n - 1, k + 1, i);
200
197
}
201
198
assert 1. 0 / (n as real ) == 1. 0 / (Helper. Power (2, k) as real ) by {
202
199
assert n == Helper. Power (2, k) by {
203
- assume false ;
200
+ assume {:axiom} false ;
204
201
}
205
202
}
206
203
}
0 commit comments