Skip to content
Snippets Groups Projects
Commit 562a6b54 authored by Brady James Garvin's avatar Brady James Garvin
Browse files

Recased code per the current draft of the Dafny style guide.

parent 4822004a
No related branches found
No related tags found
No related merge requests found
method minimum_of_three(first: real, second: real, third: real) returns (minimum: real) method MinimumOfThree(first: real, second: real, third: real) returns (minimum: real)
ensures minimum in {first, second, third} ensures minimum in {first, second, third}
ensures minimum <= first ensures minimum <= first
ensures minimum <= second ensures minimum <= second
......
method count_leading_zeros(sequence: seq<nat>) returns (count: nat) method CountLeadingZeros(sequence: seq<nat>) returns (count: nat)
ensures count <= |sequence| ensures count <= |sequence|
ensures ensures
forall i | 0 <= i < count :: forall i | 0 <= i < count ::
......
method list_to_set<T>(list: seq<T>) returns (as_set: set<T>) method ListToSet<T>(list: seq<T>) returns (asSet: set<T>)
requires requires
forall i | 0 <= i < |list| :: forall i | 0 <= i < |list| ::
forall j | i < j < |list| :: forall j | i < j < |list| ::
list[i] != list[j] list[i] != list[j]
ensures |as_set| == |list| ensures |asSet| == |list|
{ {
var result := {}; var result := {};
var index := 0; var index := 0;
......
method set_to_list<T>(collection: set<T>) returns (as_list: seq<T>) method SetToList<T>(collection: set<T>) returns (asList: seq<T>)
ensures |as_list| == |collection| ensures |asList| == |collection|
ensures ensures
forall x | x in collection :: forall x | x in collection ::
x in as_list x in asList
{ {
var result := []; var result := [];
var remaining := collection; var remaining := collection;
......
method copy_values<T, U>(mapping: map<T, U>, sources: map<T, T>) returns (updated_mapping: map<T, U>) method CopyValues<T, U>(mapping: map<T, U>, sources: map<T, T>) returns (updatedMapping: map<T, U>)
requires requires
forall k | k in mapping && k in sources :: forall k | k in mapping && k in sources ::
sources[k] in mapping sources[k] in mapping
...@@ -6,13 +6,13 @@ method copy_values<T, U>(mapping: map<T, U>, sources: map<T, T>) returns (update ...@@ -6,13 +6,13 @@ method copy_values<T, U>(mapping: map<T, U>, sources: map<T, T>) returns (update
var result := map[]; var result := map[];
var remaining := set key | key in mapping :: key; var remaining := set key | key in mapping :: key;
while |remaining| > 0 { while |remaining| > 0 {
var destination_key :| destination_key in remaining; var destinationKey :| destinationKey in remaining;
remaining := remaining - {destination_key}; remaining := remaining - {destinationKey};
var source_key := destination_key; var sourceKey := destinationKey;
if destination_key in sources { if destinationKey in sources {
source_key := sources[destination_key]; sourceKey := sources[destinationKey];
} }
result := result[destination_key := mapping[source_key]]; result := result[destinationKey := mapping[sourceKey]];
} }
return result; return result;
} }
method map_f<T, U>(f: T -> U, inputs: seq<T>) returns (outputs: seq<U>) method MapOverSequence<T, U>(f: T -> U, inputs: seq<T>) returns (outputs: seq<U>)
ensures |outputs| == |inputs| ensures |outputs| == |inputs|
ensures ensures
forall i | 0 <= i < |outputs| :: forall i | 0 <= i < |outputs| ::
......
method reverse<T>(list: seq<T>) returns (reversed: seq<T>) method Reverse<T>(list: seq<T>) returns (reversed: seq<T>)
ensures |reversed| == |list| ensures |reversed| == |list|
ensures ensures
forall i | 0 <= i < |reversed| :: forall i | 0 <= i < |reversed| ::
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment