Skip to content

Commit

Permalink
remove split on every assert
Browse files Browse the repository at this point in the history
  • Loading branch information
stefan-aws committed Mar 21, 2024
1 parent 493d1b5 commit 68f2286
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 3 deletions.
3 changes: 2 additions & 1 deletion src/Distributions/Uniform/Interface.dfy
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,13 @@ module Uniform.Interface {
ensures u < n
ensures Model.Sample(n as nat)(old(s)) == Monad.Result(u as nat, s)

method UniformIntervalSample32(a: int32, b: int32) returns (u: int32)
method UniformIntervalSample32<T>(a: int32, b: int32, ghost arr: array<T>) returns (u: int32)
modifies `s
decreases *
requires 0 < b as int - a as int < 0x8000_0000
ensures a <= u < b
ensures Model.IntervalSample(a as int, b as int)(old(s)) == Monad.Result(u as int, s)
ensures old(arr[..]) == arr[..]
{
var v := UniformSample32(b-a);
assert Model.Sample(b as int - a as int)(old(s)) == Monad.Result(v as nat, s);
Expand Down
5 changes: 3 additions & 2 deletions src/Util/FisherYates/Implementation.dfy
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ module FisherYates.Implementation {

trait {:termination false} Trait extends Interface.Trait {

method {:vcs_split_on_every_assert} Shuffle<T>(a: array<T>)
method Shuffle<T>(a: array<T>)
decreases *
modifies `s, a
requires a.Length < 0x8000_0000
Expand All @@ -26,9 +26,10 @@ module FisherYates.Implementation {
invariant Equivalence.LoopInvariant(prevI, i, a, prevASeq, old(a[..]), old(s), prevS, s) // ghost
{
prevI, prevASeq, prevS := i, a[..], s; // ghost
var j := UniformIntervalSample32(i, a.Length as nat32);
var j := UniformIntervalSample32(i, a.Length as nat32, a);
assert prevASeq == a[..]; // ghost
Swap(a, i, j);
assert Equivalence.LoopInvariant(prevI, i+1, a, prevASeq, old(a[..]), old(s), prevS, s); // ghost
}
} else {
Equivalence.ShuffleElseClause(a, old(a[..]), old(s), s); // ghost
Expand Down

0 comments on commit 68f2286

Please sign in to comment.