diff options
author | wuestholz <unknown> | 2014-05-29 21:41:00 +0200 |
---|---|---|
committer | wuestholz <unknown> | 2014-05-29 21:41:00 +0200 |
commit | 607ef28aadb281ab61a2be493a637126e967a388 (patch) | |
tree | aae16c049c860e443920f9c6ee31af4e35f8a800 | |
parent | dc0a9130355352d0f47e07232d8119fc7219ccbc (diff) |
Set up the same test infrastructure as in Boogie.
342 files changed, 4408 insertions, 978 deletions
diff --git a/Source/Dafny/Dafny.atg b/Source/Dafny/Dafny.atg index b54e3a6b..74aa4abd 100644 --- a/Source/Dafny/Dafny.atg +++ b/Source/Dafny/Dafny.atg @@ -45,7 +45,7 @@ public static int Parse (string/*!*/ filename, ModuleDecl module, BuiltIns built } else {
using (System.IO.StreamReader reader = new System.IO.StreamReader(filename)) {
s = Microsoft.Boogie.ParserHelper.Fill(reader, new List<string>());
- return Parse(s, filename, module, builtIns, errors, verifyThisFile);
+ return Parse(s, DafnyOptions.Clo.UseBaseNameForFileName ? Path.GetFileName(filename) : filename, module, builtIns, errors, verifyThisFile);
}
}
}
diff --git a/Source/Dafny/Parser.cs b/Source/Dafny/Parser.cs index 1b30b886..bc89b6f1 100644 --- a/Source/Dafny/Parser.cs +++ b/Source/Dafny/Parser.cs @@ -71,7 +71,7 @@ public static int Parse (string/*!*/ filename, ModuleDecl module, BuiltIns built } else {
using (System.IO.StreamReader reader = new System.IO.StreamReader(filename)) {
s = Microsoft.Boogie.ParserHelper.Fill(reader, new List<string>());
- return Parse(s, filename, module, builtIns, errors, verifyThisFile);
+ return Parse(s, DafnyOptions.Clo.UseBaseNameForFileName ? Path.GetFileName(filename) : filename, module, builtIns, errors, verifyThisFile);
}
}
}
diff --git a/Source/Dafny/Resolver.cs b/Source/Dafny/Resolver.cs index 44351754..9d1e96ce 100644 --- a/Source/Dafny/Resolver.cs +++ b/Source/Dafny/Resolver.cs @@ -25,7 +25,7 @@ namespace Microsoft.Dafny ConsoleColor col = Console.ForegroundColor;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("{0}({1},{2}): Error: {3}",
- tok.filename, tok.line, tok.col - 1,
+ DafnyOptions.Clo.UseBaseNameForFileName ? System.IO.Path.GetFileName(tok.filename) : tok.filename, tok.line, tok.col - 1,
string.Format(msg, args));
Console.ForegroundColor = col;
ErrorCount++;
@@ -56,7 +56,7 @@ namespace Microsoft.Dafny ConsoleColor col = Console.ForegroundColor;
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("{0}({1},{2}): Warning: {3}",
- tok.filename, tok.line, tok.col - 1,
+ DafnyOptions.Clo.UseBaseNameForFileName ? System.IO.Path.GetFileName(tok.filename) : tok.filename, tok.line, tok.col - 1,
string.Format(msg, args));
Console.ForegroundColor = col;
}
diff --git a/Source/DafnyDriver/DafnyDriver.cs b/Source/DafnyDriver/DafnyDriver.cs index ff2cbc8c..7d8c3fdb 100644 --- a/Source/DafnyDriver/DafnyDriver.cs +++ b/Source/DafnyDriver/DafnyDriver.cs @@ -90,6 +90,11 @@ namespace Microsoft.Dafny Console.WriteLine("Press Enter to exit.");
Console.ReadLine();
}
+ if (CommandLineOptions.Clo.UseBaseNameForFileName && exitValue != ExitValue.PREPROCESSING_ERROR)
+ {
+ // TODO(wuestholz): We should probably add a separate flag for this. This is currently only used by the new testing infrastructure.
+ return 0;
+ }
return (int)exitValue;
}
@@ -322,9 +327,9 @@ namespace Microsoft.Dafny outputWriter.WriteLine(e.ToString());
}
} else if (cr.Errors.Count == 0) {
- outputWriter.WriteLine("Compiled assembly into {0}", cr.PathToAssembly);
+ outputWriter.WriteLine("Compiled assembly into {0}", DafnyOptions.Clo.UseBaseNameForFileName ? Path.GetFileName(cr.PathToAssembly) : cr.PathToAssembly);
} else {
- outputWriter.WriteLine("Errors compiling program into {0}", cr.PathToAssembly);
+ outputWriter.WriteLine("Errors compiling program into {0}", DafnyOptions.Clo.UseBaseNameForFileName ? Path.GetFileName(cr.PathToAssembly) : cr.PathToAssembly);
foreach (var ce in cr.Errors) {
outputWriter.WriteLine(ce.ToString());
outputWriter.WriteLine();
diff --git a/Test/VSComp2010/Problem1-SumMax.dfy b/Test/VSComp2010/Problem1-SumMax.dfy index 3db9bf72..d7989539 100644 --- a/Test/VSComp2010/Problem1-SumMax.dfy +++ b/Test/VSComp2010/Problem1-SumMax.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// VSComp 2010, problem 1, compute the sum and max of the elements of an array and prove
// that 'sum <= N * max'.
// Rustan Leino, 18 August 2010.
diff --git a/Test/VSComp2010/Problem1-SumMax.dfy.expect b/Test/VSComp2010/Problem1-SumMax.dfy.expect new file mode 100644 index 00000000..73ba063c --- /dev/null +++ b/Test/VSComp2010/Problem1-SumMax.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 4 verified, 0 errors
diff --git a/Test/VSComp2010/Problem2-Invert.dfy b/Test/VSComp2010/Problem2-Invert.dfy index 327703e7..23c25733 100644 --- a/Test/VSComp2010/Problem2-Invert.dfy +++ b/Test/VSComp2010/Problem2-Invert.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// VSComp 2010, problem 2, compute the inverse 'B' of a permutation 'A' and prove that 'B' is
// indeed an inverse of 'A' (or at least prove that 'B' is injective).
// Rustan Leino, 31 August 2010.
diff --git a/Test/VSComp2010/Problem2-Invert.dfy.expect b/Test/VSComp2010/Problem2-Invert.dfy.expect new file mode 100644 index 00000000..76f19e0d --- /dev/null +++ b/Test/VSComp2010/Problem2-Invert.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 7 verified, 0 errors
diff --git a/Test/VSComp2010/Problem3-FindZero.dfy b/Test/VSComp2010/Problem3-FindZero.dfy index 3d24255d..61bb2e3a 100644 --- a/Test/VSComp2010/Problem3-FindZero.dfy +++ b/Test/VSComp2010/Problem3-FindZero.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// VSComp 2010, problem 3, find a 0 in a linked list and return how many nodes were skipped
// until the first 0 (or end-of-list) was found.
// Rustan Leino, 18 August 2010.
diff --git a/Test/VSComp2010/Problem3-FindZero.dfy.expect b/Test/VSComp2010/Problem3-FindZero.dfy.expect new file mode 100644 index 00000000..76f19e0d --- /dev/null +++ b/Test/VSComp2010/Problem3-FindZero.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 7 verified, 0 errors
diff --git a/Test/VSComp2010/Problem4-Queens.dfy b/Test/VSComp2010/Problem4-Queens.dfy index 2d4111db..21fcc053 100644 --- a/Test/VSComp2010/Problem4-Queens.dfy +++ b/Test/VSComp2010/Problem4-Queens.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// VSComp 2010, problem 4, N queens
// Rustan Leino, 31 August 2010, updated 24 March 2011.
//
diff --git a/Test/VSComp2010/Problem4-Queens.dfy.expect b/Test/VSComp2010/Problem4-Queens.dfy.expect new file mode 100644 index 00000000..249e77e5 --- /dev/null +++ b/Test/VSComp2010/Problem4-Queens.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 9 verified, 0 errors
diff --git a/Test/VSComp2010/Problem5-DoubleEndedQueue.dfy b/Test/VSComp2010/Problem5-DoubleEndedQueue.dfy index 0e141927..930758a5 100644 --- a/Test/VSComp2010/Problem5-DoubleEndedQueue.dfy +++ b/Test/VSComp2010/Problem5-DoubleEndedQueue.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// VSComp 2010, problem 5, double-ended queue.
// Rustan Leino, 18 August 2010.
//
diff --git a/Test/VSComp2010/Problem5-DoubleEndedQueue.dfy.expect b/Test/VSComp2010/Problem5-DoubleEndedQueue.dfy.expect new file mode 100644 index 00000000..73727958 --- /dev/null +++ b/Test/VSComp2010/Problem5-DoubleEndedQueue.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 21 verified, 0 errors
diff --git a/Test/VSI-Benchmarks/b1.dfy b/Test/VSI-Benchmarks/b1.dfy index 3bd2bf43..4b1852ae 100644 --- a/Test/VSI-Benchmarks/b1.dfy +++ b/Test/VSI-Benchmarks/b1.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Spec# and Boogie and Chalice: The program will be
// the same, except that these languages do not check
// for any kind of termination. Also, in Spec#, there
diff --git a/Test/VSI-Benchmarks/b1.dfy.expect b/Test/VSI-Benchmarks/b1.dfy.expect new file mode 100644 index 00000000..c87e2af2 --- /dev/null +++ b/Test/VSI-Benchmarks/b1.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 10 verified, 0 errors
diff --git a/Test/VSI-Benchmarks/b2.dfy b/Test/VSI-Benchmarks/b2.dfy index a7f1ca9a..7966d2ea 100644 --- a/Test/VSI-Benchmarks/b2.dfy +++ b/Test/VSI-Benchmarks/b2.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
class Benchmark2 {
method BinarySearch(a: array<int>, key: int) returns (result: int)
diff --git a/Test/VSI-Benchmarks/b2.dfy.expect b/Test/VSI-Benchmarks/b2.dfy.expect new file mode 100644 index 00000000..4ef2de53 --- /dev/null +++ b/Test/VSI-Benchmarks/b2.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 6 verified, 0 errors
diff --git a/Test/VSI-Benchmarks/b3.dfy b/Test/VSI-Benchmarks/b3.dfy index 5df25612..91044397 100644 --- a/Test/VSI-Benchmarks/b3.dfy +++ b/Test/VSI-Benchmarks/b3.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Note: We used integers instead of a generic Comparable type, because
// Dafny has no way of saying that the Comparable type's AtMost function
// is total and transitive.
diff --git a/Test/VSI-Benchmarks/b3.dfy.expect b/Test/VSI-Benchmarks/b3.dfy.expect new file mode 100644 index 00000000..c87e2af2 --- /dev/null +++ b/Test/VSI-Benchmarks/b3.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 10 verified, 0 errors
diff --git a/Test/VSI-Benchmarks/b4.dfy b/Test/VSI-Benchmarks/b4.dfy index ae5b0511..92975e11 100644 --- a/Test/VSI-Benchmarks/b4.dfy +++ b/Test/VSI-Benchmarks/b4.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
/*
This test works with Z3 4.3 (on Win8 x64). Other versions ... who knows.
*/
diff --git a/Test/VSI-Benchmarks/b4.dfy.expect b/Test/VSI-Benchmarks/b4.dfy.expect new file mode 100644 index 00000000..f3a9c95f --- /dev/null +++ b/Test/VSI-Benchmarks/b4.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 11 verified, 0 errors
diff --git a/Test/VSI-Benchmarks/b5.dfy b/Test/VSI-Benchmarks/b5.dfy index 53d82207..d735e6c7 100644 --- a/Test/VSI-Benchmarks/b5.dfy +++ b/Test/VSI-Benchmarks/b5.dfy @@ -1,4 +1,5 @@ -
+// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
class Queue<T> {
var head: Node<T>;
diff --git a/Test/VSI-Benchmarks/b5.dfy.expect b/Test/VSI-Benchmarks/b5.dfy.expect new file mode 100644 index 00000000..39123c41 --- /dev/null +++ b/Test/VSI-Benchmarks/b5.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 22 verified, 0 errors
diff --git a/Test/VSI-Benchmarks/b6.dfy b/Test/VSI-Benchmarks/b6.dfy index fda9ca74..660fe85c 100644 --- a/Test/VSI-Benchmarks/b6.dfy +++ b/Test/VSI-Benchmarks/b6.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
class Collection<T> {
ghost var footprint:set<object>;
diff --git a/Test/VSI-Benchmarks/b6.dfy.expect b/Test/VSI-Benchmarks/b6.dfy.expect new file mode 100644 index 00000000..73727958 --- /dev/null +++ b/Test/VSI-Benchmarks/b6.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 21 verified, 0 errors
diff --git a/Test/VSI-Benchmarks/b7.dfy b/Test/VSI-Benchmarks/b7.dfy index 8d218ec9..301ef00d 100644 --- a/Test/VSI-Benchmarks/b7.dfy +++ b/Test/VSI-Benchmarks/b7.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Edited B6 to include GetChar and PutChar
//This is the Queue from Benchmark 3.
diff --git a/Test/VSI-Benchmarks/b7.dfy.expect b/Test/VSI-Benchmarks/b7.dfy.expect new file mode 100644 index 00000000..5add7af7 --- /dev/null +++ b/Test/VSI-Benchmarks/b7.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 23 verified, 0 errors
diff --git a/Test/VSI-Benchmarks/b8.dfy b/Test/VSI-Benchmarks/b8.dfy index 7608ed85..5ab75e7a 100644 --- a/Test/VSI-Benchmarks/b8.dfy +++ b/Test/VSI-Benchmarks/b8.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Benchmark 8
// A dictionary is a mapping between words and sequences of words
diff --git a/Test/VSI-Benchmarks/b8.dfy.expect b/Test/VSI-Benchmarks/b8.dfy.expect new file mode 100644 index 00000000..6ba9b9bc --- /dev/null +++ b/Test/VSI-Benchmarks/b8.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 42 verified, 0 errors
diff --git a/Test/clean.py b/Test/clean.py new file mode 100644 index 00000000..37166b61 --- /dev/null +++ b/Test/clean.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +""" +This is a convenient script to delete temporary files created by the lit and +legacy testing infrastructure. Both systems use the same name for Output +unfortunately so this script needs to be run before switching to the other +infrastructure. +""" +import logging +import os +import shutil +import sys + +_name = 'Output' + +def main(): + logging.basicConfig(level=logging.INFO) + root = os.path.abspath(os.path.dirname(__file__)) + logging.info('Cleaning "{}"'.format(root)) + count = 0 + + for (dirpath, dirnames, filenames) in os.walk(root): + rmpath = os.path.join(dirpath, _name) + if _name in dirnames: + logging.info('Deleting lit temporary directory "{}"'.format(rmpath)) + shutil.rmtree(rmpath) + count += 1 + elif _name in filenames: + logging.info('Deleting batch testing output file "{}"'.format(os.path.join(dirpath, _name))) + os.remove(rmpath) + count += 1 + + logging.info('\n\nDONE: Removed {}'.format(count)) + +if __name__ == '__main__': + sys.exit(main()) diff --git a/Test/cloudmake/CloudMake-CachedBuilds.dfy b/Test/cloudmake/CloudMake-CachedBuilds.dfy index f1150809..11df8efe 100644 --- a/Test/cloudmake/CloudMake-CachedBuilds.dfy +++ b/Test/cloudmake/CloudMake-CachedBuilds.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// This module proves the correctness of the algorithms. It leaves a number of things undefined.
// They are defined in refinement modules below.
abstract module M0 {
diff --git a/Test/cloudmake/CloudMake-CachedBuilds.dfy.expect b/Test/cloudmake/CloudMake-CachedBuilds.dfy.expect new file mode 100644 index 00000000..9fce79c6 --- /dev/null +++ b/Test/cloudmake/CloudMake-CachedBuilds.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 104 verified, 0 errors
diff --git a/Test/cloudmake/CloudMake-ConsistentBuilds.dfy b/Test/cloudmake/CloudMake-ConsistentBuilds.dfy index dcfa1a2b..9463d8bc 100644 --- a/Test/cloudmake/CloudMake-ConsistentBuilds.dfy +++ b/Test/cloudmake/CloudMake-ConsistentBuilds.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
/******* State *******/
type State
@@ -657,4 +660,4 @@ ghost method EvalArgsC'Lemma(expr: Expression, args: seq<Expression>, stC: State var arg', stC' := result.fst, result.snd;
EvalArgsC'Lemma(expr, args[1..], stC, env, args' + [arg'], stsC' + {stC'});
}
-}
\ No newline at end of file +}
diff --git a/Test/cloudmake/CloudMake-ConsistentBuilds.dfy.expect b/Test/cloudmake/CloudMake-ConsistentBuilds.dfy.expect new file mode 100644 index 00000000..b32518d7 --- /dev/null +++ b/Test/cloudmake/CloudMake-ConsistentBuilds.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 59 verified, 0 errors
diff --git a/Test/cloudmake/CloudMake-ParallelBuilds.dfy b/Test/cloudmake/CloudMake-ParallelBuilds.dfy index e76f60d8..19473b6a 100644 --- a/Test/cloudmake/CloudMake-ParallelBuilds.dfy +++ b/Test/cloudmake/CloudMake-ParallelBuilds.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// This module proves the correctness of the algorithms. It leaves a number of things undefined.
// They are defined in refinement modules below.
abstract module M0 {
diff --git a/Test/cloudmake/CloudMake-ParallelBuilds.dfy.expect b/Test/cloudmake/CloudMake-ParallelBuilds.dfy.expect new file mode 100644 index 00000000..6d03c23b --- /dev/null +++ b/Test/cloudmake/CloudMake-ParallelBuilds.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 244 verified, 0 errors
diff --git a/Test/dafny0/AdvancedLHS.dfy b/Test/dafny0/AdvancedLHS.dfy index 51e9b769..a902dd40 100644 --- a/Test/dafny0/AdvancedLHS.dfy +++ b/Test/dafny0/AdvancedLHS.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class C {
var x: C;
diff --git a/Test/dafny0/AdvancedLHS.dfy.expect b/Test/dafny0/AdvancedLHS.dfy.expect new file mode 100644 index 00000000..cb817605 --- /dev/null +++ b/Test/dafny0/AdvancedLHS.dfy.expect @@ -0,0 +1,6 @@ +AdvancedLHS.dfy(34,23): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+ (0,0): anon15_Else
+
+Dafny program verifier finished with 7 verified, 1 error
diff --git a/Test/dafny0/Answer b/Test/dafny0/Answer index 8987b169..c15049ba 100644 --- a/Test/dafny0/Answer +++ b/Test/dafny0/Answer @@ -68,80 +68,80 @@ colemma M'(x': int) Dafny program verifier finished with 0 verified, 0 errors
-------------------- TypeTests.dfy --------------------
-TypeTests.dfy(4,13): Error: incorrect type of function argument 0 (expected C, got D)
-TypeTests.dfy(4,13): Error: incorrect type of function argument 1 (expected D, got C)
-TypeTests.dfy(5,13): Error: incorrect type of function argument 0 (expected C, got int)
-TypeTests.dfy(5,13): Error: incorrect type of function argument 1 (expected D, got int)
-TypeTests.dfy(11,15): Error: incorrect type of method in-parameter 0 (expected int, got bool)
-TypeTests.dfy(12,11): Error: incorrect type of method out-parameter 0 (expected int, got C)
-TypeTests.dfy(12,11): Error: incorrect type of method out-parameter 1 (expected C, got int)
-TypeTests.dfy(44,9): Error: Assignment to array element is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
-TypeTests.dfy(53,6): Error: Duplicate local-variable name: z
-TypeTests.dfy(55,6): Error: Duplicate local-variable name: x
-TypeTests.dfy(58,8): Error: Duplicate local-variable name: x
-TypeTests.dfy(61,6): Error: Duplicate local-variable name: y
-TypeTests.dfy(67,11): Error: unresolved identifier: x
-TypeTests.dfy(69,28): Error: unresolved identifier: z
-TypeTests.dfy(70,29): Error: unresolved identifier: w1
-TypeTests.dfy(70,47): Error: unresolved identifier: w0
-TypeTests.dfy(73,28): Error: unresolved identifier: e
-TypeTests.dfy(88,17): Error: member F in type C does not refer to a method
-TypeTests.dfy(89,17): Error: a method called as an initialization method must not have any result arguments
-TypeTests.dfy(98,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
-TypeTests.dfy(99,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
-TypeTests.dfy(100,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
+TypeTests.dfy(7,13): Error: incorrect type of function argument 0 (expected C, got D)
+TypeTests.dfy(7,13): Error: incorrect type of function argument 1 (expected D, got C)
+TypeTests.dfy(8,13): Error: incorrect type of function argument 0 (expected C, got int)
+TypeTests.dfy(8,13): Error: incorrect type of function argument 1 (expected D, got int)
+TypeTests.dfy(14,15): Error: incorrect type of method in-parameter 0 (expected int, got bool)
+TypeTests.dfy(15,11): Error: incorrect type of method out-parameter 0 (expected int, got C)
+TypeTests.dfy(15,11): Error: incorrect type of method out-parameter 1 (expected C, got int)
+TypeTests.dfy(47,9): Error: Assignment to array element is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+TypeTests.dfy(56,6): Error: Duplicate local-variable name: z
+TypeTests.dfy(58,6): Error: Duplicate local-variable name: x
+TypeTests.dfy(61,8): Error: Duplicate local-variable name: x
+TypeTests.dfy(64,6): Error: Duplicate local-variable name: y
+TypeTests.dfy(70,11): Error: unresolved identifier: x
+TypeTests.dfy(72,28): Error: unresolved identifier: z
+TypeTests.dfy(73,29): Error: unresolved identifier: w1
+TypeTests.dfy(73,47): Error: unresolved identifier: w0
+TypeTests.dfy(76,28): Error: unresolved identifier: e
+TypeTests.dfy(91,17): Error: member F in type C does not refer to a method
+TypeTests.dfy(92,17): Error: a method called as an initialization method must not have any result arguments
+TypeTests.dfy(101,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
TypeTests.dfy(102,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
TypeTests.dfy(103,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
-TypeTests.dfy(104,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
-TypeTests.dfy(110,6): Error: sorry, cannot instantiate collection type with a subrange type
-TypeTests.dfy(111,9): Error: sorry, cannot instantiate type parameter with a subrange type
-TypeTests.dfy(112,8): Error: sorry, cannot instantiate 'array' type with a subrange type
-TypeTests.dfy(113,8): Error: sorry, cannot instantiate 'array' type with a subrange type
-TypeTests.dfy(125,15): Error: ghost variables are allowed only in specification contexts
-TypeTests.dfy(135,4): Error: cannot assign to non-ghost variable in a ghost context
-TypeTests.dfy(136,7): Error: cannot assign to non-ghost variable in a ghost context
-TypeTests.dfy(18,9): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'NeverendingList' can be constructed
+TypeTests.dfy(105,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
+TypeTests.dfy(106,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
+TypeTests.dfy(107,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
+TypeTests.dfy(113,6): Error: sorry, cannot instantiate collection type with a subrange type
+TypeTests.dfy(114,9): Error: sorry, cannot instantiate type parameter with a subrange type
+TypeTests.dfy(115,8): Error: sorry, cannot instantiate 'array' type with a subrange type
+TypeTests.dfy(116,8): Error: sorry, cannot instantiate 'array' type with a subrange type
+TypeTests.dfy(128,15): Error: ghost variables are allowed only in specification contexts
+TypeTests.dfy(138,4): Error: cannot assign to non-ghost variable in a ghost context
+TypeTests.dfy(139,7): Error: cannot assign to non-ghost variable in a ghost context
+TypeTests.dfy(21,9): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'NeverendingList' can be constructed
33 resolution/type errors detected in TypeTests.dfy
-------------------- NatTypes.dfy --------------------
-NatTypes.dfy(7,5): Error: value assigned to a nat must be non-negative
+NatTypes.dfy(10,5): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
-NatTypes.dfy(31,10): Error: value assigned to a nat must be non-negative
+NatTypes.dfy(34,10): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
- NatTypes.dfy(19,3): anon10_LoopHead
+ NatTypes.dfy(22,3): anon10_LoopHead
(0,0): anon10_LoopBody
- NatTypes.dfy(19,3): anon11_Else
+ NatTypes.dfy(22,3): anon11_Else
(0,0): anon12_Then
-NatTypes.dfy(38,14): Error: assertion violation
+NatTypes.dfy(41,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon4_Then
-NatTypes.dfy(40,14): Error: assertion violation
+NatTypes.dfy(43,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon4_Then
-NatTypes.dfy(57,16): Error: assertion violation
+NatTypes.dfy(60,16): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-NatTypes.dfy(71,16): Error: assertion violation
+NatTypes.dfy(74,16): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Then
-NatTypes.dfy(89,19): Error: value assigned to a nat must be non-negative
+NatTypes.dfy(92,19): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-NatTypes.dfy(104,45): Error: value assigned to a nat must be non-negative
+NatTypes.dfy(107,45): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
(0,0): anon6_Else
(0,0): anon7_Else
(0,0): anon8_Then
-NatTypes.dfy(127,21): Error: value assigned to a nat must be non-negative
+NatTypes.dfy(130,21): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
(0,0): anon3_Then
@@ -149,198 +149,198 @@ Execution trace: Dafny program verifier finished with 15 verified, 9 errors
-------------------- RealTypes.dfy --------------------
-RealTypes.dfy(5,23): Error: assertion violation
+RealTypes.dfy(8,23): Error: assertion violation
Execution trace:
(0,0): anon0
-RealTypes.dfy(11,12): Error: possible division by zero
+RealTypes.dfy(14,12): Error: possible division by zero
Execution trace:
(0,0): anon0
- RealTypes.dfy(10,23): anon3_Else
+ RealTypes.dfy(13,23): anon3_Else
(0,0): anon2
-RealTypes.dfy(11,20): Error: assertion violation
+RealTypes.dfy(14,20): Error: assertion violation
Execution trace:
(0,0): anon0
- RealTypes.dfy(10,23): anon3_Else
+ RealTypes.dfy(13,23): anon3_Else
(0,0): anon2
-RealTypes.dfy(19,12): Error: assertion violation
+RealTypes.dfy(22,12): Error: assertion violation
Execution trace:
(0,0): anon0
Dafny program verifier finished with 6 verified, 4 errors
-------------------- Definedness.dfy --------------------
-Definedness.dfy(8,7): Error: possible division by zero
+Definedness.dfy(11,7): Error: possible division by zero
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-Definedness.dfy(15,16): Error: possible division by zero
+Definedness.dfy(18,16): Error: possible division by zero
Execution trace:
(0,0): anon0
-Definedness.dfy(24,16): Error: target object may be null
+Definedness.dfy(27,16): Error: target object may be null
Execution trace:
(0,0): anon0
-Definedness.dfy(25,21): Error: target object may be null
+Definedness.dfy(28,21): Error: target object may be null
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-Definedness.dfy(26,17): Error: possible division by zero
+Definedness.dfy(29,17): Error: possible division by zero
Execution trace:
(0,0): anon0
-Definedness.dfy(33,16): Error: target object may be null
+Definedness.dfy(36,16): Error: target object may be null
Execution trace:
(0,0): anon0
-Definedness.dfy(42,16): Error: target object may be null
+Definedness.dfy(45,16): Error: target object may be null
Execution trace:
(0,0): anon0
-Definedness.dfy(50,18): Error: target object may be null
+Definedness.dfy(53,18): Error: target object may be null
Execution trace:
(0,0): anon0
-Definedness.dfy(51,3): Error BP5003: A postcondition might not hold on this return path.
-Definedness.dfy(50,22): Related location: This is the postcondition that might not hold.
+Definedness.dfy(54,3): Error BP5003: A postcondition might not hold on this return path.
+Definedness.dfy(53,22): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-Definedness.dfy(57,18): Error: target object may be null
+Definedness.dfy(60,18): Error: target object may be null
Execution trace:
(0,0): anon0
-Definedness.dfy(58,3): Error BP5003: A postcondition might not hold on this return path.
-Definedness.dfy(57,22): Related location: This is the postcondition that might not hold.
+Definedness.dfy(61,3): Error BP5003: A postcondition might not hold on this return path.
+Definedness.dfy(60,22): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-Definedness.dfy(65,3): Error BP5003: A postcondition might not hold on this return path.
-Definedness.dfy(64,22): Related location: This is the postcondition that might not hold.
+Definedness.dfy(68,3): Error BP5003: A postcondition might not hold on this return path.
+Definedness.dfy(67,22): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-Definedness.dfy(85,7): Error: target object may be null
+Definedness.dfy(88,7): Error: target object may be null
Execution trace:
(0,0): anon0
-Definedness.dfy(86,5): Error: possible violation of function precondition
-Definedness.dfy(76,16): Related location
+Definedness.dfy(89,5): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
Execution trace:
(0,0): anon0
-Definedness.dfy(86,10): Error: assignment may update an object not in the enclosing context's modifies clause
+Definedness.dfy(89,10): Error: assignment may update an object not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
-Definedness.dfy(86,10): Error: target object may be null
+Definedness.dfy(89,10): Error: target object may be null
Execution trace:
(0,0): anon0
-Definedness.dfy(87,10): Error: possible violation of function precondition
-Definedness.dfy(76,16): Related location
+Definedness.dfy(90,10): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
Execution trace:
(0,0): anon0
-Definedness.dfy(92,14): Error: possible division by zero
+Definedness.dfy(95,14): Error: possible division by zero
Execution trace:
(0,0): anon0
-Definedness.dfy(92,23): Error: possible division by zero
+Definedness.dfy(95,23): Error: possible division by zero
Execution trace:
(0,0): anon0
-Definedness.dfy(93,15): Error: possible division by zero
+Definedness.dfy(96,15): Error: possible division by zero
Execution trace:
(0,0): anon0
-Definedness.dfy(98,12): Error: possible division by zero
+Definedness.dfy(101,12): Error: possible division by zero
Execution trace:
(0,0): anon0
-Definedness.dfy(105,15): Error: possible division by zero
+Definedness.dfy(108,15): Error: possible division by zero
Execution trace:
- Definedness.dfy(105,5): anon7_LoopHead
+ Definedness.dfy(108,5): anon7_LoopHead
(0,0): anon7_LoopBody
- Definedness.dfy(105,5): anon8_Else
-Definedness.dfy(114,23): Error: possible violation of function precondition
-Definedness.dfy(76,16): Related location
+ Definedness.dfy(108,5): anon8_Else
+Definedness.dfy(117,23): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
Execution trace:
(0,0): anon0
- Definedness.dfy(113,5): anon12_LoopHead
+ Definedness.dfy(116,5): anon12_LoopHead
(0,0): anon12_LoopBody
(0,0): anon13_Then
-Definedness.dfy(120,17): Error: possible violation of function precondition
-Definedness.dfy(76,16): Related location
+Definedness.dfy(123,17): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
Execution trace:
(0,0): anon0
- Definedness.dfy(113,5): anon12_LoopHead
+ Definedness.dfy(116,5): anon12_LoopHead
(0,0): anon12_LoopBody
- Definedness.dfy(113,5): anon13_Else
+ Definedness.dfy(116,5): anon13_Else
(0,0): anon14_Then
- Definedness.dfy(119,5): anon15_LoopHead
+ Definedness.dfy(122,5): anon15_LoopHead
(0,0): anon15_LoopBody
(0,0): anon16_Then
-Definedness.dfy(130,17): Error: possible violation of function precondition
-Definedness.dfy(76,16): Related location
+Definedness.dfy(133,17): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
Execution trace:
(0,0): anon0
- Definedness.dfy(129,5): anon6_LoopHead
+ Definedness.dfy(132,5): anon6_LoopHead
(0,0): anon6_LoopBody
(0,0): anon7_Then
-Definedness.dfy(130,22): Error BP5004: This loop invariant might not hold on entry.
+Definedness.dfy(133,22): Error BP5004: This loop invariant might not hold on entry.
Execution trace:
(0,0): anon0
-Definedness.dfy(131,17): Error: possible violation of function precondition
-Definedness.dfy(76,16): Related location
+Definedness.dfy(134,17): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
Execution trace:
(0,0): anon0
- Definedness.dfy(129,5): anon6_LoopHead
+ Definedness.dfy(132,5): anon6_LoopHead
(0,0): anon6_LoopBody
(0,0): anon7_Then
-Definedness.dfy(140,15): Error: possible division by zero
+Definedness.dfy(143,15): Error: possible division by zero
Execution trace:
(0,0): anon0
- Definedness.dfy(140,5): anon8_LoopHead
+ Definedness.dfy(143,5): anon8_LoopHead
(0,0): anon8_LoopBody
- Definedness.dfy(140,5): anon9_Else
-Definedness.dfy(159,15): Error: possible division by zero
+ Definedness.dfy(143,5): anon9_Else
+Definedness.dfy(162,15): Error: possible division by zero
Execution trace:
(0,0): anon0
- Definedness.dfy(153,5): anon16_LoopHead
+ Definedness.dfy(156,5): anon16_LoopHead
(0,0): anon16_LoopBody
- Definedness.dfy(153,5): anon17_Else
+ Definedness.dfy(156,5): anon17_Else
(0,0): anon18_Then
(0,0): anon5
(0,0): anon19_Then
- Definedness.dfy(159,5): anon20_LoopHead
+ Definedness.dfy(162,5): anon20_LoopHead
(0,0): anon20_LoopBody
- Definedness.dfy(159,5): anon21_Else
-Definedness.dfy(172,28): Error BP5004: This loop invariant might not hold on entry.
+ Definedness.dfy(162,5): anon21_Else
+Definedness.dfy(175,28): Error BP5004: This loop invariant might not hold on entry.
Execution trace:
(0,0): anon0
-Definedness.dfy(178,17): Error: possible violation of function precondition
-Definedness.dfy(76,16): Related location
+Definedness.dfy(181,17): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
Execution trace:
(0,0): anon0
- Definedness.dfy(170,5): anon18_LoopHead
+ Definedness.dfy(173,5): anon18_LoopHead
(0,0): anon18_LoopBody
- Definedness.dfy(170,5): anon19_Else
+ Definedness.dfy(173,5): anon19_Else
(0,0): anon20_Then
- Definedness.dfy(177,5): anon21_LoopHead
+ Definedness.dfy(180,5): anon21_LoopHead
(0,0): anon21_LoopBody
(0,0): anon22_Then
(0,0): anon23_Then
(0,0): anon11
-Definedness.dfy(193,19): Error: possible division by zero
+Definedness.dfy(196,19): Error: possible division by zero
Execution trace:
(0,0): anon0
- Definedness.dfy(191,5): anon6_LoopHead
+ Definedness.dfy(194,5): anon6_LoopHead
(0,0): anon6_LoopBody
(0,0): anon7_Then
-Definedness.dfy(193,23): Error BP5004: This loop invariant might not hold on entry.
+Definedness.dfy(196,23): Error BP5004: This loop invariant might not hold on entry.
Execution trace:
(0,0): anon0
-Definedness.dfy(193,28): Error: possible division by zero
+Definedness.dfy(196,28): Error: possible division by zero
Execution trace:
(0,0): anon0
- Definedness.dfy(191,5): anon6_LoopHead
+ Definedness.dfy(194,5): anon6_LoopHead
(0,0): anon6_LoopBody
(0,0): anon7_Then
-Definedness.dfy(212,10): Error BP5003: A postcondition might not hold on this return path.
-Definedness.dfy(214,46): Related location: This is the postcondition that might not hold.
+Definedness.dfy(215,10): Error BP5003: A postcondition might not hold on this return path.
+Definedness.dfy(217,46): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon5_Else
-Definedness.dfy(221,22): Error: target object may be null
+Definedness.dfy(224,22): Error: target object may be null
Execution trace:
(0,0): anon0
(0,0): anon5_Then
(0,0): anon2
(0,0): anon6_Then
-Definedness.dfy(234,10): Error BP5003: A postcondition might not hold on this return path.
-Definedness.dfy(237,24): Related location: This is the postcondition that might not hold.
+Definedness.dfy(237,10): Error BP5003: A postcondition might not hold on this return path.
+Definedness.dfy(240,24): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon7_Then
@@ -350,267 +350,267 @@ Execution trace: Dafny program verifier finished with 21 verified, 37 errors
-------------------- FunctionSpecifications.dfy --------------------
-FunctionSpecifications.dfy(32,25): Error BP5003: A postcondition might not hold on this return path.
-FunctionSpecifications.dfy(28,13): Related location: This is the postcondition that might not hold.
+FunctionSpecifications.dfy(35,25): Error BP5003: A postcondition might not hold on this return path.
+FunctionSpecifications.dfy(31,13): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon8_Else
(0,0): anon9_Else
(0,0): anon10_Then
(0,0): anon11_Else
-FunctionSpecifications.dfy(42,3): Error BP5003: A postcondition might not hold on this return path.
-FunctionSpecifications.dfy(37,24): Related location: This is the postcondition that might not hold.
+FunctionSpecifications.dfy(45,3): Error BP5003: A postcondition might not hold on this return path.
+FunctionSpecifications.dfy(40,24): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon11_Else
(0,0): anon14_Else
(0,0): anon15_Then
-FunctionSpecifications.dfy(50,11): Error: cannot prove termination; try supplying a decreases clause
+FunctionSpecifications.dfy(53,11): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon8_Then
(0,0): anon3
-FunctionSpecifications.dfy(56,10): Error BP5003: A postcondition might not hold on this return path.
-FunctionSpecifications.dfy(57,22): Related location: This is the postcondition that might not hold.
+FunctionSpecifications.dfy(59,10): Error BP5003: A postcondition might not hold on this return path.
+FunctionSpecifications.dfy(60,22): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon5_Else
-FunctionSpecifications.dfy(105,23): Error: assertion violation
+FunctionSpecifications.dfy(108,23): Error: assertion violation
Execution trace:
(0,0): anon0
-FunctionSpecifications.dfy(108,23): Error: assertion violation
+FunctionSpecifications.dfy(111,23): Error: assertion violation
Execution trace:
(0,0): anon0
-FunctionSpecifications.dfy(123,27): Error: assertion violation
+FunctionSpecifications.dfy(126,27): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-FunctionSpecifications.dfy(127,27): Error: assertion violation
+FunctionSpecifications.dfy(130,27): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-FunctionSpecifications.dfy(150,15): Error: assertion violation
+FunctionSpecifications.dfy(153,15): Error: assertion violation
Execution trace:
(0,0): anon0
-FunctionSpecifications.dfy(162,3): Error: cannot prove termination; try supplying a decreases clause
+FunctionSpecifications.dfy(165,3): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-FunctionSpecifications.dfy(169,15): Error: assertion violation
+FunctionSpecifications.dfy(172,15): Error: assertion violation
Execution trace:
(0,0): anon0
-FunctionSpecifications.dfy(178,3): Error: cannot prove termination; try supplying a decreases clause
+FunctionSpecifications.dfy(181,3): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-FunctionSpecifications.dfy(132,20): Error BP5003: A postcondition might not hold on this return path.
-FunctionSpecifications.dfy(134,29): Related location: This is the postcondition that might not hold.
+FunctionSpecifications.dfy(135,20): Error BP5003: A postcondition might not hold on this return path.
+FunctionSpecifications.dfy(137,29): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon5_Then
(0,0): anon2
(0,0): anon6_Else
-FunctionSpecifications.dfy(143,3): Error: failure to decrease termination measure
+FunctionSpecifications.dfy(146,3): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-FunctionSpecifications.dfy(157,3): Error: failure to decrease termination measure
+FunctionSpecifications.dfy(160,3): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-FunctionSpecifications.dfy(185,3): Error: cannot prove termination; try supplying a decreases clause
+FunctionSpecifications.dfy(188,3): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-FunctionSpecifications.dfy(182,20): Error: cannot prove termination; try supplying a decreases clause
+FunctionSpecifications.dfy(185,20): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
Dafny program verifier finished with 19 verified, 17 errors
-------------------- ResolutionErrors.dfy --------------------
-ResolutionErrors.dfy(497,7): Error: RHS (of type List<A>) not assignable to LHS (of type List<B>)
-ResolutionErrors.dfy(502,7): Error: RHS (of type List<A>) not assignable to LHS (of type List<B>)
-ResolutionErrors.dfy(516,23): Error: type of case bodies do not agree (found Tree<_T1,_T0>, previous types Tree<_T0,_T1>)
-ResolutionErrors.dfy(528,24): Error: Wrong number of type arguments (0 instead of 2) passed to class/datatype: Tree
-ResolutionErrors.dfy(563,18): Error: type of bound variable 'z' could not determined; please specify the type explicitly
-ResolutionErrors.dfy(576,13): Error: 'new' is not allowed in ghost contexts
-ResolutionErrors.dfy(577,9): Error: 'new' is not allowed in ghost contexts
-ResolutionErrors.dfy(584,14): Error: new allocation not supported in forall statements
-ResolutionErrors.dfy(589,11): Error: the body of the enclosing forall statement is not allowed to update heap locations
-ResolutionErrors.dfy(589,14): Error: new allocation not allowed in ghost context
-ResolutionErrors.dfy(599,23): Error: 'new' is not allowed in ghost contexts
-ResolutionErrors.dfy(606,15): Error: 'new' is not allowed in ghost contexts
-ResolutionErrors.dfy(606,15): Error: only ghost methods can be called from this context
-ResolutionErrors.dfy(606,10): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(615,17): Error: 'new' is not allowed in ghost contexts
-ResolutionErrors.dfy(617,20): Error: only ghost methods can be called from this context
-ResolutionErrors.dfy(619,8): Error: calls to methods with side-effects are not allowed inside a hint
-ResolutionErrors.dfy(637,21): Error: the type of this expression is underspecified, but it cannot be an arbitrary type.
-ResolutionErrors.dfy(637,21): Error: the type of this expression is underspecified, but it cannot be an arbitrary type.
-ResolutionErrors.dfy(674,8): Error: calls to methods with side-effects are not allowed inside a hint
-ResolutionErrors.dfy(684,8): Error: only ghost methods can be called from this context
-ResolutionErrors.dfy(687,20): Error: 'decreases *' is not allowed on ghost loops
-ResolutionErrors.dfy(698,16): Error: Assignment to non-ghost field is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
-ResolutionErrors.dfy(698,16): Error: a hint is not allowed to update heap locations
-ResolutionErrors.dfy(699,21): Error: a hint is not allowed to update heap locations
-ResolutionErrors.dfy(700,8): Error: calls to methods with side-effects are not allowed inside a hint
-ResolutionErrors.dfy(703,19): Error: a while statement used inside a hint is not allowed to have a modifies clause
-ResolutionErrors.dfy(722,8): Error: only ghost methods can be called from this context
-ResolutionErrors.dfy(725,20): Error: 'decreases *' is not allowed on ghost loops
-ResolutionErrors.dfy(730,16): Error: Assignment to non-ghost field is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
-ResolutionErrors.dfy(730,16): Error: a hint is not allowed to update heap locations
-ResolutionErrors.dfy(731,21): Error: a hint is not allowed to update heap locations
-ResolutionErrors.dfy(732,8): Error: calls to methods with side-effects are not allowed inside a hint
-ResolutionErrors.dfy(735,19): Error: a while statement used inside a hint is not allowed to have a modifies clause
-ResolutionErrors.dfy(760,4): Error: calls to methods with side-effects are not allowed inside a statement expression
-ResolutionErrors.dfy(761,4): Error: only ghost methods can be called from this context
-ResolutionErrors.dfy(762,4): Error: wrong number of method result arguments (got 0, expected 1)
-ResolutionErrors.dfy(773,23): Error: function calls are allowed only in specification contexts (consider declaring the function a 'function method')
-ResolutionErrors.dfy(783,4): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(794,36): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(803,17): Error: function calls are allowed only in specification contexts (consider declaring the function a 'function method')
-ResolutionErrors.dfy(817,6): Error: RHS (of type B) not assignable to LHS (of type object)
-ResolutionErrors.dfy(818,6): Error: RHS (of type int) not assignable to LHS (of type object)
+ResolutionErrors.dfy(499,7): Error: RHS (of type List<A>) not assignable to LHS (of type List<B>)
+ResolutionErrors.dfy(504,7): Error: RHS (of type List<A>) not assignable to LHS (of type List<B>)
+ResolutionErrors.dfy(518,23): Error: type of case bodies do not agree (found Tree<_T1,_T0>, previous types Tree<_T0,_T1>)
+ResolutionErrors.dfy(530,24): Error: Wrong number of type arguments (0 instead of 2) passed to class/datatype: Tree
+ResolutionErrors.dfy(565,18): Error: type of bound variable 'z' could not determined; please specify the type explicitly
+ResolutionErrors.dfy(578,13): Error: 'new' is not allowed in ghost contexts
+ResolutionErrors.dfy(579,9): Error: 'new' is not allowed in ghost contexts
+ResolutionErrors.dfy(586,14): Error: new allocation not supported in forall statements
+ResolutionErrors.dfy(591,11): Error: the body of the enclosing forall statement is not allowed to update heap locations
+ResolutionErrors.dfy(591,14): Error: new allocation not allowed in ghost context
+ResolutionErrors.dfy(601,23): Error: 'new' is not allowed in ghost contexts
+ResolutionErrors.dfy(608,15): Error: 'new' is not allowed in ghost contexts
+ResolutionErrors.dfy(608,15): Error: only ghost methods can be called from this context
+ResolutionErrors.dfy(608,10): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(617,17): Error: 'new' is not allowed in ghost contexts
+ResolutionErrors.dfy(619,20): Error: only ghost methods can be called from this context
+ResolutionErrors.dfy(621,8): Error: calls to methods with side-effects are not allowed inside a hint
+ResolutionErrors.dfy(639,21): Error: the type of this expression is underspecified, but it cannot be an arbitrary type.
+ResolutionErrors.dfy(639,21): Error: the type of this expression is underspecified, but it cannot be an arbitrary type.
+ResolutionErrors.dfy(676,8): Error: calls to methods with side-effects are not allowed inside a hint
+ResolutionErrors.dfy(686,8): Error: only ghost methods can be called from this context
+ResolutionErrors.dfy(689,20): Error: 'decreases *' is not allowed on ghost loops
+ResolutionErrors.dfy(700,16): Error: Assignment to non-ghost field is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+ResolutionErrors.dfy(700,16): Error: a hint is not allowed to update heap locations
+ResolutionErrors.dfy(701,21): Error: a hint is not allowed to update heap locations
+ResolutionErrors.dfy(702,8): Error: calls to methods with side-effects are not allowed inside a hint
+ResolutionErrors.dfy(705,19): Error: a while statement used inside a hint is not allowed to have a modifies clause
+ResolutionErrors.dfy(724,8): Error: only ghost methods can be called from this context
+ResolutionErrors.dfy(727,20): Error: 'decreases *' is not allowed on ghost loops
+ResolutionErrors.dfy(732,16): Error: Assignment to non-ghost field is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+ResolutionErrors.dfy(732,16): Error: a hint is not allowed to update heap locations
+ResolutionErrors.dfy(733,21): Error: a hint is not allowed to update heap locations
+ResolutionErrors.dfy(734,8): Error: calls to methods with side-effects are not allowed inside a hint
+ResolutionErrors.dfy(737,19): Error: a while statement used inside a hint is not allowed to have a modifies clause
+ResolutionErrors.dfy(762,4): Error: calls to methods with side-effects are not allowed inside a statement expression
+ResolutionErrors.dfy(763,4): Error: only ghost methods can be called from this context
+ResolutionErrors.dfy(764,4): Error: wrong number of method result arguments (got 0, expected 1)
+ResolutionErrors.dfy(775,23): Error: function calls are allowed only in specification contexts (consider declaring the function a 'function method')
+ResolutionErrors.dfy(785,4): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(796,36): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(805,17): Error: function calls are allowed only in specification contexts (consider declaring the function a 'function method')
ResolutionErrors.dfy(819,6): Error: RHS (of type B) not assignable to LHS (of type object)
-ResolutionErrors.dfy(824,6): Error: RHS (of type G) not assignable to LHS (of type object)
-ResolutionErrors.dfy(825,6): Error: RHS (of type Dt) not assignable to LHS (of type object)
-ResolutionErrors.dfy(826,6): Error: RHS (of type CoDt) not assignable to LHS (of type object)
-ResolutionErrors.dfy(888,4): Error: LHS of array assignment must denote an array element (found seq<int>)
-ResolutionErrors.dfy(889,4): Error: LHS of array assignment must denote an array element (found seq<int>)
-ResolutionErrors.dfy(894,10): Error: LHS of assignment must denote a mutable field
-ResolutionErrors.dfy(895,10): Error: LHS of assignment must denote a mutable field
-ResolutionErrors.dfy(896,9): Error: cannot assign to a range of array elements (try the 'forall' statement)
-ResolutionErrors.dfy(897,9): Error: cannot assign to a range of array elements (try the 'forall' statement)
-ResolutionErrors.dfy(898,5): Error: cannot assign to a range of array elements (try the 'forall' statement)
-ResolutionErrors.dfy(899,5): Error: cannot assign to a range of array elements (try the 'forall' statement)
-ResolutionErrors.dfy(427,2): Error: More than one default constructor
-ResolutionErrors.dfy(48,13): Error: 'this' is not allowed in a 'static' context
-ResolutionErrors.dfy(109,9): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(110,9): Error: function calls are allowed only in specification contexts (consider declaring the function a 'function method')
-ResolutionErrors.dfy(114,11): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(115,9): Error: actual out-parameter 0 is required to be a ghost variable
-ResolutionErrors.dfy(122,15): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(126,23): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(133,4): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(137,21): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(138,35): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(147,9): Error: only ghost methods can be called from this context
-ResolutionErrors.dfy(153,16): Error: 'decreases *' is not allowed on ghost loops
-ResolutionErrors.dfy(194,27): Error: ghost-context break statement is not allowed to break out of non-ghost structure
-ResolutionErrors.dfy(217,12): Error: ghost-context break statement is not allowed to break out of non-ghost loop
-ResolutionErrors.dfy(229,12): Error: trying to break out of more loop levels than there are enclosing loops
-ResolutionErrors.dfy(233,12): Error: ghost-context break statement is not allowed to break out of non-ghost loop
-ResolutionErrors.dfy(238,8): Error: return statement is not allowed in this context (because it is guarded by a specification-only expression)
-ResolutionErrors.dfy(433,14): Error: when allocating an object of type 'YHWH', one of its constructor methods must be called
-ResolutionErrors.dfy(438,6): Error: when allocating an object of type 'Lucifer', one of its constructor methods must be called
-ResolutionErrors.dfy(439,6): Error: when allocating an object of type 'Lucifer', one of its constructor methods must be called
-ResolutionErrors.dfy(441,9): Error: class Lamb does not have a default constructor
-ResolutionErrors.dfy(837,11): Error: a modifies-clause expression must denote an object or a collection of objects (instead got int)
-ResolutionErrors.dfy(841,14): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
-ResolutionErrors.dfy(844,12): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
-ResolutionErrors.dfy(852,14): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
-ResolutionErrors.dfy(862,18): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
-ResolutionErrors.dfy(873,16): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
-ResolutionErrors.dfy(10,16): Error: 'decreases *' is not allowed on ghost loops
-ResolutionErrors.dfy(22,11): Error: array selection requires an array2 (got array3<T>)
-ResolutionErrors.dfy(23,12): Error: sequence/array/multiset/map selection requires a sequence, array, multiset, or map (got array3<T>)
-ResolutionErrors.dfy(24,11): Error: array selection requires an array4 (got array<T>)
-ResolutionErrors.dfy(54,14): Error: a field must be selected via an object, not just a class name
-ResolutionErrors.dfy(55,7): Error: unresolved identifier: F
-ResolutionErrors.dfy(56,14): Error: an instance function must be selected via an object, not just a class name
-ResolutionErrors.dfy(56,7): Error: call to instance function requires an instance
-ResolutionErrors.dfy(57,7): Error: unresolved identifier: G
-ResolutionErrors.dfy(59,7): Error: unresolved identifier: M
-ResolutionErrors.dfy(60,7): Error: call to instance method requires an instance
-ResolutionErrors.dfy(61,7): Error: unresolved identifier: N
-ResolutionErrors.dfy(64,8): Error: non-function expression is called with parameters
-ResolutionErrors.dfy(65,14): Error: member z does not exist in class Global
-ResolutionErrors.dfy(84,12): Error: the name 'Benny' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'Abc.Benny')
-ResolutionErrors.dfy(89,12): Error: the name 'David' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'Abc.David')
-ResolutionErrors.dfy(90,12): Error: the name 'David' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'Abc.David')
+ResolutionErrors.dfy(820,6): Error: RHS (of type int) not assignable to LHS (of type object)
+ResolutionErrors.dfy(821,6): Error: RHS (of type B) not assignable to LHS (of type object)
+ResolutionErrors.dfy(826,6): Error: RHS (of type G) not assignable to LHS (of type object)
+ResolutionErrors.dfy(827,6): Error: RHS (of type Dt) not assignable to LHS (of type object)
+ResolutionErrors.dfy(828,6): Error: RHS (of type CoDt) not assignable to LHS (of type object)
+ResolutionErrors.dfy(890,4): Error: LHS of array assignment must denote an array element (found seq<int>)
+ResolutionErrors.dfy(891,4): Error: LHS of array assignment must denote an array element (found seq<int>)
+ResolutionErrors.dfy(896,10): Error: LHS of assignment must denote a mutable field
+ResolutionErrors.dfy(897,10): Error: LHS of assignment must denote a mutable field
+ResolutionErrors.dfy(898,9): Error: cannot assign to a range of array elements (try the 'forall' statement)
+ResolutionErrors.dfy(899,9): Error: cannot assign to a range of array elements (try the 'forall' statement)
+ResolutionErrors.dfy(900,5): Error: cannot assign to a range of array elements (try the 'forall' statement)
+ResolutionErrors.dfy(901,5): Error: cannot assign to a range of array elements (try the 'forall' statement)
+ResolutionErrors.dfy(429,2): Error: More than one default constructor
+ResolutionErrors.dfy(50,13): Error: 'this' is not allowed in a 'static' context
+ResolutionErrors.dfy(111,9): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(112,9): Error: function calls are allowed only in specification contexts (consider declaring the function a 'function method')
+ResolutionErrors.dfy(116,11): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(117,9): Error: actual out-parameter 0 is required to be a ghost variable
+ResolutionErrors.dfy(124,15): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(128,23): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(135,4): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(139,21): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(140,35): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(149,9): Error: only ghost methods can be called from this context
+ResolutionErrors.dfy(155,16): Error: 'decreases *' is not allowed on ghost loops
+ResolutionErrors.dfy(196,27): Error: ghost-context break statement is not allowed to break out of non-ghost structure
+ResolutionErrors.dfy(219,12): Error: ghost-context break statement is not allowed to break out of non-ghost loop
+ResolutionErrors.dfy(231,12): Error: trying to break out of more loop levels than there are enclosing loops
+ResolutionErrors.dfy(235,12): Error: ghost-context break statement is not allowed to break out of non-ghost loop
+ResolutionErrors.dfy(240,8): Error: return statement is not allowed in this context (because it is guarded by a specification-only expression)
+ResolutionErrors.dfy(435,14): Error: when allocating an object of type 'YHWH', one of its constructor methods must be called
+ResolutionErrors.dfy(440,6): Error: when allocating an object of type 'Lucifer', one of its constructor methods must be called
+ResolutionErrors.dfy(441,6): Error: when allocating an object of type 'Lucifer', one of its constructor methods must be called
+ResolutionErrors.dfy(443,9): Error: class Lamb does not have a default constructor
+ResolutionErrors.dfy(839,11): Error: a modifies-clause expression must denote an object or a collection of objects (instead got int)
+ResolutionErrors.dfy(843,14): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
+ResolutionErrors.dfy(846,12): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
+ResolutionErrors.dfy(854,14): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
+ResolutionErrors.dfy(864,18): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
+ResolutionErrors.dfy(875,16): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
+ResolutionErrors.dfy(12,16): Error: 'decreases *' is not allowed on ghost loops
+ResolutionErrors.dfy(24,11): Error: array selection requires an array2 (got array3<T>)
+ResolutionErrors.dfy(25,12): Error: sequence/array/multiset/map selection requires a sequence, array, multiset, or map (got array3<T>)
+ResolutionErrors.dfy(26,11): Error: array selection requires an array4 (got array<T>)
+ResolutionErrors.dfy(56,14): Error: a field must be selected via an object, not just a class name
+ResolutionErrors.dfy(57,7): Error: unresolved identifier: F
+ResolutionErrors.dfy(58,14): Error: an instance function must be selected via an object, not just a class name
+ResolutionErrors.dfy(58,7): Error: call to instance function requires an instance
+ResolutionErrors.dfy(59,7): Error: unresolved identifier: G
+ResolutionErrors.dfy(61,7): Error: unresolved identifier: M
+ResolutionErrors.dfy(62,7): Error: call to instance method requires an instance
+ResolutionErrors.dfy(63,7): Error: unresolved identifier: N
+ResolutionErrors.dfy(66,8): Error: non-function expression is called with parameters
+ResolutionErrors.dfy(67,14): Error: member z does not exist in class Global
+ResolutionErrors.dfy(86,12): Error: the name 'Benny' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'Abc.Benny')
+ResolutionErrors.dfy(91,12): Error: the name 'David' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'Abc.David')
ResolutionErrors.dfy(92,12): Error: the name 'David' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'Abc.David')
-ResolutionErrors.dfy(94,12): Error: wrong number of arguments to datatype constructor Abc (found 2, expected 1)
-ResolutionErrors.dfy(256,4): Error: label shadows an enclosing label
-ResolutionErrors.dfy(261,2): Error: duplicate label
-ResolutionErrors.dfy(287,4): Error: when allocating an object of type 'ClassWithConstructor', one of its constructor methods must be called
-ResolutionErrors.dfy(288,4): Error: when allocating an object of type 'ClassWithConstructor', one of its constructor methods must be called
-ResolutionErrors.dfy(290,4): Error: a constructor is only allowed to be called when an object is being allocated
-ResolutionErrors.dfy(304,16): Error: arguments must have the same type (got int and DTD_List)
-ResolutionErrors.dfy(305,16): Error: arguments must have the same type (got DTD_List and int)
-ResolutionErrors.dfy(306,25): Error: arguments must have the same type (got bool and int)
-ResolutionErrors.dfy(309,18): Error: ghost fields are allowed only in specification contexts
-ResolutionErrors.dfy(318,15): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(343,2): Error: incorrect type of method in-parameter 1 (expected GenericClass<int>, got GenericClass<bool>)
-ResolutionErrors.dfy(355,18): Error: incorrect type of datatype constructor argument (found GList<_T0>, expected GList<int>)
-ResolutionErrors.dfy(363,6): Error: arguments to + must be int or real or a collection type (instead got bool)
-ResolutionErrors.dfy(368,6): Error: all lines in a calculation must have the same type (got int after bool)
-ResolutionErrors.dfy(371,6): Error: first argument to ==> must be of type bool (instead got int)
-ResolutionErrors.dfy(371,6): Error: second argument to ==> must be of type bool (instead got int)
-ResolutionErrors.dfy(372,10): Error: first argument to ==> must be of type bool (instead got int)
-ResolutionErrors.dfy(372,10): Error: second argument to ==> must be of type bool (instead got int)
-ResolutionErrors.dfy(377,10): Error: first argument to ==> must be of type bool (instead got int)
-ResolutionErrors.dfy(377,10): Error: second argument to ==> must be of type bool (instead got int)
-ResolutionErrors.dfy(382,6): Error: print statement is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
-ResolutionErrors.dfy(404,6): Error: calls to methods with side-effects are not allowed inside a hint
-ResolutionErrors.dfy(406,12): Error: a hint is not allowed to update heap locations
-ResolutionErrors.dfy(408,8): Error: a hint is not allowed to update a variable declared outside the hint
-ResolutionErrors.dfy(465,7): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(471,12): Error: ghost variables are allowed only in specification contexts
-ResolutionErrors.dfy(539,7): Error: let-such-that expressions are allowed only in ghost contexts
+ResolutionErrors.dfy(94,12): Error: the name 'David' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'Abc.David')
+ResolutionErrors.dfy(96,12): Error: wrong number of arguments to datatype constructor Abc (found 2, expected 1)
+ResolutionErrors.dfy(258,4): Error: label shadows an enclosing label
+ResolutionErrors.dfy(263,2): Error: duplicate label
+ResolutionErrors.dfy(289,4): Error: when allocating an object of type 'ClassWithConstructor', one of its constructor methods must be called
+ResolutionErrors.dfy(290,4): Error: when allocating an object of type 'ClassWithConstructor', one of its constructor methods must be called
+ResolutionErrors.dfy(292,4): Error: a constructor is only allowed to be called when an object is being allocated
+ResolutionErrors.dfy(306,16): Error: arguments must have the same type (got int and DTD_List)
+ResolutionErrors.dfy(307,16): Error: arguments must have the same type (got DTD_List and int)
+ResolutionErrors.dfy(308,25): Error: arguments must have the same type (got bool and int)
+ResolutionErrors.dfy(311,18): Error: ghost fields are allowed only in specification contexts
+ResolutionErrors.dfy(320,15): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(345,2): Error: incorrect type of method in-parameter 1 (expected GenericClass<int>, got GenericClass<bool>)
+ResolutionErrors.dfy(357,18): Error: incorrect type of datatype constructor argument (found GList<_T0>, expected GList<int>)
+ResolutionErrors.dfy(365,6): Error: arguments to + must be int or real or a collection type (instead got bool)
+ResolutionErrors.dfy(370,6): Error: all lines in a calculation must have the same type (got int after bool)
+ResolutionErrors.dfy(373,6): Error: first argument to ==> must be of type bool (instead got int)
+ResolutionErrors.dfy(373,6): Error: second argument to ==> must be of type bool (instead got int)
+ResolutionErrors.dfy(374,10): Error: first argument to ==> must be of type bool (instead got int)
+ResolutionErrors.dfy(374,10): Error: second argument to ==> must be of type bool (instead got int)
+ResolutionErrors.dfy(379,10): Error: first argument to ==> must be of type bool (instead got int)
+ResolutionErrors.dfy(379,10): Error: second argument to ==> must be of type bool (instead got int)
+ResolutionErrors.dfy(384,6): Error: print statement is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+ResolutionErrors.dfy(406,6): Error: calls to methods with side-effects are not allowed inside a hint
+ResolutionErrors.dfy(408,12): Error: a hint is not allowed to update heap locations
+ResolutionErrors.dfy(410,8): Error: a hint is not allowed to update a variable declared outside the hint
+ResolutionErrors.dfy(467,7): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(473,12): Error: ghost variables are allowed only in specification contexts
ResolutionErrors.dfy(541,7): Error: let-such-that expressions are allowed only in ghost contexts
-ResolutionErrors.dfy(541,20): Error: ghost variables are allowed only in specification contexts
ResolutionErrors.dfy(543,7): Error: let-such-that expressions are allowed only in ghost contexts
-ResolutionErrors.dfy(544,18): Error: unresolved identifier: w
-ResolutionErrors.dfy(651,11): Error: lemmas are not allowed to have modifies clauses
+ResolutionErrors.dfy(543,20): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(545,7): Error: let-such-that expressions are allowed only in ghost contexts
+ResolutionErrors.dfy(546,18): Error: unresolved identifier: w
+ResolutionErrors.dfy(653,11): Error: lemmas are not allowed to have modifies clauses
134 resolution/type errors detected in ResolutionErrors.dfy
-------------------- ParseErrors.dfy --------------------
-ParseErrors.dfy(4,19): error: a chain cannot have more than one != operator
-ParseErrors.dfy(6,37): error: this operator chain cannot continue with a descending operator
-ParseErrors.dfy(7,38): error: this operator chain cannot continue with an ascending operator
-ParseErrors.dfy(12,24): error: this operator chain cannot continue with a descending operator
-ParseErrors.dfy(15,18): error: this operator cannot be part of a chain
-ParseErrors.dfy(16,19): error: this operator cannot be part of a chain
-ParseErrors.dfy(17,18): error: this operator cannot be part of a chain
-ParseErrors.dfy(18,18): error: chaining not allowed from the previous operator
-ParseErrors.dfy(46,8): error: the main operator of a calculation must be transitive
-ParseErrors.dfy(62,2): error: this operator cannot continue this calculation
-ParseErrors.dfy(63,2): error: this operator cannot continue this calculation
-ParseErrors.dfy(68,2): error: this operator cannot continue this calculation
-ParseErrors.dfy(69,2): error: this operator cannot continue this calculation
-ParseErrors.dfy(75,2): error: this operator cannot continue this calculation
+ParseErrors.dfy(7,19): error: a chain cannot have more than one != operator
+ParseErrors.dfy(9,37): error: this operator chain cannot continue with a descending operator
+ParseErrors.dfy(10,38): error: this operator chain cannot continue with an ascending operator
+ParseErrors.dfy(15,24): error: this operator chain cannot continue with a descending operator
+ParseErrors.dfy(18,18): error: this operator cannot be part of a chain
+ParseErrors.dfy(19,19): error: this operator cannot be part of a chain
+ParseErrors.dfy(20,18): error: this operator cannot be part of a chain
+ParseErrors.dfy(21,18): error: chaining not allowed from the previous operator
+ParseErrors.dfy(49,8): error: the main operator of a calculation must be transitive
+ParseErrors.dfy(65,2): error: this operator cannot continue this calculation
+ParseErrors.dfy(66,2): error: this operator cannot continue this calculation
+ParseErrors.dfy(71,2): error: this operator cannot continue this calculation
+ParseErrors.dfy(72,2): error: this operator cannot continue this calculation
+ParseErrors.dfy(78,2): error: this operator cannot continue this calculation
14 parse errors detected in ParseErrors.dfy
-------------------- Array.dfy --------------------
-Array.dfy(10,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+Array.dfy(13,8): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
(0,0): anon5_Then
(0,0): anon2
(0,0): anon6_Then
-Array.dfy(17,16): Error: target object may be null
+Array.dfy(20,16): Error: target object may be null
Execution trace:
(0,0): anon0
-Array.dfy(24,6): Error: index out of range
+Array.dfy(27,6): Error: index out of range
Execution trace:
(0,0): anon0
-Array.dfy(48,20): Error: assertion violation
+Array.dfy(51,20): Error: assertion violation
Execution trace:
(0,0): anon0
-Array.dfy(56,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+Array.dfy(59,8): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
(0,0): anon5_Then
(0,0): anon2
(0,0): anon6_Then
-Array.dfy(63,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+Array.dfy(66,8): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
(0,0): anon5_Then
(0,0): anon2
(0,0): anon6_Then
-Array.dfy(107,21): Error: upper bound below lower bound or above length of array
+Array.dfy(110,21): Error: upper bound below lower bound or above length of array
Execution trace:
(0,0): anon0
(0,0): anon14_Else
@@ -618,71 +618,71 @@ Execution trace: (0,0): anon19_Then
(0,0): anon20_Then
(0,0): anon11
-Array.dfy(117,8): Error: insufficient reads clause to read the indicated range of array elements
+Array.dfy(120,8): Error: insufficient reads clause to read the indicated range of array elements
Execution trace:
(0,0): anon0
(0,0): anon9_Else
(0,0): anon10_Then
(0,0): anon11_Then
(0,0): anon12_Then
-Array.dfy(119,8): Error: insufficient reads clause to read the indicated range of array elements
+Array.dfy(122,8): Error: insufficient reads clause to read the indicated range of array elements
Execution trace:
(0,0): anon0
(0,0): anon9_Else
(0,0): anon10_Then
(0,0): anon11_Then
(0,0): anon12_Else
-Array.dfy(120,8): Error: insufficient reads clause to read the indicated range of array elements
+Array.dfy(123,8): Error: insufficient reads clause to read the indicated range of array elements
Execution trace:
(0,0): anon0
(0,0): anon9_Else
(0,0): anon10_Then
(0,0): anon11_Then
(0,0): anon12_Else
-Array.dfy(121,8): Error: insufficient reads clause to read the indicated range of array elements
+Array.dfy(124,8): Error: insufficient reads clause to read the indicated range of array elements
Execution trace:
(0,0): anon0
(0,0): anon9_Else
(0,0): anon10_Then
(0,0): anon11_Then
(0,0): anon12_Else
-Array.dfy(147,6): Error: insufficient reads clause to read array element
+Array.dfy(150,6): Error: insufficient reads clause to read array element
Execution trace:
(0,0): anon0
(0,0): anon7_Else
(0,0): anon8_Then
(0,0): anon9_Then
-Array.dfy(155,6): Error: insufficient reads clause to read array element
+Array.dfy(158,6): Error: insufficient reads clause to read array element
Execution trace:
(0,0): anon0
(0,0): anon7_Else
(0,0): anon8_Then
(0,0): anon9_Then
-Array.dfy(171,6): Error: assignment may update an array element not in the enclosing context's modifies clause
+Array.dfy(174,6): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
-Array.dfy(178,6): Error: assignment may update an array element not in the enclosing context's modifies clause
+Array.dfy(181,6): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
-Array.dfy(203,1): Error BP5003: A postcondition might not hold on this return path.
-Array.dfy(202,11): Related location: This is the postcondition that might not hold.
+Array.dfy(206,1): Error BP5003: A postcondition might not hold on this return path.
+Array.dfy(205,11): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-Array.dfy(227,1): Error BP5003: A postcondition might not hold on this return path.
-Array.dfy(226,11): Related location: This is the postcondition that might not hold.
+Array.dfy(230,1): Error BP5003: A postcondition might not hold on this return path.
+Array.dfy(229,11): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-Array.dfy(233,1): Error BP5003: A postcondition might not hold on this return path.
-Array.dfy(232,11): Related location: This is the postcondition that might not hold.
+Array.dfy(236,1): Error BP5003: A postcondition might not hold on this return path.
+Array.dfy(235,11): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-Array.dfy(248,10): Error: value assigned to a nat must be non-negative
+Array.dfy(251,10): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
(0,0): anon5_Then
(0,0): anon2
(0,0): anon6_Then
-Array.dfy(249,5): Error: value assigned to a nat must be non-negative
+Array.dfy(252,5): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
(0,0): anon5_Then
@@ -692,12 +692,12 @@ Execution trace: Dafny program verifier finished with 41 verified, 20 errors
-------------------- MultiDimArray.dfy --------------------
-MultiDimArray.dfy(53,21): Error: assertion violation
+MultiDimArray.dfy(56,21): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon11_Then
(0,0): anon12_Then
-MultiDimArray.dfy(80,25): Error: assertion violation
+MultiDimArray.dfy(83,25): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon5_Then
@@ -706,30 +706,30 @@ Execution trace: Dafny program verifier finished with 8 verified, 2 errors
-------------------- NonGhostQuantifiers.dfy --------------------
-NonGhostQuantifiers.dfy(146,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
-NonGhostQuantifiers.dfy(150,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
-NonGhostQuantifiers.dfy(155,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
-NonGhostQuantifiers.dfy(160,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
-NonGhostQuantifiers.dfy(164,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
-NonGhostQuantifiers.dfy(168,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
-NonGhostQuantifiers.dfy(173,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
-NonGhostQuantifiers.dfy(178,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
-NonGhostQuantifiers.dfy(183,13): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'c'
-NonGhostQuantifiers.dfy(13,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'n'
-NonGhostQuantifiers.dfy(42,4): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'n'
-NonGhostQuantifiers.dfy(46,4): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'd'
-NonGhostQuantifiers.dfy(50,4): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'n'
-NonGhostQuantifiers.dfy(74,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'i'
-NonGhostQuantifiers.dfy(78,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'j'
-NonGhostQuantifiers.dfy(88,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'j'
-NonGhostQuantifiers.dfy(103,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'j'
-NonGhostQuantifiers.dfy(111,10): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'y'
-NonGhostQuantifiers.dfy(120,8): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'x'
-NonGhostQuantifiers.dfy(137,8): Error: Assignment to non-ghost variable is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+NonGhostQuantifiers.dfy(149,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(153,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(158,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(163,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(167,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(171,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(176,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(181,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(186,13): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'c'
+NonGhostQuantifiers.dfy(16,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'n'
+NonGhostQuantifiers.dfy(45,4): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'n'
+NonGhostQuantifiers.dfy(49,4): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'd'
+NonGhostQuantifiers.dfy(53,4): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'n'
+NonGhostQuantifiers.dfy(77,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'i'
+NonGhostQuantifiers.dfy(81,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'j'
+NonGhostQuantifiers.dfy(91,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'j'
+NonGhostQuantifiers.dfy(106,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'j'
+NonGhostQuantifiers.dfy(114,10): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'y'
+NonGhostQuantifiers.dfy(123,8): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'x'
+NonGhostQuantifiers.dfy(140,8): Error: Assignment to non-ghost variable is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
20 resolution/type errors detected in NonGhostQuantifiers.dfy
-------------------- AdvancedLHS.dfy --------------------
-AdvancedLHS.dfy(31,23): Error: target object may be null
+AdvancedLHS.dfy(34,23): Error: target object may be null
Execution trace:
(0,0): anon0
(0,0): anon15_Else
@@ -737,73 +737,73 @@ Execution trace: Dafny program verifier finished with 7 verified, 1 error
-------------------- ModulesCycle.dfy --------------------
-ModulesCycle.dfy(3,9): Error: module T does not exist
-ModulesCycle.dfy(6,7): Error: module definition contains a cycle (note: parent modules implicitly depend on submodules): A -> D -> C -> B
+ModulesCycle.dfy(5,9): Error: module T does not exist
+ModulesCycle.dfy(8,7): Error: module definition contains a cycle (note: parent modules implicitly depend on submodules): A -> D -> C -> B
2 resolution/type errors detected in ModulesCycle.dfy
-------------------- Modules0.dfy --------------------
-Modules0.dfy(5,8): Error: Duplicate name of top-level declaration: WazzupA
-Modules0.dfy(6,11): Error: Duplicate name of top-level declaration: WazzupA
-Modules0.dfy(7,7): Error: Duplicate name of top-level declaration: WazzupA
-Modules0.dfy(10,7): Error: Duplicate name of top-level declaration: WazzupB
-Modules0.dfy(11,8): Error: Duplicate name of top-level declaration: WazzupB
-Modules0.dfy(12,11): Error: Duplicate name of top-level declaration: WazzupB
-Modules0.dfy(53,18): Error: Undeclared top-level type or type parameter: MyClass1 (did you forget to qualify a name?)
-Modules0.dfy(54,18): Error: Undeclared top-level type or type parameter: MyClass2 (did you forget to qualify a name?)
-Modules0.dfy(65,18): Error: Undeclared top-level type or type parameter: MyClass2 (did you forget to qualify a name?)
-Modules0.dfy(72,20): Error: Undeclared top-level type or type parameter: MyClass1 (did you forget to qualify a name?)
-Modules0.dfy(72,34): Error: Undeclared top-level type or type parameter: MyClass0 (did you forget to qualify a name?)
-Modules0.dfy(75,23): Error: Undeclared top-level type or type parameter: MyClass0 (did you forget to qualify a name?)
-Modules0.dfy(80,24): Error: Undeclared top-level type or type parameter: MyClassY (did you forget to qualify a name?)
-Modules0.dfy(89,16): Error: Undeclared top-level type or type parameter: ClassG (did you forget to qualify a name?)
-Modules0.dfy(221,15): Error: Undeclared top-level type or type parameter: X (did you forget to qualify a name?)
-Modules0.dfy(221,8): Error: new can be applied only to reference types (got X)
-Modules0.dfy(230,13): Error: Undeclared type X in module B
-Modules0.dfy(240,13): Error: unresolved identifier: X
-Modules0.dfy(241,15): Error: member DoesNotExist does not exist in class X
-Modules0.dfy(280,19): Error: Undeclared top-level type or type parameter: D (did you forget to qualify a name?)
-Modules0.dfy(280,12): Error: new can be applied only to reference types (got D)
-Modules0.dfy(283,25): Error: type of the receiver is not fully determined at this program point
-Modules0.dfy(284,16): Error: type of the receiver is not fully determined at this program point
-Modules0.dfy(284,6): Error: expected method call, found expression
-Modules0.dfy(285,16): Error: type of the receiver is not fully determined at this program point
-Modules0.dfy(285,6): Error: expected method call, found expression
-Modules0.dfy(307,24): Error: module Q_Imp does not exist
-Modules0.dfy(97,14): Error: Undeclared top-level type or type parameter: MyClassY (did you forget to qualify a name?)
+Modules0.dfy(8,8): Error: Duplicate name of top-level declaration: WazzupA
+Modules0.dfy(9,11): Error: Duplicate name of top-level declaration: WazzupA
+Modules0.dfy(10,7): Error: Duplicate name of top-level declaration: WazzupA
+Modules0.dfy(13,7): Error: Duplicate name of top-level declaration: WazzupB
+Modules0.dfy(14,8): Error: Duplicate name of top-level declaration: WazzupB
+Modules0.dfy(15,11): Error: Duplicate name of top-level declaration: WazzupB
+Modules0.dfy(56,18): Error: Undeclared top-level type or type parameter: MyClass1 (did you forget to qualify a name?)
+Modules0.dfy(57,18): Error: Undeclared top-level type or type parameter: MyClass2 (did you forget to qualify a name?)
+Modules0.dfy(68,18): Error: Undeclared top-level type or type parameter: MyClass2 (did you forget to qualify a name?)
+Modules0.dfy(75,20): Error: Undeclared top-level type or type parameter: MyClass1 (did you forget to qualify a name?)
+Modules0.dfy(75,34): Error: Undeclared top-level type or type parameter: MyClass0 (did you forget to qualify a name?)
+Modules0.dfy(78,23): Error: Undeclared top-level type or type parameter: MyClass0 (did you forget to qualify a name?)
+Modules0.dfy(83,24): Error: Undeclared top-level type or type parameter: MyClassY (did you forget to qualify a name?)
+Modules0.dfy(92,16): Error: Undeclared top-level type or type parameter: ClassG (did you forget to qualify a name?)
+Modules0.dfy(224,15): Error: Undeclared top-level type or type parameter: X (did you forget to qualify a name?)
+Modules0.dfy(224,8): Error: new can be applied only to reference types (got X)
+Modules0.dfy(233,13): Error: Undeclared type X in module B
+Modules0.dfy(243,13): Error: unresolved identifier: X
+Modules0.dfy(244,15): Error: member DoesNotExist does not exist in class X
+Modules0.dfy(283,19): Error: Undeclared top-level type or type parameter: D (did you forget to qualify a name?)
+Modules0.dfy(283,12): Error: new can be applied only to reference types (got D)
+Modules0.dfy(286,25): Error: type of the receiver is not fully determined at this program point
+Modules0.dfy(287,16): Error: type of the receiver is not fully determined at this program point
+Modules0.dfy(287,6): Error: expected method call, found expression
+Modules0.dfy(288,16): Error: type of the receiver is not fully determined at this program point
+Modules0.dfy(288,6): Error: expected method call, found expression
+Modules0.dfy(310,24): Error: module Q_Imp does not exist
+Modules0.dfy(100,14): Error: Undeclared top-level type or type parameter: MyClassY (did you forget to qualify a name?)
28 resolution/type errors detected in Modules0.dfy
-------------------- Modules1.dfy --------------------
-Modules1.dfy(76,16): Error: assertion violation
+Modules1.dfy(79,16): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-Modules1.dfy(89,16): Error: assertion violation
+Modules1.dfy(92,16): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-Modules1.dfy(91,18): Error: assertion violation
+Modules1.dfy(94,18): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-Modules1.dfy(53,3): Error: decreases expression must be bounded below by 0
+Modules1.dfy(56,3): Error: decreases expression must be bounded below by 0
Execution trace:
(0,0): anon0
-Modules1.dfy(59,3): Error: failure to decrease termination measure
+Modules1.dfy(62,3): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
Dafny program verifier finished with 26 verified, 5 errors
-------------------- Modules2.dfy --------------------
-Modules2.dfy(44,17): Error: The name C ambiguously refers to a type in one of the modules A, B (try qualifying the type name with the module name)
-Modules2.dfy(44,10): Error: new can be applied only to reference types (got C)
-Modules2.dfy(47,14): Error: the name 'E' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'D.E')
-Modules2.dfy(48,14): Error: The name D ambiguously refers to a type in one of the modules A, B
-Modules2.dfy(50,11): Error: The name f ambiguously refers to a static member in one of the modules A, B
+Modules2.dfy(46,17): Error: The name C ambiguously refers to a type in one of the modules A, B (try qualifying the type name with the module name)
+Modules2.dfy(46,10): Error: new can be applied only to reference types (got C)
+Modules2.dfy(49,14): Error: the name 'E' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'D.E')
+Modules2.dfy(50,14): Error: The name D ambiguously refers to a type in one of the modules A, B
+Modules2.dfy(52,11): Error: The name f ambiguously refers to a static member in one of the modules A, B
5 resolution/type errors detected in Modules2.dfy
-------------------- BadFunction.dfy --------------------
-BadFunction.dfy(6,3): Error: failure to decrease termination measure
+BadFunction.dfy(9,3): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
(0,0): anon3_Else
@@ -811,7 +811,7 @@ Execution trace: Dafny program verifier finished with 2 verified, 1 error
-------------------- Comprehensions.dfy --------------------
-Comprehensions.dfy(9,14): Error: assertion violation
+Comprehensions.dfy(12,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon9_Then
@@ -824,25 +824,25 @@ Execution trace: Dafny program verifier finished with 6 verified, 1 error
-------------------- Basics.dfy --------------------
-Basics.dfy(42,14): Error: assertion violation
+Basics.dfy(45,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-Basics.dfy(66,42): Error: assertion violation
+Basics.dfy(69,42): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon13_Then
(0,0): anon14_Then
(0,0): anon15_Then
- Basics.dfy(66,72): anon16_Else
- Basics.dfy(66,82): anon17_Else
- Basics.dfy(66,95): anon18_Else
+ Basics.dfy(69,72): anon16_Else
+ Basics.dfy(69,82): anon17_Else
+ Basics.dfy(69,95): anon18_Else
(0,0): anon12
-Basics.dfy(110,16): Error: assertion violation
+Basics.dfy(113,16): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon10_Then
-Basics.dfy(129,10): Error: when left-hand sides 0 and 1 may refer to the same location, they must be assigned the same value
+Basics.dfy(132,10): Error: when left-hand sides 0 and 1 may refer to the same location, they must be assigned the same value
Execution trace:
(0,0): anon0
(0,0): anon10_Then
@@ -851,28 +851,28 @@ Execution trace: (0,0): anon6
(0,0): anon12_Then
(0,0): anon9
-Basics.dfy(143,10): Error: when left-hand sides 0 and 1 refer to the same location, they must be assigned the same value
+Basics.dfy(146,10): Error: when left-hand sides 0 and 1 refer to the same location, they must be assigned the same value
Execution trace:
(0,0): anon0
-Basics.dfy(155,19): Error: assertion violation
+Basics.dfy(158,19): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon11_Then
-Basics.dfy(157,10): Error: assignment may update an object not in the enclosing context's modifies clause
+Basics.dfy(160,10): Error: assignment may update an object not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
(0,0): anon3
-Basics.dfy(157,10): Error: target object may be null
+Basics.dfy(160,10): Error: target object may be null
Execution trace:
(0,0): anon0
(0,0): anon3
-Basics.dfy(162,12): Error: left-hand sides 0 and 1 may refer to the same location
+Basics.dfy(165,12): Error: left-hand sides 0 and 1 may refer to the same location
Execution trace:
(0,0): anon0
(0,0): anon11_Then
(0,0): anon3
(0,0): anon12_Then
-Basics.dfy(173,15): Error: assertion violation
+Basics.dfy(176,15): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon11_Then
@@ -882,19 +882,19 @@ Execution trace: (0,0): anon13_Then
(0,0): anon8
(0,0): anon14_Then
-Basics.dfy(235,10): Error: when left-hand sides 0 and 1 refer to the same location, they must be assigned the same value
+Basics.dfy(238,10): Error: when left-hand sides 0 and 1 refer to the same location, they must be assigned the same value
Execution trace:
(0,0): anon0
-Basics.dfy(426,12): Error: assertion violation
+Basics.dfy(429,12): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon4_Then
(0,0): anon3
-Basics.dfy(437,19): Error: assertion violation
+Basics.dfy(440,19): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon4_Else
-Basics.dfy(439,12): Error: assertion violation
+Basics.dfy(442,12): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon4_Then
@@ -903,32 +903,32 @@ Execution trace: Dafny program verifier finished with 61 verified, 14 errors
-------------------- ControlStructures.dfy --------------------
-ControlStructures.dfy(5,3): Error: missing case in case statement: Purple
+ControlStructures.dfy(8,3): Error: missing case in case statement: Purple
Execution trace:
(0,0): anon0
(0,0): anon6_Else
(0,0): anon7_Else
(0,0): anon8_Then
-ControlStructures.dfy(5,3): Error: missing case in case statement: Blue
+ControlStructures.dfy(8,3): Error: missing case in case statement: Blue
Execution trace:
(0,0): anon0
(0,0): anon6_Else
(0,0): anon7_Else
(0,0): anon8_Else
(0,0): anon9_Then
-ControlStructures.dfy(14,3): Error: missing case in case statement: Purple
+ControlStructures.dfy(17,3): Error: missing case in case statement: Purple
Execution trace:
(0,0): anon0
(0,0): anon6_Else
(0,0): anon7_Else
(0,0): anon8_Then
-ControlStructures.dfy(43,5): Error: missing case in case statement: Red
+ControlStructures.dfy(46,5): Error: missing case in case statement: Red
Execution trace:
(0,0): anon0
(0,0): anon8_Then
(0,0): anon9_Else
(0,0): anon10_Then
-ControlStructures.dfy(51,3): Error: missing case in case statement: Red
+ControlStructures.dfy(54,3): Error: missing case in case statement: Red
Execution trace:
(0,0): anon0
(0,0): anon8_Else
@@ -936,89 +936,89 @@ Execution trace: (0,0): anon10_Else
(0,0): anon11_Else
(0,0): anon12_Then
-ControlStructures.dfy(72,3): Error: alternative cases fail to cover all possibilties
+ControlStructures.dfy(75,3): Error: alternative cases fail to cover all possibilties
Execution trace:
(0,0): anon0
(0,0): anon5_Else
-ControlStructures.dfy(215,18): Error: assertion violation
+ControlStructures.dfy(218,18): Error: assertion violation
Execution trace:
(0,0): anon0
- ControlStructures.dfy(194,3): anon59_LoopHead
+ ControlStructures.dfy(197,3): anon59_LoopHead
(0,0): anon59_LoopBody
- ControlStructures.dfy(194,3): anon60_Else
- ControlStructures.dfy(194,3): anon61_Else
- ControlStructures.dfy(198,5): anon62_LoopHead
+ ControlStructures.dfy(197,3): anon60_Else
+ ControlStructures.dfy(197,3): anon61_Else
+ ControlStructures.dfy(201,5): anon62_LoopHead
(0,0): anon62_LoopBody
- ControlStructures.dfy(198,5): anon63_Else
- ControlStructures.dfy(198,5): anon64_Else
+ ControlStructures.dfy(201,5): anon63_Else
+ ControlStructures.dfy(201,5): anon64_Else
(0,0): anon68_Then
- ControlStructures.dfy(210,9): anon69_LoopHead
+ ControlStructures.dfy(213,9): anon69_LoopHead
(0,0): anon69_LoopBody
- ControlStructures.dfy(210,9): anon70_Else
+ ControlStructures.dfy(213,9): anon70_Else
(0,0): anon71_Then
-ControlStructures.dfy(232,21): Error: assertion violation
+ControlStructures.dfy(235,21): Error: assertion violation
Execution trace:
(0,0): anon0
- ControlStructures.dfy(194,3): anon59_LoopHead
+ ControlStructures.dfy(197,3): anon59_LoopHead
(0,0): anon59_LoopBody
- ControlStructures.dfy(194,3): anon60_Else
- ControlStructures.dfy(194,3): anon61_Else
- ControlStructures.dfy(198,5): anon62_LoopHead
+ ControlStructures.dfy(197,3): anon60_Else
+ ControlStructures.dfy(197,3): anon61_Else
+ ControlStructures.dfy(201,5): anon62_LoopHead
(0,0): anon62_LoopBody
- ControlStructures.dfy(198,5): anon63_Else
- ControlStructures.dfy(198,5): anon64_Else
+ ControlStructures.dfy(201,5): anon63_Else
+ ControlStructures.dfy(201,5): anon64_Else
(0,0): anon68_Then
- ControlStructures.dfy(210,9): anon69_LoopHead
+ ControlStructures.dfy(213,9): anon69_LoopHead
(0,0): anon69_LoopBody
- ControlStructures.dfy(210,9): anon70_Else
- ControlStructures.dfy(210,9): anon71_Else
+ ControlStructures.dfy(213,9): anon70_Else
+ ControlStructures.dfy(213,9): anon71_Else
(0,0): anon72_Then
(0,0): after_4
- ControlStructures.dfy(221,7): anon74_LoopHead
+ ControlStructures.dfy(224,7): anon74_LoopHead
(0,0): anon74_LoopBody
- ControlStructures.dfy(221,7): anon75_Else
- ControlStructures.dfy(221,7): anon76_Else
+ ControlStructures.dfy(224,7): anon75_Else
+ ControlStructures.dfy(224,7): anon76_Else
(0,0): anon78_Then
(0,0): anon38
(0,0): anon83_Then
(0,0): anon52
-ControlStructures.dfy(235,30): Error: assertion violation
+ControlStructures.dfy(238,30): Error: assertion violation
Execution trace:
(0,0): anon0
- ControlStructures.dfy(194,3): anon59_LoopHead
+ ControlStructures.dfy(197,3): anon59_LoopHead
(0,0): anon59_LoopBody
- ControlStructures.dfy(194,3): anon60_Else
- ControlStructures.dfy(194,3): anon61_Else
- ControlStructures.dfy(198,5): anon62_LoopHead
+ ControlStructures.dfy(197,3): anon60_Else
+ ControlStructures.dfy(197,3): anon61_Else
+ ControlStructures.dfy(201,5): anon62_LoopHead
(0,0): anon62_LoopBody
- ControlStructures.dfy(198,5): anon63_Else
- ControlStructures.dfy(198,5): anon64_Else
+ ControlStructures.dfy(201,5): anon63_Else
+ ControlStructures.dfy(201,5): anon64_Else
(0,0): anon65_Then
(0,0): anon84_Then
(0,0): anon85_Then
(0,0): anon56
-ControlStructures.dfy(238,17): Error: assertion violation
+ControlStructures.dfy(241,17): Error: assertion violation
Execution trace:
(0,0): anon0
- ControlStructures.dfy(194,3): anon59_LoopHead
+ ControlStructures.dfy(197,3): anon59_LoopHead
(0,0): anon59_LoopBody
- ControlStructures.dfy(194,3): anon60_Else
- ControlStructures.dfy(194,3): anon61_Else
- ControlStructures.dfy(198,5): anon62_LoopHead
+ ControlStructures.dfy(197,3): anon60_Else
+ ControlStructures.dfy(197,3): anon61_Else
+ ControlStructures.dfy(201,5): anon62_LoopHead
(0,0): anon62_LoopBody
- ControlStructures.dfy(198,5): anon63_Else
- ControlStructures.dfy(198,5): anon64_Else
+ ControlStructures.dfy(201,5): anon63_Else
+ ControlStructures.dfy(201,5): anon64_Else
(0,0): anon68_Then
- ControlStructures.dfy(210,9): anon69_LoopHead
+ ControlStructures.dfy(213,9): anon69_LoopHead
(0,0): anon69_LoopBody
- ControlStructures.dfy(210,9): anon70_Else
- ControlStructures.dfy(210,9): anon71_Else
+ ControlStructures.dfy(213,9): anon70_Else
+ ControlStructures.dfy(213,9): anon71_Else
(0,0): anon72_Then
(0,0): after_4
- ControlStructures.dfy(221,7): anon74_LoopHead
+ ControlStructures.dfy(224,7): anon74_LoopHead
(0,0): anon74_LoopBody
- ControlStructures.dfy(221,7): anon75_Else
- ControlStructures.dfy(221,7): anon76_Else
+ ControlStructures.dfy(224,7): anon75_Else
+ ControlStructures.dfy(224,7): anon76_Else
(0,0): anon79_Then
(0,0): anon82_Then
(0,0): anon86_Then
@@ -1027,83 +1027,83 @@ Execution trace: Dafny program verifier finished with 22 verified, 10 errors
-------------------- Termination.dfy --------------------
-Termination.dfy(356,47): Error: failure to decrease termination measure
+Termination.dfy(359,47): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
(0,0): anon7_Else
(0,0): anon8_Then
(0,0): anon9_Else
-Termination.dfy(105,3): Error: cannot prove termination; try supplying a decreases clause for the loop
+Termination.dfy(108,3): Error: cannot prove termination; try supplying a decreases clause for the loop
Execution trace:
(0,0): anon0
- Termination.dfy(105,3): anon6_LoopHead
+ Termination.dfy(108,3): anon6_LoopHead
(0,0): anon6_LoopBody
- Termination.dfy(105,3): anon7_Else
- Termination.dfy(105,3): anon8_Else
-Termination.dfy(113,3): Error: cannot prove termination; try supplying a decreases clause for the loop
+ Termination.dfy(108,3): anon7_Else
+ Termination.dfy(108,3): anon8_Else
+Termination.dfy(116,3): Error: cannot prove termination; try supplying a decreases clause for the loop
Execution trace:
(0,0): anon0
- Termination.dfy(113,3): anon8_LoopHead
+ Termination.dfy(116,3): anon8_LoopHead
(0,0): anon8_LoopBody
- Termination.dfy(113,3): anon9_Else
+ Termination.dfy(116,3): anon9_Else
(0,0): anon10_Then
(0,0): anon5
- Termination.dfy(113,3): anon11_Else
-Termination.dfy(122,3): Error: decreases expression might not decrease
+ Termination.dfy(116,3): anon11_Else
+Termination.dfy(125,3): Error: decreases expression might not decrease
Execution trace:
(0,0): anon0
- Termination.dfy(122,3): anon8_LoopHead
+ Termination.dfy(125,3): anon8_LoopHead
(0,0): anon8_LoopBody
- Termination.dfy(122,3): anon9_Else
+ Termination.dfy(125,3): anon9_Else
(0,0): anon10_Then
(0,0): anon5
- Termination.dfy(122,3): anon11_Else
-Termination.dfy(123,17): Error: decreases expression must be bounded below by 0 at end of loop iteration
+ Termination.dfy(125,3): anon11_Else
+Termination.dfy(126,17): Error: decreases expression must be bounded below by 0 at end of loop iteration
Execution trace:
(0,0): anon0
- Termination.dfy(122,3): anon8_LoopHead
+ Termination.dfy(125,3): anon8_LoopHead
(0,0): anon8_LoopBody
- Termination.dfy(122,3): anon9_Else
+ Termination.dfy(125,3): anon9_Else
(0,0): anon10_Then
(0,0): anon5
- Termination.dfy(122,3): anon11_Else
-Termination.dfy(251,35): Error: cannot prove termination; try supplying a decreases clause
+ Termination.dfy(125,3): anon11_Else
+Termination.dfy(254,35): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon6_Else
(0,0): anon7_Else
(0,0): anon8_Then
-Termination.dfy(291,3): Error: decreases expression might not decrease
+Termination.dfy(294,3): Error: decreases expression might not decrease
Execution trace:
- Termination.dfy(291,3): anon9_LoopHead
+ Termination.dfy(294,3): anon9_LoopHead
(0,0): anon9_LoopBody
- Termination.dfy(291,3): anon10_Else
- Termination.dfy(291,3): anon11_Else
+ Termination.dfy(294,3): anon10_Else
+ Termination.dfy(294,3): anon11_Else
(0,0): anon12_Else
Dafny program verifier finished with 59 verified, 7 errors
-------------------- DTypes.dfy --------------------
-DTypes.dfy(15,14): Error: assertion violation
+DTypes.dfy(18,14): Error: assertion violation
Execution trace:
(0,0): anon0
-DTypes.dfy(53,18): Error: assertion violation
+DTypes.dfy(56,18): Error: assertion violation
Execution trace:
(0,0): anon0
-DTypes.dfy(117,13): Error: assertion violation
-DTypes.dfy(89,30): Related location
+DTypes.dfy(120,13): Error: assertion violation
+DTypes.dfy(92,30): Related location
Execution trace:
(0,0): anon0
-DTypes.dfy(123,13): Error: assertion violation
-DTypes.dfy(89,20): Related location
+DTypes.dfy(126,13): Error: assertion violation
+DTypes.dfy(92,20): Related location
Execution trace:
(0,0): anon0
-DTypes.dfy(133,12): Error: assertion violation
-DTypes.dfy(128,6): Related location
-DTypes.dfy(89,20): Related location
+DTypes.dfy(136,12): Error: assertion violation
+DTypes.dfy(131,6): Related location
+DTypes.dfy(92,20): Related location
Execution trace:
(0,0): anon0
-DTypes.dfy(154,12): Error: assertion violation
+DTypes.dfy(157,12): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon5_Then
@@ -1113,32 +1113,32 @@ Execution trace: Dafny program verifier finished with 27 verified, 6 errors
-------------------- ParallelResolveErrors.dfy --------------------
-ParallelResolveErrors.dfy(7,9): Error: Assignment to non-ghost field is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
-ParallelResolveErrors.dfy(18,4): Error: LHS of assignment must denote a mutable variable
-ParallelResolveErrors.dfy(23,6): Error: body of forall statement is attempting to update a variable declared outside the forall statement
-ParallelResolveErrors.dfy(41,6): Error: Assignment to non-ghost variable is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
-ParallelResolveErrors.dfy(53,13): Error: new allocation not supported in forall statements
-ParallelResolveErrors.dfy(58,13): Error: new allocation not allowed in ghost context
-ParallelResolveErrors.dfy(59,13): Error: new allocation not allowed in ghost context
-ParallelResolveErrors.dfy(60,13): Error: new allocation not allowed in ghost context
+ParallelResolveErrors.dfy(10,9): Error: Assignment to non-ghost field is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+ParallelResolveErrors.dfy(21,4): Error: LHS of assignment must denote a mutable variable
+ParallelResolveErrors.dfy(26,6): Error: body of forall statement is attempting to update a variable declared outside the forall statement
+ParallelResolveErrors.dfy(44,6): Error: Assignment to non-ghost variable is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+ParallelResolveErrors.dfy(56,13): Error: new allocation not supported in forall statements
ParallelResolveErrors.dfy(61,13): Error: new allocation not allowed in ghost context
-ParallelResolveErrors.dfy(62,6): Error: the body of the enclosing forall statement is not allowed to update heap locations, so any call must be to a method with an empty modifies clause
-ParallelResolveErrors.dfy(63,6): Error: the body of the enclosing forall statement is not allowed to call non-ghost methods
-ParallelResolveErrors.dfy(70,19): Error: trying to break out of more loop levels than there are enclosing loops
-ParallelResolveErrors.dfy(74,18): Error: return statement is not allowed inside a forall statement
-ParallelResolveErrors.dfy(81,21): Error: trying to break out of more loop levels than there are enclosing loops
-ParallelResolveErrors.dfy(82,20): Error: trying to break out of more loop levels than there are enclosing loops
-ParallelResolveErrors.dfy(83,20): Error: break label is undefined or not in scope: OutsideLoop
-ParallelResolveErrors.dfy(92,24): Error: trying to break out of more loop levels than there are enclosing loops
-ParallelResolveErrors.dfy(93,24): Error: break label is undefined or not in scope: OutsideLoop
-ParallelResolveErrors.dfy(104,9): Error: the body of the enclosing forall statement is not allowed to update heap locations
-ParallelResolveErrors.dfy(112,6): Error: the body of the enclosing forall statement is not allowed to update heap locations, so any call must be to a method with an empty modifies clause
-ParallelResolveErrors.dfy(117,6): Error: the body of the enclosing forall statement is not allowed to update heap locations, so any call must be to a method with an empty modifies clause
+ParallelResolveErrors.dfy(62,13): Error: new allocation not allowed in ghost context
+ParallelResolveErrors.dfy(63,13): Error: new allocation not allowed in ghost context
+ParallelResolveErrors.dfy(64,13): Error: new allocation not allowed in ghost context
+ParallelResolveErrors.dfy(65,6): Error: the body of the enclosing forall statement is not allowed to update heap locations, so any call must be to a method with an empty modifies clause
+ParallelResolveErrors.dfy(66,6): Error: the body of the enclosing forall statement is not allowed to call non-ghost methods
+ParallelResolveErrors.dfy(73,19): Error: trying to break out of more loop levels than there are enclosing loops
+ParallelResolveErrors.dfy(77,18): Error: return statement is not allowed inside a forall statement
+ParallelResolveErrors.dfy(84,21): Error: trying to break out of more loop levels than there are enclosing loops
+ParallelResolveErrors.dfy(85,20): Error: trying to break out of more loop levels than there are enclosing loops
+ParallelResolveErrors.dfy(86,20): Error: break label is undefined or not in scope: OutsideLoop
+ParallelResolveErrors.dfy(95,24): Error: trying to break out of more loop levels than there are enclosing loops
+ParallelResolveErrors.dfy(96,24): Error: break label is undefined or not in scope: OutsideLoop
+ParallelResolveErrors.dfy(107,9): Error: the body of the enclosing forall statement is not allowed to update heap locations
+ParallelResolveErrors.dfy(115,6): Error: the body of the enclosing forall statement is not allowed to update heap locations, so any call must be to a method with an empty modifies clause
+ParallelResolveErrors.dfy(120,6): Error: the body of the enclosing forall statement is not allowed to update heap locations, so any call must be to a method with an empty modifies clause
21 resolution/type errors detected in ParallelResolveErrors.dfy
-------------------- Parallel.dfy --------------------
-Parallel.dfy(31,5): Error BP5002: A precondition for this call might not hold.
-Parallel.dfy(57,14): Related location: This is the precondition that might not hold.
+Parallel.dfy(34,5): Error BP5002: A precondition for this call might not hold.
+Parallel.dfy(60,14): Related location: This is the precondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon29_Else
@@ -1147,7 +1147,7 @@ Execution trace: (0,0): anon34_Then
(0,0): anon35_Then
(0,0): anon14
-Parallel.dfy(35,5): Error: target object may be null
+Parallel.dfy(38,5): Error: target object may be null
Execution trace:
(0,0): anon0
(0,0): anon29_Else
@@ -1157,7 +1157,7 @@ Execution trace: (0,0): anon37_Then
(0,0): anon38_Then
(0,0): anon20
-Parallel.dfy(39,18): Error: possible violation of postcondition of forall statement
+Parallel.dfy(42,18): Error: possible violation of postcondition of forall statement
Execution trace:
(0,0): anon0
(0,0): anon29_Else
@@ -1167,7 +1167,7 @@ Execution trace: (0,0): anon39_Then
(0,0): anon40_Then
(0,0): anon26
-Parallel.dfy(44,19): Error: assertion violation
+Parallel.dfy(47,19): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon29_Else
@@ -1176,30 +1176,30 @@ Execution trace: (0,0): anon36_Else
(0,0): anon39_Then
(0,0): anon40_Then
-Parallel.dfy(90,19): Error: assertion violation
+Parallel.dfy(93,19): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon10_Else
(0,0): anon11_Then
-Parallel.dfy(96,20): Error: possible violation of postcondition of forall statement
+Parallel.dfy(99,20): Error: possible violation of postcondition of forall statement
Execution trace:
(0,0): anon0
(0,0): anon10_Else
(0,0): anon11_Then
(0,0): anon12_Then
-Parallel.dfy(119,12): Error: value assigned to a nat must be non-negative
+Parallel.dfy(122,12): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
(0,0): anon6_Then
(0,0): anon7_Then
(0,0): anon3
-Parallel.dfy(182,12): Error: left-hand sides for different forall-statement bound variables may refer to the same location
+Parallel.dfy(185,12): Error: left-hand sides for different forall-statement bound variables may refer to the same location
Execution trace:
(0,0): anon0
(0,0): anon19_Then
(0,0): anon20_Then
(0,0): anon5
-Parallel.dfy(293,10): Error: assertion violation
+Parallel.dfy(296,10): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon4_Else
@@ -1207,100 +1207,100 @@ Execution trace: Dafny program verifier finished with 43 verified, 9 errors
-------------------- TypeParameters.dfy --------------------
-TypeParameters.dfy(44,22): Error: assertion violation
+TypeParameters.dfy(47,22): Error: assertion violation
Execution trace:
(0,0): anon0
-TypeParameters.dfy(66,27): Error: assertion violation
+TypeParameters.dfy(69,27): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Then
(0,0): anon2
-TypeParameters.dfy(153,12): Error: assertion violation
-TypeParameters.dfy(153,28): Related location
+TypeParameters.dfy(156,12): Error: assertion violation
+TypeParameters.dfy(156,28): Related location
Execution trace:
(0,0): anon0
(0,0): anon20_Then
- TypeParameters.dfy(153,32): anon21_Else
+ TypeParameters.dfy(156,32): anon21_Else
(0,0): anon5
-TypeParameters.dfy(155,12): Error: assertion violation
-TypeParameters.dfy(155,33): Related location
+TypeParameters.dfy(158,12): Error: assertion violation
+TypeParameters.dfy(158,33): Related location
Execution trace:
(0,0): anon0
(0,0): anon23_Then
- TypeParameters.dfy(155,37): anon24_Else
+ TypeParameters.dfy(158,37): anon24_Else
(0,0): anon11
-TypeParameters.dfy(157,12): Error: assertion violation
-TypeParameters.dfy(157,20): Related location
+TypeParameters.dfy(160,12): Error: assertion violation
+TypeParameters.dfy(160,20): Related location
Execution trace:
(0,0): anon0
(0,0): anon25_Then
-TypeParameters.dfy(159,12): Error: assertion violation
-TypeParameters.dfy(144,5): Related location
-TypeParameters.dfy(159,21): Related location
+TypeParameters.dfy(162,12): Error: assertion violation
+TypeParameters.dfy(147,5): Related location
+TypeParameters.dfy(162,21): Related location
Execution trace:
(0,0): anon0
(0,0): anon26_Then
-TypeParameters.dfy(161,12): Error: assertion violation
-TypeParameters.dfy(146,8): Related location
+TypeParameters.dfy(164,12): Error: assertion violation
+TypeParameters.dfy(149,8): Related location
Execution trace:
(0,0): anon0
(0,0): anon27_Then
-TypeParameters.dfy(175,15): Error BP5005: This loop invariant might not be maintained by the loop.
-TypeParameters.dfy(175,38): Related location
+TypeParameters.dfy(178,15): Error BP5005: This loop invariant might not be maintained by the loop.
+TypeParameters.dfy(178,38): Related location
Execution trace:
(0,0): anon0
- TypeParameters.dfy(168,3): anon16_LoopHead
+ TypeParameters.dfy(171,3): anon16_LoopHead
(0,0): anon16_LoopBody
- TypeParameters.dfy(168,3): anon17_Else
+ TypeParameters.dfy(171,3): anon17_Else
(0,0): anon19_Then
- TypeParameters.dfy(174,3): anon20_LoopHead
+ TypeParameters.dfy(177,3): anon20_LoopHead
(0,0): anon20_LoopBody
- TypeParameters.dfy(174,3): anon21_Else
- TypeParameters.dfy(174,3): anon23_Else
+ TypeParameters.dfy(177,3): anon21_Else
+ TypeParameters.dfy(177,3): anon23_Else
Dafny program verifier finished with 58 verified, 8 errors
-------------------- Datatypes.dfy --------------------
-Datatypes.dfy(294,10): Error BP5003: A postcondition might not hold on this return path.
-Datatypes.dfy(292,15): Related location: This is the postcondition that might not hold.
+Datatypes.dfy(297,10): Error BP5003: A postcondition might not hold on this return path.
+Datatypes.dfy(295,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon13_Then
(0,0): anon14_Else
(0,0): anon15_Then
(0,0): anon6
-Datatypes.dfy(295,12): Error: missing case in case statement: Appendix
+Datatypes.dfy(298,12): Error: missing case in case statement: Appendix
Execution trace:
(0,0): anon0
(0,0): anon13_Then
(0,0): anon14_Else
(0,0): anon15_Else
(0,0): anon16_Then
-Datatypes.dfy(346,5): Error: missing case in case statement: Cons
+Datatypes.dfy(349,5): Error: missing case in case statement: Cons
Execution trace:
(0,0): anon0
(0,0): anon6_Else
(0,0): anon7_Then
-Datatypes.dfy(346,5): Error: missing case in case statement: Nil
+Datatypes.dfy(349,5): Error: missing case in case statement: Nil
Execution trace:
(0,0): anon0
(0,0): anon6_Else
(0,0): anon7_Else
(0,0): anon8_Then
-Datatypes.dfy(353,8): Error: missing case in case statement: Cons
+Datatypes.dfy(356,8): Error: missing case in case statement: Cons
Execution trace:
(0,0): anon0
(0,0): anon9_Else
(0,0): anon10_Then
(0,0): anon11_Then
-Datatypes.dfy(353,8): Error: missing case in case statement: Nil
+Datatypes.dfy(356,8): Error: missing case in case statement: Nil
Execution trace:
(0,0): anon0
(0,0): anon9_Else
(0,0): anon10_Then
(0,0): anon11_Else
(0,0): anon12_Then
-Datatypes.dfy(79,20): Error: assertion violation
+Datatypes.dfy(82,20): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon20_Else
@@ -1310,23 +1310,23 @@ Execution trace: (0,0): anon23_Then
(0,0): anon24_Else
(0,0): anon25_Then
-Datatypes.dfy(167,14): Error: assertion violation
+Datatypes.dfy(170,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon4_Then
-Datatypes.dfy(169,14): Error: assertion violation
+Datatypes.dfy(172,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon4_Else
(0,0): anon5_Then
-Datatypes.dfy(198,13): Error: destructor 'Car' can only be applied to datatype values constructed by 'XCons'
+Datatypes.dfy(201,13): Error: destructor 'Car' can only be applied to datatype values constructed by 'XCons'
Execution trace:
(0,0): anon0
-Datatypes.dfy(201,17): Error: destructor 'Car' can only be applied to datatype values constructed by 'XCons'
+Datatypes.dfy(204,17): Error: destructor 'Car' can only be applied to datatype values constructed by 'XCons'
Execution trace:
(0,0): anon0
(0,0): anon6_Then
-Datatypes.dfy(222,17): Error: destructor 'c' can only be applied to datatype values constructed by 'T''
+Datatypes.dfy(225,17): Error: destructor 'c' can only be applied to datatype values constructed by 'T''
Execution trace:
(0,0): anon0
(0,0): anon5_Then
@@ -1334,25 +1334,25 @@ Execution trace: Dafny program verifier finished with 44 verified, 12 errors
-------------------- StatementExpressions.dfy --------------------
-StatementExpressions.dfy(52,11): Error: cannot prove termination; try supplying a decreases clause
+StatementExpressions.dfy(55,11): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon6_Then
(0,0): anon8_Then
-StatementExpressions.dfy(56,14): Error: assertion violation
+StatementExpressions.dfy(59,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon6_Then
- StatementExpressions.dfy(50,7): anon8_Else
-StatementExpressions.dfy(74,6): Error: possible division by zero
+ StatementExpressions.dfy(53,7): anon8_Else
+StatementExpressions.dfy(77,6): Error: possible division by zero
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-StatementExpressions.dfy(85,5): Error: value assigned to a nat must be non-negative
+StatementExpressions.dfy(88,5): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-StatementExpressions.dfy(95,11): Error: cannot prove termination; try supplying a decreases clause
+StatementExpressions.dfy(98,11): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon6_Then
@@ -1360,56 +1360,56 @@ Execution trace: Dafny program verifier finished with 17 verified, 5 errors
-------------------- Coinductive.dfy --------------------
-Coinductive.dfy(10,11): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'Rec_Forever' can be constructed
-Coinductive.dfy(13,11): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'D' can be constructed
-Coinductive.dfy(35,11): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'K' can be constructed
-Coinductive.dfy(61,11): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'NotFiniteEnough_Dt' can be constructed
-Coinductive.dfy(90,8): Error: a copredicate can be called recursively only in positive positions
-Coinductive.dfy(91,8): Error: a copredicate can be called recursively only in positive positions
-Coinductive.dfy(92,8): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
-Coinductive.dfy(92,21): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
-Coinductive.dfy(98,5): Error: a copredicate can be called recursively only in positive positions
-Coinductive.dfy(101,27): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
-Coinductive.dfy(102,28): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
-Coinductive.dfy(103,17): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
-Coinductive.dfy(113,24): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
-Coinductive.dfy(119,15): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
-Coinductive.dfy(120,10): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
-Coinductive.dfy(145,5): Error: a recursive call from a copredicate can go only to other copredicates
+Coinductive.dfy(13,11): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'Rec_Forever' can be constructed
+Coinductive.dfy(16,11): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'D' can be constructed
+Coinductive.dfy(38,11): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'K' can be constructed
+Coinductive.dfy(64,11): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'NotFiniteEnough_Dt' can be constructed
+Coinductive.dfy(93,8): Error: a copredicate can be called recursively only in positive positions
+Coinductive.dfy(94,8): Error: a copredicate can be called recursively only in positive positions
+Coinductive.dfy(95,8): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(95,21): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(101,5): Error: a copredicate can be called recursively only in positive positions
+Coinductive.dfy(104,27): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(105,28): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(106,17): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(116,24): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(122,15): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(123,10): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(148,5): Error: a recursive call from a copredicate can go only to other copredicates
16 resolution/type errors detected in Coinductive.dfy
-------------------- Corecursion.dfy --------------------
-Corecursion.dfy(15,13): Error: cannot prove termination; try supplying a decreases clause (note that only functions without side effects can be called co-recursively)
+Corecursion.dfy(17,13): Error: cannot prove termination; try supplying a decreases clause (note that only functions without side effects can be called co-recursively)
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-Corecursion.dfy(21,13): Error: cannot prove termination; try supplying a decreases clause (note that only functions without any ensures clause can be called co-recursively)
+Corecursion.dfy(23,13): Error: cannot prove termination; try supplying a decreases clause (note that only functions without any ensures clause can be called co-recursively)
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-Corecursion.dfy(56,5): Error: cannot prove termination; try supplying a decreases clause
+Corecursion.dfy(58,5): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-Corecursion.dfy(69,16): Error: cannot prove termination; try supplying a decreases clause (note that calls cannot be co-recursive in this context)
+Corecursion.dfy(71,16): Error: cannot prove termination; try supplying a decreases clause (note that calls cannot be co-recursive in this context)
Execution trace:
(0,0): anon0
(0,0): anon5_Else
-Corecursion.dfy(91,15): Error: cannot prove termination; try supplying a decreases clause (note that a call can be co-recursive only if all intra-cluster calls are in non-destructive contexts)
+Corecursion.dfy(93,15): Error: cannot prove termination; try supplying a decreases clause (note that a call can be co-recursive only if all intra-cluster calls are in non-destructive contexts)
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Then
-Corecursion.dfy(101,15): Error: cannot prove termination; try supplying a decreases clause (note that a call can be co-recursive only if all intra-cluster calls are in non-destructive contexts)
+Corecursion.dfy(103,15): Error: cannot prove termination; try supplying a decreases clause (note that a call can be co-recursive only if all intra-cluster calls are in non-destructive contexts)
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Then
-Corecursion.dfy(146,13): Error: failure to decrease termination measure (note that a call can be co-recursive only if all intra-cluster calls are in non-destructive contexts)
+Corecursion.dfy(148,13): Error: failure to decrease termination measure (note that a call can be co-recursive only if all intra-cluster calls are in non-destructive contexts)
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-Corecursion.dfy(159,13): Error: failure to decrease termination measure (note that a call can be co-recursive only if all intra-cluster calls are in non-destructive contexts)
+Corecursion.dfy(161,13): Error: failure to decrease termination measure (note that a call can be co-recursive only if all intra-cluster calls are in non-destructive contexts)
Execution trace:
(0,0): anon0
(0,0): anon3_Else
@@ -1417,75 +1417,75 @@ Execution trace: Dafny program verifier finished with 20 verified, 8 errors
-------------------- CoResolution.dfy --------------------
-CoResolution.dfy(14,9): Error: member Undeclared# does not exist in class _default
-CoResolution.dfy(15,4): Error: unresolved identifier: Undeclared#
-CoResolution.dfy(18,7): Error: unresolved identifier: _k
-CoResolution.dfy(36,8): Error: == can only be applied to expressions of types that support equality (got Stream<_T0>)
-CoResolution.dfy(47,8): Error: Assignment to non-ghost variable is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
-CoResolution.dfy(64,10): Error: a copredicate is not allowed to declare any reads clause
-CoResolution.dfy(70,31): Error: a copredicate is not allowed to declare any ensures clause
-CoResolution.dfy(79,20): Error: a recursive call from a copredicate can go only to other copredicates
-CoResolution.dfy(83,20): Error: a recursive call from a copredicate can go only to other copredicates
-CoResolution.dfy(92,4): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
-CoResolution.dfy(106,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
-CoResolution.dfy(107,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
-CoResolution.dfy(112,17): Error: a recursive call from a copredicate can go only to other copredicates
-CoResolution.dfy(118,17): Error: a recursive call from a copredicate can go only to other copredicates
-CoResolution.dfy(126,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
-CoResolution.dfy(127,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
-CoResolution.dfy(132,17): Error: a recursive call from a copredicate can go only to other copredicates
-CoResolution.dfy(138,17): Error: a recursive call from a copredicate can go only to other copredicates
-CoResolution.dfy(146,4): Error: a recursive call from a copredicate can go only to other copredicates
-CoResolution.dfy(148,4): Error: a recursive call from a copredicate can go only to other copredicates
-CoResolution.dfy(164,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
+CoResolution.dfy(17,9): Error: member Undeclared# does not exist in class _default
+CoResolution.dfy(18,4): Error: unresolved identifier: Undeclared#
+CoResolution.dfy(21,7): Error: unresolved identifier: _k
+CoResolution.dfy(39,8): Error: == can only be applied to expressions of types that support equality (got Stream<_T0>)
+CoResolution.dfy(50,8): Error: Assignment to non-ghost variable is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+CoResolution.dfy(67,10): Error: a copredicate is not allowed to declare any reads clause
+CoResolution.dfy(73,31): Error: a copredicate is not allowed to declare any ensures clause
+CoResolution.dfy(82,20): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(86,20): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(95,4): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
+CoResolution.dfy(109,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
+CoResolution.dfy(110,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
+CoResolution.dfy(115,17): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(121,17): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(129,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
+CoResolution.dfy(130,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
+CoResolution.dfy(135,17): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(141,17): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(149,4): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(151,4): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(167,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
21 resolution/type errors detected in CoResolution.dfy
-------------------- CoPrefix.dfy --------------------
-CoPrefix.dfy(161,3): Error BP5003: A postcondition might not hold on this return path.
-CoPrefix.dfy(160,15): Related location: This is the postcondition that might not hold.
+CoPrefix.dfy(164,3): Error BP5003: A postcondition might not hold on this return path.
+CoPrefix.dfy(163,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-CoPrefix.dfy(166,3): Error BP5003: A postcondition might not hold on this return path.
-CoPrefix.dfy(165,15): Related location: This is the postcondition that might not hold.
+CoPrefix.dfy(169,3): Error BP5003: A postcondition might not hold on this return path.
+CoPrefix.dfy(168,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-CoPrefix.dfy(173,5): Error: cannot prove termination; try supplying a decreases clause
+CoPrefix.dfy(176,5): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-CoPrefix.dfy(60,7): Error: failure to decrease termination measure
+CoPrefix.dfy(63,7): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
(0,0): anon7_Then
(0,0): anon8_Else
(0,0): anon9_Then
-CoPrefix.dfy(73,7): Error: cannot prove termination; try supplying a decreases clause
+CoPrefix.dfy(76,7): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon7_Then
(0,0): anon8_Else
(0,0): anon9_Then
-CoPrefix.dfy(111,1): Error BP5003: A postcondition might not hold on this return path.
-CoPrefix.dfy(110,11): Related location: This is the postcondition that might not hold.
-CoPrefix.dfy(98,17): Related location
+CoPrefix.dfy(114,1): Error BP5003: A postcondition might not hold on this return path.
+CoPrefix.dfy(113,11): Related location: This is the postcondition that might not hold.
+CoPrefix.dfy(101,17): Related location
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-CoPrefix.dfy(135,25): Error: assertion violation
+CoPrefix.dfy(138,25): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon9_Then
(0,0): anon10_Then
-CoPrefix.dfy(139,25): Error: assertion violation
-CoPrefix.dfy(114,23): Related location
+CoPrefix.dfy(142,25): Error: assertion violation
+CoPrefix.dfy(117,23): Related location
Execution trace:
(0,0): anon0
(0,0): anon9_Then
(0,0): anon12_Then
-CoPrefix.dfy(148,1): Error BP5003: A postcondition might not hold on this return path.
-CoPrefix.dfy(147,11): Related location: This is the postcondition that might not hold.
+CoPrefix.dfy(151,1): Error BP5003: A postcondition might not hold on this return path.
+CoPrefix.dfy(150,11): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon3_Else
@@ -1493,51 +1493,51 @@ Execution trace: Dafny program verifier finished with 41 verified, 9 errors
-------------------- CoinductiveProofs.dfy --------------------
-CoinductiveProofs.dfy(26,12): Error: assertion violation
-CoinductiveProofs.dfy(10,17): Related location
+CoinductiveProofs.dfy(29,12): Error: assertion violation
+CoinductiveProofs.dfy(13,17): Related location
Execution trace:
(0,0): anon0
(0,0): anon5_Then
(0,0): anon6_Then
-CoinductiveProofs.dfy(56,1): Error BP5003: A postcondition might not hold on this return path.
-CoinductiveProofs.dfy(55,11): Related location: This is the postcondition that might not hold.
-CoinductiveProofs.dfy(51,3): Related location
+CoinductiveProofs.dfy(59,1): Error BP5003: A postcondition might not hold on this return path.
+CoinductiveProofs.dfy(58,11): Related location: This is the postcondition that might not hold.
+CoinductiveProofs.dfy(54,3): Related location
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-CoinductiveProofs.dfy(71,12): Error: assertion violation
-CoinductiveProofs.dfy(51,3): Related location
+CoinductiveProofs.dfy(74,12): Error: assertion violation
+CoinductiveProofs.dfy(54,3): Related location
Execution trace:
(0,0): anon0
(0,0): anon5_Then
(0,0): anon6_Then
-CoinductiveProofs.dfy(88,1): Error BP5003: A postcondition might not hold on this return path.
-CoinductiveProofs.dfy(87,11): Related location: This is the postcondition that might not hold.
-CoinductiveProofs.dfy(77,3): Related location
+CoinductiveProofs.dfy(91,1): Error BP5003: A postcondition might not hold on this return path.
+CoinductiveProofs.dfy(90,11): Related location: This is the postcondition that might not hold.
+CoinductiveProofs.dfy(80,3): Related location
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-CoinductiveProofs.dfy(97,12): Error: assertion violation
-CoinductiveProofs.dfy(77,3): Related location
+CoinductiveProofs.dfy(100,12): Error: assertion violation
+CoinductiveProofs.dfy(80,3): Related location
Execution trace:
(0,0): anon0
(0,0): anon5_Then
(0,0): anon6_Then
-CoinductiveProofs.dfy(108,1): Error BP5003: A postcondition might not hold on this return path.
-CoinductiveProofs.dfy(107,11): Related location: This is the postcondition that might not hold.
-CoinductiveProofs.dfy(103,3): Related location
+CoinductiveProofs.dfy(111,1): Error BP5003: A postcondition might not hold on this return path.
+CoinductiveProofs.dfy(110,11): Related location: This is the postcondition that might not hold.
+CoinductiveProofs.dfy(106,3): Related location
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-CoinductiveProofs.dfy(147,1): Error BP5003: A postcondition might not hold on this return path.
-CoinductiveProofs.dfy(146,22): Related location: This is the postcondition that might not hold.
-CoinductiveProofs.dfy(1,24): Related location
+CoinductiveProofs.dfy(150,1): Error BP5003: A postcondition might not hold on this return path.
+CoinductiveProofs.dfy(149,22): Related location: This is the postcondition that might not hold.
+CoinductiveProofs.dfy(4,24): Related location
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-CoinductiveProofs.dfy(153,1): Error BP5003: A postcondition might not hold on this return path.
-CoinductiveProofs.dfy(152,22): Related location: This is the postcondition that might not hold.
-CoinductiveProofs.dfy(1,24): Related location
+CoinductiveProofs.dfy(156,1): Error BP5003: A postcondition might not hold on this return path.
+CoinductiveProofs.dfy(155,22): Related location: This is the postcondition that might not hold.
+CoinductiveProofs.dfy(4,24): Related location
Execution trace:
(0,0): anon0
(0,0): anon3_Then
@@ -1545,11 +1545,11 @@ Execution trace: Dafny program verifier finished with 35 verified, 8 errors
-------------------- TypeAntecedents.dfy --------------------
-TypeAntecedents.dfy(32,13): Error: assertion violation
+TypeAntecedents.dfy(35,13): Error: assertion violation
Execution trace:
(0,0): anon0
-TypeAntecedents.dfy(55,1): Error BP5003: A postcondition might not hold on this return path.
-TypeAntecedents.dfy(54,15): Related location: This is the postcondition that might not hold.
+TypeAntecedents.dfy(58,1): Error BP5003: A postcondition might not hold on this return path.
+TypeAntecedents.dfy(57,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon25_Then
@@ -1563,7 +1563,7 @@ Execution trace: (0,0): anon34_Then
(0,0): anon35_Then
(0,0): anon24
-TypeAntecedents.dfy(63,16): Error: assertion violation
+TypeAntecedents.dfy(66,16): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon25_Else
@@ -1577,155 +1577,155 @@ Dafny program verifier finished with 12 verified, 3 errors Dafny program verifier finished with 15 verified, 0 errors
-------------------- EqualityTypes.dfy --------------------
-EqualityTypes.dfy(31,13): Error: a type declaration that requires equality support cannot be replaced by a codatatype
-EqualityTypes.dfy(32,11): Error: datatype 'Y' is used to refine an arbitrary type with equality support, but 'Y' does not support equality
-EqualityTypes.dfy(37,11): Error: arbitrary type 'X' is not allowed to be replaced by a datatype that takes a different number of type parameters
-EqualityTypes.dfy(38,8): Error: arbitrary type 'Y' is not allowed to be replaced by a class that takes a different number of type parameters
-EqualityTypes.dfy(42,11): Error: datatype 'X' is used to refine an arbitrary type with equality support, but 'X' does not support equality
-EqualityTypes.dfy(43,11): Error: datatype 'Y' is used to refine an arbitrary type with equality support, but 'Y' does not support equality
-EqualityTypes.dfy(63,7): Error: == can only be applied to expressions of types that support equality (got Dt<T>)
-EqualityTypes.dfy(82,8): Error: type parameter 0 (T) passed to method M must support equality (got _T0)
-EqualityTypes.dfy(106,7): Error: == can only be applied to expressions of types that support equality (got D)
-EqualityTypes.dfy(111,13): Error: == can only be applied to expressions of types that support equality (got D)
-EqualityTypes.dfy(115,16): Error: == can only be applied to expressions of types that support equality (got D)
+EqualityTypes.dfy(34,13): Error: a type declaration that requires equality support cannot be replaced by a codatatype
+EqualityTypes.dfy(35,11): Error: datatype 'Y' is used to refine an arbitrary type with equality support, but 'Y' does not support equality
+EqualityTypes.dfy(40,11): Error: arbitrary type 'X' is not allowed to be replaced by a datatype that takes a different number of type parameters
+EqualityTypes.dfy(41,8): Error: arbitrary type 'Y' is not allowed to be replaced by a class that takes a different number of type parameters
+EqualityTypes.dfy(45,11): Error: datatype 'X' is used to refine an arbitrary type with equality support, but 'X' does not support equality
+EqualityTypes.dfy(46,11): Error: datatype 'Y' is used to refine an arbitrary type with equality support, but 'Y' does not support equality
+EqualityTypes.dfy(66,7): Error: == can only be applied to expressions of types that support equality (got Dt<T>)
+EqualityTypes.dfy(85,8): Error: type parameter 0 (T) passed to method M must support equality (got _T0)
+EqualityTypes.dfy(109,7): Error: == can only be applied to expressions of types that support equality (got D)
+EqualityTypes.dfy(114,13): Error: == can only be applied to expressions of types that support equality (got D)
+EqualityTypes.dfy(118,16): Error: == can only be applied to expressions of types that support equality (got D)
11 resolution/type errors detected in EqualityTypes.dfy
-------------------- SplitExpr.dfy --------------------
-SplitExpr.dfy(89,15): Error: loop invariant violation
-SplitExpr.dfy(83,44): Related location
+SplitExpr.dfy(92,15): Error: loop invariant violation
+SplitExpr.dfy(86,44): Related location
Execution trace:
- SplitExpr.dfy(88,3): anon7_LoopHead
+ SplitExpr.dfy(91,3): anon7_LoopHead
Dafny program verifier finished with 10 verified, 1 error
-------------------- LoopModifies.dfy --------------------
-LoopModifies.dfy(6,5): Error: assignment may update an array element not in the enclosing context's modifies clause
+LoopModifies.dfy(8,5): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
-LoopModifies.dfy(17,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+LoopModifies.dfy(19,8): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
- LoopModifies.dfy(14,4): anon8_LoopHead
+ LoopModifies.dfy(16,4): anon8_LoopHead
(0,0): anon8_LoopBody
- LoopModifies.dfy(14,4): anon9_Else
- LoopModifies.dfy(14,4): anon11_Else
-LoopModifies.dfy(46,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+ LoopModifies.dfy(16,4): anon9_Else
+ LoopModifies.dfy(16,4): anon11_Else
+LoopModifies.dfy(48,8): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
- LoopModifies.dfy(42,4): anon8_LoopHead
+ LoopModifies.dfy(44,4): anon8_LoopHead
(0,0): anon8_LoopBody
- LoopModifies.dfy(42,4): anon9_Else
- LoopModifies.dfy(42,4): anon11_Else
-LoopModifies.dfy(61,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+ LoopModifies.dfy(44,4): anon9_Else
+ LoopModifies.dfy(44,4): anon11_Else
+LoopModifies.dfy(63,8): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
- LoopModifies.dfy(57,4): anon9_LoopHead
+ LoopModifies.dfy(59,4): anon9_LoopHead
(0,0): anon9_LoopBody
- LoopModifies.dfy(57,4): anon10_Else
- LoopModifies.dfy(57,4): anon12_Else
-LoopModifies.dfy(74,4): Error: loop modifies clause may violate context's modifies clause
+ LoopModifies.dfy(59,4): anon10_Else
+ LoopModifies.dfy(59,4): anon12_Else
+LoopModifies.dfy(76,4): Error: loop modifies clause may violate context's modifies clause
Execution trace:
(0,0): anon0
-LoopModifies.dfy(98,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+LoopModifies.dfy(100,8): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
- LoopModifies.dfy(90,4): anon8_LoopHead
+ LoopModifies.dfy(92,4): anon8_LoopHead
(0,0): anon8_LoopBody
- LoopModifies.dfy(90,4): anon9_Else
- LoopModifies.dfy(90,4): anon11_Else
-LoopModifies.dfy(146,11): Error: assignment may update an array element not in the enclosing context's modifies clause
+ LoopModifies.dfy(92,4): anon9_Else
+ LoopModifies.dfy(92,4): anon11_Else
+LoopModifies.dfy(148,11): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
- LoopModifies.dfy(134,4): anon17_LoopHead
+ LoopModifies.dfy(136,4): anon17_LoopHead
(0,0): anon17_LoopBody
- LoopModifies.dfy(134,4): anon18_Else
- LoopModifies.dfy(134,4): anon20_Else
- LoopModifies.dfy(139,7): anon21_LoopHead
+ LoopModifies.dfy(136,4): anon18_Else
+ LoopModifies.dfy(136,4): anon20_Else
+ LoopModifies.dfy(141,7): anon21_LoopHead
(0,0): anon21_LoopBody
- LoopModifies.dfy(139,7): anon22_Else
- LoopModifies.dfy(139,7): anon24_Else
-LoopModifies.dfy(197,10): Error: assignment may update an array element not in the enclosing context's modifies clause
+ LoopModifies.dfy(141,7): anon22_Else
+ LoopModifies.dfy(141,7): anon24_Else
+LoopModifies.dfy(199,10): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
- LoopModifies.dfy(193,4): anon8_LoopHead
+ LoopModifies.dfy(195,4): anon8_LoopHead
(0,0): anon8_LoopBody
- LoopModifies.dfy(193,4): anon9_Else
- LoopModifies.dfy(193,4): anon11_Else
-LoopModifies.dfy(285,13): Error: assignment may update an array element not in the enclosing context's modifies clause
+ LoopModifies.dfy(195,4): anon9_Else
+ LoopModifies.dfy(195,4): anon11_Else
+LoopModifies.dfy(287,13): Error: assignment may update an array element not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
- LoopModifies.dfy(273,4): anon16_LoopHead
+ LoopModifies.dfy(275,4): anon16_LoopHead
(0,0): anon16_LoopBody
- LoopModifies.dfy(273,4): anon17_Else
- LoopModifies.dfy(273,4): anon19_Else
- LoopModifies.dfy(281,7): anon20_LoopHead
+ LoopModifies.dfy(275,4): anon17_Else
+ LoopModifies.dfy(275,4): anon19_Else
+ LoopModifies.dfy(283,7): anon20_LoopHead
(0,0): anon20_LoopBody
- LoopModifies.dfy(281,7): anon21_Else
- LoopModifies.dfy(281,7): anon23_Else
+ LoopModifies.dfy(283,7): anon21_Else
+ LoopModifies.dfy(283,7): anon23_Else
Dafny program verifier finished with 23 verified, 9 errors
-------------------- Refinement.dfy --------------------
-Refinement.dfy(12,5): Error BP5003: A postcondition might not hold on this return path.
-Refinement.dfy(11,17): Related location: This is the postcondition that might not hold.
+Refinement.dfy(15,5): Error BP5003: A postcondition might not hold on this return path.
+Refinement.dfy(14,17): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-Refinement.dfy[B](12,5): Error BP5003: A postcondition might not hold on this return path.
-Refinement.dfy(30,20): Related location: This is the postcondition that might not hold.
+Refinement.dfy[B](15,5): Error BP5003: A postcondition might not hold on this return path.
+Refinement.dfy(33,20): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-Refinement.dfy(61,14): Error: assertion violation
+Refinement.dfy(64,14): Error: assertion violation
Execution trace:
(0,0): anon0
-Refinement.dfy(71,17): Error: assertion violation
+Refinement.dfy(74,17): Error: assertion violation
Execution trace:
(0,0): anon0
-Refinement.dfy(90,12): Error BP5003: A postcondition might not hold on this return path.
-Refinement.dfy(69,15): Related location: This is the postcondition that might not hold.
+Refinement.dfy(93,12): Error BP5003: A postcondition might not hold on this return path.
+Refinement.dfy(72,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-Refinement.dfy(93,3): Error BP5003: A postcondition might not hold on this return path.
-Refinement.dfy(74,15): Related location: This is the postcondition that might not hold.
+Refinement.dfy(96,3): Error BP5003: A postcondition might not hold on this return path.
+Refinement.dfy(77,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-Refinement.dfy(180,5): Error BP5003: A postcondition might not hold on this return path.
-Refinement.dfy[IncorrectConcrete](112,15): Related location: This is the postcondition that might not hold.
-Refinement.dfy(177,9): Related location
+Refinement.dfy(183,5): Error BP5003: A postcondition might not hold on this return path.
+Refinement.dfy[IncorrectConcrete](115,15): Related location: This is the postcondition that might not hold.
+Refinement.dfy(180,9): Related location
Execution trace:
(0,0): anon0
-Refinement.dfy(184,5): Error BP5003: A postcondition might not hold on this return path.
-Refinement.dfy[IncorrectConcrete](120,15): Related location: This is the postcondition that might not hold.
-Refinement.dfy(177,9): Related location
+Refinement.dfy(187,5): Error BP5003: A postcondition might not hold on this return path.
+Refinement.dfy[IncorrectConcrete](123,15): Related location: This is the postcondition that might not hold.
+Refinement.dfy(180,9): Related location
Execution trace:
(0,0): anon0
(0,0): anon4_Then
(0,0): anon3
-Refinement.dfy(190,7): Error: assertion violation
-Refinement.dfy[IncorrectConcrete](128,24): Related location
+Refinement.dfy(193,7): Error: assertion violation
+Refinement.dfy[IncorrectConcrete](131,24): Related location
Execution trace:
(0,0): anon0
Dafny program verifier finished with 48 verified, 9 errors
-------------------- RefinementErrors.dfy --------------------
-RefinementErrors.dfy(27,17): Error: a refining method is not allowed to add preconditions
-RefinementErrors.dfy(28,15): Error: a refining method is not allowed to extend the modifies clause
-RefinementErrors.dfy(31,14): Error: a predicate declaration (abc) can only refine a predicate
-RefinementErrors.dfy(32,8): Error: a field re-declaration (xyz) must be to ghostify the field
-RefinementErrors.dfy(34,13): Error: a function method cannot be changed into a (ghost) function in a refining module: F
-RefinementErrors.dfy(35,9): Error: type parameters are not allowed to be renamed from the names given in the function in the module being refined (expected 'A', found 'C')
-RefinementErrors.dfy(35,11): Error: type parameters are not allowed to be renamed from the names given in the function in the module being refined (expected 'B', found 'A')
-RefinementErrors.dfy(35,13): Error: type parameters are not allowed to be renamed from the names given in the function in the module being refined (expected 'C', found 'B')
-RefinementErrors.dfy(36,23): Error: the type of parameter 'z' is different from the type of the same parameter in the corresponding function in the module it refines ('seq<C>' instead of 'set<C>')
-RefinementErrors.dfy(37,9): Error: there is a difference in name of parameter 3 ('k' versus 'b') of function F compared to corresponding function in the module it refines
-RefinementErrors.dfy(54,20): Error: a function can be changed into a function method in a refining module only if the function has not yet been given a body: G
+RefinementErrors.dfy(30,17): Error: a refining method is not allowed to add preconditions
+RefinementErrors.dfy(31,15): Error: a refining method is not allowed to extend the modifies clause
+RefinementErrors.dfy(34,14): Error: a predicate declaration (abc) can only refine a predicate
+RefinementErrors.dfy(35,8): Error: a field re-declaration (xyz) must be to ghostify the field
+RefinementErrors.dfy(37,13): Error: a function method cannot be changed into a (ghost) function in a refining module: F
+RefinementErrors.dfy(38,9): Error: type parameters are not allowed to be renamed from the names given in the function in the module being refined (expected 'A', found 'C')
+RefinementErrors.dfy(38,11): Error: type parameters are not allowed to be renamed from the names given in the function in the module being refined (expected 'B', found 'A')
+RefinementErrors.dfy(38,13): Error: type parameters are not allowed to be renamed from the names given in the function in the module being refined (expected 'C', found 'B')
+RefinementErrors.dfy(39,23): Error: the type of parameter 'z' is different from the type of the same parameter in the corresponding function in the module it refines ('seq<C>' instead of 'set<C>')
+RefinementErrors.dfy(40,9): Error: there is a difference in name of parameter 3 ('k' versus 'b') of function F compared to corresponding function in the module it refines
+RefinementErrors.dfy(57,20): Error: a function can be changed into a function method in a refining module only if the function has not yet been given a body: G
11 resolution/type errors detected in RefinementErrors.dfy
-------------------- ReturnErrors.dfy --------------------
-ReturnErrors.dfy(30,10): Error: cannot have method call in return statement.
-ReturnErrors.dfy(36,10): Error: cannot have effectful parameter in multi-return statement.
-ReturnErrors.dfy(41,10): Error: can only have initialization methods which modify at most 'this'.
+ReturnErrors.dfy(32,10): Error: cannot have method call in return statement.
+ReturnErrors.dfy(38,10): Error: cannot have effectful parameter in multi-return statement.
+ReturnErrors.dfy(43,10): Error: can only have initialization methods which modify at most 'this'.
3 resolution/type errors detected in ReturnErrors.dfy
-------------------- ReturnTests.dfy --------------------
@@ -1737,25 +1737,25 @@ Dafny program verifier finished with 20 verified, 0 errors Dafny program verifier finished with 6 verified, 0 errors
-------------------- CallStmtTests.dfy --------------------
-CallStmtTests.dfy(4,3): Error: LHS of assignment must denote a mutable variable
-CallStmtTests.dfy(15,8): Error: actual out-parameter 0 is required to be a ghost variable
+CallStmtTests.dfy(6,3): Error: LHS of assignment must denote a mutable variable
+CallStmtTests.dfy(17,8): Error: actual out-parameter 0 is required to be a ghost variable
2 resolution/type errors detected in CallStmtTests.dfy
-------------------- MultiSets.dfy --------------------
-MultiSets.dfy(157,3): Error BP5003: A postcondition might not hold on this return path.
-MultiSets.dfy(156,15): Related location: This is the postcondition that might not hold.
+MultiSets.dfy(159,3): Error BP5003: A postcondition might not hold on this return path.
+MultiSets.dfy(158,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-MultiSets.dfy(163,3): Error BP5003: A postcondition might not hold on this return path.
-MultiSets.dfy(162,15): Related location: This is the postcondition that might not hold.
+MultiSets.dfy(165,3): Error BP5003: A postcondition might not hold on this return path.
+MultiSets.dfy(164,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-MultiSets.dfy(176,11): Error: new number of occurrences might be negative
+MultiSets.dfy(178,11): Error: new number of occurrences might be negative
Execution trace:
(0,0): anon0
(0,0): anon4_Then
(0,0): anon3
-MultiSets.dfy(267,24): Error: assertion violation
+MultiSets.dfy(269,24): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon11_Then
@@ -1766,262 +1766,262 @@ Execution trace: Dafny program verifier finished with 54 verified, 4 errors
-------------------- PredExpr.dfy --------------------
-PredExpr.dfy(4,12): Error: assertion violation
+PredExpr.dfy(7,12): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-PredExpr.dfy(36,15): Error: value assigned to a nat must be non-negative
+PredExpr.dfy(39,15): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Else
-PredExpr.dfy(49,17): Error: assertion violation
+PredExpr.dfy(52,17): Error: assertion violation
Execution trace:
(0,0): anon0
-PredExpr.dfy(74,14): Error: assertion violation
+PredExpr.dfy(77,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon8_Else
(0,0): anon3
- PredExpr.dfy(73,20): anon10_Else
+ PredExpr.dfy(76,20): anon10_Else
(0,0): anon6
Dafny program verifier finished with 11 verified, 4 errors
-------------------- Predicates.dfy --------------------
-Predicates.dfy[B](18,5): Error BP5003: A postcondition might not hold on this return path.
-Predicates.dfy[B](17,15): Related location: This is the postcondition that might not hold.
-Predicates.dfy(28,9): Related location
+Predicates.dfy[B](21,5): Error BP5003: A postcondition might not hold on this return path.
+Predicates.dfy[B](20,15): Related location: This is the postcondition that might not hold.
+Predicates.dfy(31,9): Related location
Execution trace:
(0,0): anon0
-Predicates.dfy(85,16): Error: assertion violation
+Predicates.dfy(88,16): Error: assertion violation
Execution trace:
(0,0): anon0
-Predicates.dfy(89,14): Error: assertion violation
+Predicates.dfy(92,14): Error: assertion violation
Execution trace:
(0,0): anon0
-Predicates.dfy[Tricky_Full](123,5): Error BP5003: A postcondition might not hold on this return path.
-Predicates.dfy[Tricky_Full](122,15): Related location: This is the postcondition that might not hold.
-Predicates.dfy(133,7): Related location
-Predicates.dfy[Tricky_Full](113,9): Related location
+Predicates.dfy[Tricky_Full](126,5): Error BP5003: A postcondition might not hold on this return path.
+Predicates.dfy[Tricky_Full](125,15): Related location: This is the postcondition that might not hold.
+Predicates.dfy(136,7): Related location
+Predicates.dfy[Tricky_Full](116,9): Related location
Execution trace:
(0,0): anon0
-Predicates.dfy(161,5): Error BP5003: A postcondition might not hold on this return path.
-Predicates.dfy(160,15): Related location: This is the postcondition that might not hold.
+Predicates.dfy(164,5): Error BP5003: A postcondition might not hold on this return path.
+Predicates.dfy(163,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-Predicates.dfy[Q1](151,5): Error BP5003: A postcondition might not hold on this return path.
-Predicates.dfy[Q1](150,15): Related location: This is the postcondition that might not hold.
+Predicates.dfy[Q1](154,5): Error BP5003: A postcondition might not hold on this return path.
+Predicates.dfy[Q1](153,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
Dafny program verifier finished with 52 verified, 6 errors
-------------------- Skeletons.dfy --------------------
-Skeletons.dfy(42,3): Error BP5003: A postcondition might not hold on this return path.
-Skeletons.dfy(41,15): Related location: This is the postcondition that might not hold.
+Skeletons.dfy(45,3): Error BP5003: A postcondition might not hold on this return path.
+Skeletons.dfy(44,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
- Skeletons.dfy[C0](29,5): anon11_LoopHead
+ Skeletons.dfy[C0](32,5): anon11_LoopHead
(0,0): anon11_LoopBody
- Skeletons.dfy[C0](29,5): anon12_Else
+ Skeletons.dfy[C0](32,5): anon12_Else
(0,0): anon13_Then
- Skeletons.dfy[C0](34,19): anon15_Else
+ Skeletons.dfy[C0](37,19): anon15_Else
(0,0): anon10
Dafny program verifier finished with 9 verified, 1 error
-------------------- OpaqueFunctions.dfy --------------------
-OpaqueFunctions.dfy(24,16): Error: assertion violation
+OpaqueFunctions.dfy(27,16): Error: assertion violation
Execution trace:
(0,0): anon0
-OpaqueFunctions.dfy(49,7): Error BP5002: A precondition for this call might not hold.
-OpaqueFunctions.dfy(21,16): Related location: This is the precondition that might not hold.
+OpaqueFunctions.dfy(52,7): Error BP5002: A precondition for this call might not hold.
+OpaqueFunctions.dfy(24,16): Related location: This is the precondition that might not hold.
Execution trace:
(0,0): anon0
-OpaqueFunctions.dfy(55,20): Error: assertion violation
+OpaqueFunctions.dfy(58,20): Error: assertion violation
Execution trace:
(0,0): anon0
-OpaqueFunctions.dfy(57,14): Error: assertion violation
+OpaqueFunctions.dfy(60,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon5_Then
-OpaqueFunctions.dfy(60,14): Error: assertion violation
+OpaqueFunctions.dfy(63,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon6_Then
-OpaqueFunctions.dfy(63,14): Error: assertion violation
+OpaqueFunctions.dfy(66,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon6_Else
-OpaqueFunctions.dfy(74,14): Error: assertion violation
+OpaqueFunctions.dfy(77,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-OpaqueFunctions.dfy(76,9): Error BP5002: A precondition for this call might not hold.
-OpaqueFunctions.dfy[A'](21,16): Related location: This is the precondition that might not hold.
+OpaqueFunctions.dfy(79,9): Error BP5002: A precondition for this call might not hold.
+OpaqueFunctions.dfy[A'](24,16): Related location: This is the precondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-OpaqueFunctions.dfy(83,20): Error: assertion violation
+OpaqueFunctions.dfy(86,20): Error: assertion violation
Execution trace:
(0,0): anon0
-OpaqueFunctions.dfy(85,14): Error: assertion violation
+OpaqueFunctions.dfy(88,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon5_Then
-OpaqueFunctions.dfy(88,14): Error: assertion violation
+OpaqueFunctions.dfy(91,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon6_Then
-OpaqueFunctions.dfy(91,14): Error: assertion violation
+OpaqueFunctions.dfy(94,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon6_Else
-OpaqueFunctions.dfy(102,14): Error: assertion violation
+OpaqueFunctions.dfy(105,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-OpaqueFunctions.dfy(104,9): Error BP5002: A precondition for this call might not hold.
-OpaqueFunctions.dfy[A'](21,16): Related location: This is the precondition that might not hold.
+OpaqueFunctions.dfy(107,9): Error BP5002: A precondition for this call might not hold.
+OpaqueFunctions.dfy[A'](24,16): Related location: This is the precondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-OpaqueFunctions.dfy(111,20): Error: assertion violation
+OpaqueFunctions.dfy(114,20): Error: assertion violation
Execution trace:
(0,0): anon0
-OpaqueFunctions.dfy(113,14): Error: assertion violation
+OpaqueFunctions.dfy(116,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon5_Then
-OpaqueFunctions.dfy(116,14): Error: assertion violation
+OpaqueFunctions.dfy(119,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon6_Then
-OpaqueFunctions.dfy(119,14): Error: assertion violation
+OpaqueFunctions.dfy(122,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon6_Else
-OpaqueFunctions.dfy(135,12): Error: assertion violation
+OpaqueFunctions.dfy(138,12): Error: assertion violation
Execution trace:
(0,0): anon0
Dafny program verifier finished with 43 verified, 19 errors
-------------------- Maps.dfy --------------------
-Maps.dfy(76,8): Error: element may not be in domain
+Maps.dfy(78,8): Error: element may not be in domain
Execution trace:
(0,0): anon0
-Maps.dfy(126,13): Error: assertion violation
+Maps.dfy(128,13): Error: assertion violation
Execution trace:
(0,0): anon0
Dafny program verifier finished with 32 verified, 2 errors
-------------------- LiberalEquality.dfy --------------------
-LiberalEquality.dfy(18,14): Error: arguments must have the same type (got T and U)
-LiberalEquality.dfy(37,14): Error: arguments must have the same type (got Weird<T,int,V> and Weird<T,bool,V>)
-LiberalEquality.dfy(52,14): Error: arguments must have the same type (got array<int> and array<bool>)
+LiberalEquality.dfy(20,14): Error: arguments must have the same type (got T and U)
+LiberalEquality.dfy(39,14): Error: arguments must have the same type (got Weird<T,int,V> and Weird<T,bool,V>)
+LiberalEquality.dfy(54,14): Error: arguments must have the same type (got array<int> and array<bool>)
3 resolution/type errors detected in LiberalEquality.dfy
-------------------- RefinementModificationChecking.dfy --------------------
-RefinementModificationChecking.dfy(17,4): Error: cannot assign to variable defined previously
-RefinementModificationChecking.dfy(18,4): Error: cannot assign to variable defined previously
+RefinementModificationChecking.dfy(19,4): Error: cannot assign to variable defined previously
+RefinementModificationChecking.dfy(20,4): Error: cannot assign to variable defined previously
2 resolution/type errors detected in RefinementModificationChecking.dfy
-------------------- TailCalls.dfy --------------------
-TailCalls.dfy(18,15): Error: this recursive call is not recognized as being tail recursive, because it is followed by non-ghost code
-TailCalls.dfy(30,12): Error: 'decreases *' is allowed only on tail-recursive methods
-TailCalls.dfy(37,12): Error: 'decreases *' is allowed only on tail-recursive methods
-TailCalls.dfy(42,12): Error: 'decreases *' is allowed only on tail-recursive methods
-TailCalls.dfy(64,12): Error: 'decreases *' is allowed only on tail-recursive methods
+TailCalls.dfy(21,15): Error: this recursive call is not recognized as being tail recursive, because it is followed by non-ghost code
+TailCalls.dfy(33,12): Error: 'decreases *' is allowed only on tail-recursive methods
+TailCalls.dfy(40,12): Error: 'decreases *' is allowed only on tail-recursive methods
+TailCalls.dfy(45,12): Error: 'decreases *' is allowed only on tail-recursive methods
+TailCalls.dfy(67,12): Error: 'decreases *' is allowed only on tail-recursive methods
5 resolution/type errors detected in TailCalls.dfy
-------------------- IteratorResolution.dfy --------------------
-IteratorResolution.dfy(59,9): Error: LHS of assignment must denote a mutable field
-IteratorResolution.dfy(64,18): Error: arguments must have the same type (got _T0 and int)
-IteratorResolution.dfy(76,19): Error: RHS (of type bool) not assignable to LHS (of type int)
-IteratorResolution.dfy(79,13): Error: when allocating an object of type 'GenericIteratorResult', one of its constructor methods must be called
-IteratorResolution.dfy(83,15): Error: logical negation expects a boolean argument (instead got int)
-IteratorResolution.dfy(17,9): Error: LHS of assignment must denote a mutable field
-IteratorResolution.dfy(19,9): Error: LHS of assignment must denote a mutable field
-IteratorResolution.dfy(123,9): Error: unresolved identifier: _decreases3
-IteratorResolution.dfy(124,21): Error: arguments must have the same type (got int and ?)
-IteratorResolution.dfy(125,2): Error: LHS of assignment must denote a mutable field
-IteratorResolution.dfy(132,9): Error: unresolved identifier: _decreases1
-IteratorResolution.dfy(137,9): Error: unresolved identifier: _decreases0
+IteratorResolution.dfy(62,9): Error: LHS of assignment must denote a mutable field
+IteratorResolution.dfy(67,18): Error: arguments must have the same type (got _T0 and int)
+IteratorResolution.dfy(79,19): Error: RHS (of type bool) not assignable to LHS (of type int)
+IteratorResolution.dfy(82,13): Error: when allocating an object of type 'GenericIteratorResult', one of its constructor methods must be called
+IteratorResolution.dfy(86,15): Error: logical negation expects a boolean argument (instead got int)
+IteratorResolution.dfy(20,9): Error: LHS of assignment must denote a mutable field
+IteratorResolution.dfy(22,9): Error: LHS of assignment must denote a mutable field
+IteratorResolution.dfy(126,9): Error: unresolved identifier: _decreases3
+IteratorResolution.dfy(127,21): Error: arguments must have the same type (got int and ?)
+IteratorResolution.dfy(128,2): Error: LHS of assignment must denote a mutable field
+IteratorResolution.dfy(135,9): Error: unresolved identifier: _decreases1
+IteratorResolution.dfy(140,9): Error: unresolved identifier: _decreases0
12 resolution/type errors detected in IteratorResolution.dfy
-------------------- Iterators.dfy --------------------
-Iterators.dfy(248,9): Error: failure to decrease termination measure
+Iterators.dfy(251,9): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Else
-Iterators.dfy(271,9): Error: failure to decrease termination measure
+Iterators.dfy(274,9): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Else
-Iterators.dfy(281,24): Error: failure to decrease termination measure
+Iterators.dfy(284,24): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
-Iterators.dfy(293,9): Error: cannot prove termination; try supplying a decreases clause
+Iterators.dfy(296,9): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Else
-Iterators.dfy(314,9): Error: cannot prove termination; try supplying a decreases clause
+Iterators.dfy(317,9): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Else
-Iterators.dfy(323,24): Error: cannot prove termination; try supplying a decreases clause
+Iterators.dfy(326,24): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
-Iterators.dfy(340,9): Error: failure to decrease termination measure
+Iterators.dfy(343,9): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Else
-Iterators.dfy(350,24): Error: cannot prove termination; try supplying a decreases clause
+Iterators.dfy(353,24): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
-Iterators.dfy(367,9): Error: failure to decrease termination measure
+Iterators.dfy(370,9): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Else
-Iterators.dfy(100,22): Error: assertion violation
+Iterators.dfy(103,22): Error: assertion violation
Execution trace:
(0,0): anon0
-Iterators.dfy(103,14): Error: assertion violation
+Iterators.dfy(106,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon4_Then
(0,0): anon3
-Iterators.dfy(174,28): Error: assertion violation
+Iterators.dfy(177,28): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon15_Then
-Iterators.dfy(205,7): Error: an assignment to _new is only allowed to shrink the set
+Iterators.dfy(208,7): Error: an assignment to _new is only allowed to shrink the set
Execution trace:
(0,0): anon0
- Iterators.dfy(194,3): anon16_LoopHead
+ Iterators.dfy(197,3): anon16_LoopHead
(0,0): anon16_LoopBody
- Iterators.dfy(194,3): anon17_Else
- Iterators.dfy(194,3): anon19_Else
+ Iterators.dfy(197,3): anon17_Else
+ Iterators.dfy(197,3): anon19_Else
(0,0): anon20_Then
-Iterators.dfy(209,21): Error: assertion violation
+Iterators.dfy(212,21): Error: assertion violation
Execution trace:
(0,0): anon0
- Iterators.dfy(194,3): anon16_LoopHead
+ Iterators.dfy(197,3): anon16_LoopHead
(0,0): anon16_LoopBody
- Iterators.dfy(194,3): anon17_Else
- Iterators.dfy(194,3): anon19_Else
+ Iterators.dfy(197,3): anon17_Else
+ Iterators.dfy(197,3): anon19_Else
(0,0): anon21_Then
-Iterators.dfy(37,14): Error BP5002: A precondition for this call might not hold.
-Iterators.dfy(1,10): Related location: This is the precondition that might not hold.
+Iterators.dfy(40,14): Error BP5002: A precondition for this call might not hold.
+Iterators.dfy(4,10): Related location: This is the precondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon35_Then
@@ -2029,30 +2029,30 @@ Execution trace: (0,0): anon36_Then
(0,0): anon5
(0,0): anon37_Then
-Iterators.dfy(86,14): Error: assertion violation
+Iterators.dfy(89,14): Error: assertion violation
Execution trace:
(0,0): anon0
-Iterators.dfy(116,16): Error: assertion violation
+Iterators.dfy(119,16): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-Iterators.dfy(147,16): Error: assertion violation
+Iterators.dfy(150,16): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon4_Else
-Iterators.dfy(152,16): Error BP5002: A precondition for this call might not hold.
-Iterators.dfy(122,10): Related location: This is the precondition that might not hold.
+Iterators.dfy(155,16): Error BP5002: A precondition for this call might not hold.
+Iterators.dfy(125,10): Related location: This is the precondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon4_Then
(0,0): anon3
-Iterators.dfy(231,14): Error: assertion violation
+Iterators.dfy(234,14): Error: assertion violation
Execution trace:
(0,0): anon0
- Iterators.dfy(222,3): anon14_LoopHead
+ Iterators.dfy(225,3): anon14_LoopHead
(0,0): anon14_LoopBody
- Iterators.dfy(222,3): anon15_Else
- Iterators.dfy(222,3): anon18_Else
+ Iterators.dfy(225,3): anon15_Else
+ Iterators.dfy(225,3): anon18_Else
(0,0): anon19_Else
Dafny program verifier finished with 65 verified, 20 errors
@@ -2062,22 +2062,22 @@ Dafny program verifier finished with 65 verified, 20 errors Dafny program verifier finished with 11 verified, 0 errors
-------------------- RankNeg.dfy --------------------
-RankNeg.dfy(7,26): Error: cannot prove termination; try supplying a decreases clause
+RankNeg.dfy(10,26): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Then
-RankNeg.dfy(12,28): Error: cannot prove termination; try supplying a decreases clause
+RankNeg.dfy(15,28): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Then
-RankNeg.dfy(19,31): Error: cannot prove termination; try supplying a decreases clause
+RankNeg.dfy(22,31): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon5_Else
(0,0): anon6_Then
-RankNeg.dfy(29,25): Error: cannot prove termination; try supplying a decreases clause
+RankNeg.dfy(32,25): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon5_Else
@@ -2090,38 +2090,38 @@ Dafny program verifier finished with 1 verified, 4 errors Dafny program verifier finished with 58 verified, 0 errors
-------------------- ComputationsNeg.dfy --------------------
-ComputationsNeg.dfy(4,3): Error: failure to decrease termination measure
+ComputationsNeg.dfy(7,3): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-ComputationsNeg.dfy(8,1): Error BP5003: A postcondition might not hold on this return path.
-ComputationsNeg.dfy(7,17): Related location: This is the postcondition that might not hold.
+ComputationsNeg.dfy(11,1): Error BP5003: A postcondition might not hold on this return path.
+ComputationsNeg.dfy(10,17): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-ComputationsNeg.dfy(20,1): Error BP5003: A postcondition might not hold on this return path.
-ComputationsNeg.dfy(19,11): Related location: This is the postcondition that might not hold.
+ComputationsNeg.dfy(23,1): Error BP5003: A postcondition might not hold on this return path.
+ComputationsNeg.dfy(22,11): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-ComputationsNeg.dfy(33,13): Error: assertion violation
+ComputationsNeg.dfy(36,13): Error: assertion violation
Execution trace:
(0,0): anon0
-ComputationsNeg.dfy(42,13): Error: assertion violation
+ComputationsNeg.dfy(45,13): Error: assertion violation
Execution trace:
(0,0): anon0
Dafny program verifier finished with 7 verified, 5 errors
-------------------- Include.dfy --------------------
-Include.dfy(17,19): Error BP5003: A postcondition might not hold on this return path.
-Includee.dfy(15,20): Related location: This is the postcondition that might not hold.
+Include.dfy(19,19): Error BP5003: A postcondition might not hold on this return path.
+Includee.dfy(17,20): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-Includee.dfy[Concrete](20,16): Error: assertion violation
+Includee.dfy[Concrete](22,16): Error: assertion violation
Execution trace:
(0,0): anon0
-Include.dfy(25,7): Error BP5003: A postcondition might not hold on this return path.
-Includee.dfy[Concrete](18,15): Related location: This is the postcondition that might not hold.
+Include.dfy(27,7): Error BP5003: A postcondition might not hold on this return path.
+Includee.dfy[Concrete](20,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon6_Then
@@ -2129,61 +2129,61 @@ Execution trace: Dafny program verifier finished with 4 verified, 3 errors
-------------------- Includee.dfy --------------------
-Includee.dfy(19,3): Error BP5003: A postcondition might not hold on this return path.
-Includee.dfy(18,15): Related location: This is the postcondition that might not hold.
+Includee.dfy(21,3): Error BP5003: A postcondition might not hold on this return path.
+Includee.dfy(20,15): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-Includee.dfy(22,18): Error: assertion violation
+Includee.dfy(24,18): Error: assertion violation
Execution trace:
(0,0): anon0
-Includee.dfy(4,1): Error BP5003: A postcondition might not hold on this return path.
-Includee.dfy(3,13): Related location: This is the postcondition that might not hold.
+Includee.dfy(6,1): Error BP5003: A postcondition might not hold on this return path.
+Includee.dfy(5,13): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
Dafny program verifier finished with 5 verified, 3 errors
-------------------- AutoReq.dfy --------------------
-AutoReq.dfy(245,3): Error: possible violation of function precondition
-AutoReq.dfy(237,12): Related location
+AutoReq.dfy(247,3): Error: possible violation of function precondition
+AutoReq.dfy(239,12): Related location
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-AutoReq.dfy(11,3): Error: possible violation of function precondition
-AutoReq.dfy(3,14): Related location
+AutoReq.dfy(13,3): Error: possible violation of function precondition
+AutoReq.dfy(5,14): Related location
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-AutoReq.dfy(23,3): Error: possible violation of function precondition
-AutoReq.dfy(3,14): Related location
+AutoReq.dfy(25,3): Error: possible violation of function precondition
+AutoReq.dfy(5,14): Related location
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-AutoReq.dfy(36,12): Error: assertion violation
-AutoReq.dfy(29,13): Related location
-AutoReq.dfy(5,5): Related location
+AutoReq.dfy(38,12): Error: assertion violation
+AutoReq.dfy(31,13): Related location
+AutoReq.dfy(7,5): Related location
Execution trace:
(0,0): anon0
(0,0): anon9_Then
-AutoReq.dfy(36,12): Error: possible violation of function precondition
-AutoReq.dfy(3,14): Related location
+AutoReq.dfy(38,12): Error: possible violation of function precondition
+AutoReq.dfy(5,14): Related location
Execution trace:
(0,0): anon0
(0,0): anon9_Then
-AutoReq.dfy(38,12): Error: assertion violation
-AutoReq.dfy(29,27): Related location
-AutoReq.dfy(5,5): Related location
+AutoReq.dfy(40,12): Error: assertion violation
+AutoReq.dfy(31,27): Related location
+AutoReq.dfy(7,5): Related location
Execution trace:
(0,0): anon0
(0,0): anon10_Then
-AutoReq.dfy(38,12): Error: possible violation of function precondition
-AutoReq.dfy(3,14): Related location
+AutoReq.dfy(40,12): Error: possible violation of function precondition
+AutoReq.dfy(5,14): Related location
Execution trace:
(0,0): anon0
(0,0): anon10_Then
-AutoReq.dfy(43,12): Error: assertion violation
-AutoReq.dfy(29,13): Related location
-AutoReq.dfy(5,5): Related location
+AutoReq.dfy(45,12): Error: assertion violation
+AutoReq.dfy(31,13): Related location
+AutoReq.dfy(7,5): Related location
Execution trace:
(0,0): anon0
(0,0): anon11_Then
@@ -2195,44 +2195,44 @@ Dafny program verifier finished with 52 verified, 8 errors Dafny program verifier finished with 2 verified, 0 errors
-------------------- ModifyStmt.dfy --------------------
-ModifyStmt.dfy(24,14): Error: assertion violation
+ModifyStmt.dfy(27,14): Error: assertion violation
Execution trace:
(0,0): anon0
-ModifyStmt.dfy(39,5): Error: modify statement may violate context's modifies clause
+ModifyStmt.dfy(42,5): Error: modify statement may violate context's modifies clause
Execution trace:
(0,0): anon0
-ModifyStmt.dfy(45,5): Error: modify statement may violate context's modifies clause
+ModifyStmt.dfy(48,5): Error: modify statement may violate context's modifies clause
Execution trace:
(0,0): anon0
-ModifyStmt.dfy(58,5): Error: modify statement may violate context's modifies clause
+ModifyStmt.dfy(61,5): Error: modify statement may violate context's modifies clause
Execution trace:
(0,0): anon0
-ModifyStmt.dfy(67,14): Error: assertion violation
+ModifyStmt.dfy(70,14): Error: assertion violation
Execution trace:
(0,0): anon0
-ModifyStmt.dfy(86,14): Error: assertion violation
+ModifyStmt.dfy(89,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon9_Then
- ModifyStmt.dfy(78,7): anon10_LoopHead
+ ModifyStmt.dfy(81,7): anon10_LoopHead
(0,0): anon10_LoopBody
- ModifyStmt.dfy(78,7): anon11_Else
+ ModifyStmt.dfy(81,7): anon11_Else
(0,0): anon12_Then
(0,0): anon8
-ModifyStmt.dfy(96,14): Error: assertion violation
+ModifyStmt.dfy(99,14): Error: assertion violation
Execution trace:
(0,0): anon0
-ModifyStmt.dfy(107,14): Error: assertion violation
+ModifyStmt.dfy(110,14): Error: assertion violation
Execution trace:
(0,0): anon0
-ModifyStmt.dfy(119,16): Error: assertion violation
+ModifyStmt.dfy(122,16): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-ModifyStmt.dfy(131,7): Error: assignment may update an object not in the enclosing context's modifies clause
+ModifyStmt.dfy(134,7): Error: assignment may update an object not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
-ModifyStmt.dfy(169,15): Error: assertion violation
+ModifyStmt.dfy(172,15): Error: assertion violation
Execution trace:
(0,0): anon0
@@ -2243,44 +2243,44 @@ Dafny program verifier finished with 25 verified, 11 errors Dafny program verifier finished with 2 verified, 0 errors
-------------------- RealCompare.dfy --------------------
-RealCompare.dfy(32,5): Error: failure to decrease termination measure
+RealCompare.dfy(35,5): Error: failure to decrease termination measure
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-RealCompare.dfy(47,3): Error: decreases expression must be bounded below by 0.0
+RealCompare.dfy(50,3): Error: decreases expression must be bounded below by 0.0
Execution trace:
(0,0): anon0
-RealCompare.dfy(138,12): Error: assertion violation
+RealCompare.dfy(141,12): Error: assertion violation
Execution trace:
(0,0): anon0
- RealCompare.dfy(130,3): anon7_LoopHead
+ RealCompare.dfy(133,3): anon7_LoopHead
(0,0): anon7_LoopBody
- RealCompare.dfy(130,3): anon8_Else
+ RealCompare.dfy(133,3): anon8_Else
(0,0): anon9_Then
-RealCompare.dfy(153,12): Error: assertion violation
+RealCompare.dfy(156,12): Error: assertion violation
Execution trace:
(0,0): anon0
- RealCompare.dfy(144,3): anon9_LoopHead
+ RealCompare.dfy(147,3): anon9_LoopHead
(0,0): anon9_LoopBody
- RealCompare.dfy(144,3): anon10_Else
+ RealCompare.dfy(147,3): anon10_Else
(0,0): anon12_Then
Dafny program verifier finished with 24 verified, 4 errors
-------------------- AssumptionVariables0.dfy --------------------
-AssumptionVariables0.dfy(3,29): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
-AssumptionVariables0.dfy(4,33): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a2 && <boolean expression>"
-AssumptionVariables0.dfy(6,20): Error: assumption variable must be ghost
-AssumptionVariables0.dfy(6,2): Error: assumption variable must be of type 'bool'
-AssumptionVariables0.dfy(12,5): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a3 && <boolean expression>"
-AssumptionVariables0.dfy(14,5): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a3 && <boolean expression>"
-AssumptionVariables0.dfy(24,5): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
-AssumptionVariables0.dfy(28,5): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
-AssumptionVariables0.dfy(50,9): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
-AssumptionVariables0.dfy(54,26): Error: assumption variable must be ghost
-AssumptionVariables0.dfy(58,37): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
-AssumptionVariables0.dfy(58,10): Error: assumption variable must be of type 'bool'
-AssumptionVariables0.dfy(66,15): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
+AssumptionVariables0.dfy(6,29): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
+AssumptionVariables0.dfy(7,33): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a2 && <boolean expression>"
+AssumptionVariables0.dfy(9,20): Error: assumption variable must be ghost
+AssumptionVariables0.dfy(9,2): Error: assumption variable must be of type 'bool'
+AssumptionVariables0.dfy(15,5): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a3 && <boolean expression>"
+AssumptionVariables0.dfy(17,5): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a3 && <boolean expression>"
+AssumptionVariables0.dfy(27,5): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
+AssumptionVariables0.dfy(31,5): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
+AssumptionVariables0.dfy(53,9): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
+AssumptionVariables0.dfy(57,26): Error: assumption variable must be ghost
+AssumptionVariables0.dfy(61,37): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
+AssumptionVariables0.dfy(61,10): Error: assumption variable must be of type 'bool'
+AssumptionVariables0.dfy(69,15): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
13 resolution/type errors detected in AssumptionVariables0.dfy
-------------------- AssumptionVariables1.dfy --------------------
@@ -2300,16 +2300,16 @@ Verifying CheckWellformed$$_0_M0.C.P ... Verifying CheckWellformed$$_0_M0.C.Q ...
[3 proof obligations] error
-Superposition.dfy(24,15): Error BP5003: A postcondition might not hold on this return path.
-Superposition.dfy(25,26): Related location: This is the postcondition that might not hold.
+Superposition.dfy(27,15): Error BP5003: A postcondition might not hold on this return path.
+Superposition.dfy(28,26): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon5_Else
Verifying CheckWellformed$$_0_M0.C.R ...
[3 proof obligations] error
-Superposition.dfy(30,15): Error BP5003: A postcondition might not hold on this return path.
-Superposition.dfy(31,26): Related location: This is the postcondition that might not hold.
+Superposition.dfy(33,15): Error BP5003: A postcondition might not hold on this return path.
+Superposition.dfy(34,26): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon5_Else
@@ -2322,8 +2322,8 @@ Verifying Impl$$_1_M1.C.M ... Verifying CheckWellformed$$_1_M1.C.P ...
[1 proof obligation] error
-Superposition.dfy(47,15): Error BP5003: A postcondition might not hold on this return path.
-Superposition.dfy[M1](19,26): Related location: This is the postcondition that might not hold.
+Superposition.dfy(50,15): Error BP5003: A postcondition might not hold on this return path.
+Superposition.dfy[M1](22,26): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon7_Else
@@ -2339,46 +2339,46 @@ Verifying CheckWellformed$$_1_M1.C.R ... Dafny program verifier finished with 7 verified, 3 errors
-------------------- SmallTests.dfy --------------------
-SmallTests.dfy(30,11): Error: index out of range
+SmallTests.dfy(33,11): Error: index out of range
Execution trace:
(0,0): anon0
-SmallTests.dfy(61,36): Error: possible division by zero
+SmallTests.dfy(64,36): Error: possible division by zero
Execution trace:
(0,0): anon0
(0,0): anon12_Then
-SmallTests.dfy(62,51): Error: possible division by zero
+SmallTests.dfy(65,51): Error: possible division by zero
Execution trace:
(0,0): anon0
(0,0): anon12_Else
(0,0): anon3
(0,0): anon13_Else
-SmallTests.dfy(63,22): Error: target object may be null
+SmallTests.dfy(66,22): Error: target object may be null
Execution trace:
(0,0): anon0
(0,0): anon12_Then
(0,0): anon3
(0,0): anon13_Then
(0,0): anon6
-SmallTests.dfy(82,24): Error: target object may be null
+SmallTests.dfy(85,24): Error: target object may be null
Execution trace:
(0,0): anon0
- SmallTests.dfy(81,5): anon8_LoopHead
+ SmallTests.dfy(84,5): anon8_LoopHead
(0,0): anon8_LoopBody
(0,0): anon9_Then
-SmallTests.dfy(116,5): Error: call may violate context's modifies clause
+SmallTests.dfy(119,5): Error: call may violate context's modifies clause
Execution trace:
(0,0): anon0
(0,0): anon4_Else
(0,0): anon3
-SmallTests.dfy(129,9): Error: call may violate context's modifies clause
+SmallTests.dfy(132,9): Error: call may violate context's modifies clause
Execution trace:
(0,0): anon0
(0,0): anon3_Then
-SmallTests.dfy(131,9): Error: call may violate context's modifies clause
+SmallTests.dfy(134,9): Error: call may violate context's modifies clause
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-SmallTests.dfy(171,9): Error: assignment may update an object field not in the enclosing context's modifies clause
+SmallTests.dfy(174,9): Error: assignment may update an object field not in the enclosing context's modifies clause
Execution trace:
(0,0): anon0
(0,0): anon22_Else
@@ -2387,53 +2387,53 @@ Execution trace: (0,0): anon28_Then
(0,0): anon29_Then
(0,0): anon19
-SmallTests.dfy(195,14): Error: assertion violation
+SmallTests.dfy(198,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon6_Then
-SmallTests.dfy(202,14): Error: assertion violation
+SmallTests.dfy(205,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon6_Else
(0,0): anon3
(0,0): anon7_Then
-SmallTests.dfy(204,14): Error: assertion violation
+SmallTests.dfy(207,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon6_Else
(0,0): anon3
(0,0): anon7_Else
-SmallTests.dfy(250,24): Error BP5002: A precondition for this call might not hold.
-SmallTests.dfy(228,30): Related location: This is the precondition that might not hold.
+SmallTests.dfy(253,24): Error BP5002: A precondition for this call might not hold.
+SmallTests.dfy(231,30): Related location: This is the precondition that might not hold.
Execution trace:
(0,0): anon0
- SmallTests.dfy(245,19): anon3_Else
+ SmallTests.dfy(248,19): anon3_Else
(0,0): anon2
-SmallTests.dfy(355,12): Error: assertion violation
+SmallTests.dfy(358,12): Error: assertion violation
Execution trace:
(0,0): anon0
-SmallTests.dfy(365,12): Error: assertion violation
+SmallTests.dfy(368,12): Error: assertion violation
Execution trace:
(0,0): anon0
-SmallTests.dfy(375,6): Error: cannot prove termination; try supplying a decreases clause
+SmallTests.dfy(378,6): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-SmallTests.dfy(679,14): Error: assertion violation
+SmallTests.dfy(682,14): Error: assertion violation
Execution trace:
(0,0): anon0
- SmallTests.dfy(676,5): anon7_LoopHead
+ SmallTests.dfy(679,5): anon7_LoopHead
(0,0): anon7_LoopBody
- SmallTests.dfy(676,5): anon8_Else
+ SmallTests.dfy(679,5): anon8_Else
(0,0): anon9_Then
-SmallTests.dfy(700,14): Error: assertion violation
+SmallTests.dfy(703,14): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon7_Then
(0,0): anon8_Then
(0,0): anon3
-SmallTests.dfy(285,3): Error BP5003: A postcondition might not hold on this return path.
-SmallTests.dfy(279,11): Related location: This is the postcondition that might not hold.
+SmallTests.dfy(288,3): Error BP5003: A postcondition might not hold on this return path.
+SmallTests.dfy(282,11): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon18_Else
@@ -2441,29 +2441,29 @@ Execution trace: (0,0): anon24_Then
(0,0): anon15
(0,0): anon25_Else
-SmallTests.dfy(326,12): Error: assertion violation
+SmallTests.dfy(329,12): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon8_Then
(0,0): anon7
-SmallTests.dfy(333,10): Error: assertion violation
+SmallTests.dfy(336,10): Error: assertion violation
Execution trace:
(0,0): anon0
-SmallTests.dfy(343,4): Error: cannot prove termination; try supplying a decreases clause
+SmallTests.dfy(346,4): Error: cannot prove termination; try supplying a decreases clause
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-SmallTests.dfy(387,10): Error BP5003: A postcondition might not hold on this return path.
-SmallTests.dfy(390,41): Related location: This is the postcondition that might not hold.
+SmallTests.dfy(390,10): Error BP5003: A postcondition might not hold on this return path.
+SmallTests.dfy(393,41): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
(0,0): anon6_Else
-SmallTests.dfy(550,12): Error: assertion violation
+SmallTests.dfy(553,12): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon3_Then
(0,0): anon2
-SmallTests.dfy(564,20): Error: left-hand sides 0 and 1 may refer to the same location
+SmallTests.dfy(567,20): Error: left-hand sides 0 and 1 may refer to the same location
Execution trace:
(0,0): anon0
(0,0): anon27_Then
@@ -2475,11 +2475,11 @@ Execution trace: (0,0): anon31_Then
(0,0): anon32_Then
(0,0): anon12
-SmallTests.dfy(566,15): Error: left-hand sides 1 and 2 may refer to the same location
+SmallTests.dfy(569,15): Error: left-hand sides 1 and 2 may refer to the same location
Execution trace:
(0,0): anon0
(0,0): anon27_Then
- SmallTests.dfy(559,18): anon28_Else
+ SmallTests.dfy(562,18): anon28_Else
(0,0): anon4
(0,0): anon29_Else
(0,0): anon30_Then
@@ -2490,16 +2490,16 @@ Execution trace: (0,0): anon37_Then
(0,0): anon22
(0,0): anon38_Then
-SmallTests.dfy(573,25): Error: target object may be null
+SmallTests.dfy(576,25): Error: target object may be null
Execution trace:
(0,0): anon0
-SmallTests.dfy(586,10): Error: assertion violation
+SmallTests.dfy(589,10): Error: assertion violation
Execution trace:
(0,0): anon0
-SmallTests.dfy(610,5): Error: cannot establish the existence of LHS values that satisfy the such-that predicate
+SmallTests.dfy(613,5): Error: cannot establish the existence of LHS values that satisfy the such-that predicate
Execution trace:
(0,0): anon0
-SmallTests.dfy(633,10): Error: assertion violation
+SmallTests.dfy(636,10): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon8_Then
@@ -2507,17 +2507,17 @@ Execution trace: (0,0): anon4
(0,0): anon10_Then
(0,0): anon7
-SmallTests.dfy(647,10): Error: cannot establish the existence of LHS values that satisfy the such-that predicate
+SmallTests.dfy(650,10): Error: cannot establish the existence of LHS values that satisfy the such-that predicate
Execution trace:
(0,0): anon0
(0,0): anon5_Then
(0,0): anon6_Then
(0,0): anon3
-SmallTests.dfy(649,10): Error: cannot establish the existence of LHS values that satisfy the such-that predicate
+SmallTests.dfy(652,10): Error: cannot establish the existence of LHS values that satisfy the such-that predicate
Execution trace:
(0,0): anon0
(0,0): anon5_Else
-SmallTests.dfy(662,9): Error: cannot establish the existence of LHS values that satisfy the such-that predicate
+SmallTests.dfy(665,9): Error: cannot establish the existence of LHS values that satisfy the such-that predicate
Execution trace:
(0,0): anon0
@@ -2526,34 +2526,34 @@ Dafny program verifier finished with 87 verified, 33 errors Dafny program verifier finished with 0 verified, 0 errors
-------------------- LetExpr.dfy --------------------
-LetExpr.dfy(5,12): Error: assertion violation
+LetExpr.dfy(8,12): Error: assertion violation
Execution trace:
(0,0): anon0
-LetExpr.dfy(104,21): Error: assertion violation
+LetExpr.dfy(107,21): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon11_Then
-LetExpr.dfy(248,19): Error: value assigned to a nat must be non-negative
+LetExpr.dfy(251,19): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
(0,0): anon5_Then
-LetExpr.dfy(251,19): Error: value assigned to a nat must be non-negative
+LetExpr.dfy(254,19): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
(0,0): anon6_Then
-LetExpr.dfy(253,24): Error: value assigned to a nat must be non-negative
+LetExpr.dfy(256,24): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
(0,0): anon6_Else
-LetExpr.dfy(282,14): Error: RHS is not certain to look like the pattern 'Agnes'
+LetExpr.dfy(285,14): Error: RHS is not certain to look like the pattern 'Agnes'
Execution trace:
(0,0): anon0
(0,0): anon3_Else
-LetExpr.dfy(299,42): Error: value assigned to a nat must be non-negative
+LetExpr.dfy(302,42): Error: value assigned to a nat must be non-negative
Execution trace:
(0,0): anon0
(0,0): anon6_Else
-LetExpr.dfy(301,12): Error: assertion violation
+LetExpr.dfy(304,12): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon6_Else
@@ -2563,27 +2563,27 @@ Dafny program verifier finished with 38 verified, 8 errors Dafny program verifier finished with 0 verified, 0 errors
-------------------- Calculations.dfy --------------------
-Calculations.dfy(3,6): Error: index out of range
+Calculations.dfy(6,6): Error: index out of range
Execution trace:
(0,0): anon0
(0,0): anon24_Then
-Calculations.dfy(8,15): Error: index out of range
+Calculations.dfy(11,15): Error: index out of range
Execution trace:
(0,0): anon0
(0,0): anon26_Then
-Calculations.dfy(8,19): Error: assertion violation
+Calculations.dfy(11,19): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon26_Then
-Calculations.dfy(52,12): Error: assertion violation
+Calculations.dfy(55,12): Error: assertion violation
Execution trace:
(0,0): anon0
- Calculations.dfy(47,3): anon5_Else
-Calculations.dfy(75,15): Error: index out of range
+ Calculations.dfy(50,3): anon5_Else
+Calculations.dfy(78,15): Error: index out of range
Execution trace:
(0,0): anon0
(0,0): anon12_Then
-Calculations.dfy(75,19): Error: assertion violation
+Calculations.dfy(78,19): Error: assertion violation
Execution trace:
(0,0): anon0
(0,0): anon12_Then
@@ -2600,10 +2600,10 @@ Compilation error: Arbitrary type ('_module.MyType') cannot be compiled Compilation error: Iterator _module.Iter has no body
Compilation error: Method _module._default.M has no body
Compilation error: Method _module._default.P has no body
-Compilation error: an assume statement cannot be compiled (line 8)
+Compilation error: an assume statement cannot be compiled (line 11)
Compilation error: Function _module._default.F has no body
Compilation error: Function _module._default.H has no body
-Compilation error: an assume statement cannot be compiled (line 17)
Compilation error: an assume statement cannot be compiled (line 20)
-Compilation error: an assume statement cannot be compiled (line 25)
-Compilation error: an assume statement cannot be compiled (line 34)
+Compilation error: an assume statement cannot be compiled (line 23)
+Compilation error: an assume statement cannot be compiled (line 28)
+Compilation error: an assume statement cannot be compiled (line 37)
diff --git a/Test/dafny0/Array.dfy b/Test/dafny0/Array.dfy index 47bfe489..1b41267e 100644 --- a/Test/dafny0/Array.dfy +++ b/Test/dafny0/Array.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class A {
method M() {
var y := new A[100];
diff --git a/Test/dafny0/Array.dfy.expect b/Test/dafny0/Array.dfy.expect new file mode 100644 index 00000000..86a19c51 --- /dev/null +++ b/Test/dafny0/Array.dfy.expect @@ -0,0 +1,107 @@ +Array.dfy(13,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon2
+ (0,0): anon6_Then
+Array.dfy(20,16): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+Array.dfy(27,6): Error: index out of range
+Execution trace:
+ (0,0): anon0
+Array.dfy(51,20): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+Array.dfy(59,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon2
+ (0,0): anon6_Then
+Array.dfy(66,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon2
+ (0,0): anon6_Then
+Array.dfy(110,21): Error: upper bound below lower bound or above length of array
+Execution trace:
+ (0,0): anon0
+ (0,0): anon14_Else
+ (0,0): anon18_Then
+ (0,0): anon19_Then
+ (0,0): anon20_Then
+ (0,0): anon11
+Array.dfy(120,8): Error: insufficient reads clause to read the indicated range of array elements
+Execution trace:
+ (0,0): anon0
+ (0,0): anon9_Else
+ (0,0): anon10_Then
+ (0,0): anon11_Then
+ (0,0): anon12_Then
+Array.dfy(122,8): Error: insufficient reads clause to read the indicated range of array elements
+Execution trace:
+ (0,0): anon0
+ (0,0): anon9_Else
+ (0,0): anon10_Then
+ (0,0): anon11_Then
+ (0,0): anon12_Else
+Array.dfy(123,8): Error: insufficient reads clause to read the indicated range of array elements
+Execution trace:
+ (0,0): anon0
+ (0,0): anon9_Else
+ (0,0): anon10_Then
+ (0,0): anon11_Then
+ (0,0): anon12_Else
+Array.dfy(124,8): Error: insufficient reads clause to read the indicated range of array elements
+Execution trace:
+ (0,0): anon0
+ (0,0): anon9_Else
+ (0,0): anon10_Then
+ (0,0): anon11_Then
+ (0,0): anon12_Else
+Array.dfy(150,6): Error: insufficient reads clause to read array element
+Execution trace:
+ (0,0): anon0
+ (0,0): anon7_Else
+ (0,0): anon8_Then
+ (0,0): anon9_Then
+Array.dfy(158,6): Error: insufficient reads clause to read array element
+Execution trace:
+ (0,0): anon0
+ (0,0): anon7_Else
+ (0,0): anon8_Then
+ (0,0): anon9_Then
+Array.dfy(174,6): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+Array.dfy(181,6): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+Array.dfy(206,1): Error BP5003: A postcondition might not hold on this return path.
+Array.dfy(205,11): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+Array.dfy(230,1): Error BP5003: A postcondition might not hold on this return path.
+Array.dfy(229,11): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+Array.dfy(236,1): Error BP5003: A postcondition might not hold on this return path.
+Array.dfy(235,11): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+Array.dfy(251,10): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon2
+ (0,0): anon6_Then
+Array.dfy(252,5): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon2
+ (0,0): anon6_Then
+
+Dafny program verifier finished with 41 verified, 20 errors
diff --git a/Test/dafny0/AssumptionVariables0.dfy b/Test/dafny0/AssumptionVariables0.dfy index 2087b402..a3e23b73 100644 --- a/Test/dafny0/AssumptionVariables0.dfy +++ b/Test/dafny0/AssumptionVariables0.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
method test0(x: int)
{
ghost var {:assumption} a0 := false; // error
diff --git a/Test/dafny0/AssumptionVariables0.dfy.expect b/Test/dafny0/AssumptionVariables0.dfy.expect new file mode 100644 index 00000000..914d83eb --- /dev/null +++ b/Test/dafny0/AssumptionVariables0.dfy.expect @@ -0,0 +1,14 @@ +AssumptionVariables0.dfy(6,29): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
+AssumptionVariables0.dfy(7,33): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a2 && <boolean expression>"
+AssumptionVariables0.dfy(9,20): Error: assumption variable must be ghost
+AssumptionVariables0.dfy(9,2): Error: assumption variable must be of type 'bool'
+AssumptionVariables0.dfy(15,5): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a3 && <boolean expression>"
+AssumptionVariables0.dfy(17,5): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a3 && <boolean expression>"
+AssumptionVariables0.dfy(27,5): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
+AssumptionVariables0.dfy(31,5): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
+AssumptionVariables0.dfy(53,9): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
+AssumptionVariables0.dfy(57,26): Error: assumption variable must be ghost
+AssumptionVariables0.dfy(61,37): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
+AssumptionVariables0.dfy(61,10): Error: assumption variable must be of type 'bool'
+AssumptionVariables0.dfy(69,15): Error: there may be at most one assignment to an assumption variable, the RHS of which must match the expression "a0 && <boolean expression>"
+13 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\AssumptionVariables0.dfy
diff --git a/Test/dafny0/AssumptionVariables1.dfy b/Test/dafny0/AssumptionVariables1.dfy index 135c2699..348fc85d 100644 --- a/Test/dafny0/AssumptionVariables1.dfy +++ b/Test/dafny0/AssumptionVariables1.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
method test0(x: int)
{
ghost var {:assumption} a0: bool;
diff --git a/Test/dafny0/AssumptionVariables1.dfy.expect b/Test/dafny0/AssumptionVariables1.dfy.expect new file mode 100644 index 00000000..73ba063c --- /dev/null +++ b/Test/dafny0/AssumptionVariables1.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 4 verified, 0 errors
diff --git a/Test/dafny0/AutoReq.dfy b/Test/dafny0/AutoReq.dfy index 08acfc50..efe88446 100644 --- a/Test/dafny0/AutoReq.dfy +++ b/Test/dafny0/AutoReq.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
function f(x:int) : bool
requires x > 3;
diff --git a/Test/dafny0/AutoReq.dfy.expect b/Test/dafny0/AutoReq.dfy.expect new file mode 100644 index 00000000..617e6003 --- /dev/null +++ b/Test/dafny0/AutoReq.dfy.expect @@ -0,0 +1,45 @@ +AutoReq.dfy(247,3): Error: possible violation of function precondition
+AutoReq.dfy(239,12): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+AutoReq.dfy(13,3): Error: possible violation of function precondition
+AutoReq.dfy(5,14): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+AutoReq.dfy(25,3): Error: possible violation of function precondition
+AutoReq.dfy(5,14): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+AutoReq.dfy(38,12): Error: assertion violation
+AutoReq.dfy(31,13): Related location
+AutoReq.dfy(7,5): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon9_Then
+AutoReq.dfy(38,12): Error: possible violation of function precondition
+AutoReq.dfy(5,14): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon9_Then
+AutoReq.dfy(40,12): Error: assertion violation
+AutoReq.dfy(31,27): Related location
+AutoReq.dfy(7,5): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon10_Then
+AutoReq.dfy(40,12): Error: possible violation of function precondition
+AutoReq.dfy(5,14): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon10_Then
+AutoReq.dfy(45,12): Error: assertion violation
+AutoReq.dfy(31,13): Related location
+AutoReq.dfy(7,5): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon11_Then
+
+Dafny program verifier finished with 52 verified, 8 errors
diff --git a/Test/dafny0/BadFunction.dfy b/Test/dafny0/BadFunction.dfy index 3affaa80..b178f208 100644 --- a/Test/dafny0/BadFunction.dfy +++ b/Test/dafny0/BadFunction.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// The following function gives rise to an inconsistent axiom, except
// for its CanUseFunctionDefs antecedent, which saves the day.
function F(x: int): int
diff --git a/Test/dafny0/BadFunction.dfy.expect b/Test/dafny0/BadFunction.dfy.expect new file mode 100644 index 00000000..7127b60b --- /dev/null +++ b/Test/dafny0/BadFunction.dfy.expect @@ -0,0 +1,6 @@ +BadFunction.dfy(9,3): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+
+Dafny program verifier finished with 2 verified, 1 error
diff --git a/Test/dafny0/Basics.dfy b/Test/dafny0/Basics.dfy index 8f036349..946981ac 100644 --- a/Test/dafny0/Basics.dfy +++ b/Test/dafny0/Basics.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class Global {
static function G(x: int): int { x+x }
static method N(ghost x: int) returns (ghost r: int)
diff --git a/Test/dafny0/Basics.dfy.expect b/Test/dafny0/Basics.dfy.expect new file mode 100644 index 00000000..5fccdb36 --- /dev/null +++ b/Test/dafny0/Basics.dfy.expect @@ -0,0 +1,77 @@ +Basics.dfy(45,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+Basics.dfy(69,42): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon13_Then
+ (0,0): anon14_Then
+ (0,0): anon15_Then
+ Basics.dfy(69,72): anon16_Else
+ Basics.dfy(69,82): anon17_Else
+ Basics.dfy(69,95): anon18_Else
+ (0,0): anon12
+Basics.dfy(113,16): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon10_Then
+Basics.dfy(132,10): Error: when left-hand sides 0 and 1 may refer to the same location, they must be assigned the same value
+Execution trace:
+ (0,0): anon0
+ (0,0): anon10_Then
+ (0,0): anon3
+ (0,0): anon11_Then
+ (0,0): anon6
+ (0,0): anon12_Then
+ (0,0): anon9
+Basics.dfy(146,10): Error: when left-hand sides 0 and 1 refer to the same location, they must be assigned the same value
+Execution trace:
+ (0,0): anon0
+Basics.dfy(158,19): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon11_Then
+Basics.dfy(160,10): Error: assignment may update an object not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3
+Basics.dfy(160,10): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3
+Basics.dfy(165,12): Error: left-hand sides 0 and 1 may refer to the same location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon11_Then
+ (0,0): anon3
+ (0,0): anon12_Then
+Basics.dfy(176,15): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon11_Then
+ (0,0): anon3
+ (0,0): anon12_Else
+ (0,0): anon6
+ (0,0): anon13_Then
+ (0,0): anon8
+ (0,0): anon14_Then
+Basics.dfy(238,10): Error: when left-hand sides 0 and 1 refer to the same location, they must be assigned the same value
+Execution trace:
+ (0,0): anon0
+Basics.dfy(429,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Then
+ (0,0): anon3
+Basics.dfy(440,19): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Else
+Basics.dfy(442,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Then
+ (0,0): anon3
+
+Dafny program verifier finished with 61 verified, 14 errors
diff --git a/Test/dafny0/Calculations.dfy b/Test/dafny0/Calculations.dfy index f10d2e45..c77bced7 100644 --- a/Test/dafny0/Calculations.dfy +++ b/Test/dafny0/Calculations.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint.dfy" "%s" > "%t"; %dafny /noVerify /compile:0 "%t.dprint.dfy" >> "%t" +// RUN: %diff "%s.expect" "%t" + method CalcTest0(s: seq<int>) { calc { s[0]; // error: ill-formed line diff --git a/Test/dafny0/Calculations.dfy.expect b/Test/dafny0/Calculations.dfy.expect new file mode 100644 index 00000000..3f6ef226 --- /dev/null +++ b/Test/dafny0/Calculations.dfy.expect @@ -0,0 +1,28 @@ +Calculations.dfy(6,6): Error: index out of range
+Execution trace:
+ (0,0): anon0
+ (0,0): anon24_Then
+Calculations.dfy(11,15): Error: index out of range
+Execution trace:
+ (0,0): anon0
+ (0,0): anon26_Then
+Calculations.dfy(11,19): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon26_Then
+Calculations.dfy(55,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ Calculations.dfy(50,3): anon5_Else
+Calculations.dfy(78,15): Error: index out of range
+Execution trace:
+ (0,0): anon0
+ (0,0): anon12_Then
+Calculations.dfy(78,19): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon12_Then
+
+Dafny program verifier finished with 9 verified, 6 errors
+
+Dafny program verifier finished with 0 verified, 0 errors
diff --git a/Test/dafny0/CallStmtTests.dfy b/Test/dafny0/CallStmtTests.dfy index 735efe81..67e66b34 100644 --- a/Test/dafny0/CallStmtTests.dfy +++ b/Test/dafny0/CallStmtTests.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
method testing1(t: int)
{
diff --git a/Test/dafny0/CallStmtTests.dfy.expect b/Test/dafny0/CallStmtTests.dfy.expect new file mode 100644 index 00000000..329a702f --- /dev/null +++ b/Test/dafny0/CallStmtTests.dfy.expect @@ -0,0 +1,3 @@ +CallStmtTests.dfy(6,3): Error: LHS of assignment must denote a mutable variable
+CallStmtTests.dfy(17,8): Error: actual out-parameter 0 is required to be a ghost variable
+2 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\CallStmtTests.dfy
diff --git a/Test/dafny0/ChainingDisjointTests.dfy b/Test/dafny0/ChainingDisjointTests.dfy index 17a4fa9f..9d3618ae 100644 --- a/Test/dafny0/ChainingDisjointTests.dfy +++ b/Test/dafny0/ChainingDisjointTests.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
method testing1()
{
diff --git a/Test/dafny0/ChainingDisjointTests.dfy.expect b/Test/dafny0/ChainingDisjointTests.dfy.expect new file mode 100644 index 00000000..4ef2de53 --- /dev/null +++ b/Test/dafny0/ChainingDisjointTests.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 6 verified, 0 errors
diff --git a/Test/dafny0/CoPrefix.dfy b/Test/dafny0/CoPrefix.dfy index 7c010a09..532ac746 100644 --- a/Test/dafny0/CoPrefix.dfy +++ b/Test/dafny0/CoPrefix.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// ----- Stream
codatatype Stream = Nil | Cons(head: int, tail: Stream);
diff --git a/Test/dafny0/CoPrefix.dfy.expect b/Test/dafny0/CoPrefix.dfy.expect new file mode 100644 index 00000000..c2453a09 --- /dev/null +++ b/Test/dafny0/CoPrefix.dfy.expect @@ -0,0 +1,50 @@ +CoPrefix.dfy(164,3): Error BP5003: A postcondition might not hold on this return path.
+CoPrefix.dfy(163,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+CoPrefix.dfy(169,3): Error BP5003: A postcondition might not hold on this return path.
+CoPrefix.dfy(168,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+CoPrefix.dfy(176,5): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+CoPrefix.dfy(63,7): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+ (0,0): anon7_Then
+ (0,0): anon8_Else
+ (0,0): anon9_Then
+CoPrefix.dfy(76,7): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon7_Then
+ (0,0): anon8_Else
+ (0,0): anon9_Then
+CoPrefix.dfy(114,1): Error BP5003: A postcondition might not hold on this return path.
+CoPrefix.dfy(113,11): Related location: This is the postcondition that might not hold.
+CoPrefix.dfy(101,17): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+CoPrefix.dfy(138,25): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon9_Then
+ (0,0): anon10_Then
+CoPrefix.dfy(142,25): Error: assertion violation
+CoPrefix.dfy(117,23): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon9_Then
+ (0,0): anon12_Then
+CoPrefix.dfy(151,1): Error BP5003: A postcondition might not hold on this return path.
+CoPrefix.dfy(150,11): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+
+Dafny program verifier finished with 41 verified, 9 errors
diff --git a/Test/dafny0/CoResolution.dfy b/Test/dafny0/CoResolution.dfy index 14da4493..396d0a6e 100644 --- a/Test/dafny0/CoResolution.dfy +++ b/Test/dafny0/CoResolution.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
module TestModule {
copredicate P(b: bool)
{
diff --git a/Test/dafny0/CoResolution.dfy.expect b/Test/dafny0/CoResolution.dfy.expect new file mode 100644 index 00000000..423bf928 --- /dev/null +++ b/Test/dafny0/CoResolution.dfy.expect @@ -0,0 +1,22 @@ +CoResolution.dfy(17,9): Error: member Undeclared# does not exist in class _default
+CoResolution.dfy(18,4): Error: unresolved identifier: Undeclared#
+CoResolution.dfy(21,7): Error: unresolved identifier: _k
+CoResolution.dfy(39,8): Error: == can only be applied to expressions of types that support equality (got Stream<_T0>)
+CoResolution.dfy(50,8): Error: Assignment to non-ghost variable is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+CoResolution.dfy(67,10): Error: a copredicate is not allowed to declare any reads clause
+CoResolution.dfy(73,31): Error: a copredicate is not allowed to declare any ensures clause
+CoResolution.dfy(82,20): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(86,20): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(95,4): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
+CoResolution.dfy(109,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
+CoResolution.dfy(110,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
+CoResolution.dfy(115,17): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(121,17): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(129,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
+CoResolution.dfy(130,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
+CoResolution.dfy(135,17): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(141,17): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(149,4): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(151,4): Error: a recursive call from a copredicate can go only to other copredicates
+CoResolution.dfy(167,13): Error: a recursive call from a colemma can go only to other colemmas and prefix lemmas
+21 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\CoResolution.dfy
diff --git a/Test/dafny0/Coinductive.dfy b/Test/dafny0/Coinductive.dfy index d6466f73..30ee287b 100644 --- a/Test/dafny0/Coinductive.dfy +++ b/Test/dafny0/Coinductive.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// --------------------------------------------------
module TestInductiveDatatypes
diff --git a/Test/dafny0/Coinductive.dfy.expect b/Test/dafny0/Coinductive.dfy.expect new file mode 100644 index 00000000..ccb24b72 --- /dev/null +++ b/Test/dafny0/Coinductive.dfy.expect @@ -0,0 +1,17 @@ +Coinductive.dfy(13,11): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'Rec_Forever' can be constructed
+Coinductive.dfy(16,11): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'D' can be constructed
+Coinductive.dfy(38,11): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'K' can be constructed
+Coinductive.dfy(64,11): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'NotFiniteEnough_Dt' can be constructed
+Coinductive.dfy(93,8): Error: a copredicate can be called recursively only in positive positions
+Coinductive.dfy(94,8): Error: a copredicate can be called recursively only in positive positions
+Coinductive.dfy(95,8): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(95,21): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(101,5): Error: a copredicate can be called recursively only in positive positions
+Coinductive.dfy(104,27): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(105,28): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(106,17): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(116,24): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(122,15): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(123,10): Error: a copredicate can be called recursively only in positive positions and cannot sit inside an unbounded existential quantifier
+Coinductive.dfy(148,5): Error: a recursive call from a copredicate can go only to other copredicates
+16 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\Coinductive.dfy
diff --git a/Test/dafny0/CoinductiveProofs.dfy b/Test/dafny0/CoinductiveProofs.dfy index d3112233..8ce16419 100644 --- a/Test/dafny0/CoinductiveProofs.dfy +++ b/Test/dafny0/CoinductiveProofs.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
codatatype Stream<T> = Cons(head: T, tail: Stream);
function Upward(n: int): Stream<int>
diff --git a/Test/dafny0/CoinductiveProofs.dfy.expect b/Test/dafny0/CoinductiveProofs.dfy.expect new file mode 100644 index 00000000..12ce2f01 --- /dev/null +++ b/Test/dafny0/CoinductiveProofs.dfy.expect @@ -0,0 +1,50 @@ +CoinductiveProofs.dfy(29,12): Error: assertion violation
+CoinductiveProofs.dfy(13,17): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon6_Then
+CoinductiveProofs.dfy(59,1): Error BP5003: A postcondition might not hold on this return path.
+CoinductiveProofs.dfy(58,11): Related location: This is the postcondition that might not hold.
+CoinductiveProofs.dfy(54,3): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+CoinductiveProofs.dfy(74,12): Error: assertion violation
+CoinductiveProofs.dfy(54,3): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon6_Then
+CoinductiveProofs.dfy(91,1): Error BP5003: A postcondition might not hold on this return path.
+CoinductiveProofs.dfy(90,11): Related location: This is the postcondition that might not hold.
+CoinductiveProofs.dfy(80,3): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+CoinductiveProofs.dfy(100,12): Error: assertion violation
+CoinductiveProofs.dfy(80,3): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon6_Then
+CoinductiveProofs.dfy(111,1): Error BP5003: A postcondition might not hold on this return path.
+CoinductiveProofs.dfy(110,11): Related location: This is the postcondition that might not hold.
+CoinductiveProofs.dfy(106,3): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+CoinductiveProofs.dfy(150,1): Error BP5003: A postcondition might not hold on this return path.
+CoinductiveProofs.dfy(149,22): Related location: This is the postcondition that might not hold.
+CoinductiveProofs.dfy(4,24): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+CoinductiveProofs.dfy(156,1): Error BP5003: A postcondition might not hold on this return path.
+CoinductiveProofs.dfy(155,22): Related location: This is the postcondition that might not hold.
+CoinductiveProofs.dfy(4,24): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+
+Dafny program verifier finished with 35 verified, 8 errors
diff --git a/Test/dafny0/Compilation.dfy b/Test/dafny0/Compilation.dfy index 27691178..2bff422f 100644 --- a/Test/dafny0/Compilation.dfy +++ b/Test/dafny0/Compilation.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// The tests in this file are designed to run through the compiler. They contain
// program snippets that are tricky to compile or whose compilation once was buggy.
diff --git a/Test/dafny0/Compilation.dfy.expect b/Test/dafny0/Compilation.dfy.expect new file mode 100644 index 00000000..af8ed2fc --- /dev/null +++ b/Test/dafny0/Compilation.dfy.expect @@ -0,0 +1,3 @@ +
+Dafny program verifier finished with 44 verified, 0 errors
+Compiled assembly into Compilation.exe
diff --git a/Test/dafny0/CompilationErrors.dfy b/Test/dafny0/CompilationErrors.dfy index 205b2296..2f3325a1 100644 --- a/Test/dafny0/CompilationErrors.dfy +++ b/Test/dafny0/CompilationErrors.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
type MyType // compile error: arbitrary type
iterator Iter() // compile error: body-less iterator
ghost method M() // compile error: body-less ghost method
diff --git a/Test/dafny0/CompilationErrors.dfy.expect b/Test/dafny0/CompilationErrors.dfy.expect new file mode 100644 index 00000000..e0c7f11c --- /dev/null +++ b/Test/dafny0/CompilationErrors.dfy.expect @@ -0,0 +1,13 @@ +
+Dafny program verifier finished with 15 verified, 0 errors
+Compilation error: Arbitrary type ('_module.MyType') cannot be compiled
+Compilation error: Iterator _module.Iter has no body
+Compilation error: Method _module._default.M has no body
+Compilation error: Method _module._default.P has no body
+Compilation error: an assume statement cannot be compiled (line 11)
+Compilation error: Function _module._default.F has no body
+Compilation error: Function _module._default.H has no body
+Compilation error: an assume statement cannot be compiled (line 20)
+Compilation error: an assume statement cannot be compiled (line 23)
+Compilation error: an assume statement cannot be compiled (line 28)
+Compilation error: an assume statement cannot be compiled (line 37)
diff --git a/Test/dafny0/Comprehensions.dfy b/Test/dafny0/Comprehensions.dfy index 24015fc6..70a7820e 100644 --- a/Test/dafny0/Comprehensions.dfy +++ b/Test/dafny0/Comprehensions.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
method M()
{
var numbers := set i | 0 <= i && i < 100;
diff --git a/Test/dafny0/Comprehensions.dfy.expect b/Test/dafny0/Comprehensions.dfy.expect new file mode 100644 index 00000000..88873fd8 --- /dev/null +++ b/Test/dafny0/Comprehensions.dfy.expect @@ -0,0 +1,11 @@ +Comprehensions.dfy(12,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon9_Then
+ (0,0): anon10_Then
+ (0,0): anon4
+ (0,0): anon11_Then
+ (0,0): anon12_Then
+ (0,0): anon8
+
+Dafny program verifier finished with 6 verified, 1 error
diff --git a/Test/dafny0/Computations.dfy b/Test/dafny0/Computations.dfy index 0481fe96..8050aded 100644 --- a/Test/dafny0/Computations.dfy +++ b/Test/dafny0/Computations.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
function fact6(n: nat): nat
{
fact(n+6)
diff --git a/Test/dafny0/Computations.dfy.expect b/Test/dafny0/Computations.dfy.expect new file mode 100644 index 00000000..85c793d4 --- /dev/null +++ b/Test/dafny0/Computations.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 58 verified, 0 errors
diff --git a/Test/dafny0/ComputationsNeg.dfy b/Test/dafny0/ComputationsNeg.dfy index b225a210..12a4353d 100644 --- a/Test/dafny0/ComputationsNeg.dfy +++ b/Test/dafny0/ComputationsNeg.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
function bad(n: nat): nat
decreases n;
{
diff --git a/Test/dafny0/ComputationsNeg.dfy.expect b/Test/dafny0/ComputationsNeg.dfy.expect new file mode 100644 index 00000000..16c8963f --- /dev/null +++ b/Test/dafny0/ComputationsNeg.dfy.expect @@ -0,0 +1,20 @@ +ComputationsNeg.dfy(7,3): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+ComputationsNeg.dfy(11,1): Error BP5003: A postcondition might not hold on this return path.
+ComputationsNeg.dfy(10,17): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ComputationsNeg.dfy(23,1): Error BP5003: A postcondition might not hold on this return path.
+ComputationsNeg.dfy(22,11): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ComputationsNeg.dfy(36,13): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ComputationsNeg.dfy(45,13): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 7 verified, 5 errors
diff --git a/Test/dafny0/ControlStructures.dfy b/Test/dafny0/ControlStructures.dfy index 95aff80e..8300c160 100644 --- a/Test/dafny0/ControlStructures.dfy +++ b/Test/dafny0/ControlStructures.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
datatype D = Green | Blue | Red | Purple;
method M0(d: D)
diff --git a/Test/dafny0/ControlStructures.dfy.expect b/Test/dafny0/ControlStructures.dfy.expect new file mode 100644 index 00000000..633fc692 --- /dev/null +++ b/Test/dafny0/ControlStructures.dfy.expect @@ -0,0 +1,122 @@ +ControlStructures.dfy(8,3): Error: missing case in case statement: Purple
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+ (0,0): anon7_Else
+ (0,0): anon8_Then
+ControlStructures.dfy(8,3): Error: missing case in case statement: Blue
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+ (0,0): anon7_Else
+ (0,0): anon8_Else
+ (0,0): anon9_Then
+ControlStructures.dfy(17,3): Error: missing case in case statement: Purple
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+ (0,0): anon7_Else
+ (0,0): anon8_Then
+ControlStructures.dfy(46,5): Error: missing case in case statement: Red
+Execution trace:
+ (0,0): anon0
+ (0,0): anon8_Then
+ (0,0): anon9_Else
+ (0,0): anon10_Then
+ControlStructures.dfy(54,3): Error: missing case in case statement: Red
+Execution trace:
+ (0,0): anon0
+ (0,0): anon8_Else
+ (0,0): anon9_Else
+ (0,0): anon10_Else
+ (0,0): anon11_Else
+ (0,0): anon12_Then
+ControlStructures.dfy(75,3): Error: alternative cases fail to cover all possibilties
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ControlStructures.dfy(218,18): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ ControlStructures.dfy(197,3): anon59_LoopHead
+ (0,0): anon59_LoopBody
+ ControlStructures.dfy(197,3): anon60_Else
+ ControlStructures.dfy(197,3): anon61_Else
+ ControlStructures.dfy(201,5): anon62_LoopHead
+ (0,0): anon62_LoopBody
+ ControlStructures.dfy(201,5): anon63_Else
+ ControlStructures.dfy(201,5): anon64_Else
+ (0,0): anon68_Then
+ ControlStructures.dfy(213,9): anon69_LoopHead
+ (0,0): anon69_LoopBody
+ ControlStructures.dfy(213,9): anon70_Else
+ (0,0): anon71_Then
+ControlStructures.dfy(235,21): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ ControlStructures.dfy(197,3): anon59_LoopHead
+ (0,0): anon59_LoopBody
+ ControlStructures.dfy(197,3): anon60_Else
+ ControlStructures.dfy(197,3): anon61_Else
+ ControlStructures.dfy(201,5): anon62_LoopHead
+ (0,0): anon62_LoopBody
+ ControlStructures.dfy(201,5): anon63_Else
+ ControlStructures.dfy(201,5): anon64_Else
+ (0,0): anon68_Then
+ ControlStructures.dfy(213,9): anon69_LoopHead
+ (0,0): anon69_LoopBody
+ ControlStructures.dfy(213,9): anon70_Else
+ ControlStructures.dfy(213,9): anon71_Else
+ (0,0): anon72_Then
+ (0,0): after_4
+ ControlStructures.dfy(224,7): anon74_LoopHead
+ (0,0): anon74_LoopBody
+ ControlStructures.dfy(224,7): anon75_Else
+ ControlStructures.dfy(224,7): anon76_Else
+ (0,0): anon78_Then
+ (0,0): anon38
+ (0,0): anon83_Then
+ (0,0): anon52
+ControlStructures.dfy(238,30): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ ControlStructures.dfy(197,3): anon59_LoopHead
+ (0,0): anon59_LoopBody
+ ControlStructures.dfy(197,3): anon60_Else
+ ControlStructures.dfy(197,3): anon61_Else
+ ControlStructures.dfy(201,5): anon62_LoopHead
+ (0,0): anon62_LoopBody
+ ControlStructures.dfy(201,5): anon63_Else
+ ControlStructures.dfy(201,5): anon64_Else
+ (0,0): anon65_Then
+ (0,0): anon84_Then
+ (0,0): anon85_Then
+ (0,0): anon56
+ControlStructures.dfy(241,17): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ ControlStructures.dfy(197,3): anon59_LoopHead
+ (0,0): anon59_LoopBody
+ ControlStructures.dfy(197,3): anon60_Else
+ ControlStructures.dfy(197,3): anon61_Else
+ ControlStructures.dfy(201,5): anon62_LoopHead
+ (0,0): anon62_LoopBody
+ ControlStructures.dfy(201,5): anon63_Else
+ ControlStructures.dfy(201,5): anon64_Else
+ (0,0): anon68_Then
+ ControlStructures.dfy(213,9): anon69_LoopHead
+ (0,0): anon69_LoopBody
+ ControlStructures.dfy(213,9): anon70_Else
+ ControlStructures.dfy(213,9): anon71_Else
+ (0,0): anon72_Then
+ (0,0): after_4
+ ControlStructures.dfy(224,7): anon74_LoopHead
+ (0,0): anon74_LoopBody
+ ControlStructures.dfy(224,7): anon75_Else
+ ControlStructures.dfy(224,7): anon76_Else
+ (0,0): anon79_Then
+ (0,0): anon82_Then
+ (0,0): anon86_Then
+ (0,0): anon58
+
+Dafny program verifier finished with 22 verified, 10 errors
diff --git a/Test/dafny0/Corecursion.dfy b/Test/dafny0/Corecursion.dfy index 3a6fc976..1295da96 100644 --- a/Test/dafny0/Corecursion.dfy +++ b/Test/dafny0/Corecursion.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
// --------------------------------------------------
diff --git a/Test/dafny0/Corecursion.dfy.expect b/Test/dafny0/Corecursion.dfy.expect new file mode 100644 index 00000000..e30f6f1a --- /dev/null +++ b/Test/dafny0/Corecursion.dfy.expect @@ -0,0 +1,36 @@ +Corecursion.dfy(17,13): Error: cannot prove termination; try supplying a decreases clause (note that only functions without side effects can be called co-recursively)
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+Corecursion.dfy(23,13): Error: cannot prove termination; try supplying a decreases clause (note that only functions without any ensures clause can be called co-recursively)
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+Corecursion.dfy(58,5): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+Corecursion.dfy(71,16): Error: cannot prove termination; try supplying a decreases clause (note that calls cannot be co-recursive in this context)
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+Corecursion.dfy(93,15): Error: cannot prove termination; try supplying a decreases clause (note that a call can be co-recursive only if all intra-cluster calls are in non-destructive contexts)
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Then
+Corecursion.dfy(103,15): Error: cannot prove termination; try supplying a decreases clause (note that a call can be co-recursive only if all intra-cluster calls are in non-destructive contexts)
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Then
+Corecursion.dfy(148,13): Error: failure to decrease termination measure (note that a call can be co-recursive only if all intra-cluster calls are in non-destructive contexts)
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+Corecursion.dfy(161,13): Error: failure to decrease termination measure (note that a call can be co-recursive only if all intra-cluster calls are in non-destructive contexts)
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+
+Dafny program verifier finished with 20 verified, 8 errors
diff --git a/Test/dafny0/DTypes.dfy b/Test/dafny0/DTypes.dfy index 55d107c5..e5f039b3 100644 --- a/Test/dafny0/DTypes.dfy +++ b/Test/dafny0/DTypes.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class C {
var n: set<Node>;
diff --git a/Test/dafny0/DTypes.dfy.expect b/Test/dafny0/DTypes.dfy.expect new file mode 100644 index 00000000..d7a3a029 --- /dev/null +++ b/Test/dafny0/DTypes.dfy.expect @@ -0,0 +1,27 @@ +DTypes.dfy(18,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+DTypes.dfy(56,18): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+DTypes.dfy(120,13): Error: assertion violation
+DTypes.dfy(92,30): Related location
+Execution trace:
+ (0,0): anon0
+DTypes.dfy(126,13): Error: assertion violation
+DTypes.dfy(92,20): Related location
+Execution trace:
+ (0,0): anon0
+DTypes.dfy(136,12): Error: assertion violation
+DTypes.dfy(131,6): Related location
+DTypes.dfy(92,20): Related location
+Execution trace:
+ (0,0): anon0
+DTypes.dfy(157,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon6_Then
+ (0,0): anon4
+
+Dafny program verifier finished with 27 verified, 6 errors
diff --git a/Test/dafny0/DatatypeUpdate.dfy b/Test/dafny0/DatatypeUpdate.dfy index d78b453c..09f07dd3 100644 --- a/Test/dafny0/DatatypeUpdate.dfy +++ b/Test/dafny0/DatatypeUpdate.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
datatype MyDataType = MyConstructor(myint:int, mybool:bool)
| MyOtherConstructor(otherbool:bool)
diff --git a/Test/dafny0/DatatypeUpdate.dfy.expect b/Test/dafny0/DatatypeUpdate.dfy.expect new file mode 100644 index 00000000..069e7767 --- /dev/null +++ b/Test/dafny0/DatatypeUpdate.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 2 verified, 0 errors
diff --git a/Test/dafny0/Datatypes.dfy b/Test/dafny0/Datatypes.dfy index 11646695..488f6056 100644 --- a/Test/dafny0/Datatypes.dfy +++ b/Test/dafny0/Datatypes.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
datatype List<T> = Nil | Cons(T, List<T>);
class Node {
diff --git a/Test/dafny0/Datatypes.dfy.expect b/Test/dafny0/Datatypes.dfy.expect new file mode 100644 index 00000000..f6b51252 --- /dev/null +++ b/Test/dafny0/Datatypes.dfy.expect @@ -0,0 +1,71 @@ +Datatypes.dfy(297,10): Error BP5003: A postcondition might not hold on this return path.
+Datatypes.dfy(295,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon13_Then
+ (0,0): anon14_Else
+ (0,0): anon15_Then
+ (0,0): anon6
+Datatypes.dfy(298,12): Error: missing case in case statement: Appendix
+Execution trace:
+ (0,0): anon0
+ (0,0): anon13_Then
+ (0,0): anon14_Else
+ (0,0): anon15_Else
+ (0,0): anon16_Then
+Datatypes.dfy(349,5): Error: missing case in case statement: Cons
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+ (0,0): anon7_Then
+Datatypes.dfy(349,5): Error: missing case in case statement: Nil
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+ (0,0): anon7_Else
+ (0,0): anon8_Then
+Datatypes.dfy(356,8): Error: missing case in case statement: Cons
+Execution trace:
+ (0,0): anon0
+ (0,0): anon9_Else
+ (0,0): anon10_Then
+ (0,0): anon11_Then
+Datatypes.dfy(356,8): Error: missing case in case statement: Nil
+Execution trace:
+ (0,0): anon0
+ (0,0): anon9_Else
+ (0,0): anon10_Then
+ (0,0): anon11_Else
+ (0,0): anon12_Then
+Datatypes.dfy(82,20): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon20_Else
+ (0,0): anon21_Then
+ (0,0): anon4
+ (0,0): anon22_Else
+ (0,0): anon23_Then
+ (0,0): anon24_Else
+ (0,0): anon25_Then
+Datatypes.dfy(170,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Then
+Datatypes.dfy(172,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Else
+ (0,0): anon5_Then
+Datatypes.dfy(201,13): Error: destructor 'Car' can only be applied to datatype values constructed by 'XCons'
+Execution trace:
+ (0,0): anon0
+Datatypes.dfy(204,17): Error: destructor 'Car' can only be applied to datatype values constructed by 'XCons'
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Then
+Datatypes.dfy(225,17): Error: destructor 'c' can only be applied to datatype values constructed by 'T''
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+
+Dafny program verifier finished with 44 verified, 12 errors
diff --git a/Test/dafny0/Definedness.dfy b/Test/dafny0/Definedness.dfy index af078003..67cfa710 100644 --- a/Test/dafny0/Definedness.dfy +++ b/Test/dafny0/Definedness.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// ----------------- wellformed specifications ----------------------
class SoWellformed {
diff --git a/Test/dafny0/Definedness.dfy.expect b/Test/dafny0/Definedness.dfy.expect new file mode 100644 index 00000000..41073c0e --- /dev/null +++ b/Test/dafny0/Definedness.dfy.expect @@ -0,0 +1,179 @@ +Definedness.dfy(11,7): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+Definedness.dfy(18,16): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(27,16): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(28,21): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+Definedness.dfy(29,17): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(36,16): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(45,16): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(53,18): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(54,3): Error BP5003: A postcondition might not hold on this return path.
+Definedness.dfy(53,22): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(60,18): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(61,3): Error BP5003: A postcondition might not hold on this return path.
+Definedness.dfy(60,22): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(68,3): Error BP5003: A postcondition might not hold on this return path.
+Definedness.dfy(67,22): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(88,7): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(89,5): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(89,10): Error: assignment may update an object not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(89,10): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(90,10): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(95,14): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(95,23): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(96,15): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(101,12): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(108,15): Error: possible division by zero
+Execution trace:
+ Definedness.dfy(108,5): anon7_LoopHead
+ (0,0): anon7_LoopBody
+ Definedness.dfy(108,5): anon8_Else
+Definedness.dfy(117,23): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
+Execution trace:
+ (0,0): anon0
+ Definedness.dfy(116,5): anon12_LoopHead
+ (0,0): anon12_LoopBody
+ (0,0): anon13_Then
+Definedness.dfy(123,17): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
+Execution trace:
+ (0,0): anon0
+ Definedness.dfy(116,5): anon12_LoopHead
+ (0,0): anon12_LoopBody
+ Definedness.dfy(116,5): anon13_Else
+ (0,0): anon14_Then
+ Definedness.dfy(122,5): anon15_LoopHead
+ (0,0): anon15_LoopBody
+ (0,0): anon16_Then
+Definedness.dfy(133,17): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
+Execution trace:
+ (0,0): anon0
+ Definedness.dfy(132,5): anon6_LoopHead
+ (0,0): anon6_LoopBody
+ (0,0): anon7_Then
+Definedness.dfy(133,22): Error BP5004: This loop invariant might not hold on entry.
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(134,17): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
+Execution trace:
+ (0,0): anon0
+ Definedness.dfy(132,5): anon6_LoopHead
+ (0,0): anon6_LoopBody
+ (0,0): anon7_Then
+Definedness.dfy(143,15): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+ Definedness.dfy(143,5): anon8_LoopHead
+ (0,0): anon8_LoopBody
+ Definedness.dfy(143,5): anon9_Else
+Definedness.dfy(162,15): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+ Definedness.dfy(156,5): anon16_LoopHead
+ (0,0): anon16_LoopBody
+ Definedness.dfy(156,5): anon17_Else
+ (0,0): anon18_Then
+ (0,0): anon5
+ (0,0): anon19_Then
+ Definedness.dfy(162,5): anon20_LoopHead
+ (0,0): anon20_LoopBody
+ Definedness.dfy(162,5): anon21_Else
+Definedness.dfy(175,28): Error BP5004: This loop invariant might not hold on entry.
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(181,17): Error: possible violation of function precondition
+Definedness.dfy(79,16): Related location
+Execution trace:
+ (0,0): anon0
+ Definedness.dfy(173,5): anon18_LoopHead
+ (0,0): anon18_LoopBody
+ Definedness.dfy(173,5): anon19_Else
+ (0,0): anon20_Then
+ Definedness.dfy(180,5): anon21_LoopHead
+ (0,0): anon21_LoopBody
+ (0,0): anon22_Then
+ (0,0): anon23_Then
+ (0,0): anon11
+Definedness.dfy(196,19): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+ Definedness.dfy(194,5): anon6_LoopHead
+ (0,0): anon6_LoopBody
+ (0,0): anon7_Then
+Definedness.dfy(196,23): Error BP5004: This loop invariant might not hold on entry.
+Execution trace:
+ (0,0): anon0
+Definedness.dfy(196,28): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+ Definedness.dfy(194,5): anon6_LoopHead
+ (0,0): anon6_LoopBody
+ (0,0): anon7_Then
+Definedness.dfy(215,10): Error BP5003: A postcondition might not hold on this return path.
+Definedness.dfy(217,46): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+Definedness.dfy(224,22): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon2
+ (0,0): anon6_Then
+Definedness.dfy(237,10): Error BP5003: A postcondition might not hold on this return path.
+Definedness.dfy(240,24): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon7_Then
+ (0,0): anon2
+ (0,0): anon8_Else
+
+Dafny program verifier finished with 21 verified, 37 errors
diff --git a/Test/dafny0/EqualityTypes.dfy b/Test/dafny0/EqualityTypes.dfy index c24e1de2..a327fd1d 100644 --- a/Test/dafny0/EqualityTypes.dfy +++ b/Test/dafny0/EqualityTypes.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
module A {
datatype Explicit<T(==)> = Nil | Cons(set<T>, Explicit<T>);
datatype Inferred<T> = Nil | Cons(set<T>, Inferred<T>);
diff --git a/Test/dafny0/EqualityTypes.dfy.expect b/Test/dafny0/EqualityTypes.dfy.expect new file mode 100644 index 00000000..4504b114 --- /dev/null +++ b/Test/dafny0/EqualityTypes.dfy.expect @@ -0,0 +1,12 @@ +EqualityTypes.dfy(34,13): Error: a type declaration that requires equality support cannot be replaced by a codatatype
+EqualityTypes.dfy(35,11): Error: datatype 'Y' is used to refine an arbitrary type with equality support, but 'Y' does not support equality
+EqualityTypes.dfy(40,11): Error: arbitrary type 'X' is not allowed to be replaced by a datatype that takes a different number of type parameters
+EqualityTypes.dfy(41,8): Error: arbitrary type 'Y' is not allowed to be replaced by a class that takes a different number of type parameters
+EqualityTypes.dfy(45,11): Error: datatype 'X' is used to refine an arbitrary type with equality support, but 'X' does not support equality
+EqualityTypes.dfy(46,11): Error: datatype 'Y' is used to refine an arbitrary type with equality support, but 'Y' does not support equality
+EqualityTypes.dfy(66,7): Error: == can only be applied to expressions of types that support equality (got Dt<T>)
+EqualityTypes.dfy(85,8): Error: type parameter 0 (T) passed to method M must support equality (got _T0)
+EqualityTypes.dfy(109,7): Error: == can only be applied to expressions of types that support equality (got D)
+EqualityTypes.dfy(114,13): Error: == can only be applied to expressions of types that support equality (got D)
+EqualityTypes.dfy(118,16): Error: == can only be applied to expressions of types that support equality (got D)
+11 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\EqualityTypes.dfy
diff --git a/Test/dafny0/FunctionSpecifications.dfy b/Test/dafny0/FunctionSpecifications.dfy index b3c6c7bc..f78f1cc1 100644 --- a/Test/dafny0/FunctionSpecifications.dfy +++ b/Test/dafny0/FunctionSpecifications.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
function Fib(n: int): int
requires 0 <= n;
ensures 0 <= Fib(n);
diff --git a/Test/dafny0/FunctionSpecifications.dfy.expect b/Test/dafny0/FunctionSpecifications.dfy.expect new file mode 100644 index 00000000..545289b8 --- /dev/null +++ b/Test/dafny0/FunctionSpecifications.dfy.expect @@ -0,0 +1,77 @@ +FunctionSpecifications.dfy(35,25): Error BP5003: A postcondition might not hold on this return path.
+FunctionSpecifications.dfy(31,13): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon8_Else
+ (0,0): anon9_Else
+ (0,0): anon10_Then
+ (0,0): anon11_Else
+FunctionSpecifications.dfy(45,3): Error BP5003: A postcondition might not hold on this return path.
+FunctionSpecifications.dfy(40,24): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon11_Else
+ (0,0): anon14_Else
+ (0,0): anon15_Then
+FunctionSpecifications.dfy(53,11): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon8_Then
+ (0,0): anon3
+FunctionSpecifications.dfy(59,10): Error BP5003: A postcondition might not hold on this return path.
+FunctionSpecifications.dfy(60,22): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+FunctionSpecifications.dfy(108,23): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+FunctionSpecifications.dfy(111,23): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+FunctionSpecifications.dfy(126,27): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+FunctionSpecifications.dfy(130,27): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+FunctionSpecifications.dfy(153,15): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+FunctionSpecifications.dfy(165,3): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+FunctionSpecifications.dfy(172,15): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+FunctionSpecifications.dfy(181,3): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+FunctionSpecifications.dfy(135,20): Error BP5003: A postcondition might not hold on this return path.
+FunctionSpecifications.dfy(137,29): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon2
+ (0,0): anon6_Else
+FunctionSpecifications.dfy(146,3): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+FunctionSpecifications.dfy(160,3): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+FunctionSpecifications.dfy(188,3): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+FunctionSpecifications.dfy(185,20): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 19 verified, 17 errors
diff --git a/Test/dafny0/Include.dfy b/Test/dafny0/Include.dfy index 00458dc3..87fab7bb 100644 --- a/Test/dafny0/Include.dfy +++ b/Test/dafny0/Include.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
include "Includee.dfy"
diff --git a/Test/dafny0/Include.dfy.expect b/Test/dafny0/Include.dfy.expect new file mode 100644 index 00000000..cb329398 --- /dev/null +++ b/Test/dafny0/Include.dfy.expect @@ -0,0 +1,15 @@ +Include.dfy(19,19): Error BP5003: A postcondition might not hold on this return path.
+Includee.dfy(17,20): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+Includee.dfy[Concrete](22,16): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+Include.dfy(27,7): Error BP5003: A postcondition might not hold on this return path.
+Includee.dfy[Concrete](20,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Then
+
+Dafny program verifier finished with 4 verified, 3 errors
diff --git a/Test/dafny0/Includee.dfy b/Test/dafny0/Includee.dfy index 6d2e17e0..70e42a1b 100644 --- a/Test/dafny0/Includee.dfy +++ b/Test/dafny0/Includee.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
method m_unproven(x:int) returns (y:int)
ensures y == 2*x;
diff --git a/Test/dafny0/Includee.dfy.expect b/Test/dafny0/Includee.dfy.expect new file mode 100644 index 00000000..e0f0689c --- /dev/null +++ b/Test/dafny0/Includee.dfy.expect @@ -0,0 +1,13 @@ +Includee.dfy(21,3): Error BP5003: A postcondition might not hold on this return path.
+Includee.dfy(20,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+Includee.dfy(24,18): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+Includee.dfy(6,1): Error BP5003: A postcondition might not hold on this return path.
+Includee.dfy(5,13): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 5 verified, 3 errors
diff --git a/Test/dafny0/IteratorResolution.dfy b/Test/dafny0/IteratorResolution.dfy index 004bc85e..366cdfcc 100644 --- a/Test/dafny0/IteratorResolution.dfy +++ b/Test/dafny0/IteratorResolution.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
iterator MyIter()
module Mx {
diff --git a/Test/dafny0/IteratorResolution.dfy.expect b/Test/dafny0/IteratorResolution.dfy.expect new file mode 100644 index 00000000..25890cd9 --- /dev/null +++ b/Test/dafny0/IteratorResolution.dfy.expect @@ -0,0 +1,13 @@ +IteratorResolution.dfy(62,9): Error: LHS of assignment must denote a mutable field
+IteratorResolution.dfy(67,18): Error: arguments must have the same type (got _T0 and int)
+IteratorResolution.dfy(79,19): Error: RHS (of type bool) not assignable to LHS (of type int)
+IteratorResolution.dfy(82,13): Error: when allocating an object of type 'GenericIteratorResult', one of its constructor methods must be called
+IteratorResolution.dfy(86,15): Error: logical negation expects a boolean argument (instead got int)
+IteratorResolution.dfy(20,9): Error: LHS of assignment must denote a mutable field
+IteratorResolution.dfy(22,9): Error: LHS of assignment must denote a mutable field
+IteratorResolution.dfy(126,9): Error: unresolved identifier: _decreases3
+IteratorResolution.dfy(127,21): Error: arguments must have the same type (got int and ?)
+IteratorResolution.dfy(128,2): Error: LHS of assignment must denote a mutable field
+IteratorResolution.dfy(135,9): Error: unresolved identifier: _decreases1
+IteratorResolution.dfy(140,9): Error: unresolved identifier: _decreases0
+12 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\IteratorResolution.dfy
diff --git a/Test/dafny0/Iterators.dfy b/Test/dafny0/Iterators.dfy index f4d36762..14a71178 100644 --- a/Test/dafny0/Iterators.dfy +++ b/Test/dafny0/Iterators.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
iterator MyIter<T>(q: T) yields (x: T, y: T)
{
}
diff --git a/Test/dafny0/Iterators.dfy.expect b/Test/dafny0/Iterators.dfy.expect new file mode 100644 index 00000000..0087691b --- /dev/null +++ b/Test/dafny0/Iterators.dfy.expect @@ -0,0 +1,103 @@ +Iterators.dfy(251,9): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Else
+Iterators.dfy(274,9): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Else
+Iterators.dfy(284,24): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+Iterators.dfy(296,9): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Else
+Iterators.dfy(317,9): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Else
+Iterators.dfy(326,24): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+Iterators.dfy(343,9): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Else
+Iterators.dfy(353,24): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+Iterators.dfy(370,9): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Else
+Iterators.dfy(103,22): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+Iterators.dfy(106,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Then
+ (0,0): anon3
+Iterators.dfy(177,28): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon15_Then
+Iterators.dfy(208,7): Error: an assignment to _new is only allowed to shrink the set
+Execution trace:
+ (0,0): anon0
+ Iterators.dfy(197,3): anon16_LoopHead
+ (0,0): anon16_LoopBody
+ Iterators.dfy(197,3): anon17_Else
+ Iterators.dfy(197,3): anon19_Else
+ (0,0): anon20_Then
+Iterators.dfy(212,21): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ Iterators.dfy(197,3): anon16_LoopHead
+ (0,0): anon16_LoopBody
+ Iterators.dfy(197,3): anon17_Else
+ Iterators.dfy(197,3): anon19_Else
+ (0,0): anon21_Then
+Iterators.dfy(40,14): Error BP5002: A precondition for this call might not hold.
+Iterators.dfy(4,10): Related location: This is the precondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon35_Then
+ (0,0): anon2
+ (0,0): anon36_Then
+ (0,0): anon5
+ (0,0): anon37_Then
+Iterators.dfy(89,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+Iterators.dfy(119,16): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+Iterators.dfy(150,16): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Else
+Iterators.dfy(155,16): Error BP5002: A precondition for this call might not hold.
+Iterators.dfy(125,10): Related location: This is the precondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Then
+ (0,0): anon3
+Iterators.dfy(234,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ Iterators.dfy(225,3): anon14_LoopHead
+ (0,0): anon14_LoopBody
+ Iterators.dfy(225,3): anon15_Else
+ Iterators.dfy(225,3): anon18_Else
+ (0,0): anon19_Else
+
+Dafny program verifier finished with 65 verified, 20 errors
diff --git a/Test/dafny0/LetExpr.dfy b/Test/dafny0/LetExpr.dfy index 77bb4fad..dfa09b1e 100644 --- a/Test/dafny0/LetExpr.dfy +++ b/Test/dafny0/LetExpr.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint.dfy" "%s" > "%t"; %dafny /noVerify /compile:0 "%t.dprint.dfy" >> "%t"
+// RUN: %diff "%s.expect" "%t"
+
method M0(n: int)
requires var f := 100; n < f; requires var t, f := true, false; (t && f) || n < 100;
{
diff --git a/Test/dafny0/LetExpr.dfy.expect b/Test/dafny0/LetExpr.dfy.expect new file mode 100644 index 00000000..11a7aebe --- /dev/null +++ b/Test/dafny0/LetExpr.dfy.expect @@ -0,0 +1,35 @@ +LetExpr.dfy(8,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+LetExpr.dfy(107,21): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon11_Then
+LetExpr.dfy(251,19): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+LetExpr.dfy(254,19): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Then
+LetExpr.dfy(256,24): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+LetExpr.dfy(285,14): Error: RHS is not certain to look like the pattern 'Agnes'
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+LetExpr.dfy(302,42): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+LetExpr.dfy(304,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+
+Dafny program verifier finished with 38 verified, 8 errors
+
+Dafny program verifier finished with 0 verified, 0 errors
diff --git a/Test/dafny0/LiberalEquality.dfy b/Test/dafny0/LiberalEquality.dfy index b9b4629b..1020df26 100644 --- a/Test/dafny0/LiberalEquality.dfy +++ b/Test/dafny0/LiberalEquality.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
class Array<T>
{
diff --git a/Test/dafny0/LiberalEquality.dfy.expect b/Test/dafny0/LiberalEquality.dfy.expect new file mode 100644 index 00000000..1af19a3f --- /dev/null +++ b/Test/dafny0/LiberalEquality.dfy.expect @@ -0,0 +1,4 @@ +LiberalEquality.dfy(20,14): Error: arguments must have the same type (got T and U)
+LiberalEquality.dfy(39,14): Error: arguments must have the same type (got Weird<T,int,V> and Weird<T,bool,V>)
+LiberalEquality.dfy(54,14): Error: arguments must have the same type (got array<int> and array<bool>)
+3 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\LiberalEquality.dfy
diff --git a/Test/dafny0/LoopModifies.dfy b/Test/dafny0/LoopModifies.dfy index 1757836f..5c258fde 100644 --- a/Test/dafny0/LoopModifies.dfy +++ b/Test/dafny0/LoopModifies.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
// regular modifies sanity test:
method Testing1(a: array<int>)
@@ -315,4 +317,4 @@ method Testing12(a: Elem, b: Elem, c: Elem) S := S - {j};
i := i + 1;
}
-}
\ No newline at end of file +}
diff --git a/Test/dafny0/LoopModifies.dfy.expect b/Test/dafny0/LoopModifies.dfy.expect new file mode 100644 index 00000000..682975fb --- /dev/null +++ b/Test/dafny0/LoopModifies.dfy.expect @@ -0,0 +1,65 @@ +LoopModifies.dfy(8,5): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+LoopModifies.dfy(19,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ LoopModifies.dfy(16,4): anon8_LoopHead
+ (0,0): anon8_LoopBody
+ LoopModifies.dfy(16,4): anon9_Else
+ LoopModifies.dfy(16,4): anon11_Else
+LoopModifies.dfy(48,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ LoopModifies.dfy(44,4): anon8_LoopHead
+ (0,0): anon8_LoopBody
+ LoopModifies.dfy(44,4): anon9_Else
+ LoopModifies.dfy(44,4): anon11_Else
+LoopModifies.dfy(63,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ LoopModifies.dfy(59,4): anon9_LoopHead
+ (0,0): anon9_LoopBody
+ LoopModifies.dfy(59,4): anon10_Else
+ LoopModifies.dfy(59,4): anon12_Else
+LoopModifies.dfy(76,4): Error: loop modifies clause may violate context's modifies clause
+Execution trace:
+ (0,0): anon0
+LoopModifies.dfy(100,8): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ LoopModifies.dfy(92,4): anon8_LoopHead
+ (0,0): anon8_LoopBody
+ LoopModifies.dfy(92,4): anon9_Else
+ LoopModifies.dfy(92,4): anon11_Else
+LoopModifies.dfy(148,11): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ LoopModifies.dfy(136,4): anon17_LoopHead
+ (0,0): anon17_LoopBody
+ LoopModifies.dfy(136,4): anon18_Else
+ LoopModifies.dfy(136,4): anon20_Else
+ LoopModifies.dfy(141,7): anon21_LoopHead
+ (0,0): anon21_LoopBody
+ LoopModifies.dfy(141,7): anon22_Else
+ LoopModifies.dfy(141,7): anon24_Else
+LoopModifies.dfy(199,10): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ LoopModifies.dfy(195,4): anon8_LoopHead
+ (0,0): anon8_LoopBody
+ LoopModifies.dfy(195,4): anon9_Else
+ LoopModifies.dfy(195,4): anon11_Else
+LoopModifies.dfy(287,13): Error: assignment may update an array element not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ LoopModifies.dfy(275,4): anon16_LoopHead
+ (0,0): anon16_LoopBody
+ LoopModifies.dfy(275,4): anon17_Else
+ LoopModifies.dfy(275,4): anon19_Else
+ LoopModifies.dfy(283,7): anon20_LoopHead
+ (0,0): anon20_LoopBody
+ LoopModifies.dfy(283,7): anon21_Else
+ LoopModifies.dfy(283,7): anon23_Else
+
+Dafny program verifier finished with 23 verified, 9 errors
diff --git a/Test/dafny0/Maps.dfy b/Test/dafny0/Maps.dfy index b23a3750..c48bd2b7 100644 --- a/Test/dafny0/Maps.dfy +++ b/Test/dafny0/Maps.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
// This method can be used to test compilation.
method Main()
@@ -189,4 +191,4 @@ method m15(b: set<A>) var m := map a | a in b :: a.x;
var aa := new A;
assert aa !in m;
-}
\ No newline at end of file +}
diff --git a/Test/dafny0/Maps.dfy.expect b/Test/dafny0/Maps.dfy.expect new file mode 100644 index 00000000..f46549dd --- /dev/null +++ b/Test/dafny0/Maps.dfy.expect @@ -0,0 +1,8 @@ +Maps.dfy(78,8): Error: element may not be in domain
+Execution trace:
+ (0,0): anon0
+Maps.dfy(128,13): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 32 verified, 2 errors
diff --git a/Test/dafny0/ModifyStmt.dfy b/Test/dafny0/ModifyStmt.dfy index 0fbb6669..6d041b43 100644 --- a/Test/dafny0/ModifyStmt.dfy +++ b/Test/dafny0/ModifyStmt.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class MyClass {
var x: int;
var y: int;
diff --git a/Test/dafny0/ModifyStmt.dfy.expect b/Test/dafny0/ModifyStmt.dfy.expect new file mode 100644 index 00000000..4ea872e0 --- /dev/null +++ b/Test/dafny0/ModifyStmt.dfy.expect @@ -0,0 +1,42 @@ +ModifyStmt.dfy(27,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ModifyStmt.dfy(42,5): Error: modify statement may violate context's modifies clause
+Execution trace:
+ (0,0): anon0
+ModifyStmt.dfy(48,5): Error: modify statement may violate context's modifies clause
+Execution trace:
+ (0,0): anon0
+ModifyStmt.dfy(61,5): Error: modify statement may violate context's modifies clause
+Execution trace:
+ (0,0): anon0
+ModifyStmt.dfy(70,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ModifyStmt.dfy(89,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon9_Then
+ ModifyStmt.dfy(81,7): anon10_LoopHead
+ (0,0): anon10_LoopBody
+ ModifyStmt.dfy(81,7): anon11_Else
+ (0,0): anon12_Then
+ (0,0): anon8
+ModifyStmt.dfy(99,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ModifyStmt.dfy(110,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ModifyStmt.dfy(122,16): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+ModifyStmt.dfy(134,7): Error: assignment may update an object not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ModifyStmt.dfy(172,15): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 25 verified, 11 errors
diff --git a/Test/dafny0/Modules0.dfy b/Test/dafny0/Modules0.dfy index 2bc3c4be..c47bb756 100644 --- a/Test/dafny0/Modules0.dfy +++ b/Test/dafny0/Modules0.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// ---------------------- duplicate types within a module
module Wazzup {
diff --git a/Test/dafny0/Modules0.dfy.expect b/Test/dafny0/Modules0.dfy.expect new file mode 100644 index 00000000..eaa422b3 --- /dev/null +++ b/Test/dafny0/Modules0.dfy.expect @@ -0,0 +1,29 @@ +Modules0.dfy(8,8): Error: Duplicate name of top-level declaration: WazzupA
+Modules0.dfy(9,11): Error: Duplicate name of top-level declaration: WazzupA
+Modules0.dfy(10,7): Error: Duplicate name of top-level declaration: WazzupA
+Modules0.dfy(13,7): Error: Duplicate name of top-level declaration: WazzupB
+Modules0.dfy(14,8): Error: Duplicate name of top-level declaration: WazzupB
+Modules0.dfy(15,11): Error: Duplicate name of top-level declaration: WazzupB
+Modules0.dfy(56,18): Error: Undeclared top-level type or type parameter: MyClass1 (did you forget to qualify a name?)
+Modules0.dfy(57,18): Error: Undeclared top-level type or type parameter: MyClass2 (did you forget to qualify a name?)
+Modules0.dfy(68,18): Error: Undeclared top-level type or type parameter: MyClass2 (did you forget to qualify a name?)
+Modules0.dfy(75,20): Error: Undeclared top-level type or type parameter: MyClass1 (did you forget to qualify a name?)
+Modules0.dfy(75,34): Error: Undeclared top-level type or type parameter: MyClass0 (did you forget to qualify a name?)
+Modules0.dfy(78,23): Error: Undeclared top-level type or type parameter: MyClass0 (did you forget to qualify a name?)
+Modules0.dfy(83,24): Error: Undeclared top-level type or type parameter: MyClassY (did you forget to qualify a name?)
+Modules0.dfy(92,16): Error: Undeclared top-level type or type parameter: ClassG (did you forget to qualify a name?)
+Modules0.dfy(224,15): Error: Undeclared top-level type or type parameter: X (did you forget to qualify a name?)
+Modules0.dfy(224,8): Error: new can be applied only to reference types (got X)
+Modules0.dfy(233,13): Error: Undeclared type X in module B
+Modules0.dfy(243,13): Error: unresolved identifier: X
+Modules0.dfy(244,15): Error: member DoesNotExist does not exist in class X
+Modules0.dfy(283,19): Error: Undeclared top-level type or type parameter: D (did you forget to qualify a name?)
+Modules0.dfy(283,12): Error: new can be applied only to reference types (got D)
+Modules0.dfy(286,25): Error: type of the receiver is not fully determined at this program point
+Modules0.dfy(287,16): Error: type of the receiver is not fully determined at this program point
+Modules0.dfy(287,6): Error: expected method call, found expression
+Modules0.dfy(288,16): Error: type of the receiver is not fully determined at this program point
+Modules0.dfy(288,6): Error: expected method call, found expression
+Modules0.dfy(310,24): Error: module Q_Imp does not exist
+Modules0.dfy(100,14): Error: Undeclared top-level type or type parameter: MyClassY (did you forget to qualify a name?)
+28 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\Modules0.dfy
diff --git a/Test/dafny0/Modules1.dfy b/Test/dafny0/Modules1.dfy index 3f24212b..c4e12780 100644 --- a/Test/dafny0/Modules1.dfy +++ b/Test/dafny0/Modules1.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
module A {
import B = Babble;
class X {
diff --git a/Test/dafny0/Modules1.dfy.expect b/Test/dafny0/Modules1.dfy.expect new file mode 100644 index 00000000..dd53a883 --- /dev/null +++ b/Test/dafny0/Modules1.dfy.expect @@ -0,0 +1,20 @@ +Modules1.dfy(79,16): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+Modules1.dfy(92,16): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+Modules1.dfy(94,18): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+Modules1.dfy(56,3): Error: decreases expression must be bounded below by 0
+Execution trace:
+ (0,0): anon0
+Modules1.dfy(62,3): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 26 verified, 5 errors
diff --git a/Test/dafny0/Modules2.dfy b/Test/dafny0/Modules2.dfy index 2a5b2be7..8b2ff570 100644 --- a/Test/dafny0/Modules2.dfy +++ b/Test/dafny0/Modules2.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
module A {
class C {
@@ -54,4 +56,4 @@ module Test3 { module Test4 {
import A = A; // good: looks strange, but A is not bound on the RHS of the equality
import B; // the same as the above, but for module B
-}
\ No newline at end of file +}
diff --git a/Test/dafny0/Modules2.dfy.expect b/Test/dafny0/Modules2.dfy.expect new file mode 100644 index 00000000..ed25001a --- /dev/null +++ b/Test/dafny0/Modules2.dfy.expect @@ -0,0 +1,6 @@ +Modules2.dfy(46,17): Error: The name C ambiguously refers to a type in one of the modules A, B (try qualifying the type name with the module name)
+Modules2.dfy(46,10): Error: new can be applied only to reference types (got C)
+Modules2.dfy(49,14): Error: the name 'E' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'D.E')
+Modules2.dfy(50,14): Error: The name D ambiguously refers to a type in one of the modules A, B
+Modules2.dfy(52,11): Error: The name f ambiguously refers to a static member in one of the modules A, B
+5 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\Modules2.dfy
diff --git a/Test/dafny0/ModulesCycle.dfy b/Test/dafny0/ModulesCycle.dfy index 72b7e6fb..885677d3 100644 --- a/Test/dafny0/ModulesCycle.dfy +++ b/Test/dafny0/ModulesCycle.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
module V {
import t = T; // error: T is not visible (and isn't even a module)
@@ -9,4 +11,4 @@ module A { module C {
import D = A;
-}
\ No newline at end of file +}
diff --git a/Test/dafny0/ModulesCycle.dfy.expect b/Test/dafny0/ModulesCycle.dfy.expect new file mode 100644 index 00000000..516687e9 --- /dev/null +++ b/Test/dafny0/ModulesCycle.dfy.expect @@ -0,0 +1,3 @@ +ModulesCycle.dfy(5,9): Error: module T does not exist
+ModulesCycle.dfy(8,7): Error: module definition contains a cycle (note: parent modules implicitly depend on submodules): A -> D -> C -> B
+2 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\ModulesCycle.dfy
diff --git a/Test/dafny0/MultiDimArray.dfy b/Test/dafny0/MultiDimArray.dfy index ff30ef8a..4b4809a6 100644 --- a/Test/dafny0/MultiDimArray.dfy +++ b/Test/dafny0/MultiDimArray.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class A {
// all of the following array types are allowed
var a: array<int>;
diff --git a/Test/dafny0/MultiDimArray.dfy.expect b/Test/dafny0/MultiDimArray.dfy.expect new file mode 100644 index 00000000..597ade30 --- /dev/null +++ b/Test/dafny0/MultiDimArray.dfy.expect @@ -0,0 +1,12 @@ +MultiDimArray.dfy(56,21): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon11_Then
+ (0,0): anon12_Then
+MultiDimArray.dfy(83,25): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon6_Then
+
+Dafny program verifier finished with 8 verified, 2 errors
diff --git a/Test/dafny0/MultiSets.dfy b/Test/dafny0/MultiSets.dfy index b9817ac9..e01e9898 100644 --- a/Test/dafny0/MultiSets.dfy +++ b/Test/dafny0/MultiSets.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
method test1()
{
diff --git a/Test/dafny0/MultiSets.dfy.expect b/Test/dafny0/MultiSets.dfy.expect new file mode 100644 index 00000000..cdee5d20 --- /dev/null +++ b/Test/dafny0/MultiSets.dfy.expect @@ -0,0 +1,22 @@ +MultiSets.dfy(159,3): Error BP5003: A postcondition might not hold on this return path.
+MultiSets.dfy(158,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+MultiSets.dfy(165,3): Error BP5003: A postcondition might not hold on this return path.
+MultiSets.dfy(164,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+MultiSets.dfy(178,11): Error: new number of occurrences might be negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Then
+ (0,0): anon3
+MultiSets.dfy(269,24): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon11_Then
+ (0,0): anon3
+ (0,0): anon12_Then
+ (0,0): anon14_Else
+
+Dafny program verifier finished with 54 verified, 4 errors
diff --git a/Test/dafny0/NatTypes.dfy b/Test/dafny0/NatTypes.dfy index 0513591c..78049387 100644 --- a/Test/dafny0/NatTypes.dfy +++ b/Test/dafny0/NatTypes.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
method M(n: nat) {
assert 0 <= n;
}
diff --git a/Test/dafny0/NatTypes.dfy.expect b/Test/dafny0/NatTypes.dfy.expect new file mode 100644 index 00000000..b0613150 --- /dev/null +++ b/Test/dafny0/NatTypes.dfy.expect @@ -0,0 +1,43 @@ +NatTypes.dfy(10,5): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+NatTypes.dfy(34,10): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ NatTypes.dfy(22,3): anon10_LoopHead
+ (0,0): anon10_LoopBody
+ NatTypes.dfy(22,3): anon11_Else
+ (0,0): anon12_Then
+NatTypes.dfy(41,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Then
+NatTypes.dfy(43,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Then
+NatTypes.dfy(60,16): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+NatTypes.dfy(74,16): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Then
+NatTypes.dfy(92,19): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+NatTypes.dfy(107,45): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+ (0,0): anon7_Else
+ (0,0): anon8_Then
+NatTypes.dfy(130,21): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+
+Dafny program verifier finished with 15 verified, 9 errors
diff --git a/Test/dafny0/NoTypeArgs.dfy b/Test/dafny0/NoTypeArgs.dfy index 88418de7..a97d63a3 100644 --- a/Test/dafny0/NoTypeArgs.dfy +++ b/Test/dafny0/NoTypeArgs.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
datatype List<T> = Nil | Cons(hd: T, tl: List);
method M0() {
diff --git a/Test/dafny0/NoTypeArgs.dfy.expect b/Test/dafny0/NoTypeArgs.dfy.expect new file mode 100644 index 00000000..b06ff8fc --- /dev/null +++ b/Test/dafny0/NoTypeArgs.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 15 verified, 0 errors
diff --git a/Test/dafny0/NonGhostQuantifiers.dfy b/Test/dafny0/NonGhostQuantifiers.dfy index dc938496..bff1d65b 100644 --- a/Test/dafny0/NonGhostQuantifiers.dfy +++ b/Test/dafny0/NonGhostQuantifiers.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// This file contains various tests of resolving quantifiers in ghost and non-ghost positions
class MyClass<T> {
diff --git a/Test/dafny0/NonGhostQuantifiers.dfy.expect b/Test/dafny0/NonGhostQuantifiers.dfy.expect new file mode 100644 index 00000000..d290a1ab --- /dev/null +++ b/Test/dafny0/NonGhostQuantifiers.dfy.expect @@ -0,0 +1,21 @@ +NonGhostQuantifiers.dfy(149,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(153,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(158,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(163,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(167,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(171,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(176,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(181,4): Error: a quantifier involved in a function definition is not allowed to depend on the set of allocated references; Dafny's heuristics can't figure out a bound for the values of 'c'
+NonGhostQuantifiers.dfy(186,13): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'c'
+NonGhostQuantifiers.dfy(16,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'n'
+NonGhostQuantifiers.dfy(45,4): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'n'
+NonGhostQuantifiers.dfy(49,4): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'd'
+NonGhostQuantifiers.dfy(53,4): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'n'
+NonGhostQuantifiers.dfy(77,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'i'
+NonGhostQuantifiers.dfy(81,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'j'
+NonGhostQuantifiers.dfy(91,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'j'
+NonGhostQuantifiers.dfy(106,5): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'j'
+NonGhostQuantifiers.dfy(114,10): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'y'
+NonGhostQuantifiers.dfy(123,8): Error: quantifiers in non-ghost contexts must be compilable, but Dafny's heuristics can't figure out how to produce a bounded set of values for 'x'
+NonGhostQuantifiers.dfy(140,8): Error: Assignment to non-ghost variable is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+20 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\NonGhostQuantifiers.dfy
diff --git a/Test/dafny0/OpaqueFunctions.dfy b/Test/dafny0/OpaqueFunctions.dfy index d1e27b90..d95a6160 100644 --- a/Test/dafny0/OpaqueFunctions.dfy +++ b/Test/dafny0/OpaqueFunctions.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
module A {
class C {
var x: int;
diff --git a/Test/dafny0/OpaqueFunctions.dfy.expect b/Test/dafny0/OpaqueFunctions.dfy.expect new file mode 100644 index 00000000..51e298b4 --- /dev/null +++ b/Test/dafny0/OpaqueFunctions.dfy.expect @@ -0,0 +1,75 @@ +OpaqueFunctions.dfy(27,16): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+OpaqueFunctions.dfy(52,7): Error BP5002: A precondition for this call might not hold.
+OpaqueFunctions.dfy(24,16): Related location: This is the precondition that might not hold.
+Execution trace:
+ (0,0): anon0
+OpaqueFunctions.dfy(58,20): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+OpaqueFunctions.dfy(60,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+OpaqueFunctions.dfy(63,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Then
+OpaqueFunctions.dfy(66,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+OpaqueFunctions.dfy(77,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+OpaqueFunctions.dfy(79,9): Error BP5002: A precondition for this call might not hold.
+OpaqueFunctions.dfy[A'](24,16): Related location: This is the precondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+OpaqueFunctions.dfy(86,20): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+OpaqueFunctions.dfy(88,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+OpaqueFunctions.dfy(91,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Then
+OpaqueFunctions.dfy(94,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+OpaqueFunctions.dfy(105,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+OpaqueFunctions.dfy(107,9): Error BP5002: A precondition for this call might not hold.
+OpaqueFunctions.dfy[A'](24,16): Related location: This is the precondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+OpaqueFunctions.dfy(114,20): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+OpaqueFunctions.dfy(116,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+OpaqueFunctions.dfy(119,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Then
+OpaqueFunctions.dfy(122,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+OpaqueFunctions.dfy(138,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 43 verified, 19 errors
diff --git a/Test/dafny0/Parallel.dfy b/Test/dafny0/Parallel.dfy index e086ce73..9a76777a 100644 --- a/Test/dafny0/Parallel.dfy +++ b/Test/dafny0/Parallel.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class C {
var data: int;
var n: nat;
diff --git a/Test/dafny0/Parallel.dfy.expect b/Test/dafny0/Parallel.dfy.expect new file mode 100644 index 00000000..c994cd39 --- /dev/null +++ b/Test/dafny0/Parallel.dfy.expect @@ -0,0 +1,68 @@ +Parallel.dfy(34,5): Error BP5002: A precondition for this call might not hold.
+Parallel.dfy(60,14): Related location: This is the precondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon29_Else
+ (0,0): anon32_Else
+ (0,0): anon33_Then
+ (0,0): anon34_Then
+ (0,0): anon35_Then
+ (0,0): anon14
+Parallel.dfy(38,5): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+ (0,0): anon29_Else
+ (0,0): anon32_Else
+ (0,0): anon33_Else
+ (0,0): anon36_Then
+ (0,0): anon37_Then
+ (0,0): anon38_Then
+ (0,0): anon20
+Parallel.dfy(42,18): Error: possible violation of postcondition of forall statement
+Execution trace:
+ (0,0): anon0
+ (0,0): anon29_Else
+ (0,0): anon32_Else
+ (0,0): anon33_Else
+ (0,0): anon36_Else
+ (0,0): anon39_Then
+ (0,0): anon40_Then
+ (0,0): anon26
+Parallel.dfy(47,19): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon29_Else
+ (0,0): anon32_Else
+ (0,0): anon33_Else
+ (0,0): anon36_Else
+ (0,0): anon39_Then
+ (0,0): anon40_Then
+Parallel.dfy(93,19): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon10_Else
+ (0,0): anon11_Then
+Parallel.dfy(99,20): Error: possible violation of postcondition of forall statement
+Execution trace:
+ (0,0): anon0
+ (0,0): anon10_Else
+ (0,0): anon11_Then
+ (0,0): anon12_Then
+Parallel.dfy(122,12): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Then
+ (0,0): anon7_Then
+ (0,0): anon3
+Parallel.dfy(185,12): Error: left-hand sides for different forall-statement bound variables may refer to the same location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon19_Then
+ (0,0): anon20_Then
+ (0,0): anon5
+Parallel.dfy(296,10): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Else
+
+Dafny program verifier finished with 43 verified, 9 errors
diff --git a/Test/dafny0/ParallelResolveErrors.dfy b/Test/dafny0/ParallelResolveErrors.dfy index affc765d..5e01f019 100644 --- a/Test/dafny0/ParallelResolveErrors.dfy +++ b/Test/dafny0/ParallelResolveErrors.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class C {
var data: int;
ghost var gdata: int;
diff --git a/Test/dafny0/ParallelResolveErrors.dfy.expect b/Test/dafny0/ParallelResolveErrors.dfy.expect new file mode 100644 index 00000000..171e66e1 --- /dev/null +++ b/Test/dafny0/ParallelResolveErrors.dfy.expect @@ -0,0 +1,22 @@ +ParallelResolveErrors.dfy(10,9): Error: Assignment to non-ghost field is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+ParallelResolveErrors.dfy(21,4): Error: LHS of assignment must denote a mutable variable
+ParallelResolveErrors.dfy(26,6): Error: body of forall statement is attempting to update a variable declared outside the forall statement
+ParallelResolveErrors.dfy(44,6): Error: Assignment to non-ghost variable is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+ParallelResolveErrors.dfy(56,13): Error: new allocation not supported in forall statements
+ParallelResolveErrors.dfy(61,13): Error: new allocation not allowed in ghost context
+ParallelResolveErrors.dfy(62,13): Error: new allocation not allowed in ghost context
+ParallelResolveErrors.dfy(63,13): Error: new allocation not allowed in ghost context
+ParallelResolveErrors.dfy(64,13): Error: new allocation not allowed in ghost context
+ParallelResolveErrors.dfy(65,6): Error: the body of the enclosing forall statement is not allowed to update heap locations, so any call must be to a method with an empty modifies clause
+ParallelResolveErrors.dfy(66,6): Error: the body of the enclosing forall statement is not allowed to call non-ghost methods
+ParallelResolveErrors.dfy(73,19): Error: trying to break out of more loop levels than there are enclosing loops
+ParallelResolveErrors.dfy(77,18): Error: return statement is not allowed inside a forall statement
+ParallelResolveErrors.dfy(84,21): Error: trying to break out of more loop levels than there are enclosing loops
+ParallelResolveErrors.dfy(85,20): Error: trying to break out of more loop levels than there are enclosing loops
+ParallelResolveErrors.dfy(86,20): Error: break label is undefined or not in scope: OutsideLoop
+ParallelResolveErrors.dfy(95,24): Error: trying to break out of more loop levels than there are enclosing loops
+ParallelResolveErrors.dfy(96,24): Error: break label is undefined or not in scope: OutsideLoop
+ParallelResolveErrors.dfy(107,9): Error: the body of the enclosing forall statement is not allowed to update heap locations
+ParallelResolveErrors.dfy(115,6): Error: the body of the enclosing forall statement is not allowed to update heap locations, so any call must be to a method with an empty modifies clause
+ParallelResolveErrors.dfy(120,6): Error: the body of the enclosing forall statement is not allowed to update heap locations, so any call must be to a method with an empty modifies clause
+21 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\ParallelResolveErrors.dfy
diff --git a/Test/dafny0/ParseErrors.dfy b/Test/dafny0/ParseErrors.dfy index 9a3cc18b..17369907 100644 --- a/Test/dafny0/ParseErrors.dfy +++ b/Test/dafny0/ParseErrors.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// ---------------------- chaining operators -----------------------------------
method TestChaining0(j: int, k: int, m: int)
diff --git a/Test/dafny0/ParseErrors.dfy.expect b/Test/dafny0/ParseErrors.dfy.expect new file mode 100644 index 00000000..ed018bea --- /dev/null +++ b/Test/dafny0/ParseErrors.dfy.expect @@ -0,0 +1,15 @@ +ParseErrors.dfy(7,19): error: a chain cannot have more than one != operator
+ParseErrors.dfy(9,37): error: this operator chain cannot continue with a descending operator
+ParseErrors.dfy(10,38): error: this operator chain cannot continue with an ascending operator
+ParseErrors.dfy(15,24): error: this operator chain cannot continue with a descending operator
+ParseErrors.dfy(18,18): error: this operator cannot be part of a chain
+ParseErrors.dfy(19,19): error: this operator cannot be part of a chain
+ParseErrors.dfy(20,18): error: this operator cannot be part of a chain
+ParseErrors.dfy(21,18): error: chaining not allowed from the previous operator
+ParseErrors.dfy(49,8): error: the main operator of a calculation must be transitive
+ParseErrors.dfy(65,2): error: this operator cannot continue this calculation
+ParseErrors.dfy(66,2): error: this operator cannot continue this calculation
+ParseErrors.dfy(71,2): error: this operator cannot continue this calculation
+ParseErrors.dfy(72,2): error: this operator cannot continue this calculation
+ParseErrors.dfy(78,2): error: this operator cannot continue this calculation
+14 parse errors detected in c:\codeplex\dafny\Test\dafny0\ParseErrors.dfy
diff --git a/Test/dafny0/PredExpr.dfy b/Test/dafny0/PredExpr.dfy index 96561ebd..2f113245 100644 --- a/Test/dafny0/PredExpr.dfy +++ b/Test/dafny0/PredExpr.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
function SimpleAssert(n: int): int
ensures n < 100;
{
diff --git a/Test/dafny0/PredExpr.dfy.expect b/Test/dafny0/PredExpr.dfy.expect new file mode 100644 index 00000000..07bd5f20 --- /dev/null +++ b/Test/dafny0/PredExpr.dfy.expect @@ -0,0 +1,21 @@ +PredExpr.dfy(7,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+PredExpr.dfy(39,15): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Else
+PredExpr.dfy(52,17): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+PredExpr.dfy(77,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon8_Else
+ (0,0): anon3
+ PredExpr.dfy(76,20): anon10_Else
+ (0,0): anon6
+
+Dafny program verifier finished with 11 verified, 4 errors
diff --git a/Test/dafny0/Predicates.dfy b/Test/dafny0/Predicates.dfy index d48b1a6a..054facf4 100644 --- a/Test/dafny0/Predicates.dfy +++ b/Test/dafny0/Predicates.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
module A {
class C {
var x: int;
diff --git a/Test/dafny0/Predicates.dfy.expect b/Test/dafny0/Predicates.dfy.expect new file mode 100644 index 00000000..dac4eb3c --- /dev/null +++ b/Test/dafny0/Predicates.dfy.expect @@ -0,0 +1,27 @@ +Predicates.dfy[B](21,5): Error BP5003: A postcondition might not hold on this return path.
+Predicates.dfy[B](20,15): Related location: This is the postcondition that might not hold.
+Predicates.dfy(31,9): Related location
+Execution trace:
+ (0,0): anon0
+Predicates.dfy(88,16): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+Predicates.dfy(92,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+Predicates.dfy[Tricky_Full](126,5): Error BP5003: A postcondition might not hold on this return path.
+Predicates.dfy[Tricky_Full](125,15): Related location: This is the postcondition that might not hold.
+Predicates.dfy(136,7): Related location
+Predicates.dfy[Tricky_Full](116,9): Related location
+Execution trace:
+ (0,0): anon0
+Predicates.dfy(164,5): Error BP5003: A postcondition might not hold on this return path.
+Predicates.dfy(163,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+Predicates.dfy[Q1](154,5): Error BP5003: A postcondition might not hold on this return path.
+Predicates.dfy[Q1](153,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 52 verified, 6 errors
diff --git a/Test/dafny0/RankNeg.dfy b/Test/dafny0/RankNeg.dfy index 39e7630d..2ac00196 100644 --- a/Test/dafny0/RankNeg.dfy +++ b/Test/dafny0/RankNeg.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Negative tests
// Not well-founded mutual recursions.
diff --git a/Test/dafny0/RankNeg.dfy.expect b/Test/dafny0/RankNeg.dfy.expect new file mode 100644 index 00000000..d740f8a0 --- /dev/null +++ b/Test/dafny0/RankNeg.dfy.expect @@ -0,0 +1,22 @@ +RankNeg.dfy(10,26): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Then
+RankNeg.dfy(15,28): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Then
+RankNeg.dfy(22,31): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Then
+RankNeg.dfy(32,25): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+ (0,0): anon6_Then
+
+Dafny program verifier finished with 1 verified, 4 errors
diff --git a/Test/dafny0/RankPos.dfy b/Test/dafny0/RankPos.dfy index bc48a6c8..ee582146 100644 --- a/Test/dafny0/RankPos.dfy +++ b/Test/dafny0/RankPos.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
datatype list<A> = Nil | Cons(head: A, tail: list<A>);
datatype d = A | B(ds: list<d>);
datatype d2 = A2 | B2(ds: seq<d2>);
@@ -76,4 +79,4 @@ function seq_dec''''(xs: seq<int>): int if (|xs|==0) then 0 else
var i :| 0 <= i < |xs|;
i+seq_dec''''(xs[..i]+xs[i+1..])
-}
\ No newline at end of file +}
diff --git a/Test/dafny0/RankPos.dfy.expect b/Test/dafny0/RankPos.dfy.expect new file mode 100644 index 00000000..f3a9c95f --- /dev/null +++ b/Test/dafny0/RankPos.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 11 verified, 0 errors
diff --git a/Test/dafny0/RealCompare.dfy b/Test/dafny0/RealCompare.dfy index c8320d8a..b1dae47d 100644 --- a/Test/dafny0/RealCompare.dfy +++ b/Test/dafny0/RealCompare.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
method M(x: real)
decreases x;
{
diff --git a/Test/dafny0/RealCompare.dfy.expect b/Test/dafny0/RealCompare.dfy.expect new file mode 100644 index 00000000..aca50548 --- /dev/null +++ b/Test/dafny0/RealCompare.dfy.expect @@ -0,0 +1,23 @@ +RealCompare.dfy(35,5): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+RealCompare.dfy(50,3): Error: decreases expression must be bounded below by 0.0
+Execution trace:
+ (0,0): anon0
+RealCompare.dfy(141,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ RealCompare.dfy(133,3): anon7_LoopHead
+ (0,0): anon7_LoopBody
+ RealCompare.dfy(133,3): anon8_Else
+ (0,0): anon9_Then
+RealCompare.dfy(156,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ RealCompare.dfy(147,3): anon9_LoopHead
+ (0,0): anon9_LoopBody
+ RealCompare.dfy(147,3): anon10_Else
+ (0,0): anon12_Then
+
+Dafny program verifier finished with 24 verified, 4 errors
diff --git a/Test/dafny0/RealTypes.dfy b/Test/dafny0/RealTypes.dfy index 9354bc9d..e51b76ad 100644 --- a/Test/dafny0/RealTypes.dfy +++ b/Test/dafny0/RealTypes.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
method R1(ghost x: real, ghost y: real, i: int) {
assert x + y == y + x;
assert int(real(i)) == i;
diff --git a/Test/dafny0/RealTypes.dfy.expect b/Test/dafny0/RealTypes.dfy.expect new file mode 100644 index 00000000..1f4d22a8 --- /dev/null +++ b/Test/dafny0/RealTypes.dfy.expect @@ -0,0 +1,18 @@ +RealTypes.dfy(8,23): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+RealTypes.dfy(14,12): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+ RealTypes.dfy(13,23): anon3_Else
+ (0,0): anon2
+RealTypes.dfy(14,20): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ RealTypes.dfy(13,23): anon3_Else
+ (0,0): anon2
+RealTypes.dfy(22,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 6 verified, 4 errors
diff --git a/Test/dafny0/Refinement.dfy b/Test/dafny0/Refinement.dfy index 3c7563a0..1a9a3257 100644 --- a/Test/dafny0/Refinement.dfy +++ b/Test/dafny0/Refinement.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t" +// RUN: %diff "%s.expect" "%t" + module A { class X { } class T { diff --git a/Test/dafny0/Refinement.dfy.expect b/Test/dafny0/Refinement.dfy.expect new file mode 100644 index 00000000..d214565b --- /dev/null +++ b/Test/dafny0/Refinement.dfy.expect @@ -0,0 +1,41 @@ +Refinement.dfy(15,5): Error BP5003: A postcondition might not hold on this return path.
+Refinement.dfy(14,17): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+Refinement.dfy[B](15,5): Error BP5003: A postcondition might not hold on this return path.
+Refinement.dfy(33,20): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+Refinement.dfy(64,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+Refinement.dfy(74,17): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+Refinement.dfy(93,12): Error BP5003: A postcondition might not hold on this return path.
+Refinement.dfy(72,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+Refinement.dfy(96,3): Error BP5003: A postcondition might not hold on this return path.
+Refinement.dfy(77,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+Refinement.dfy(183,5): Error BP5003: A postcondition might not hold on this return path.
+Refinement.dfy[IncorrectConcrete](115,15): Related location: This is the postcondition that might not hold.
+Refinement.dfy(180,9): Related location
+Execution trace:
+ (0,0): anon0
+Refinement.dfy(187,5): Error BP5003: A postcondition might not hold on this return path.
+Refinement.dfy[IncorrectConcrete](123,15): Related location: This is the postcondition that might not hold.
+Refinement.dfy(180,9): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Then
+ (0,0): anon3
+Refinement.dfy(193,7): Error: assertion violation
+Refinement.dfy[IncorrectConcrete](131,24): Related location
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 48 verified, 9 errors
diff --git a/Test/dafny0/RefinementErrors.dfy b/Test/dafny0/RefinementErrors.dfy index df6f1a71..b6be031a 100644 --- a/Test/dafny0/RefinementErrors.dfy +++ b/Test/dafny0/RefinementErrors.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t" +// RUN: %diff "%s.expect" "%t" + module A { class C { method M(y: int) returns (x: int) diff --git a/Test/dafny0/RefinementErrors.dfy.expect b/Test/dafny0/RefinementErrors.dfy.expect new file mode 100644 index 00000000..12183e32 --- /dev/null +++ b/Test/dafny0/RefinementErrors.dfy.expect @@ -0,0 +1,12 @@ +RefinementErrors.dfy(30,17): Error: a refining method is not allowed to add preconditions
+RefinementErrors.dfy(31,15): Error: a refining method is not allowed to extend the modifies clause
+RefinementErrors.dfy(34,14): Error: a predicate declaration (abc) can only refine a predicate
+RefinementErrors.dfy(35,8): Error: a field re-declaration (xyz) must be to ghostify the field
+RefinementErrors.dfy(37,13): Error: a function method cannot be changed into a (ghost) function in a refining module: F
+RefinementErrors.dfy(38,9): Error: type parameters are not allowed to be renamed from the names given in the function in the module being refined (expected 'A', found 'C')
+RefinementErrors.dfy(38,11): Error: type parameters are not allowed to be renamed from the names given in the function in the module being refined (expected 'B', found 'A')
+RefinementErrors.dfy(38,13): Error: type parameters are not allowed to be renamed from the names given in the function in the module being refined (expected 'C', found 'B')
+RefinementErrors.dfy(39,23): Error: the type of parameter 'z' is different from the type of the same parameter in the corresponding function in the module it refines ('seq<C>' instead of 'set<C>')
+RefinementErrors.dfy(40,9): Error: there is a difference in name of parameter 3 ('k' versus 'b') of function F compared to corresponding function in the module it refines
+RefinementErrors.dfy(57,20): Error: a function can be changed into a function method in a refining module only if the function has not yet been given a body: G
+11 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\RefinementErrors.dfy
diff --git a/Test/dafny0/RefinementModificationChecking.dfy b/Test/dafny0/RefinementModificationChecking.dfy index e4bd4605..34e30a05 100644 --- a/Test/dafny0/RefinementModificationChecking.dfy +++ b/Test/dafny0/RefinementModificationChecking.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
abstract module R1 {
var f: int;
diff --git a/Test/dafny0/RefinementModificationChecking.dfy.expect b/Test/dafny0/RefinementModificationChecking.dfy.expect new file mode 100644 index 00000000..997d1279 --- /dev/null +++ b/Test/dafny0/RefinementModificationChecking.dfy.expect @@ -0,0 +1,3 @@ +RefinementModificationChecking.dfy(19,4): Error: cannot assign to variable defined previously
+RefinementModificationChecking.dfy(20,4): Error: cannot assign to variable defined previously
+2 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\RefinementModificationChecking.dfy
diff --git a/Test/dafny0/ResolutionErrors.dfy b/Test/dafny0/ResolutionErrors.dfy index af227a7f..e49f9823 100644 --- a/Test/dafny0/ResolutionErrors.dfy +++ b/Test/dafny0/ResolutionErrors.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
//Should not verify, as ghost loops should not be allowed to diverge.
method GhostDivergentLoop()
diff --git a/Test/dafny0/ResolutionErrors.dfy.expect b/Test/dafny0/ResolutionErrors.dfy.expect new file mode 100644 index 00000000..eb9b244b --- /dev/null +++ b/Test/dafny0/ResolutionErrors.dfy.expect @@ -0,0 +1,135 @@ +ResolutionErrors.dfy(499,7): Error: RHS (of type List<A>) not assignable to LHS (of type List<B>)
+ResolutionErrors.dfy(504,7): Error: RHS (of type List<A>) not assignable to LHS (of type List<B>)
+ResolutionErrors.dfy(518,23): Error: type of case bodies do not agree (found Tree<_T1,_T0>, previous types Tree<_T0,_T1>)
+ResolutionErrors.dfy(530,24): Error: Wrong number of type arguments (0 instead of 2) passed to class/datatype: Tree
+ResolutionErrors.dfy(565,18): Error: type of bound variable 'z' could not determined; please specify the type explicitly
+ResolutionErrors.dfy(578,13): Error: 'new' is not allowed in ghost contexts
+ResolutionErrors.dfy(579,9): Error: 'new' is not allowed in ghost contexts
+ResolutionErrors.dfy(586,14): Error: new allocation not supported in forall statements
+ResolutionErrors.dfy(591,11): Error: the body of the enclosing forall statement is not allowed to update heap locations
+ResolutionErrors.dfy(591,14): Error: new allocation not allowed in ghost context
+ResolutionErrors.dfy(601,23): Error: 'new' is not allowed in ghost contexts
+ResolutionErrors.dfy(608,15): Error: 'new' is not allowed in ghost contexts
+ResolutionErrors.dfy(608,15): Error: only ghost methods can be called from this context
+ResolutionErrors.dfy(608,10): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(617,17): Error: 'new' is not allowed in ghost contexts
+ResolutionErrors.dfy(619,20): Error: only ghost methods can be called from this context
+ResolutionErrors.dfy(621,8): Error: calls to methods with side-effects are not allowed inside a hint
+ResolutionErrors.dfy(639,21): Error: the type of this expression is underspecified, but it cannot be an arbitrary type.
+ResolutionErrors.dfy(639,21): Error: the type of this expression is underspecified, but it cannot be an arbitrary type.
+ResolutionErrors.dfy(676,8): Error: calls to methods with side-effects are not allowed inside a hint
+ResolutionErrors.dfy(686,8): Error: only ghost methods can be called from this context
+ResolutionErrors.dfy(689,20): Error: 'decreases *' is not allowed on ghost loops
+ResolutionErrors.dfy(700,16): Error: Assignment to non-ghost field is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+ResolutionErrors.dfy(700,16): Error: a hint is not allowed to update heap locations
+ResolutionErrors.dfy(701,21): Error: a hint is not allowed to update heap locations
+ResolutionErrors.dfy(702,8): Error: calls to methods with side-effects are not allowed inside a hint
+ResolutionErrors.dfy(705,19): Error: a while statement used inside a hint is not allowed to have a modifies clause
+ResolutionErrors.dfy(724,8): Error: only ghost methods can be called from this context
+ResolutionErrors.dfy(727,20): Error: 'decreases *' is not allowed on ghost loops
+ResolutionErrors.dfy(732,16): Error: Assignment to non-ghost field is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+ResolutionErrors.dfy(732,16): Error: a hint is not allowed to update heap locations
+ResolutionErrors.dfy(733,21): Error: a hint is not allowed to update heap locations
+ResolutionErrors.dfy(734,8): Error: calls to methods with side-effects are not allowed inside a hint
+ResolutionErrors.dfy(737,19): Error: a while statement used inside a hint is not allowed to have a modifies clause
+ResolutionErrors.dfy(762,4): Error: calls to methods with side-effects are not allowed inside a statement expression
+ResolutionErrors.dfy(763,4): Error: only ghost methods can be called from this context
+ResolutionErrors.dfy(764,4): Error: wrong number of method result arguments (got 0, expected 1)
+ResolutionErrors.dfy(775,23): Error: function calls are allowed only in specification contexts (consider declaring the function a 'function method')
+ResolutionErrors.dfy(785,4): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(796,36): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(805,17): Error: function calls are allowed only in specification contexts (consider declaring the function a 'function method')
+ResolutionErrors.dfy(819,6): Error: RHS (of type B) not assignable to LHS (of type object)
+ResolutionErrors.dfy(820,6): Error: RHS (of type int) not assignable to LHS (of type object)
+ResolutionErrors.dfy(821,6): Error: RHS (of type B) not assignable to LHS (of type object)
+ResolutionErrors.dfy(826,6): Error: RHS (of type G) not assignable to LHS (of type object)
+ResolutionErrors.dfy(827,6): Error: RHS (of type Dt) not assignable to LHS (of type object)
+ResolutionErrors.dfy(828,6): Error: RHS (of type CoDt) not assignable to LHS (of type object)
+ResolutionErrors.dfy(890,4): Error: LHS of array assignment must denote an array element (found seq<int>)
+ResolutionErrors.dfy(891,4): Error: LHS of array assignment must denote an array element (found seq<int>)
+ResolutionErrors.dfy(896,10): Error: LHS of assignment must denote a mutable field
+ResolutionErrors.dfy(897,10): Error: LHS of assignment must denote a mutable field
+ResolutionErrors.dfy(898,9): Error: cannot assign to a range of array elements (try the 'forall' statement)
+ResolutionErrors.dfy(899,9): Error: cannot assign to a range of array elements (try the 'forall' statement)
+ResolutionErrors.dfy(900,5): Error: cannot assign to a range of array elements (try the 'forall' statement)
+ResolutionErrors.dfy(901,5): Error: cannot assign to a range of array elements (try the 'forall' statement)
+ResolutionErrors.dfy(429,2): Error: More than one default constructor
+ResolutionErrors.dfy(50,13): Error: 'this' is not allowed in a 'static' context
+ResolutionErrors.dfy(111,9): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(112,9): Error: function calls are allowed only in specification contexts (consider declaring the function a 'function method')
+ResolutionErrors.dfy(116,11): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(117,9): Error: actual out-parameter 0 is required to be a ghost variable
+ResolutionErrors.dfy(124,15): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(128,23): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(135,4): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(139,21): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(140,35): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(149,9): Error: only ghost methods can be called from this context
+ResolutionErrors.dfy(155,16): Error: 'decreases *' is not allowed on ghost loops
+ResolutionErrors.dfy(196,27): Error: ghost-context break statement is not allowed to break out of non-ghost structure
+ResolutionErrors.dfy(219,12): Error: ghost-context break statement is not allowed to break out of non-ghost loop
+ResolutionErrors.dfy(231,12): Error: trying to break out of more loop levels than there are enclosing loops
+ResolutionErrors.dfy(235,12): Error: ghost-context break statement is not allowed to break out of non-ghost loop
+ResolutionErrors.dfy(240,8): Error: return statement is not allowed in this context (because it is guarded by a specification-only expression)
+ResolutionErrors.dfy(435,14): Error: when allocating an object of type 'YHWH', one of its constructor methods must be called
+ResolutionErrors.dfy(440,6): Error: when allocating an object of type 'Lucifer', one of its constructor methods must be called
+ResolutionErrors.dfy(441,6): Error: when allocating an object of type 'Lucifer', one of its constructor methods must be called
+ResolutionErrors.dfy(443,9): Error: class Lamb does not have a default constructor
+ResolutionErrors.dfy(839,11): Error: a modifies-clause expression must denote an object or a collection of objects (instead got int)
+ResolutionErrors.dfy(843,14): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
+ResolutionErrors.dfy(846,12): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
+ResolutionErrors.dfy(854,14): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
+ResolutionErrors.dfy(864,18): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
+ResolutionErrors.dfy(875,16): Error: in a ghost context, only ghost fields can be mentioned as frame targets (x)
+ResolutionErrors.dfy(12,16): Error: 'decreases *' is not allowed on ghost loops
+ResolutionErrors.dfy(24,11): Error: array selection requires an array2 (got array3<T>)
+ResolutionErrors.dfy(25,12): Error: sequence/array/multiset/map selection requires a sequence, array, multiset, or map (got array3<T>)
+ResolutionErrors.dfy(26,11): Error: array selection requires an array4 (got array<T>)
+ResolutionErrors.dfy(56,14): Error: a field must be selected via an object, not just a class name
+ResolutionErrors.dfy(57,7): Error: unresolved identifier: F
+ResolutionErrors.dfy(58,14): Error: an instance function must be selected via an object, not just a class name
+ResolutionErrors.dfy(58,7): Error: call to instance function requires an instance
+ResolutionErrors.dfy(59,7): Error: unresolved identifier: G
+ResolutionErrors.dfy(61,7): Error: unresolved identifier: M
+ResolutionErrors.dfy(62,7): Error: call to instance method requires an instance
+ResolutionErrors.dfy(63,7): Error: unresolved identifier: N
+ResolutionErrors.dfy(66,8): Error: non-function expression is called with parameters
+ResolutionErrors.dfy(67,14): Error: member z does not exist in class Global
+ResolutionErrors.dfy(86,12): Error: the name 'Benny' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'Abc.Benny')
+ResolutionErrors.dfy(91,12): Error: the name 'David' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'Abc.David')
+ResolutionErrors.dfy(92,12): Error: the name 'David' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'Abc.David')
+ResolutionErrors.dfy(94,12): Error: the name 'David' denotes a datatype constructor, but does not do so uniquely; add an explicit qualification (for example, 'Abc.David')
+ResolutionErrors.dfy(96,12): Error: wrong number of arguments to datatype constructor Abc (found 2, expected 1)
+ResolutionErrors.dfy(258,4): Error: label shadows an enclosing label
+ResolutionErrors.dfy(263,2): Error: duplicate label
+ResolutionErrors.dfy(289,4): Error: when allocating an object of type 'ClassWithConstructor', one of its constructor methods must be called
+ResolutionErrors.dfy(290,4): Error: when allocating an object of type 'ClassWithConstructor', one of its constructor methods must be called
+ResolutionErrors.dfy(292,4): Error: a constructor is only allowed to be called when an object is being allocated
+ResolutionErrors.dfy(306,16): Error: arguments must have the same type (got int and DTD_List)
+ResolutionErrors.dfy(307,16): Error: arguments must have the same type (got DTD_List and int)
+ResolutionErrors.dfy(308,25): Error: arguments must have the same type (got bool and int)
+ResolutionErrors.dfy(311,18): Error: ghost fields are allowed only in specification contexts
+ResolutionErrors.dfy(320,15): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(345,2): Error: incorrect type of method in-parameter 1 (expected GenericClass<int>, got GenericClass<bool>)
+ResolutionErrors.dfy(357,18): Error: incorrect type of datatype constructor argument (found GList<_T0>, expected GList<int>)
+ResolutionErrors.dfy(365,6): Error: arguments to + must be int or real or a collection type (instead got bool)
+ResolutionErrors.dfy(370,6): Error: all lines in a calculation must have the same type (got int after bool)
+ResolutionErrors.dfy(373,6): Error: first argument to ==> must be of type bool (instead got int)
+ResolutionErrors.dfy(373,6): Error: second argument to ==> must be of type bool (instead got int)
+ResolutionErrors.dfy(374,10): Error: first argument to ==> must be of type bool (instead got int)
+ResolutionErrors.dfy(374,10): Error: second argument to ==> must be of type bool (instead got int)
+ResolutionErrors.dfy(379,10): Error: first argument to ==> must be of type bool (instead got int)
+ResolutionErrors.dfy(379,10): Error: second argument to ==> must be of type bool (instead got int)
+ResolutionErrors.dfy(384,6): Error: print statement is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+ResolutionErrors.dfy(406,6): Error: calls to methods with side-effects are not allowed inside a hint
+ResolutionErrors.dfy(408,12): Error: a hint is not allowed to update heap locations
+ResolutionErrors.dfy(410,8): Error: a hint is not allowed to update a variable declared outside the hint
+ResolutionErrors.dfy(467,7): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(473,12): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(541,7): Error: let-such-that expressions are allowed only in ghost contexts
+ResolutionErrors.dfy(543,7): Error: let-such-that expressions are allowed only in ghost contexts
+ResolutionErrors.dfy(543,20): Error: ghost variables are allowed only in specification contexts
+ResolutionErrors.dfy(545,7): Error: let-such-that expressions are allowed only in ghost contexts
+ResolutionErrors.dfy(546,18): Error: unresolved identifier: w
+ResolutionErrors.dfy(653,11): Error: lemmas are not allowed to have modifies clauses
+134 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\ResolutionErrors.dfy
diff --git a/Test/dafny0/ReturnErrors.dfy b/Test/dafny0/ReturnErrors.dfy index 7f1c2948..da668715 100644 --- a/Test/dafny0/ReturnErrors.dfy +++ b/Test/dafny0/ReturnErrors.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
class N
{
@@ -39,4 +41,4 @@ method testing2() returns (s: int, b: int) method testing3() returns (n: N)
{
return new N.newN(n); // ERROR: disallowed, as newN() modifies n
-}
\ No newline at end of file +}
diff --git a/Test/dafny0/ReturnErrors.dfy.expect b/Test/dafny0/ReturnErrors.dfy.expect new file mode 100644 index 00000000..2d57c731 --- /dev/null +++ b/Test/dafny0/ReturnErrors.dfy.expect @@ -0,0 +1,4 @@ +ReturnErrors.dfy(32,10): Error: cannot have method call in return statement.
+ReturnErrors.dfy(38,10): Error: cannot have effectful parameter in multi-return statement.
+ReturnErrors.dfy(43,10): Error: can only have initialization methods which modify at most 'this'.
+3 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\ReturnErrors.dfy
diff --git a/Test/dafny0/ReturnTests.dfy b/Test/dafny0/ReturnTests.dfy index 5eb9dc21..3e667573 100644 --- a/Test/dafny0/ReturnTests.dfy +++ b/Test/dafny0/ReturnTests.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
class N
{
diff --git a/Test/dafny0/ReturnTests.dfy.expect b/Test/dafny0/ReturnTests.dfy.expect new file mode 100644 index 00000000..c192e07c --- /dev/null +++ b/Test/dafny0/ReturnTests.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 20 verified, 0 errors
diff --git a/Test/dafny0/SeqSlice.dfy b/Test/dafny0/SeqSlice.dfy index afb2deac..381bb131 100644 --- a/Test/dafny0/SeqSlice.dfy +++ b/Test/dafny0/SeqSlice.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
method test(x:seq<int>)
requires |x| == 10;
diff --git a/Test/dafny0/SeqSlice.dfy.expect b/Test/dafny0/SeqSlice.dfy.expect new file mode 100644 index 00000000..069e7767 --- /dev/null +++ b/Test/dafny0/SeqSlice.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 2 verified, 0 errors
diff --git a/Test/dafny0/Simple.dfy b/Test/dafny0/Simple.dfy index 35740520..6c9e56ec 100644 --- a/Test/dafny0/Simple.dfy +++ b/Test/dafny0/Simple.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /dprint:- /env:0 /noVerify "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// My first Dafny program
// Rustan Leino, 27 January 2008
diff --git a/Test/dafny0/Simple.dfy.expect b/Test/dafny0/Simple.dfy.expect new file mode 100644 index 00000000..c187ffe1 --- /dev/null +++ b/Test/dafny0/Simple.dfy.expect @@ -0,0 +1,66 @@ +// c:\codeplex\dafny\Test\dafny0\Simple.dfy
+
+class MyClass<T, U> {
+ var x: int;
+
+ method M(s: bool, lotsaObjects: set<object>)
+ returns (t: object, u: set<int>, v: seq<MyClass<bool,U>>)
+ requires s;
+ modifies this, lotsaObjects;
+ ensures t == t;
+ ensures old(null) != this;
+ {
+ x := 12;
+ while x < 100
+ invariant x <= 100;
+ {
+ x := x + 17;
+ if x % 20 == 3 {
+ x := this.x + 1;
+ } else {
+ this.x := x + 0;
+ }
+ t, u, v := M(true, lotsaObjects);
+ var to: MyClass<T,U>;
+ to, u, v := this.M(true, lotsaObjects);
+ to, u, v := to.M(true, lotsaObjects);
+ assert v[x] != null ==> null !in v[2 .. x][1..][5 := v[this.x]][..10];
+ }
+ }
+
+ function F(x: int, y: int, h: WildData, k: WildData): WildData
+ {
+ if x < 0 then
+ h
+ else if x == 0 then
+ if if h == k then true else false then
+ h
+ else if y == 0 then
+ k
+ else
+ h
+ else
+ k
+ }
+}
+
+datatype List<T> = Nil | Cons(T, List<T>)
+
+datatype WildData = Something | JustAboutAnything(bool, myName: set<int>, int, WildData) | More(List<int>)
+
+class C {
+ var w: WildData;
+ var list: List<bool>;
+}
+
+lemma M(x: int)
+ ensures x < 8;
+{
+}
+
+colemma M'(x': int)
+ ensures true;
+{
+}
+
+Dafny program verifier finished with 0 verified, 0 errors
diff --git a/Test/dafny0/Skeletons.dfy b/Test/dafny0/Skeletons.dfy index e9fef946..87917299 100644 --- a/Test/dafny0/Skeletons.dfy +++ b/Test/dafny0/Skeletons.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t" +// RUN: %diff "%s.expect" "%t" + module A { method M(p: int) returns (y: int) requires p <= 30; diff --git a/Test/dafny0/Skeletons.dfy.expect b/Test/dafny0/Skeletons.dfy.expect new file mode 100644 index 00000000..43b372c3 --- /dev/null +++ b/Test/dafny0/Skeletons.dfy.expect @@ -0,0 +1,12 @@ +Skeletons.dfy(45,3): Error BP5003: A postcondition might not hold on this return path.
+Skeletons.dfy(44,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ Skeletons.dfy[C0](32,5): anon11_LoopHead
+ (0,0): anon11_LoopBody
+ Skeletons.dfy[C0](32,5): anon12_Else
+ (0,0): anon13_Then
+ Skeletons.dfy[C0](37,19): anon15_Else
+ (0,0): anon10
+
+Dafny program verifier finished with 9 verified, 1 error
diff --git a/Test/dafny0/SmallTests.dfy b/Test/dafny0/SmallTests.dfy index b3107bcb..b996e1c5 100644 --- a/Test/dafny0/SmallTests.dfy +++ b/Test/dafny0/SmallTests.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint.dfy" "%s" > "%t"; %dafny /noVerify /compile:0 "%t.dprint.dfy" >> "%t"
+// RUN: %diff "%s.expect" "%t"
+
class Node {
var next: Node;
diff --git a/Test/dafny0/SmallTests.dfy.expect b/Test/dafny0/SmallTests.dfy.expect new file mode 100644 index 00000000..496e3e5d --- /dev/null +++ b/Test/dafny0/SmallTests.dfy.expect @@ -0,0 +1,185 @@ +SmallTests.dfy(33,11): Error: index out of range
+Execution trace:
+ (0,0): anon0
+SmallTests.dfy(64,36): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+ (0,0): anon12_Then
+SmallTests.dfy(65,51): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+ (0,0): anon12_Else
+ (0,0): anon3
+ (0,0): anon13_Else
+SmallTests.dfy(66,22): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+ (0,0): anon12_Then
+ (0,0): anon3
+ (0,0): anon13_Then
+ (0,0): anon6
+SmallTests.dfy(85,24): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+ SmallTests.dfy(84,5): anon8_LoopHead
+ (0,0): anon8_LoopBody
+ (0,0): anon9_Then
+SmallTests.dfy(119,5): Error: call may violate context's modifies clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon4_Else
+ (0,0): anon3
+SmallTests.dfy(132,9): Error: call may violate context's modifies clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+SmallTests.dfy(134,9): Error: call may violate context's modifies clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+SmallTests.dfy(174,9): Error: assignment may update an object field not in the enclosing context's modifies clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon22_Else
+ (0,0): anon24_Else
+ (0,0): anon26_Else
+ (0,0): anon28_Then
+ (0,0): anon29_Then
+ (0,0): anon19
+SmallTests.dfy(198,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Then
+SmallTests.dfy(205,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+ (0,0): anon3
+ (0,0): anon7_Then
+SmallTests.dfy(207,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+ (0,0): anon3
+ (0,0): anon7_Else
+SmallTests.dfy(253,24): Error BP5002: A precondition for this call might not hold.
+SmallTests.dfy(231,30): Related location: This is the precondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ SmallTests.dfy(248,19): anon3_Else
+ (0,0): anon2
+SmallTests.dfy(358,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+SmallTests.dfy(368,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+SmallTests.dfy(378,6): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+SmallTests.dfy(682,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ SmallTests.dfy(679,5): anon7_LoopHead
+ (0,0): anon7_LoopBody
+ SmallTests.dfy(679,5): anon8_Else
+ (0,0): anon9_Then
+SmallTests.dfy(703,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon7_Then
+ (0,0): anon8_Then
+ (0,0): anon3
+SmallTests.dfy(288,3): Error BP5003: A postcondition might not hold on this return path.
+SmallTests.dfy(282,11): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon18_Else
+ (0,0): anon23_Then
+ (0,0): anon24_Then
+ (0,0): anon15
+ (0,0): anon25_Else
+SmallTests.dfy(329,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon8_Then
+ (0,0): anon7
+SmallTests.dfy(336,10): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+SmallTests.dfy(346,4): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+SmallTests.dfy(390,10): Error BP5003: A postcondition might not hold on this return path.
+SmallTests.dfy(393,41): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+SmallTests.dfy(553,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+ (0,0): anon2
+SmallTests.dfy(567,20): Error: left-hand sides 0 and 1 may refer to the same location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon27_Then
+ (0,0): anon28_Then
+ (0,0): anon4
+ (0,0): anon29_Then
+ (0,0): anon30_Then
+ (0,0): anon9
+ (0,0): anon31_Then
+ (0,0): anon32_Then
+ (0,0): anon12
+SmallTests.dfy(569,15): Error: left-hand sides 1 and 2 may refer to the same location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon27_Then
+ SmallTests.dfy(562,18): anon28_Else
+ (0,0): anon4
+ (0,0): anon29_Else
+ (0,0): anon30_Then
+ (0,0): anon9
+ (0,0): anon31_Else
+ (0,0): anon35_Then
+ (0,0): anon36_Then
+ (0,0): anon37_Then
+ (0,0): anon22
+ (0,0): anon38_Then
+SmallTests.dfy(576,25): Error: target object may be null
+Execution trace:
+ (0,0): anon0
+SmallTests.dfy(589,10): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+SmallTests.dfy(613,5): Error: cannot establish the existence of LHS values that satisfy the such-that predicate
+Execution trace:
+ (0,0): anon0
+SmallTests.dfy(636,10): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon8_Then
+ (0,0): anon9_Then
+ (0,0): anon4
+ (0,0): anon10_Then
+ (0,0): anon7
+SmallTests.dfy(650,10): Error: cannot establish the existence of LHS values that satisfy the such-that predicate
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Then
+ (0,0): anon6_Then
+ (0,0): anon3
+SmallTests.dfy(652,10): Error: cannot establish the existence of LHS values that satisfy the such-that predicate
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+SmallTests.dfy(665,9): Error: cannot establish the existence of LHS values that satisfy the such-that predicate
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 87 verified, 33 errors
+
+Dafny program verifier finished with 0 verified, 0 errors
diff --git a/Test/dafny0/SplitExpr.dfy b/Test/dafny0/SplitExpr.dfy index 12d0ae55..ad654308 100644 --- a/Test/dafny0/SplitExpr.dfy +++ b/Test/dafny0/SplitExpr.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class UnboundedStack<T> {
var top: Node<T>;
ghost var footprint: set<object>;
diff --git a/Test/dafny0/SplitExpr.dfy.expect b/Test/dafny0/SplitExpr.dfy.expect new file mode 100644 index 00000000..b7ef524f --- /dev/null +++ b/Test/dafny0/SplitExpr.dfy.expect @@ -0,0 +1,6 @@ +SplitExpr.dfy(92,15): Error: loop invariant violation
+SplitExpr.dfy(86,44): Related location
+Execution trace:
+ SplitExpr.dfy(91,3): anon7_LoopHead
+
+Dafny program verifier finished with 10 verified, 1 error
diff --git a/Test/dafny0/StatementExpressions.dfy b/Test/dafny0/StatementExpressions.dfy index 99416013..48d33667 100644 --- a/Test/dafny0/StatementExpressions.dfy +++ b/Test/dafny0/StatementExpressions.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
ghost method M(n: nat) //returns (y: nat)
{
var y := F(n, 0);
diff --git a/Test/dafny0/StatementExpressions.dfy.expect b/Test/dafny0/StatementExpressions.dfy.expect new file mode 100644 index 00000000..3f50d6d9 --- /dev/null +++ b/Test/dafny0/StatementExpressions.dfy.expect @@ -0,0 +1,24 @@ +StatementExpressions.dfy(55,11): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Then
+ (0,0): anon8_Then
+StatementExpressions.dfy(59,14): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Then
+ StatementExpressions.dfy(53,7): anon8_Else
+StatementExpressions.dfy(77,6): Error: possible division by zero
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+StatementExpressions.dfy(88,5): Error: value assigned to a nat must be non-negative
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Else
+StatementExpressions.dfy(98,11): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Then
+
+Dafny program verifier finished with 17 verified, 5 errors
diff --git a/Test/dafny0/Superposition.dfy b/Test/dafny0/Superposition.dfy index c4e74871..64eab95d 100644 --- a/Test/dafny0/Superposition.dfy +++ b/Test/dafny0/Superposition.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /tracePOs /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
module M0 {
class C {
method M(c: C, x: int, y: int) returns (r: int)
@@ -53,4 +56,3 @@ module M1 refines M0 { // Ditto for R
}
}
-
diff --git a/Test/dafny0/Superposition.dfy.expect b/Test/dafny0/Superposition.dfy.expect new file mode 100644 index 00000000..b3f2d9ad --- /dev/null +++ b/Test/dafny0/Superposition.dfy.expect @@ -0,0 +1,49 @@ +
+Verifying CheckWellformed$$_0_M0.C.M ...
+ [0 proof obligations] verified
+
+Verifying Impl$$_0_M0.C.M ...
+ [4 proof obligations] verified
+
+Verifying CheckWellformed$$_0_M0.C.P ...
+ [4 proof obligations] verified
+
+Verifying CheckWellformed$$_0_M0.C.Q ...
+ [3 proof obligations] error
+Superposition.dfy(27,15): Error BP5003: A postcondition might not hold on this return path.
+Superposition.dfy(28,26): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+
+Verifying CheckWellformed$$_0_M0.C.R ...
+ [3 proof obligations] error
+Superposition.dfy(33,15): Error BP5003: A postcondition might not hold on this return path.
+Superposition.dfy(34,26): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon5_Else
+
+Verifying CheckWellformed$$_1_M1.C.M ...
+ [0 proof obligations] verified
+
+Verifying Impl$$_1_M1.C.M ...
+ [1 proof obligation] verified
+
+Verifying CheckWellformed$$_1_M1.C.P ...
+ [1 proof obligation] error
+Superposition.dfy(50,15): Error BP5003: A postcondition might not hold on this return path.
+Superposition.dfy[M1](22,26): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon7_Else
+ (0,0): anon9_Then
+ (0,0): anon6
+
+Verifying CheckWellformed$$_1_M1.C.Q ...
+ [0 proof obligations] verified
+
+Verifying CheckWellformed$$_1_M1.C.R ...
+ [0 proof obligations] verified
+
+Dafny program verifier finished with 7 verified, 3 errors
diff --git a/Test/dafny0/TailCalls.dfy b/Test/dafny0/TailCalls.dfy index 41a8c49b..ba683679 100644 --- a/Test/dafny0/TailCalls.dfy +++ b/Test/dafny0/TailCalls.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
method {:tailrecursion} A(q: int) returns (x: int, ghost y: bool, z: nat)
{
if (q < 10) {
diff --git a/Test/dafny0/TailCalls.dfy.expect b/Test/dafny0/TailCalls.dfy.expect new file mode 100644 index 00000000..ac9e803b --- /dev/null +++ b/Test/dafny0/TailCalls.dfy.expect @@ -0,0 +1,6 @@ +TailCalls.dfy(21,15): Error: this recursive call is not recognized as being tail recursive, because it is followed by non-ghost code
+TailCalls.dfy(33,12): Error: 'decreases *' is allowed only on tail-recursive methods
+TailCalls.dfy(40,12): Error: 'decreases *' is allowed only on tail-recursive methods
+TailCalls.dfy(45,12): Error: 'decreases *' is allowed only on tail-recursive methods
+TailCalls.dfy(67,12): Error: 'decreases *' is allowed only on tail-recursive methods
+5 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\TailCalls.dfy
diff --git a/Test/dafny0/Termination.dfy b/Test/dafny0/Termination.dfy index 45520b4a..f484c397 100644 --- a/Test/dafny0/Termination.dfy +++ b/Test/dafny0/Termination.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class Termination {
method A(N: int)
requires 0 <= N;
diff --git a/Test/dafny0/Termination.dfy.expect b/Test/dafny0/Termination.dfy.expect new file mode 100644 index 00000000..b050c7de --- /dev/null +++ b/Test/dafny0/Termination.dfy.expect @@ -0,0 +1,55 @@ +Termination.dfy(359,47): Error: failure to decrease termination measure
+Execution trace:
+ (0,0): anon0
+ (0,0): anon7_Else
+ (0,0): anon8_Then
+ (0,0): anon9_Else
+Termination.dfy(108,3): Error: cannot prove termination; try supplying a decreases clause for the loop
+Execution trace:
+ (0,0): anon0
+ Termination.dfy(108,3): anon6_LoopHead
+ (0,0): anon6_LoopBody
+ Termination.dfy(108,3): anon7_Else
+ Termination.dfy(108,3): anon8_Else
+Termination.dfy(116,3): Error: cannot prove termination; try supplying a decreases clause for the loop
+Execution trace:
+ (0,0): anon0
+ Termination.dfy(116,3): anon8_LoopHead
+ (0,0): anon8_LoopBody
+ Termination.dfy(116,3): anon9_Else
+ (0,0): anon10_Then
+ (0,0): anon5
+ Termination.dfy(116,3): anon11_Else
+Termination.dfy(125,3): Error: decreases expression might not decrease
+Execution trace:
+ (0,0): anon0
+ Termination.dfy(125,3): anon8_LoopHead
+ (0,0): anon8_LoopBody
+ Termination.dfy(125,3): anon9_Else
+ (0,0): anon10_Then
+ (0,0): anon5
+ Termination.dfy(125,3): anon11_Else
+Termination.dfy(126,17): Error: decreases expression must be bounded below by 0 at end of loop iteration
+Execution trace:
+ (0,0): anon0
+ Termination.dfy(125,3): anon8_LoopHead
+ (0,0): anon8_LoopBody
+ Termination.dfy(125,3): anon9_Else
+ (0,0): anon10_Then
+ (0,0): anon5
+ Termination.dfy(125,3): anon11_Else
+Termination.dfy(254,35): Error: cannot prove termination; try supplying a decreases clause
+Execution trace:
+ (0,0): anon0
+ (0,0): anon6_Else
+ (0,0): anon7_Else
+ (0,0): anon8_Then
+Termination.dfy(294,3): Error: decreases expression might not decrease
+Execution trace:
+ Termination.dfy(294,3): anon9_LoopHead
+ (0,0): anon9_LoopBody
+ Termination.dfy(294,3): anon10_Else
+ Termination.dfy(294,3): anon11_Else
+ (0,0): anon12_Else
+
+Dafny program verifier finished with 59 verified, 7 errors
diff --git a/Test/dafny0/TypeAntecedents.dfy b/Test/dafny0/TypeAntecedents.dfy index 758f5f44..d5c6a9d2 100644 --- a/Test/dafny0/TypeAntecedents.dfy +++ b/Test/dafny0/TypeAntecedents.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// -------- This is an example of what was once logically (although not trigger-ly) unsound ---
datatype Wrapper<T> = Wrap(T);
diff --git a/Test/dafny0/TypeAntecedents.dfy.expect b/Test/dafny0/TypeAntecedents.dfy.expect new file mode 100644 index 00000000..d6eb08e4 --- /dev/null +++ b/Test/dafny0/TypeAntecedents.dfy.expect @@ -0,0 +1,26 @@ +TypeAntecedents.dfy(35,13): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+TypeAntecedents.dfy(58,1): Error BP5003: A postcondition might not hold on this return path.
+TypeAntecedents.dfy(57,15): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+ (0,0): anon25_Then
+ (0,0): anon6
+ (0,0): anon28_Then
+ (0,0): anon8
+ (0,0): anon29_Else
+ (0,0): anon31_Else
+ (0,0): anon33_Then
+ (0,0): anon20
+ (0,0): anon34_Then
+ (0,0): anon35_Then
+ (0,0): anon24
+TypeAntecedents.dfy(66,16): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon25_Else
+ (0,0): anon26_Then
+ (0,0): anon27_Else
+
+Dafny program verifier finished with 12 verified, 3 errors
diff --git a/Test/dafny0/TypeParameters.dfy b/Test/dafny0/TypeParameters.dfy index f2f68a96..963916f0 100644 --- a/Test/dafny0/TypeParameters.dfy +++ b/Test/dafny0/TypeParameters.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class C<U(==)> {
method M<T>(x: T, u: U) returns (y: T)
ensures x == y && u == u;
diff --git a/Test/dafny0/TypeParameters.dfy.expect b/Test/dafny0/TypeParameters.dfy.expect new file mode 100644 index 00000000..00efc26f --- /dev/null +++ b/Test/dafny0/TypeParameters.dfy.expect @@ -0,0 +1,52 @@ +TypeParameters.dfy(47,22): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+TypeParameters.dfy(69,27): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+ (0,0): anon3_Then
+ (0,0): anon2
+TypeParameters.dfy(156,12): Error: assertion violation
+TypeParameters.dfy(156,28): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon20_Then
+ TypeParameters.dfy(156,32): anon21_Else
+ (0,0): anon5
+TypeParameters.dfy(158,12): Error: assertion violation
+TypeParameters.dfy(158,33): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon23_Then
+ TypeParameters.dfy(158,37): anon24_Else
+ (0,0): anon11
+TypeParameters.dfy(160,12): Error: assertion violation
+TypeParameters.dfy(160,20): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon25_Then
+TypeParameters.dfy(162,12): Error: assertion violation
+TypeParameters.dfy(147,5): Related location
+TypeParameters.dfy(162,21): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon26_Then
+TypeParameters.dfy(164,12): Error: assertion violation
+TypeParameters.dfy(149,8): Related location
+Execution trace:
+ (0,0): anon0
+ (0,0): anon27_Then
+TypeParameters.dfy(178,15): Error BP5005: This loop invariant might not be maintained by the loop.
+TypeParameters.dfy(178,38): Related location
+Execution trace:
+ (0,0): anon0
+ TypeParameters.dfy(171,3): anon16_LoopHead
+ (0,0): anon16_LoopBody
+ TypeParameters.dfy(171,3): anon17_Else
+ (0,0): anon19_Then
+ TypeParameters.dfy(177,3): anon20_LoopHead
+ (0,0): anon20_LoopBody
+ TypeParameters.dfy(177,3): anon21_Else
+ TypeParameters.dfy(177,3): anon23_Else
+
+Dafny program verifier finished with 58 verified, 8 errors
diff --git a/Test/dafny0/TypeTests.dfy b/Test/dafny0/TypeTests.dfy index 143fa579..31819dcc 100644 --- a/Test/dafny0/TypeTests.dfy +++ b/Test/dafny0/TypeTests.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class C {
function F(c: C, d: D): bool { true }
method M(x: int) returns (y: int, c: C)
diff --git a/Test/dafny0/TypeTests.dfy.expect b/Test/dafny0/TypeTests.dfy.expect new file mode 100644 index 00000000..79faccae --- /dev/null +++ b/Test/dafny0/TypeTests.dfy.expect @@ -0,0 +1,34 @@ +TypeTests.dfy(7,13): Error: incorrect type of function argument 0 (expected C, got D)
+TypeTests.dfy(7,13): Error: incorrect type of function argument 1 (expected D, got C)
+TypeTests.dfy(8,13): Error: incorrect type of function argument 0 (expected C, got int)
+TypeTests.dfy(8,13): Error: incorrect type of function argument 1 (expected D, got int)
+TypeTests.dfy(14,15): Error: incorrect type of method in-parameter 0 (expected int, got bool)
+TypeTests.dfy(15,11): Error: incorrect type of method out-parameter 0 (expected int, got C)
+TypeTests.dfy(15,11): Error: incorrect type of method out-parameter 1 (expected C, got int)
+TypeTests.dfy(47,9): Error: Assignment to array element is not allowed in this context (because this is a ghost method or because the statement is guarded by a specification-only expression)
+TypeTests.dfy(56,6): Error: Duplicate local-variable name: z
+TypeTests.dfy(58,6): Error: Duplicate local-variable name: x
+TypeTests.dfy(61,8): Error: Duplicate local-variable name: x
+TypeTests.dfy(64,6): Error: Duplicate local-variable name: y
+TypeTests.dfy(70,11): Error: unresolved identifier: x
+TypeTests.dfy(72,28): Error: unresolved identifier: z
+TypeTests.dfy(73,29): Error: unresolved identifier: w1
+TypeTests.dfy(73,47): Error: unresolved identifier: w0
+TypeTests.dfy(76,28): Error: unresolved identifier: e
+TypeTests.dfy(91,17): Error: member F in type C does not refer to a method
+TypeTests.dfy(92,17): Error: a method called as an initialization method must not have any result arguments
+TypeTests.dfy(101,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
+TypeTests.dfy(102,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
+TypeTests.dfy(103,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
+TypeTests.dfy(105,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
+TypeTests.dfy(106,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
+TypeTests.dfy(107,3): Error: cannot assign to a range of array elements (try the 'forall' statement)
+TypeTests.dfy(113,6): Error: sorry, cannot instantiate collection type with a subrange type
+TypeTests.dfy(114,9): Error: sorry, cannot instantiate type parameter with a subrange type
+TypeTests.dfy(115,8): Error: sorry, cannot instantiate 'array' type with a subrange type
+TypeTests.dfy(116,8): Error: sorry, cannot instantiate 'array' type with a subrange type
+TypeTests.dfy(128,15): Error: ghost variables are allowed only in specification contexts
+TypeTests.dfy(138,4): Error: cannot assign to non-ghost variable in a ghost context
+TypeTests.dfy(139,7): Error: cannot assign to non-ghost variable in a ghost context
+TypeTests.dfy(21,9): Error: because of cyclic dependencies among constructor argument types, no instances of datatype 'NeverendingList' can be constructed
+33 resolution/type errors detected in c:\codeplex\dafny\Test\dafny0\TypeTests.dfy
diff --git a/Test/dafny1/Answer b/Test/dafny1/Answer index 06cac03b..e60451c2 100644 --- a/Test/dafny1/Answer +++ b/Test/dafny1/Answer @@ -92,20 +92,20 @@ Dafny program verifier finished with 33 verified, 0 errors Dafny program verifier finished with 141 verified, 0 errors
-------------------- MoreInduction.dfy --------------------
-MoreInduction.dfy(75,1): Error BP5003: A postcondition might not hold on this return path.
-MoreInduction.dfy(74,11): Related location: This is the postcondition that might not hold.
+MoreInduction.dfy(78,1): Error BP5003: A postcondition might not hold on this return path.
+MoreInduction.dfy(77,11): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-MoreInduction.dfy(80,1): Error BP5003: A postcondition might not hold on this return path.
-MoreInduction.dfy(79,21): Related location: This is the postcondition that might not hold.
+MoreInduction.dfy(83,1): Error BP5003: A postcondition might not hold on this return path.
+MoreInduction.dfy(82,21): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-MoreInduction.dfy(85,1): Error BP5003: A postcondition might not hold on this return path.
-MoreInduction.dfy(84,11): Related location: This is the postcondition that might not hold.
+MoreInduction.dfy(88,1): Error BP5003: A postcondition might not hold on this return path.
+MoreInduction.dfy(87,11): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
-MoreInduction.dfy(90,1): Error BP5003: A postcondition might not hold on this return path.
-MoreInduction.dfy(89,22): Related location: This is the postcondition that might not hold.
+MoreInduction.dfy(93,1): Error BP5003: A postcondition might not hold on this return path.
+MoreInduction.dfy(92,22): Related location: This is the postcondition that might not hold.
Execution trace:
(0,0): anon0
diff --git a/Test/dafny1/BDD.dfy b/Test/dafny1/BDD.dfy index 3b6e478c..252164db 100644 --- a/Test/dafny1/BDD.dfy +++ b/Test/dafny1/BDD.dfy @@ -1,4 +1,5 @@ -
+// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
module SimpleBDD
{
@@ -57,4 +58,4 @@ module SimpleBDD b := node.b;
}
}
-}
\ No newline at end of file +}
diff --git a/Test/dafny1/BDD.dfy.expect b/Test/dafny1/BDD.dfy.expect new file mode 100644 index 00000000..790f6509 --- /dev/null +++ b/Test/dafny1/BDD.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 5 verified, 0 errors
diff --git a/Test/dafny1/BinaryTree.dfy b/Test/dafny1/BinaryTree.dfy index ea915f69..edacd931 100644 --- a/Test/dafny1/BinaryTree.dfy +++ b/Test/dafny1/BinaryTree.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class IntSet {
ghost var Contents: set<int>;
ghost var Repr: set<object>;
diff --git a/Test/dafny1/BinaryTree.dfy.expect b/Test/dafny1/BinaryTree.dfy.expect new file mode 100644 index 00000000..acae4413 --- /dev/null +++ b/Test/dafny1/BinaryTree.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 24 verified, 0 errors
diff --git a/Test/dafny1/Celebrity.dfy b/Test/dafny1/Celebrity.dfy index a4043f4d..7e5ab205 100644 --- a/Test/dafny1/Celebrity.dfy +++ b/Test/dafny1/Celebrity.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Celebrity example, inspired by the Rodin tutorial
static function method Knows<Person>(a: Person, b: Person): bool
diff --git a/Test/dafny1/Celebrity.dfy.expect b/Test/dafny1/Celebrity.dfy.expect new file mode 100644 index 00000000..c87e2af2 --- /dev/null +++ b/Test/dafny1/Celebrity.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 10 verified, 0 errors
diff --git a/Test/dafny1/Cubes.dfy b/Test/dafny1/Cubes.dfy index 1ada79fa..ecf26676 100644 --- a/Test/dafny1/Cubes.dfy +++ b/Test/dafny1/Cubes.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
method Cubes(a: array<int>)
requires a != null;
modifies a;
diff --git a/Test/dafny1/Cubes.dfy.expect b/Test/dafny1/Cubes.dfy.expect new file mode 100644 index 00000000..069e7767 --- /dev/null +++ b/Test/dafny1/Cubes.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 2 verified, 0 errors
diff --git a/Test/dafny1/ExtensibleArray.dfy b/Test/dafny1/ExtensibleArray.dfy index 57ac69c7..cb48e02b 100644 --- a/Test/dafny1/ExtensibleArray.dfy +++ b/Test/dafny1/ExtensibleArray.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class ExtensibleArray<T> {
ghost var Contents: seq<T>;
ghost var Repr: set<object>;
diff --git a/Test/dafny1/ExtensibleArray.dfy.expect b/Test/dafny1/ExtensibleArray.dfy.expect new file mode 100644 index 00000000..f3a9c95f --- /dev/null +++ b/Test/dafny1/ExtensibleArray.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 11 verified, 0 errors
diff --git a/Test/dafny1/ExtensibleArrayAuto.dfy b/Test/dafny1/ExtensibleArrayAuto.dfy index b05af9f9..b2e5ecc4 100644 --- a/Test/dafny1/ExtensibleArrayAuto.dfy +++ b/Test/dafny1/ExtensibleArrayAuto.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class {:autocontracts} ExtensibleArray<T> {
ghost var Contents: seq<T>;
diff --git a/Test/dafny1/ExtensibleArrayAuto.dfy.expect b/Test/dafny1/ExtensibleArrayAuto.dfy.expect new file mode 100644 index 00000000..f3a9c95f --- /dev/null +++ b/Test/dafny1/ExtensibleArrayAuto.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 11 verified, 0 errors
diff --git a/Test/dafny1/FindZero.dfy b/Test/dafny1/FindZero.dfy index c92dd065..f0eb6a60 100644 --- a/Test/dafny1/FindZero.dfy +++ b/Test/dafny1/FindZero.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
method FindZero(a: array<int>) returns (r: int)
requires a != null && forall i :: 0 <= i < a.Length ==> 0 <= a[i];
requires forall i :: 0 <= i && i+1 < a.Length ==> a[i]-1 <= a[i+1];
diff --git a/Test/dafny1/FindZero.dfy.expect b/Test/dafny1/FindZero.dfy.expect new file mode 100644 index 00000000..42fd56a5 --- /dev/null +++ b/Test/dafny1/FindZero.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 8 verified, 0 errors
diff --git a/Test/dafny1/Induction.dfy b/Test/dafny1/Induction.dfy index 3585dde6..5dc398f3 100644 --- a/Test/dafny1/Induction.dfy +++ b/Test/dafny1/Induction.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class IntegerInduction {
// This class considers different ways of proving, for any natural n:
// (SUM i in [0, n] :: i^3) == (SUM i in [0, n] :: i)^2
diff --git a/Test/dafny1/Induction.dfy.expect b/Test/dafny1/Induction.dfy.expect new file mode 100644 index 00000000..0d7d6532 --- /dev/null +++ b/Test/dafny1/Induction.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 33 verified, 0 errors
diff --git a/Test/dafny1/KatzManna.dfy b/Test/dafny1/KatzManna.dfy index 60b70c1a..5987a82b 100644 --- a/Test/dafny1/KatzManna.dfy +++ b/Test/dafny1/KatzManna.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
method NinetyOne(x: int, ghost proveFunctionalPostcondition: bool) returns (z: int)
ensures proveFunctionalPostcondition ==> z == if x > 101 then x-10 else 91;
{
diff --git a/Test/dafny1/KatzManna.dfy.expect b/Test/dafny1/KatzManna.dfy.expect new file mode 100644 index 00000000..4ef2de53 --- /dev/null +++ b/Test/dafny1/KatzManna.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 6 verified, 0 errors
diff --git a/Test/dafny1/ListContents.dfy b/Test/dafny1/ListContents.dfy index a8b4861d..b79d3308 100644 --- a/Test/dafny1/ListContents.dfy +++ b/Test/dafny1/ListContents.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class Node<T> {
var list: seq<T>;
var footprint: set<Node<T>>;
diff --git a/Test/dafny1/ListContents.dfy.expect b/Test/dafny1/ListContents.dfy.expect new file mode 100644 index 00000000..249e77e5 --- /dev/null +++ b/Test/dafny1/ListContents.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 9 verified, 0 errors
diff --git a/Test/dafny1/ListCopy.dfy b/Test/dafny1/ListCopy.dfy index d5febfe0..4bffd51b 100644 --- a/Test/dafny1/ListCopy.dfy +++ b/Test/dafny1/ListCopy.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class Node {
var nxt: Node;
diff --git a/Test/dafny1/ListCopy.dfy.expect b/Test/dafny1/ListCopy.dfy.expect new file mode 100644 index 00000000..73ba063c --- /dev/null +++ b/Test/dafny1/ListCopy.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 4 verified, 0 errors
diff --git a/Test/dafny1/ListReverse.dfy b/Test/dafny1/ListReverse.dfy index ef029b88..0837dd91 100644 --- a/Test/dafny1/ListReverse.dfy +++ b/Test/dafny1/ListReverse.dfy @@ -1,3 +1,5 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
class Node {
var nxt: Node;
diff --git a/Test/dafny1/ListReverse.dfy.expect b/Test/dafny1/ListReverse.dfy.expect new file mode 100644 index 00000000..069e7767 --- /dev/null +++ b/Test/dafny1/ListReverse.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 2 verified, 0 errors
diff --git a/Test/dafny1/MatrixFun.dfy b/Test/dafny1/MatrixFun.dfy index 8f9d87ed..08c82132 100644 --- a/Test/dafny1/MatrixFun.dfy +++ b/Test/dafny1/MatrixFun.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
method MirrorImage<T>(m: array2<T>)
requires m != null;
modifies m;
diff --git a/Test/dafny1/MatrixFun.dfy.expect b/Test/dafny1/MatrixFun.dfy.expect new file mode 100644 index 00000000..42fd56a5 --- /dev/null +++ b/Test/dafny1/MatrixFun.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 8 verified, 0 errors
diff --git a/Test/dafny1/MoreInduction.dfy b/Test/dafny1/MoreInduction.dfy index 84c32fb3..d71c735f 100644 --- a/Test/dafny1/MoreInduction.dfy +++ b/Test/dafny1/MoreInduction.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
datatype List<X> = Nil | Cons(Node<X>, List<X>);
datatype Node<X> = Element(X) | Nary(List<X>);
diff --git a/Test/dafny1/MoreInduction.dfy.expect b/Test/dafny1/MoreInduction.dfy.expect new file mode 100644 index 00000000..c8785e56 --- /dev/null +++ b/Test/dafny1/MoreInduction.dfy.expect @@ -0,0 +1,18 @@ +MoreInduction.dfy(78,1): Error BP5003: A postcondition might not hold on this return path.
+MoreInduction.dfy(77,11): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+MoreInduction.dfy(83,1): Error BP5003: A postcondition might not hold on this return path.
+MoreInduction.dfy(82,21): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+MoreInduction.dfy(88,1): Error BP5003: A postcondition might not hold on this return path.
+MoreInduction.dfy(87,11): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+MoreInduction.dfy(93,1): Error BP5003: A postcondition might not hold on this return path.
+MoreInduction.dfy(92,22): Related location: This is the postcondition that might not hold.
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 15 verified, 4 errors
diff --git a/Test/dafny1/PriorityQueue.dfy b/Test/dafny1/PriorityQueue.dfy index 0343cb07..4b2b2283 100644 --- a/Test/dafny1/PriorityQueue.dfy +++ b/Test/dafny1/PriorityQueue.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class PriorityQueue {
var N: int; // capacity
var n: int; // current size
diff --git a/Test/dafny1/PriorityQueue.dfy.expect b/Test/dafny1/PriorityQueue.dfy.expect new file mode 100644 index 00000000..acae4413 --- /dev/null +++ b/Test/dafny1/PriorityQueue.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 24 verified, 0 errors
diff --git a/Test/dafny1/Queue.dfy b/Test/dafny1/Queue.dfy index 8396ec5c..c7892df6 100644 --- a/Test/dafny1/Queue.dfy +++ b/Test/dafny1/Queue.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Queue.dfy
// Dafny version of Queue.bpl
// Rustan Leino, 2008
diff --git a/Test/dafny1/Queue.dfy.expect b/Test/dafny1/Queue.dfy.expect new file mode 100644 index 00000000..39123c41 --- /dev/null +++ b/Test/dafny1/Queue.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 22 verified, 0 errors
diff --git a/Test/dafny1/Rippling.dfy b/Test/dafny1/Rippling.dfy index 4aaa9a38..0f32d529 100644 --- a/Test/dafny1/Rippling.dfy +++ b/Test/dafny1/Rippling.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Datatypes
datatype Bool = False | True;
diff --git a/Test/dafny1/Rippling.dfy.expect b/Test/dafny1/Rippling.dfy.expect new file mode 100644 index 00000000..5bec7f90 --- /dev/null +++ b/Test/dafny1/Rippling.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 141 verified, 0 errors
diff --git a/Test/dafny1/SchorrWaite-stages.dfy b/Test/dafny1/SchorrWaite-stages.dfy index 63c55506..7b2e7eda 100644 --- a/Test/dafny1/SchorrWaite-stages.dfy +++ b/Test/dafny1/SchorrWaite-stages.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Schorr-Waite algorithms, written and verified in Dafny.
// Rustan Leino
// Original version: 7 November 2008
diff --git a/Test/dafny1/SchorrWaite-stages.dfy.expect b/Test/dafny1/SchorrWaite-stages.dfy.expect new file mode 100644 index 00000000..d903c7c5 --- /dev/null +++ b/Test/dafny1/SchorrWaite-stages.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 16 verified, 0 errors
diff --git a/Test/dafny1/SchorrWaite.dfy b/Test/dafny1/SchorrWaite.dfy index 18adf491..de07fdcc 100644 --- a/Test/dafny1/SchorrWaite.dfy +++ b/Test/dafny1/SchorrWaite.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Rustan Leino
// 7 November 2008
// Schorr-Waite and other marking algorithms, written and verified in Dafny.
diff --git a/Test/dafny1/SchorrWaite.dfy.expect b/Test/dafny1/SchorrWaite.dfy.expect new file mode 100644 index 00000000..c87e2af2 --- /dev/null +++ b/Test/dafny1/SchorrWaite.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 10 verified, 0 errors
diff --git a/Test/dafny1/SeparationLogicList.dfy b/Test/dafny1/SeparationLogicList.dfy index 0b803afc..5a4d967f 100644 --- a/Test/dafny1/SeparationLogicList.dfy +++ b/Test/dafny1/SeparationLogicList.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// This file contains three variations of the separation-logic lseg linked-list example.
// In this first variation, the auxiliary information about the contents represented by a linked list
diff --git a/Test/dafny1/SeparationLogicList.dfy.expect b/Test/dafny1/SeparationLogicList.dfy.expect new file mode 100644 index 00000000..d903c7c5 --- /dev/null +++ b/Test/dafny1/SeparationLogicList.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 16 verified, 0 errors
diff --git a/Test/dafny1/Substitution.dfy b/Test/dafny1/Substitution.dfy index ad39e3f2..10b70e09 100644 --- a/Test/dafny1/Substitution.dfy +++ b/Test/dafny1/Substitution.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
datatype List = Nil | Cons(Expr, List);
datatype Expr =
diff --git a/Test/dafny1/Substitution.dfy.expect b/Test/dafny1/Substitution.dfy.expect new file mode 100644 index 00000000..b9a9bc89 --- /dev/null +++ b/Test/dafny1/Substitution.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 12 verified, 0 errors
diff --git a/Test/dafny1/SumOfCubes.dfy b/Test/dafny1/SumOfCubes.dfy index 7ed7ce9b..f1bcf6c7 100644 --- a/Test/dafny1/SumOfCubes.dfy +++ b/Test/dafny1/SumOfCubes.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class SumOfCubes {
static function SumEmUp(n: int, m: int): int
requires 0 <= n && n <= m;
diff --git a/Test/dafny1/SumOfCubes.dfy.expect b/Test/dafny1/SumOfCubes.dfy.expect new file mode 100644 index 00000000..5f41963f --- /dev/null +++ b/Test/dafny1/SumOfCubes.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 17 verified, 0 errors
diff --git a/Test/dafny1/TerminationDemos.dfy b/Test/dafny1/TerminationDemos.dfy index 0aa36a10..f8fd2953 100644 --- a/Test/dafny1/TerminationDemos.dfy +++ b/Test/dafny1/TerminationDemos.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class Example {
method M(n: int)
{
diff --git a/Test/dafny1/TerminationDemos.dfy.expect b/Test/dafny1/TerminationDemos.dfy.expect new file mode 100644 index 00000000..f5019f3b --- /dev/null +++ b/Test/dafny1/TerminationDemos.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 14 verified, 0 errors
diff --git a/Test/dafny1/TreeDatatype.dfy b/Test/dafny1/TreeDatatype.dfy index a94283e6..763cef1b 100644 --- a/Test/dafny1/TreeDatatype.dfy +++ b/Test/dafny1/TreeDatatype.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// ------------------ generic list, non-generic tree
datatype List<T> = Nil | Cons(T, List<T>);
diff --git a/Test/dafny1/TreeDatatype.dfy.expect b/Test/dafny1/TreeDatatype.dfy.expect new file mode 100644 index 00000000..c87e2af2 --- /dev/null +++ b/Test/dafny1/TreeDatatype.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 10 verified, 0 errors
diff --git a/Test/dafny1/UltraFilter.dfy b/Test/dafny1/UltraFilter.dfy index c78d5e81..a32e6e0b 100644 --- a/Test/dafny1/UltraFilter.dfy +++ b/Test/dafny1/UltraFilter.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// ultra filter
class UltraFilter<G(==)> {
diff --git a/Test/dafny1/UltraFilter.dfy.expect b/Test/dafny1/UltraFilter.dfy.expect new file mode 100644 index 00000000..74590090 --- /dev/null +++ b/Test/dafny1/UltraFilter.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 19 verified, 0 errors
diff --git a/Test/dafny1/UnboundedStack.dfy b/Test/dafny1/UnboundedStack.dfy index dfc10327..58351ebb 100644 --- a/Test/dafny1/UnboundedStack.dfy +++ b/Test/dafny1/UnboundedStack.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class UnboundedStack<T> {
ghost var representation: set<object>;
ghost var content: seq<T>;
diff --git a/Test/dafny1/UnboundedStack.dfy.expect b/Test/dafny1/UnboundedStack.dfy.expect new file mode 100644 index 00000000..b9a9bc89 --- /dev/null +++ b/Test/dafny1/UnboundedStack.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 12 verified, 0 errors
diff --git a/Test/dafny1/pow2.dfy b/Test/dafny1/pow2.dfy index bc23fb0b..ad6a9737 100644 --- a/Test/dafny1/pow2.dfy +++ b/Test/dafny1/pow2.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// This is a Dafny adaptation of a Coq program by David Pichardie.
function IsEven(n: int): bool
diff --git a/Test/dafny1/pow2.dfy.expect b/Test/dafny1/pow2.dfy.expect new file mode 100644 index 00000000..42fd56a5 --- /dev/null +++ b/Test/dafny1/pow2.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 8 verified, 0 errors
diff --git a/Test/dafny2/COST-verif-comp-2011-1-MaxArray.dfy b/Test/dafny2/COST-verif-comp-2011-1-MaxArray.dfy index f67d7870..1a2b1f76 100644 --- a/Test/dafny2/COST-verif-comp-2011-1-MaxArray.dfy +++ b/Test/dafny2/COST-verif-comp-2011-1-MaxArray.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
/*
Rustan Leino, 5 Oct 2011
diff --git a/Test/dafny2/COST-verif-comp-2011-1-MaxArray.dfy.expect b/Test/dafny2/COST-verif-comp-2011-1-MaxArray.dfy.expect new file mode 100644 index 00000000..069e7767 --- /dev/null +++ b/Test/dafny2/COST-verif-comp-2011-1-MaxArray.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 2 verified, 0 errors
diff --git a/Test/dafny2/COST-verif-comp-2011-2-MaxTree-class.dfy b/Test/dafny2/COST-verif-comp-2011-2-MaxTree-class.dfy index 1c01eefc..75a7822e 100644 --- a/Test/dafny2/COST-verif-comp-2011-2-MaxTree-class.dfy +++ b/Test/dafny2/COST-verif-comp-2011-2-MaxTree-class.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
/*
Rustan Leino, 5 Oct 2011
diff --git a/Test/dafny2/COST-verif-comp-2011-2-MaxTree-class.dfy.expect b/Test/dafny2/COST-verif-comp-2011-2-MaxTree-class.dfy.expect new file mode 100644 index 00000000..42fd56a5 --- /dev/null +++ b/Test/dafny2/COST-verif-comp-2011-2-MaxTree-class.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 8 verified, 0 errors
diff --git a/Test/dafny2/COST-verif-comp-2011-2-MaxTree-datatype.dfy b/Test/dafny2/COST-verif-comp-2011-2-MaxTree-datatype.dfy index 8dd7bd2d..24cd541c 100644 --- a/Test/dafny2/COST-verif-comp-2011-2-MaxTree-datatype.dfy +++ b/Test/dafny2/COST-verif-comp-2011-2-MaxTree-datatype.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// This Dafny program was inspired by Claude Marche's Why3ML program that solves
// Challenge 2 of the COST Verification Competition. It particular, it uses an
// inductive datatype for the Tree data structure, and it uses a Contains function
diff --git a/Test/dafny2/COST-verif-comp-2011-2-MaxTree-datatype.dfy.expect b/Test/dafny2/COST-verif-comp-2011-2-MaxTree-datatype.dfy.expect new file mode 100644 index 00000000..790f6509 --- /dev/null +++ b/Test/dafny2/COST-verif-comp-2011-2-MaxTree-datatype.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 5 verified, 0 errors
diff --git a/Test/dafny2/COST-verif-comp-2011-3-TwoDuplicates.dfy b/Test/dafny2/COST-verif-comp-2011-3-TwoDuplicates.dfy index 069baa61..72a22cfd 100644 --- a/Test/dafny2/COST-verif-comp-2011-3-TwoDuplicates.dfy +++ b/Test/dafny2/COST-verif-comp-2011-3-TwoDuplicates.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
/*
Rustan Leino, 5 Oct 2011
diff --git a/Test/dafny2/COST-verif-comp-2011-3-TwoDuplicates.dfy.expect b/Test/dafny2/COST-verif-comp-2011-3-TwoDuplicates.dfy.expect new file mode 100644 index 00000000..73ba063c --- /dev/null +++ b/Test/dafny2/COST-verif-comp-2011-3-TwoDuplicates.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 4 verified, 0 errors
diff --git a/Test/dafny2/COST-verif-comp-2011-4-FloydCycleDetect.dfy b/Test/dafny2/COST-verif-comp-2011-4-FloydCycleDetect.dfy index 30031e45..56f689da 100644 --- a/Test/dafny2/COST-verif-comp-2011-4-FloydCycleDetect.dfy +++ b/Test/dafny2/COST-verif-comp-2011-4-FloydCycleDetect.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
/*
Rustan Leino, 6 Oct 2011
diff --git a/Test/dafny2/COST-verif-comp-2011-4-FloydCycleDetect.dfy.expect b/Test/dafny2/COST-verif-comp-2011-4-FloydCycleDetect.dfy.expect new file mode 100644 index 00000000..9d7e625f --- /dev/null +++ b/Test/dafny2/COST-verif-comp-2011-4-FloydCycleDetect.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 25 verified, 0 errors
diff --git a/Test/dafny2/Calculations.dfy b/Test/dafny2/Calculations.dfy index bbfab50d..10004332 100644 --- a/Test/dafny2/Calculations.dfy +++ b/Test/dafny2/Calculations.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
/* Lists */
// Here are some standard definitions of List and functions on Lists
diff --git a/Test/dafny2/Calculations.dfy.expect b/Test/dafny2/Calculations.dfy.expect new file mode 100644 index 00000000..58598e51 --- /dev/null +++ b/Test/dafny2/Calculations.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 31 verified, 0 errors
diff --git a/Test/dafny2/Classics.dfy b/Test/dafny2/Classics.dfy index 68d9bf79..ddb7ccbe 100644 --- a/Test/dafny2/Classics.dfy +++ b/Test/dafny2/Classics.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// A version of Turing's additive factorial program [Dr. A. Turing, "Checking a large routine",
// In "Report of a Conference of High Speed Automatic Calculating Machines", pp. 67-69, 1949].
diff --git a/Test/dafny2/Classics.dfy.expect b/Test/dafny2/Classics.dfy.expect new file mode 100644 index 00000000..790f6509 --- /dev/null +++ b/Test/dafny2/Classics.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 5 verified, 0 errors
diff --git a/Test/dafny2/Intervals.dfy b/Test/dafny2/Intervals.dfy index f04f6411..df14c1e9 100644 --- a/Test/dafny2/Intervals.dfy +++ b/Test/dafny2/Intervals.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// The RoundDown and RoundUp methods in this file are the ones in the Boogie
// implementation Source/AbsInt/IntervalDomain.cs.
diff --git a/Test/dafny2/Intervals.dfy.expect b/Test/dafny2/Intervals.dfy.expect new file mode 100644 index 00000000..790f6509 --- /dev/null +++ b/Test/dafny2/Intervals.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 5 verified, 0 errors
diff --git a/Test/dafny2/MajorityVote.dfy b/Test/dafny2/MajorityVote.dfy index eb7ae766..51e5b968 100644 --- a/Test/dafny2/MajorityVote.dfy +++ b/Test/dafny2/MajorityVote.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Rustan Leino, June 2012.
// This file verifies an algorithm, due to Boyer and Moore, that finds the majority choice
// among a sequence of votes, see http://www.cs.utexas.edu/~moore/best-ideas/mjrty/.
diff --git a/Test/dafny2/MajorityVote.dfy.expect b/Test/dafny2/MajorityVote.dfy.expect new file mode 100644 index 00000000..d903c7c5 --- /dev/null +++ b/Test/dafny2/MajorityVote.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 16 verified, 0 errors
diff --git a/Test/dafny2/MonotonicHeapstate.dfy b/Test/dafny2/MonotonicHeapstate.dfy index 4844086e..12e86018 100644 --- a/Test/dafny2/MonotonicHeapstate.dfy +++ b/Test/dafny2/MonotonicHeapstate.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
module M0 {
datatype Kind = Constant | Ident | Binary;
diff --git a/Test/dafny2/MonotonicHeapstate.dfy.expect b/Test/dafny2/MonotonicHeapstate.dfy.expect new file mode 100644 index 00000000..f5e3b3dc --- /dev/null +++ b/Test/dafny2/MonotonicHeapstate.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 36 verified, 0 errors
diff --git a/Test/dafny2/SegmentSum.dfy b/Test/dafny2/SegmentSum.dfy index dc67162b..ec2ad8b3 100644 --- a/Test/dafny2/SegmentSum.dfy +++ b/Test/dafny2/SegmentSum.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
function Sum(a: seq<int>, s: int, t: int): int
requires 0 <= s <= t <= |a|;
{
diff --git a/Test/dafny2/SegmentSum.dfy.expect b/Test/dafny2/SegmentSum.dfy.expect new file mode 100644 index 00000000..52595bf9 --- /dev/null +++ b/Test/dafny2/SegmentSum.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 3 verified, 0 errors
diff --git a/Test/dafny2/StoreAndRetrieve.dfy b/Test/dafny2/StoreAndRetrieve.dfy index 1cc906f3..6255ee96 100644 --- a/Test/dafny2/StoreAndRetrieve.dfy +++ b/Test/dafny2/StoreAndRetrieve.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
abstract module A {
import L = Library;
class {:autocontracts} StoreAndRetrieve<Thing(==)> {
diff --git a/Test/dafny2/StoreAndRetrieve.dfy.expect b/Test/dafny2/StoreAndRetrieve.dfy.expect new file mode 100644 index 00000000..39123c41 --- /dev/null +++ b/Test/dafny2/StoreAndRetrieve.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 22 verified, 0 errors
diff --git a/Test/dafny2/TreeBarrier.dfy b/Test/dafny2/TreeBarrier.dfy index f4cc25d2..ffc75745 100644 --- a/Test/dafny2/TreeBarrier.dfy +++ b/Test/dafny2/TreeBarrier.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class Node {
var left: Node;
var right: Node;
diff --git a/Test/dafny2/TreeBarrier.dfy.expect b/Test/dafny2/TreeBarrier.dfy.expect new file mode 100644 index 00000000..42fd56a5 --- /dev/null +++ b/Test/dafny2/TreeBarrier.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 8 verified, 0 errors
diff --git a/Test/dafny2/TreeFill.dfy b/Test/dafny2/TreeFill.dfy index 3328aca9..fdd73a1a 100644 --- a/Test/dafny2/TreeFill.dfy +++ b/Test/dafny2/TreeFill.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
datatype Tree<T> = Leaf | Node(Tree, T, Tree)
function Contains<T>(t: Tree, v: T): bool
diff --git a/Test/dafny2/TreeFill.dfy.expect b/Test/dafny2/TreeFill.dfy.expect new file mode 100644 index 00000000..52595bf9 --- /dev/null +++ b/Test/dafny2/TreeFill.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 3 verified, 0 errors
diff --git a/Test/dafny2/TuringFactorial.dfy b/Test/dafny2/TuringFactorial.dfy index 585c998e..9fb5e0ea 100644 --- a/Test/dafny2/TuringFactorial.dfy +++ b/Test/dafny2/TuringFactorial.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
function Factorial(n: nat): nat
{
if n == 0 then 1 else n * Factorial(n-1)
diff --git a/Test/dafny2/TuringFactorial.dfy.expect b/Test/dafny2/TuringFactorial.dfy.expect new file mode 100644 index 00000000..52595bf9 --- /dev/null +++ b/Test/dafny2/TuringFactorial.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 3 verified, 0 errors
diff --git a/Test/dafny3/CachedContainer.dfy b/Test/dafny3/CachedContainer.dfy index 6ac5ff2f..18c12862 100644 --- a/Test/dafny3/CachedContainer.dfy +++ b/Test/dafny3/CachedContainer.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// give the method signatures and specs
abstract module M0 {
class {:autocontracts} Container<T(==)> {
diff --git a/Test/dafny3/CachedContainer.dfy.expect b/Test/dafny3/CachedContainer.dfy.expect new file mode 100644 index 00000000..c6c90498 --- /dev/null +++ b/Test/dafny3/CachedContainer.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 47 verified, 0 errors
diff --git a/Test/dafny3/CalcExample.dfy b/Test/dafny3/CalcExample.dfy index dcd41077..2782d049 100644 --- a/Test/dafny3/CalcExample.dfy +++ b/Test/dafny3/CalcExample.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
function f(x: int, y: int): int
ghost method Associativity(x: int, y: int, z: int)
diff --git a/Test/dafny3/CalcExample.dfy.expect b/Test/dafny3/CalcExample.dfy.expect new file mode 100644 index 00000000..4ef2de53 --- /dev/null +++ b/Test/dafny3/CalcExample.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 6 verified, 0 errors
diff --git a/Test/dafny3/Dijkstra.dfy b/Test/dafny3/Dijkstra.dfy index ef94f291..e90687e0 100644 --- a/Test/dafny3/Dijkstra.dfy +++ b/Test/dafny3/Dijkstra.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Example taken from:
// Edsger W. Dijkstra: Heuristics for a Calculational Proof. Inf. Process. Lett. (IPL) 53(3):141-143 (1995)
// Transcribed into Dafny by Valentin Wüstholz and Nadia Polikarpova.
diff --git a/Test/dafny3/Dijkstra.dfy.expect b/Test/dafny3/Dijkstra.dfy.expect new file mode 100644 index 00000000..b9a9bc89 --- /dev/null +++ b/Test/dafny3/Dijkstra.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 12 verified, 0 errors
diff --git a/Test/dafny3/Filter.dfy b/Test/dafny3/Filter.dfy index 4b39876a..0d9a7231 100644 --- a/Test/dafny3/Filter.dfy +++ b/Test/dafny3/Filter.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
codatatype Stream<T> = Cons(head: T, tail: Stream);
function Tail(s: Stream, n: nat): Stream
diff --git a/Test/dafny3/Filter.dfy.expect b/Test/dafny3/Filter.dfy.expect new file mode 100644 index 00000000..91aa9b47 --- /dev/null +++ b/Test/dafny3/Filter.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 43 verified, 0 errors
diff --git a/Test/dafny3/GenericSort.dfy b/Test/dafny3/GenericSort.dfy index 10589e5a..53d98bc2 100644 --- a/Test/dafny3/GenericSort.dfy +++ b/Test/dafny3/GenericSort.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
abstract module TotalOrder {
type T // the type to be compared
static predicate method Leq(a: T, b: T) // Leq(a,b) iff a <= b
diff --git a/Test/dafny3/GenericSort.dfy.expect b/Test/dafny3/GenericSort.dfy.expect new file mode 100644 index 00000000..f5e3b3dc --- /dev/null +++ b/Test/dafny3/GenericSort.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 36 verified, 0 errors
diff --git a/Test/dafny3/InductionVsCoinduction.dfy b/Test/dafny3/InductionVsCoinduction.dfy index 5c5c0412..47754036 100644 --- a/Test/dafny3/InductionVsCoinduction.dfy +++ b/Test/dafny3/InductionVsCoinduction.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// A definition of a co-inductive datatype Stream, whose values are possibly
// infinite lists.
codatatype Stream<T> = SNil | SCons(head: T, tail: Stream<T>);
diff --git a/Test/dafny3/InductionVsCoinduction.dfy.expect b/Test/dafny3/InductionVsCoinduction.dfy.expect new file mode 100644 index 00000000..c192e07c --- /dev/null +++ b/Test/dafny3/InductionVsCoinduction.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 20 verified, 0 errors
diff --git a/Test/dafny3/InfiniteTrees.dfy b/Test/dafny3/InfiniteTrees.dfy index 32a868bb..030443c0 100644 --- a/Test/dafny3/InfiniteTrees.dfy +++ b/Test/dafny3/InfiniteTrees.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Here is the usual definition of possibly infinite lists, along with a function Tail(s, n), which drops
// n heads from s, and two lemmas that prove properties of Tail.
diff --git a/Test/dafny3/InfiniteTrees.dfy.expect b/Test/dafny3/InfiniteTrees.dfy.expect new file mode 100644 index 00000000..79f8263d --- /dev/null +++ b/Test/dafny3/InfiniteTrees.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 88 verified, 0 errors
diff --git a/Test/dafny3/Iter.dfy b/Test/dafny3/Iter.dfy index c5e8f3a3..5ada6f5b 100644 --- a/Test/dafny3/Iter.dfy +++ b/Test/dafny3/Iter.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class List<T> {
ghost var Contents: seq<T>;
ghost var Repr: set<object>;
diff --git a/Test/dafny3/Iter.dfy.expect b/Test/dafny3/Iter.dfy.expect new file mode 100644 index 00000000..b06ff8fc --- /dev/null +++ b/Test/dafny3/Iter.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 15 verified, 0 errors
diff --git a/Test/dafny3/OpaqueTrees.dfy b/Test/dafny3/OpaqueTrees.dfy index a08d0b68..53540c1d 100644 --- a/Test/dafny3/OpaqueTrees.dfy +++ b/Test/dafny3/OpaqueTrees.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
datatype Tree<T> = Leaf(T) | Node(Tree, Tree)
function {:opaque} size(t: Tree): nat
diff --git a/Test/dafny3/OpaqueTrees.dfy.expect b/Test/dafny3/OpaqueTrees.dfy.expect new file mode 100644 index 00000000..4ef2de53 --- /dev/null +++ b/Test/dafny3/OpaqueTrees.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 6 verified, 0 errors
diff --git a/Test/dafny3/Paulson.dfy b/Test/dafny3/Paulson.dfy index 37586ec7..735963a5 100644 --- a/Test/dafny3/Paulson.dfy +++ b/Test/dafny3/Paulson.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// The following are Dafny versions from Section 8 of
// "Mechanizing Coinduction and Corecursion in Higher-order Logic"
// by Lawrence C. Paulson, 1996.
diff --git a/Test/dafny3/Paulson.dfy.expect b/Test/dafny3/Paulson.dfy.expect new file mode 100644 index 00000000..ab18d98e --- /dev/null +++ b/Test/dafny3/Paulson.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 28 verified, 0 errors
diff --git a/Test/dafny3/SetIterations.dfy b/Test/dafny3/SetIterations.dfy index 8b095b5f..2319078a 100644 --- a/Test/dafny3/SetIterations.dfy +++ b/Test/dafny3/SetIterations.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
function Count<T>(s: set<T>): int
{
if s == {} then 0 else
diff --git a/Test/dafny3/SetIterations.dfy.expect b/Test/dafny3/SetIterations.dfy.expect new file mode 100644 index 00000000..aeb37948 --- /dev/null +++ b/Test/dafny3/SetIterations.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 13 verified, 0 errors
diff --git a/Test/dafny3/SimpleCoinduction.dfy b/Test/dafny3/SimpleCoinduction.dfy index b5b0c8bf..5be5c569 100644 --- a/Test/dafny3/SimpleCoinduction.dfy +++ b/Test/dafny3/SimpleCoinduction.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
codatatype Stream<T> = Cons(head: T, tail: Stream);
codatatype IList<T> = Nil | ICons(head: T, tail: IList);
diff --git a/Test/dafny3/SimpleCoinduction.dfy.expect b/Test/dafny3/SimpleCoinduction.dfy.expect new file mode 100644 index 00000000..58598e51 --- /dev/null +++ b/Test/dafny3/SimpleCoinduction.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 31 verified, 0 errors
diff --git a/Test/dafny3/SimpleInduction.dfy b/Test/dafny3/SimpleInduction.dfy index 700b531c..29660099 100644 --- a/Test/dafny3/SimpleInduction.dfy +++ b/Test/dafny3/SimpleInduction.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
/*
The well-known Fibonacci function defined in Dafny. The postcondition of
method FibLemma states a property about Fib, and the body of the method is
diff --git a/Test/dafny3/SimpleInduction.dfy.expect b/Test/dafny3/SimpleInduction.dfy.expect new file mode 100644 index 00000000..b9a9bc89 --- /dev/null +++ b/Test/dafny3/SimpleInduction.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 12 verified, 0 errors
diff --git a/Test/dafny3/Streams.dfy b/Test/dafny3/Streams.dfy index 1d566545..c51f30d4 100644 --- a/Test/dafny3/Streams.dfy +++ b/Test/dafny3/Streams.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// ----- Stream
codatatype Stream<T> = Nil | Cons(head: T, tail: Stream);
diff --git a/Test/dafny3/Streams.dfy.expect b/Test/dafny3/Streams.dfy.expect new file mode 100644 index 00000000..c90560b0 --- /dev/null +++ b/Test/dafny3/Streams.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 52 verified, 0 errors
diff --git a/Test/dafny3/WideTrees.dfy b/Test/dafny3/WideTrees.dfy index 3fa99256..0245ef9f 100644 --- a/Test/dafny3/WideTrees.dfy +++ b/Test/dafny3/WideTrees.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
codatatype Stream<T> = SNil | SCons(head: T, tail: Stream)
datatype Tree = Node(children: Stream<Tree>)
diff --git a/Test/dafny3/WideTrees.dfy.expect b/Test/dafny3/WideTrees.dfy.expect new file mode 100644 index 00000000..c87e2af2 --- /dev/null +++ b/Test/dafny3/WideTrees.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 10 verified, 0 errors
diff --git a/Test/dafny3/Zip.dfy b/Test/dafny3/Zip.dfy index 629861f9..9b1d3671 100644 --- a/Test/dafny3/Zip.dfy +++ b/Test/dafny3/Zip.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
/*
Here, we define infinite streams with some functions and prove a few
properties, drawing from:
diff --git a/Test/dafny3/Zip.dfy.expect b/Test/dafny3/Zip.dfy.expect new file mode 100644 index 00000000..acae4413 --- /dev/null +++ b/Test/dafny3/Zip.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 24 verified, 0 errors
diff --git a/Test/dafny4/ACL2-extractor.dfy b/Test/dafny4/ACL2-extractor.dfy index 272e8356..8fe98531 100644 --- a/Test/dafny4/ACL2-extractor.dfy +++ b/Test/dafny4/ACL2-extractor.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// This is the Extractor Problem from section 11.8 of the ACL2 book,
// "Computer-Aided Reasoning: An Approach" by Kaufmann, Manolios, and
// Moore (2011 edition).
diff --git a/Test/dafny4/ACL2-extractor.dfy.expect b/Test/dafny4/ACL2-extractor.dfy.expect new file mode 100644 index 00000000..0d7d6532 --- /dev/null +++ b/Test/dafny4/ACL2-extractor.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 33 verified, 0 errors
diff --git a/Test/dafny4/Answer b/Test/dafny4/Answer index d9248d4a..14986a59 100644 --- a/Test/dafny4/Answer +++ b/Test/dafny4/Answer @@ -20,7 +20,7 @@ Dafny program verifier finished with 24 verified, 0 errors Dafny program verifier finished with 47 verified, 0 errors
-------------------- SoftwareFoundations-Basics.dfy --------------------
-SoftwareFoundations-Basics.dfy(38,12): Error: assertion violation
+SoftwareFoundations-Basics.dfy(41,12): Error: assertion violation
Execution trace:
(0,0): anon0
diff --git a/Test/dafny4/Circ.dfy b/Test/dafny4/Circ.dfy index ab8d04e4..e7609195 100644 --- a/Test/dafny4/Circ.dfy +++ b/Test/dafny4/Circ.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// A couple of examples from Grigore Rosu and Dorel Lucanu, "Circular coinduction: A proof theoretical
// foundation", CALCO 2009.
diff --git a/Test/dafny4/Circ.dfy.expect b/Test/dafny4/Circ.dfy.expect new file mode 100644 index 00000000..d903c7c5 --- /dev/null +++ b/Test/dafny4/Circ.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 16 verified, 0 errors
diff --git a/Test/dafny4/ClassRefinement.dfy b/Test/dafny4/ClassRefinement.dfy index e2c5906b..cff6d98f 100644 --- a/Test/dafny4/ClassRefinement.dfy +++ b/Test/dafny4/ClassRefinement.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
abstract module M0 {
class Cell {
var data: int;
diff --git a/Test/dafny4/ClassRefinement.dfy.expect b/Test/dafny4/ClassRefinement.dfy.expect new file mode 100644 index 00000000..c5ca0d23 --- /dev/null +++ b/Test/dafny4/ClassRefinement.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 18 verified, 0 errors
diff --git a/Test/dafny4/CoqArt-InsertionSort.dfy b/Test/dafny4/CoqArt-InsertionSort.dfy index 9ed57e98..efd01537 100644 --- a/Test/dafny4/CoqArt-InsertionSort.dfy +++ b/Test/dafny4/CoqArt-InsertionSort.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Dafny transcription of the Coq development of insertion sort, as found in Coq'Art.
datatype List<T> = Nil | Cons(head: T, tail: List)
diff --git a/Test/dafny4/CoqArt-InsertionSort.dfy.expect b/Test/dafny4/CoqArt-InsertionSort.dfy.expect new file mode 100644 index 00000000..f5e3b3dc --- /dev/null +++ b/Test/dafny4/CoqArt-InsertionSort.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 36 verified, 0 errors
diff --git a/Test/dafny4/Fstar-QuickSort.dfy b/Test/dafny4/Fstar-QuickSort.dfy index b9cdc0dd..4c5bc09b 100644 --- a/Test/dafny4/Fstar-QuickSort.dfy +++ b/Test/dafny4/Fstar-QuickSort.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// A Dafny rendition of an F* version of QuickSort (included at the bottom of this file).
// Unlike the F* version, Dafny also proves termination and does not use any axioms. However,
// Dafny needs help with a couple of lemmas in places where F* does not need them.
diff --git a/Test/dafny4/Fstar-QuickSort.dfy.expect b/Test/dafny4/Fstar-QuickSort.dfy.expect new file mode 100644 index 00000000..4ef2de53 --- /dev/null +++ b/Test/dafny4/Fstar-QuickSort.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 6 verified, 0 errors
diff --git a/Test/dafny4/GHC-MergeSort.dfy b/Test/dafny4/GHC-MergeSort.dfy index e48ca37b..e06773eb 100644 --- a/Test/dafny4/GHC-MergeSort.dfy +++ b/Test/dafny4/GHC-MergeSort.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Rustan Leino
// 23 Dec 2013 (completed in 5 hours, but is missing the formulation and proof that the
// sorting algorithm is stable, which the journal article below does and says is the most interesting
diff --git a/Test/dafny4/GHC-MergeSort.dfy.expect b/Test/dafny4/GHC-MergeSort.dfy.expect new file mode 100644 index 00000000..f634a929 --- /dev/null +++ b/Test/dafny4/GHC-MergeSort.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 83 verified, 0 errors
diff --git a/Test/dafny4/KozenSilva.dfy b/Test/dafny4/KozenSilva.dfy index 101ac3da..af0cdc71 100644 --- a/Test/dafny4/KozenSilva.dfy +++ b/Test/dafny4/KozenSilva.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Dafny versions of examples from "Practical Coinduction" by Kozen and Silva.
// The comments in this file explain some things about Dafny and its support for
// co-induction; for a full description, see "Co-induction Simply" by Leino and
diff --git a/Test/dafny4/KozenSilva.dfy.expect b/Test/dafny4/KozenSilva.dfy.expect new file mode 100644 index 00000000..c6c90498 --- /dev/null +++ b/Test/dafny4/KozenSilva.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 47 verified, 0 errors
diff --git a/Test/dafny4/NumberRepresentations.dfy b/Test/dafny4/NumberRepresentations.dfy index b8c261d7..d7c142ee 100644 --- a/Test/dafny4/NumberRepresentations.dfy +++ b/Test/dafny4/NumberRepresentations.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// We consider a number representation that consists of a sequence of digits. The least
// significant digit is stored at index 0.
// For a given base, function eval gives the number that is represented. Note
diff --git a/Test/dafny4/NumberRepresentations.dfy.expect b/Test/dafny4/NumberRepresentations.dfy.expect new file mode 100644 index 00000000..0d7d6532 --- /dev/null +++ b/Test/dafny4/NumberRepresentations.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 33 verified, 0 errors
diff --git a/Test/dafny4/Primes.dfy b/Test/dafny4/Primes.dfy index 1cb5d968..31e3a19b 100644 --- a/Test/dafny4/Primes.dfy +++ b/Test/dafny4/Primes.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
predicate IsPrime(n: int)
{
2 <= n && forall m :: 2 <= m < n ==> n % m != 0
diff --git a/Test/dafny4/Primes.dfy.expect b/Test/dafny4/Primes.dfy.expect new file mode 100644 index 00000000..acae4413 --- /dev/null +++ b/Test/dafny4/Primes.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 24 verified, 0 errors
diff --git a/Test/dafny4/SoftwareFoundations-Basics.dfy b/Test/dafny4/SoftwareFoundations-Basics.dfy index 9f239612..1d287824 100644 --- a/Test/dafny4/SoftwareFoundations-Basics.dfy +++ b/Test/dafny4/SoftwareFoundations-Basics.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Basics.v done in Dafny
// Enumerated Types
diff --git a/Test/dafny4/SoftwareFoundations-Basics.dfy.expect b/Test/dafny4/SoftwareFoundations-Basics.dfy.expect new file mode 100644 index 00000000..0f9eb8d0 --- /dev/null +++ b/Test/dafny4/SoftwareFoundations-Basics.dfy.expect @@ -0,0 +1,5 @@ +SoftwareFoundations-Basics.dfy(41,12): Error: assertion violation
+Execution trace:
+ (0,0): anon0
+
+Dafny program verifier finished with 82 verified, 1 error
diff --git a/Test/lit.site.cfg b/Test/lit.site.cfg new file mode 100644 index 00000000..c9597a4c --- /dev/null +++ b/Test/lit.site.cfg @@ -0,0 +1,146 @@ +# -*- Python -*- + +# Configuration file for the 'lit' test runner. + +import os +import sys +import re +import platform + +import lit.util +import lit.formats + +# name: The name of this test suite. +config.name = 'Dafny' + +config.test_format = lit.formats.ShTest(execute_external=False) + +# suffixes: A list of file extensions to treat as test files. This is overriden +# by individual lit.local.cfg files in the test subdirectories. +config.suffixes = ['.dfy'] + +# excludes: A list of directories to exclude from the testsuite. The 'Inputs' +# subdirectories contain auxiliary inputs for various tests in their parent +# directories. +config.excludes = [] + +# test_source_root: The root path where tests are located. +config.test_source_root = os.path.dirname(os.path.abspath(__file__)) + +# test_exec_root: The root path where tests should be run. +config.test_exec_root = config.test_source_root + +# Propagate 'HOME' through the environment. +if 'HOME' in os.environ: + config.environment['HOME'] = os.environ['HOME'] + +# Propagate 'INCLUDE' through the environment. +if 'INCLUDE' in os.environ: + config.environment['INCLUDE'] = os.environ['INCLUDE'] + +# Propagate 'LIB' through the environment. +if 'LIB' in os.environ: + config.environment['LIB'] = os.environ['LIB'] + +# Propagate the temp directory. Windows requires this because it uses \Windows\ +# if none of these are present. +if 'TMP' in os.environ: + config.environment['TMP'] = os.environ['TMP'] +if 'TEMP' in os.environ: + config.environment['TEMP'] = os.environ['TEMP'] + +# Propagate PYTHON_EXECUTABLE into the environment +config.environment['PYTHON_EXECUTABLE'] = getattr(config, 'python_executable', '') + +# Check that the object root is known. +if config.test_exec_root is None: + lit_config.fatal('Could not determine execution root for tests!') + +""" + Function for quoting filepaths + so that if they contain spaces + lit's shell interpreter will + treat the path as a single argument +""" +def quotePath(path): + if ' ' in path: + return '"{path}"'.format(path=path) + else: + return path + +### Add Dafny specific substitutions + +# Find Dafny.exe +up = os.path.dirname +repositoryRoot = up( + up( os.path.abspath(__file__) ) + ) +lit_config.note('Repository root is {}'.format(repositoryRoot)) + +binaryDir = os.path.join( repositoryRoot, 'Binaries') +dafnyExecutable = os.path.join( binaryDir, 'Dafny.exe') + +if not os.path.exists(dafnyExecutable): + lit_config.fatal('Could not find Dafny.exe at {}'.format(dafnyExecutable)) + +dafnyExecutable = quotePath(dafnyExecutable) + +if os.name == 'posix': + dafnyExecutable = 'mono ' + dafnyExecutable + if lit.util.which('mono') == None: + lit_config.fatal('Cannot find mono. Make sure it is your PATH') + +# Expected output does not contain logo +dafnyExecutable += ' -nologo' + +# We do not want absolute or relative paths in error messages, just the basename of the file +dafnyExecutable += ' -useBaseNameForFileName' + +# Allow user to provide extra arguments to Dafny +dafnyParams = lit_config.params.get('dafny_params','') +if len(dafnyParams) > 0: + dafnyExecutable = dafnyExecutable + ' ' + dafnyParams + +# Inform user what executable is being used +lit_config.note('Using Dafny: {}\n'.format(dafnyExecutable)) + +config.substitutions.append( ('%dafny', dafnyExecutable) ) + +# Sanity check: Check solver executable is available +# FIXME: Should this check be removed entirely? +if os.name != 'nt': + solvers = ['z3.exe','cvc4.exe'] + solverFound = False + for solver in solvers: + if os.path.exists( os.path.join(binaryDir, solver)): + solverFound = True + + if not solverFound: + lit_config.fatal('Could not find solver in "{binaryDir}". Tried looking for {solvers}'.format( + binaryDir=binaryDir, + solvers=solvers + ) + ) +else: + lit_config.warning('Skipping solver sanity check on Windows') + +# Add diff tool substitution +commonDiffFlags=' --unified=3 --strip-trailing-cr --ignore-all-space' +diffExecutable = None +if os.name == 'posix': + diffExecutable = 'diff' + commonDiffFlags +elif os.name == 'nt': + pydiff = quotePath( os.path.join(config.test_source_root, 'pydiff.py') ) + diffExecutable = sys.executable + ' ' + pydiff + commonDiffFlags +else: + lit_config.fatal('Unsupported platform') +lit_config.note("Using diff tool '{}'".format(diffExecutable)) + +config.substitutions.append( ('%diff', diffExecutable )) + +# Detect the OutputCheck tool +outputCheckPath = lit.util.which('OutputCheck') +if outputCheckPath == None: + lit_config.fatal('The OutputCheck tool is not in your PATH. Please install it.') + +config.substitutions.append( ('%OutputCheck', outputCheckPath + ' --dump-file-to-check') ) diff --git a/Test/pydiff.py b/Test/pydiff.py new file mode 100644 index 00000000..407fe251 --- /dev/null +++ b/Test/pydiff.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python +""" +Simple driver around python's difflib that implements a basic ``diff`` like +tool. This exists to provide a simple ``diff`` like tool that will run on +Windows where only the ``fc`` tool is available. +""" +import argparse +import difflib +import os +import sys + + +def main(args): + parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, + description=__doc__ + ) + # Open in binary mode so python doesn't try and do + # universal line endings for us. + parser.add_argument('from-file', + type=argparse.FileType('rb'), + ) + parser.add_argument('to-file', + type=argparse.FileType('rb'), + ) + parser.add_argument('-U','--unified=', + type=int, + default=3, + help='Number of context lines to show. ' + 'Default %(default)s' + ) + parser.add_argument('--strip-trailing-cr', + action='store_true', + help='strip trailing carriage return when comparing' + ) + parser.add_argument('--ignore-all-space','-w', + action='store_true', + help='Ignore all whitespace characters when comparing' + ) + + parsedArgs = parser.parse_args(args) + fromFile, fromFileName = preProcess(getattr(parsedArgs,'from-file'), + parsedArgs.strip_trailing_cr, + parsedArgs.ignore_all_space + ) + toFile, toFileName = preProcess(getattr(parsedArgs,'to-file'), + parsedArgs.strip_trailing_cr, + parsedArgs.ignore_all_space + ) + + result = difflib.unified_diff(fromFile, + toFile, + fromFileName, + toFileName, + n=getattr(parsedArgs,'unified='), + ) + # Force lazy computation to happen now + result = list(result) + + if len(result) == 0: + # Files are identical + return 0 + else: + for l in result: + sys.stdout.write(l) + return 1 + +def preProcess(openFile, stripTrailingCR=False, ignoreAllSpace=False): + """ + Helper function to read lines in a file and do any necessary + pre-processing + """ + original = openFile.readlines() + + # Translation table deletes white space characters Note we don't remove + # newline characters because this will create a mess when outputting the + # diff. Is this the right behaviour? + deleteChars=' \t' + translationTable = str.maketrans('','', deleteChars) + + copy = [ ] + for line in original: + newLine = str(line.decode()) + + if stripTrailingCR: + if newLine[-2:] == '\r\n' or newLine[-2:] == '\n\r': + newLine = newLine[:-2] + '\n' + + if ignoreAllSpace: + newLine = newLine.translate(translationTable) + + copy.append(newLine) + + return (copy, openFile.name) + +def getFileName(openFile): + return openFile.name + +if __name__ == '__main__': + sys.exit(main(sys.argv[1:])) + diff --git a/Test/vacid0/Composite.dfy b/Test/vacid0/Composite.dfy index ed376931..d5551d82 100644 --- a/Test/vacid0/Composite.dfy +++ b/Test/vacid0/Composite.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class Composite {
var left: Composite;
var right: Composite;
diff --git a/Test/vacid0/Composite.dfy.expect b/Test/vacid0/Composite.dfy.expect new file mode 100644 index 00000000..d903c7c5 --- /dev/null +++ b/Test/vacid0/Composite.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 16 verified, 0 errors
diff --git a/Test/vacid0/LazyInitArray.dfy b/Test/vacid0/LazyInitArray.dfy index 3e5a95ef..e6708e35 100644 --- a/Test/vacid0/LazyInitArray.dfy +++ b/Test/vacid0/LazyInitArray.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class LazyInitArray<T> {
ghost var Contents: seq<T>;
var Zero: T;
diff --git a/Test/vacid0/LazyInitArray.dfy.expect b/Test/vacid0/LazyInitArray.dfy.expect new file mode 100644 index 00000000..76f19e0d --- /dev/null +++ b/Test/vacid0/LazyInitArray.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 7 verified, 0 errors
diff --git a/Test/vacid0/SparseArray.dfy b/Test/vacid0/SparseArray.dfy index 989ddfc6..06fca9f0 100644 --- a/Test/vacid0/SparseArray.dfy +++ b/Test/vacid0/SparseArray.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class SparseArray<T> {
ghost var Contents: seq<T>;
var zero: T;
diff --git a/Test/vacid0/SparseArray.dfy.expect b/Test/vacid0/SparseArray.dfy.expect new file mode 100644 index 00000000..249e77e5 --- /dev/null +++ b/Test/vacid0/SparseArray.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 9 verified, 0 errors
diff --git a/Test/vstte2012/BreadthFirstSearch.dfy b/Test/vstte2012/BreadthFirstSearch.dfy index f1181ed2..2d724b54 100644 --- a/Test/vstte2012/BreadthFirstSearch.dfy +++ b/Test/vstte2012/BreadthFirstSearch.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" /vcsMaxKeepGoingSplits:10 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class BreadthFirstSearch<Vertex(==)>
{
// The following function is left uninterpreted (for the purpose of the
diff --git a/Test/vstte2012/BreadthFirstSearch.dfy.expect b/Test/vstte2012/BreadthFirstSearch.dfy.expect new file mode 100644 index 00000000..39123c41 --- /dev/null +++ b/Test/vstte2012/BreadthFirstSearch.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 22 verified, 0 errors
diff --git a/Test/vstte2012/Combinators.dfy b/Test/vstte2012/Combinators.dfy index dcc2e22d..82bfc970 100644 --- a/Test/vstte2012/Combinators.dfy +++ b/Test/vstte2012/Combinators.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// Problem 2 concerns an interpreter for the language of S and K combinators.
// -----------------------------------------------------------------------------
diff --git a/Test/vstte2012/Combinators.dfy.expect b/Test/vstte2012/Combinators.dfy.expect new file mode 100644 index 00000000..9d7e625f --- /dev/null +++ b/Test/vstte2012/Combinators.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 25 verified, 0 errors
diff --git a/Test/vstte2012/RingBuffer.dfy b/Test/vstte2012/RingBuffer.dfy index e943b68d..4ddd7fe2 100644 --- a/Test/vstte2012/RingBuffer.dfy +++ b/Test/vstte2012/RingBuffer.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class RingBuffer<T>
{
// public view of the class:
diff --git a/Test/vstte2012/RingBuffer.dfy.expect b/Test/vstte2012/RingBuffer.dfy.expect new file mode 100644 index 00000000..aeb37948 --- /dev/null +++ b/Test/vstte2012/RingBuffer.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 13 verified, 0 errors
diff --git a/Test/vstte2012/RingBufferAuto.dfy b/Test/vstte2012/RingBufferAuto.dfy index aa7f171a..a9d36932 100644 --- a/Test/vstte2012/RingBufferAuto.dfy +++ b/Test/vstte2012/RingBufferAuto.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
class {:autocontracts} RingBuffer<T>
{
// public view of the class:
diff --git a/Test/vstte2012/RingBufferAuto.dfy.expect b/Test/vstte2012/RingBufferAuto.dfy.expect new file mode 100644 index 00000000..aeb37948 --- /dev/null +++ b/Test/vstte2012/RingBufferAuto.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 13 verified, 0 errors
diff --git a/Test/vstte2012/Tree.dfy b/Test/vstte2012/Tree.dfy index 1aa06408..0bfce265 100644 --- a/Test/vstte2012/Tree.dfy +++ b/Test/vstte2012/Tree.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// The tree datatype
datatype Tree = Leaf | Node(Tree, Tree);
diff --git a/Test/vstte2012/Tree.dfy.expect b/Test/vstte2012/Tree.dfy.expect new file mode 100644 index 00000000..b06ff8fc --- /dev/null +++ b/Test/vstte2012/Tree.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 15 verified, 0 errors
diff --git a/Test/vstte2012/Two-Way-Sort.dfy b/Test/vstte2012/Two-Way-Sort.dfy index 49ff29b4..92be95d2 100644 --- a/Test/vstte2012/Two-Way-Sort.dfy +++ b/Test/vstte2012/Two-Way-Sort.dfy @@ -1,3 +1,6 @@ +// RUN: %dafny /compile:0 /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
// This method is a slight generalization of the
// code provided in the problem statement since it
// is generic in the type of the array elements.
diff --git a/Test/vstte2012/Two-Way-Sort.dfy.expect b/Test/vstte2012/Two-Way-Sort.dfy.expect new file mode 100644 index 00000000..73ba063c --- /dev/null +++ b/Test/vstte2012/Two-Way-Sort.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 4 verified, 0 errors
|