Skip to content

Commit 4e62653

Browse files
committed
format and audit
1 parent 8cbe62a commit 4e62653

File tree

3 files changed

+57
-55
lines changed

3 files changed

+57
-55
lines changed

audit.log

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
src/Distributions/BernoulliExpNeg/Correctness.dfy(13,17): Correctness: Declaration has explicit `{:axiom}` attribute.
22
src/Distributions/BernoulliExpNeg/Correctness.dfy(17,17): SampleIsIndep: Declaration has explicit `{:axiom}` attribute.
3-
src/Distributions/BernoulliExpNeg/Model.dfy(104,17): GammaLe1LoopTerminatesAlmostSurely: Declaration has explicit `{:axiom}` attribute.
3+
src/Distributions/BernoulliExpNeg/Equivalence.dfy(80,37): EnsureCaseLe1PostCondition: Definition has `assume {:axiom}` statement in body.
4+
src/Distributions/BernoulliExpNeg/Equivalence.dfy(85,17): GammaLe1LoopTerminatesAlmostSurely: Declaration has explicit `{:axiom}` attribute.
45
src/Distributions/Coin/Interface.dfy(21,6): CoinSample: Definition has `assume {:axiom}` statement in body.
56
src/Distributions/Uniform/Implementation.dfy(47,6): UniformSample: Definition has `assume {:axiom}` statement in body.
67
src/Math/Analysis/Reals.dfy(35,17): LeastUpperBoundProperty: Declaration has explicit `{:axiom}` attribute.
@@ -10,17 +11,18 @@ src/Math/Exponential.dfy(4,17): FunctionalEquation: Declaration has explicit `{:
1011
src/Math/Exponential.dfy(7,17): Increasing: Declaration has explicit `{:axiom}` attribute.
1112
src/Math/Measures.dfy(169,17): CountableSumOfZeroesIsZero: Declaration has explicit `{:axiom}` attribute.
1213
src/Math/Measures.dfy(25,4): CountableSum: Definition has `assume {:axiom}` statement in body.
13-
src/ProbabilisticProgramming/Independence.dfy(28,27): IsIndep: Declaration has explicit `{:axiom}` attribute.
14-
src/ProbabilisticProgramming/Independence.dfy(34,17): IsIndepImpliesMeasurableBool: Declaration has explicit `{:axiom}` attribute.
15-
src/ProbabilisticProgramming/Independence.dfy(38,17): IsIndepImpliesMeasurableNat: Declaration has explicit `{:axiom}` attribute.
16-
src/ProbabilisticProgramming/Independence.dfy(43,17): IsIndepImpliesIsIndepFunction: Declaration has explicit `{:axiom}` attribute.
17-
src/ProbabilisticProgramming/Independence.dfy(48,17): CoinIsIndep: Declaration has explicit `{:axiom}` attribute.
18-
src/ProbabilisticProgramming/Independence.dfy(52,17): ReturnIsIndep: Declaration has explicit `{:axiom}` attribute.
19-
src/ProbabilisticProgramming/Independence.dfy(56,17): BindIsIndep: Declaration has explicit `{:axiom}` attribute.
20-
src/ProbabilisticProgramming/Loops.dfy(311,17): EnsureWhileTerminates: Declaration has explicit `{:axiom}` attribute.
21-
src/ProbabilisticProgramming/Loops.dfy(317,17): UntilProbabilityFraction: Declaration has explicit `{:axiom}` attribute.
22-
src/ProbabilisticProgramming/Loops.dfy(349,4): EnsureUntilTerminatesAndForAll: Definition has `assume {:axiom}` statement in body.
23-
src/ProbabilisticProgramming/Loops.dfy(372,4): WhileIsIndep: Definition has `assume {:axiom}` statement in body.
14+
src/ProbabilisticProgramming/Monad.dfy(249,27): IsIndep: Declaration has explicit `{:axiom}` attribute.
15+
src/ProbabilisticProgramming/Monad.dfy(255,17): IsIndepImpliesMeasurableBool: Declaration has explicit `{:axiom}` attribute.
16+
src/ProbabilisticProgramming/Monad.dfy(259,17): IsIndepImpliesMeasurableNat: Declaration has explicit `{:axiom}` attribute.
17+
src/ProbabilisticProgramming/Monad.dfy(264,17): IsIndepImpliesIsIndepFunction: Declaration has explicit `{:axiom}` attribute.
18+
src/ProbabilisticProgramming/Monad.dfy(269,17): CoinIsIndep: Declaration has explicit `{:axiom}` attribute.
19+
src/ProbabilisticProgramming/Monad.dfy(273,17): ReturnIsIndep: Declaration has explicit `{:axiom}` attribute.
20+
src/ProbabilisticProgramming/Monad.dfy(277,17): BindIsIndep: Declaration has explicit `{:axiom}` attribute.
21+
src/ProbabilisticProgramming/Monad.dfy(348,4): AboutWhile: Definition has `assume {:axiom}` statement in body.
22+
src/ProbabilisticProgramming/Monad.dfy(600,17): EnsureWhileTerminates: Declaration has explicit `{:axiom}` attribute.
23+
src/ProbabilisticProgramming/Monad.dfy(606,17): UntilProbabilityFraction: Declaration has explicit `{:axiom}` attribute.
24+
src/ProbabilisticProgramming/Monad.dfy(638,4): EnsureUntilTerminatesAndForAll: Definition has `assume {:axiom}` statement in body.
25+
src/ProbabilisticProgramming/Monad.dfy(661,4): WhileIsIndep: Definition has `assume {:axiom}` statement in body.
2426
src/ProbabilisticProgramming/RandomSource.dfy(52,17): ProbIsProbabilityMeasure: Declaration has explicit `{:axiom}` attribute.
2527
src/ProbabilisticProgramming/RandomSource.dfy(56,17): CoinHasProbOneHalf: Declaration has explicit `{:axiom}` attribute.
2628
src/ProbabilisticProgramming/RandomSource.dfy(63,17): MeasureHeadDrop: Declaration has explicit `{:axiom}` attribute.

src/Distributions/Uniform/Model.dfy

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -37,50 +37,50 @@ module Uniform.Model {
3737
Monad.Map(Sample(b - a), x => a + x)
3838
}
3939

40-
/* lemma SampleTerminates(n: nat)
41-
requires n > 0
42-
ensures
43-
&& Independence.IsIndep(Proposal(n))
44-
&& Quantifier.WithPosProb(Loops.ProposalIsAccepted(Proposal(n), Accept(n)))
45-
&& Loops.UntilTerminatesAlmostSurely(Proposal(n), Accept(n))
46-
{
47-
assert Independence.IsIndep(Proposal(n)) by {
48-
UniformPowerOfTwo.Correctness.SampleIsIndep(2 * n);
49-
}
50-
var e := iset s | Loops.ProposalIsAccepted(Proposal(n), Accept(n))(s);
51-
assert e in Rand.eventSpace by {
52-
var ltN := iset m: nat | m < n;
53-
var resultsLtN := Monad.ResultsWithValueIn(ltN);
54-
assert e == Measures.PreImage(UniformPowerOfTwo.Model.Sample(2 * n), resultsLtN);
55-
assert Measures.PreImage(UniformPowerOfTwo.Model.Sample(2 * n), resultsLtN) in Rand.eventSpace by {
56-
assert Independence.IsIndep(UniformPowerOfTwo.Model.Sample(2 * n)) by {
57-
UniformPowerOfTwo.Correctness.SampleIsIndep(2 * n);
58-
}
59-
assert Measures.IsMeasurable(Rand.eventSpace, Monad.natResultEventSpace, UniformPowerOfTwo.Model.Sample(2 * n)) by {
60-
Independence.IsIndepImpliesMeasurableNat(UniformPowerOfTwo.Model.Sample(2 * n));
61-
}
62-
assert resultsLtN in Monad.natResultEventSpace by {
63-
Monad.LiftInEventSpaceToResultEventSpace(ltN, Measures.natEventSpace);
64-
}
40+
/* lemma SampleTerminates(n: nat)
41+
requires n > 0
42+
ensures
43+
&& Independence.IsIndep(Proposal(n))
44+
&& Quantifier.WithPosProb(Loops.ProposalIsAccepted(Proposal(n), Accept(n)))
45+
&& Loops.UntilTerminatesAlmostSurely(Proposal(n), Accept(n))
46+
{
47+
assert Independence.IsIndep(Proposal(n)) by {
48+
UniformPowerOfTwo.Correctness.SampleIsIndep(2 * n);
6549
}
66-
}
67-
assert Quantifier.WithPosProb(Loops.ProposalIsAccepted(Proposal(n), Accept(n))) by {
68-
assert Rand.prob(e) > 0.0 by {
69-
assert e == (iset s | UniformPowerOfTwo.Model.Sample(2 * n)(s).value < n);
70-
assert n <= Helper.Power(2, Helper.Log2Floor(2 * n)) by {
71-
Helper.NLtPower2Log2FloorOf2N(n);
50+
var e := iset s | Loops.ProposalIsAccepted(Proposal(n), Accept(n))(s);
51+
assert e in Rand.eventSpace by {
52+
var ltN := iset m: nat | m < n;
53+
var resultsLtN := Monad.ResultsWithValueIn(ltN);
54+
assert e == Measures.PreImage(UniformPowerOfTwo.Model.Sample(2 * n), resultsLtN);
55+
assert Measures.PreImage(UniformPowerOfTwo.Model.Sample(2 * n), resultsLtN) in Rand.eventSpace by {
56+
assert Independence.IsIndep(UniformPowerOfTwo.Model.Sample(2 * n)) by {
57+
UniformPowerOfTwo.Correctness.SampleIsIndep(2 * n);
58+
}
59+
assert Measures.IsMeasurable(Rand.eventSpace, Monad.natResultEventSpace, UniformPowerOfTwo.Model.Sample(2 * n)) by {
60+
Independence.IsIndepImpliesMeasurableNat(UniformPowerOfTwo.Model.Sample(2 * n));
61+
}
62+
assert resultsLtN in Monad.natResultEventSpace by {
63+
Monad.LiftInEventSpaceToResultEventSpace(ltN, Measures.natEventSpace);
64+
}
7265
}
73-
calc {
74-
Rand.prob(e);
75-
== { UniformPowerOfTwo.Correctness.UnifCorrectness2Inequality(2 * n, n); }
76-
n as real / (Helper.Power(2, Helper.Log2Floor(2 * n)) as real);
77-
>
78-
0.0;
66+
}
67+
assert Quantifier.WithPosProb(Loops.ProposalIsAccepted(Proposal(n), Accept(n))) by {
68+
assert Rand.prob(e) > 0.0 by {
69+
assert e == (iset s | UniformPowerOfTwo.Model.Sample(2 * n)(s).value < n);
70+
assert n <= Helper.Power(2, Helper.Log2Floor(2 * n)) by {
71+
Helper.NLtPower2Log2FloorOf2N(n);
72+
}
73+
calc {
74+
Rand.prob(e);
75+
== { UniformPowerOfTwo.Correctness.UnifCorrectness2Inequality(2 * n, n); }
76+
n as real / (Helper.Power(2, Helper.Log2Floor(2 * n)) as real);
77+
>
78+
0.0;
79+
}
7980
}
8081
}
81-
}
82-
assert Loops.UntilTerminatesAlmostSurely(Proposal(n), Accept(n)) by {
83-
Loops.EnsureUntilTerminates(Proposal(n), Accept(n));
84-
}
85-
} */
82+
assert Loops.UntilTerminatesAlmostSurely(Proposal(n), Accept(n)) by {
83+
Loops.EnsureUntilTerminates(Proposal(n), Accept(n));
84+
}
85+
} */
8686
}

src/ProbabilisticProgramming/Monad.dfy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ module Monad {
341341
}
342342

343343
lemma AboutWhile<A>(condition: A -> bool, body: A -> Hurd<A>, init: A)
344-
ensures
344+
ensures
345345
var f := While(condition, body, init);
346346
forall s: Rand.Bitstream :: !condition(init) ==> f(s) == Return(init)(s)
347347
{

0 commit comments

Comments
 (0)