summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Ally Donaldson <unknown>2014-06-06 12:01:35 +0100
committerGravatar Ally Donaldson <unknown>2014-06-06 12:01:35 +0100
commitfccceea0aa40c5c69fc2b1f7a9dcd42592e57f8b (patch)
tree2a02478eb264beeaa8bec4418063af57cf58e4ff
parent800a1f0e203bba46b24aadab3df2f332af0dbc71 (diff)
parent440a216ca2a62e393611133c2ea3c9e5fe9b4f88 (diff)
Merge
-rw-r--r--Source/Concurrency/LinearSets.cs10
-rw-r--r--Source/Concurrency/OwickiGries.cs2
-rw-r--r--Source/Concurrency/TypeCheck.cs32
-rw-r--r--Source/Concurrency/YieldTypeChecker.cs4
-rw-r--r--Source/Core/AbsyExpr.cs13
-rw-r--r--Source/ExecutionEngine/ExecutionEngine.cs6
-rwxr-xr-xTest/CollectBenchmarks.py299
-rw-r--r--Test/README.md33
-rw-r--r--Test/aitest0/Answer168
-rw-r--r--Test/aitest0/runtest.bat7
-rw-r--r--Test/aitest1/Answer455
-rw-r--r--Test/aitest1/runtest.bat17
-rw-r--r--Test/aitest9/answer31
-rw-r--r--Test/aitest9/runtest.bat11
-rw-r--r--Test/alltests.txt34
-rw-r--r--Test/bitvectors/Answer51
-rw-r--r--Test/bitvectors/runtest.bat17
-rw-r--r--Test/ccnet.runtestall.bat2
-rw-r--r--Test/codeexpr/Answer31
-rw-r--r--Test/codeexpr/runtest.bat10
-rw-r--r--Test/datatypes/Answer18
-rw-r--r--Test/datatypes/runtest.bat12
-rw-r--r--Test/extractloops/Answer95
-rw-r--r--Test/extractloops/runtest.bat25
-rw-r--r--Test/generalizedarray/Answer4
-rw-r--r--Test/generalizedarray/runtest.bat12
-rw-r--r--Test/havoc0/Answer12
-rw-r--r--Test/havoc0/runtest.bat13
-rw-r--r--Test/houdini/Answer171
-rw-r--r--Test/houdini/runtest.bat16
-rw-r--r--Test/inline/Answer1570
-rw-r--r--Test/inline/runtest.bat43
-rw-r--r--Test/linear/Answer54
-rw-r--r--Test/linear/runtest.bat17
-rw-r--r--Test/livevars/Answer375
-rw-r--r--Test/livevars/runtest.bat12
-rw-r--r--Test/lock/Answer8
-rw-r--r--Test/lock/runtest.bat7
-rw-r--r--Test/og/Answer115
-rw-r--r--Test/og/DeviceCache.bpl.expect4
-rw-r--r--Test/og/DeviceCacheSimplified.bpl158
-rw-r--r--Test/og/DeviceCacheWithBuffer.bpl173
-rw-r--r--Test/og/FlanaganQadeer.bpl.expect4
-rw-r--r--Test/og/akash.bpl.expect4
-rw-r--r--Test/og/async.bpl19
-rw-r--r--Test/og/bar.bpl.expect26
-rw-r--r--Test/og/civl-paper.bpl.expect4
-rw-r--r--Test/og/foo.bpl.expect16
-rw-r--r--Test/og/houd1.bpl24
-rw-r--r--Test/og/linear-set.bpl.expect4
-rw-r--r--Test/og/linear-set2.bpl.expect4
-rw-r--r--Test/og/lock.bpl.expect4
-rw-r--r--Test/og/lock2.bpl.expect4
-rw-r--r--Test/og/multiset.bpl.expect4
-rw-r--r--Test/og/new1.bpl.expect4
-rw-r--r--Test/og/one.bpl.expect4
-rw-r--r--Test/og/parallel1.bpl.expect16
-rw-r--r--Test/og/parallel2.bpl.expect4
-rw-r--r--Test/og/parallel4.bpl.expect12
-rw-r--r--Test/og/parallel5.bpl.expect4
-rw-r--r--Test/og/perm.bpl.expect4
-rw-r--r--Test/og/runtest.bat17
-rw-r--r--Test/og/t1.bpl.expect20
-rw-r--r--Test/og/ticket.bpl.expect4
-rw-r--r--Test/prover/Answer50
-rw-r--r--Test/prover/runtest.bat13
-rwxr-xr-xTest/runtest.bat39
-rw-r--r--Test/runtestall.bat24
-rw-r--r--Test/sanity/Answer2
-rw-r--r--Test/sanity/lit.local.cfg1
-rw-r--r--Test/sanity/runtest.bat7
-rw-r--r--Test/smoke/Answer23
-rw-r--r--Test/smoke/runtest.bat11
-rw-r--r--Test/snapshots/Answer92
-rw-r--r--Test/snapshots/Snapshots6.v0.bpl2
-rw-r--r--Test/snapshots/Snapshots6.v1.bpl3
-rw-r--r--Test/snapshots/Snapshots7.v0.bpl2
-rw-r--r--Test/snapshots/Snapshots7.v1.bpl3
-rw-r--r--Test/snapshots/Snapshots8.v0.bpl15
-rw-r--r--Test/snapshots/Snapshots8.v1.bpl16
-rw-r--r--Test/snapshots/Snapshots9.v0.bpl15
-rw-r--r--Test/snapshots/Snapshots9.v1.bpl16
-rw-r--r--Test/snapshots/runtest.bat8
-rw-r--r--Test/snapshots/runtest.snapshot2
-rw-r--r--Test/snapshots/runtest.snapshot.expect8
-rw-r--r--Test/stratifiedinline/Answer519
-rw-r--r--Test/stratifiedinline/runtest.bat46
-rw-r--r--Test/symdiff/Answer5
-rw-r--r--Test/symdiff/runtest.bat9
-rw-r--r--Test/test0/Answer305
-rw-r--r--Test/test0/runtest.bat42
-rw-r--r--Test/test1/Answer170
-rw-r--r--Test/test1/runtest.bat23
-rw-r--r--Test/test13/Answer15
-rw-r--r--Test/test13/runtest.bat11
-rw-r--r--Test/test15/Answer136
-rw-r--r--Test/test15/runtest.bat21
-rw-r--r--Test/test16/Answer23
-rw-r--r--Test/test16/runtest.bat13
-rw-r--r--Test/test2/Answer543
-rw-r--r--Test/test2/runtest.bat38
-rw-r--r--Test/test20/Answer191
-rw-r--r--Test/test20/runtest.bat26
-rw-r--r--Test/test21/Answer879
-rw-r--r--Test/test21/runtest.bat35
-rw-r--r--Test/test7/Answer64
-rw-r--r--Test/test7/runtest.bat34
-rw-r--r--Test/textbook/Answer28
-rw-r--r--Test/textbook/runtest.bat14
109 files changed, 236 insertions, 7659 deletions
diff --git a/Source/Concurrency/LinearSets.cs b/Source/Concurrency/LinearSets.cs
index 6cba3649..08354ae6 100644
--- a/Source/Concurrency/LinearSets.cs
+++ b/Source/Concurrency/LinearSets.cs
@@ -527,6 +527,16 @@ namespace Microsoft.Boogie
return base.VisitParCallCmd(node);
}
+ public override Requires VisitRequires(Requires requires)
+ {
+ return requires;
+ }
+
+ public override Ensures VisitEnsures(Ensures ensures)
+ {
+ return ensures;
+ }
+
public IEnumerable<Variable> AvailableLinearVars(Absy absy)
{
if (availableLinearVars.ContainsKey(absy))
diff --git a/Source/Concurrency/OwickiGries.cs b/Source/Concurrency/OwickiGries.cs
index c99d3507..167d9f2c 100644
--- a/Source/Concurrency/OwickiGries.cs
+++ b/Source/Concurrency/OwickiGries.cs
@@ -1144,7 +1144,7 @@ namespace Microsoft.Boogie
public static void AddCheckers(LinearTypeChecker linearTypeChecker, MoverTypeChecker moverTypeChecker, List<Declaration> decls)
{
Program program = linearTypeChecker.program;
- foreach (int phaseNum in moverTypeChecker.AllPhaseNums)
+ foreach (int phaseNum in moverTypeChecker.AllPhaseNums.Except(new int[] { 0 }))
{
if (CommandLineOptions.Clo.TrustPhasesDownto <= phaseNum || phaseNum <= CommandLineOptions.Clo.TrustPhasesUpto) continue;
diff --git a/Source/Concurrency/TypeCheck.cs b/Source/Concurrency/TypeCheck.cs
index ec00a6e4..669a502e 100644
--- a/Source/Concurrency/TypeCheck.cs
+++ b/Source/Concurrency/TypeCheck.cs
@@ -306,6 +306,23 @@ namespace Microsoft.Boogie
Error(proc, "A procedure can have at most one atomic action");
continue;
}
+
+ minPhaseNum = int.MaxValue;
+ maxPhaseNum = -1;
+ canAccessSharedVars = true;
+ enclosingProc = proc;
+ enclosingImpl = null;
+ base.VisitEnsures(e);
+ canAccessSharedVars = false;
+ if (maxPhaseNum <= phaseNum && availableUptoPhaseNum <= minPhaseNum)
+ {
+ // ok
+ }
+ else
+ {
+ Error(e, "A variable being accessed is hidden before this action becomes unavailable");
+ }
+
procToActionInfo[proc] = new AtomicActionInfo(proc, e, moverType, phaseNum, availableUptoPhaseNum);
}
if (!procToActionInfo.ContainsKey(proc))
@@ -369,6 +386,7 @@ namespace Microsoft.Boogie
return node;
}
this.enclosingImpl = node;
+ this.enclosingProc = null;
auxVars = new HashSet<Variable>();
foreach (Variable v in node.LocVars)
{
@@ -387,6 +405,7 @@ namespace Microsoft.Boogie
return node;
}
this.enclosingProc = node;
+ this.enclosingImpl = null;
return base.VisitProcedure(node);
}
@@ -413,7 +432,7 @@ namespace Microsoft.Boogie
{
if (x.Decl is GlobalVariable)
{
- Error(node, "Aglobal variable cannot be used as output argument for this call");
+ Error(node, "A global variable cannot be used as output argument for this call");
}
else if (outParams.Contains(x.Decl))
{
@@ -521,14 +540,7 @@ namespace Microsoft.Boogie
AtomicActionInfo atomicActionInfo = actionInfo as AtomicActionInfo;
if (atomicActionInfo != null && atomicActionInfo.ensures == ensures)
{
- if (maxPhaseNum <= actionInfo.phaseNum && actionInfo.availableUptoPhaseNum <= minPhaseNum)
- {
- // ok
- }
- else
- {
- Error(ensures, "A variable being accessed is hidden before this action becomes unavailable");
- }
+ // This case has already been checked
}
else
{
@@ -550,6 +562,8 @@ namespace Microsoft.Boogie
public override Cmd VisitAssertCmd(AssertCmd node)
{
+ if (enclosingImpl == null)
+ return base.VisitAssertCmd(node);
minPhaseNum = int.MaxValue;
maxPhaseNum = -1;
canAccessSharedVars = true;
diff --git a/Source/Concurrency/YieldTypeChecker.cs b/Source/Concurrency/YieldTypeChecker.cs
index 92ec7e1c..c6979fc7 100644
--- a/Source/Concurrency/YieldTypeChecker.cs
+++ b/Source/Concurrency/YieldTypeChecker.cs
@@ -154,12 +154,12 @@ namespace Microsoft.Boogie
}
}
- private static bool IsTerminatingLoopHeader(Block block)
+ private bool IsTerminatingLoopHeader(Block block)
{
foreach (Cmd cmd in block.Cmds)
{
AssertCmd assertCmd = cmd as AssertCmd;
- if (assertCmd != null && QKeyValue.FindBoolAttribute(assertCmd.Attributes, "terminates"))
+ if (assertCmd != null && QKeyValue.FindBoolAttribute(assertCmd.Attributes, "terminates") && moverTypeChecker.absyToPhaseNums[assertCmd].Contains(currPhaseNum))
{
return true;
}
diff --git a/Source/Core/AbsyExpr.cs b/Source/Core/AbsyExpr.cs
index d8cb623b..70b445b1 100644
--- a/Source/Core/AbsyExpr.cs
+++ b/Source/Core/AbsyExpr.cs
@@ -604,6 +604,19 @@ namespace Microsoft.Boogie {
}
}
+ public bool isBvConst {
+ get {
+ return Val is BvConst;
+ }
+ }
+
+ public BvConst asBvConst {
+ get {
+ Contract.Assert(isBvConst);
+ return (BvConst)cce.NonNull(Val);
+ }
+ }
+
public override Absy StdDispatch(StandardVisitor visitor) {
//Contract.Requires(visitor != null);
Contract.Ensures(Contract.Result<Absy>() != null);
diff --git a/Source/ExecutionEngine/ExecutionEngine.cs b/Source/ExecutionEngine/ExecutionEngine.cs
index b8bdf894..2588c08f 100644
--- a/Source/ExecutionEngine/ExecutionEngine.cs
+++ b/Source/ExecutionEngine/ExecutionEngine.cs
@@ -157,7 +157,7 @@ namespace Microsoft.Boogie
string s;
if (tok != null)
{
- s = string.Format("{0}({1},{2}): {3}", tok.filename, tok.line, tok.col, message);
+ s = string.Format("{0}({1},{2}): {3}", ExecutionEngine.GetFileNameForConsole(tok.filename), tok.line, tok.col, message);
}
else
{
@@ -632,9 +632,9 @@ namespace Microsoft.Boogie
}
}
- private static string GetFileNameForConsole(string filename)
+ internal static string GetFileNameForConsole(string filename)
{
- return (CommandLineOptions.Clo.UseBaseNameForFileName) ? System.IO.Path.GetFileName(filename) : filename;
+ return (CommandLineOptions.Clo.UseBaseNameForFileName && !string.IsNullOrEmpty(filename) && filename != "<console>") ? System.IO.Path.GetFileName(filename) : filename;
}
diff --git a/Test/CollectBenchmarks.py b/Test/CollectBenchmarks.py
deleted file mode 100755
index 97e37ecc..00000000
--- a/Test/CollectBenchmarks.py
+++ /dev/null
@@ -1,299 +0,0 @@
-#! /usr/bin/python
-
-# 13 Aug 2006 Alexander Fuchs
-#
-# creates bpl and prover files for all test cases
-# and puts these into a zip file
-
-import sys;
-import os;
-import shutil;
-import re;
-import zipfile;
-
-
-#PROVER_NAME = "smt"
-#PROVER_NAME = "simplify"
-PROVER_NAME = "cvc4"
-
-# constants
-# prefix of temporary files created by boogie
-PREFIX_TMP = "boogie_tmp"
-
-# prefix of files put into package
-PREFIX_PGK = "boogie"
-
-# arguments to runtest so that boogie creates problem specifications
-BOOGIE_ARG0 = "/prover:blank /print:" + PREFIX_TMP + ".@TIME@.bpl /proverLog:" + PREFIX_TMP + ".@TIME@.simplify"
-BOOGIE_ARG1 = "/prover:smt /print:" + PREFIX_TMP + ".@TIME@.bpl /proverLog:" + PREFIX_TMP + ".@TIME@.jjsmt"
-BOOGIE_ARG2 = "/prover:cvc4 /print:" + PREFIX_TMP + ".@TIME@.bpl /proverLog:" + PREFIX_TMP + ".@TIME@.cvc4"
-
-# file containing the directories with tests
-TESTS_FILE = "alltests.txt"
-
-# marker in boogie generated proover files to denote end of background axioms
-START_OF_AXIOMS = "; Boogie universal background predicate"
-END_OF_AXIOMS = "; Initialized all axioms."
-
-# assumptions:
-# files: problems, runtest
-# calling boogie: parameters and filename only
-
-
-
-
-
-# call runtests to create the bpl/prover specifications:
-# - /print creates the boogie bpl file
-# - /proverLog creates the prover verification condition
-# @TIME@ is used to create a unique file name per test case
-def runtests(parameters):
- boogie_arg = BOOGIE_ARG0
- if PROVER_NAME == "simplify":
- boogie_arg = BOOGIE_ARG0
- if PROVER_NAME == "smt":
- boogie_arg = BOOGIE_ARG1
- if PROVER_NAME == "cvc4":
- boogie_arg = BOOGIE_ARG2
- if os.name == "nt":
- command = "runtestall.bat " + " ".join(parameters) + " " + boogie_arg
- else:
- command = "sh rtestall.sh " + " ".join(parameters) + " " + boogie_arg
-
- print command
-
- os.system(command)
-
-
-# evaluates a call to boogie, which is of the form:
-# ; Command Line Options: -nologo /print:boogie_testcase.@TIME@.bpl /proverLog:boogie_testcase.@TIME@.'prover' SimpleAssignments0.dll /infer:i
-#
-# returns (file_name, parameters), where
-# - file_name: the called file name (e.g. SimpleAssignments0.dll)
-# - parameters: boogie parameters except for nologo, print, proverLog
-def process_boogie_call(line):
- match = re.match("; Command Line Options:(?P<parameters>.*)$", line)
- parameters = match.group("parameters")
- parameters = re.split("\s", parameters)
-
- copy = []
- for parameter in parameters:
- # file names on DOS seem not to like containing ":", so replace by "_"
- parameter = re.sub(":", "_", parameter)
- # ignore these parameters
- if parameter == "":
- ()
- elif re.match("-nologo", parameter):
- ()
- elif re.match("/nologo", parameter):
- ()
- elif re.match("/print", parameter):
- ()
- elif re.match("/proverLog", parameter):
- ()
- elif re.match("-prover", parameter):
- ()
- elif re.match("/prover", parameter):
- ()
-
- # keep any other parameter
- elif re.match("-", parameter):
- copy.append(parameter)
- elif re.match("/", parameter):
- copy.append("-" + parameter[1:])
-
- # get the file name
- elif re.match("[a-zA-Z]", parameter):
- file_name = parameter
-
- # don't know what that is
- else:
- raise ("process_parameters: unknown argument: " + parameter)
-
- # couldn't find the file name???
- if not file_name:
- raise ("split_parameters: file_name not found in: " + parameters)
-
- else:
- return (file_name, copy)
-
-
-
-
-# evaluates the file name on which boogie was called, which is of the form:
-# SimpleAssignments0.dll
-#
-# returns (file_name, is_dll):
-# - file_name: the file name, e.g. SimpleAssignments0
-# - is_dll: if it was a dll or exe, and not a bpl file
-def process_file_name(file_name):
- if re.match("^[a-zA-Z].*\.dll$", file_name.lower()):
- return (file_name[:-4], 1)
- elif re.match("^[a-zA-Z].*\.exe$", file_name.lower()):
- return (file_name[:-4], 1)
- elif re.match("^[a-zA-Z].*\.bpl$", file_name.lower()):
- return (file_name[:-4], 0)
- else:
- return (file_name, 1)
-# else:
-# raise ("process_file_name: neither dll nor bpl: " + file_name)
-
-
-
-# creates the package name for a package file (without extension)
-# the file name creation scheme used here is not unique,
-# so a unique id is added in addition
-names = {}
-def create_pgk_name(suite, problem_name, condition_name, parameters, extension):
- # things like LESS, less happen, doesn't work under Windows
- name = (problem_name + condition_name + extension).lower()
- if name in names:
- names[name] = names[name] + 1
- name_id = "_" + repr(names[name])
- else:
- names[name] = 0
- name_id = ""
-
- if condition_name != "":
- condition_name = "_" + condition_name
-
- return os.path.join(suite, PREFIX_PGK + "_" + problem_name + condition_name + "".join(parameters) + name_id + "." + extension)
-
-
-
-# creates the bpl package file and adds it to the manifest
-def create_bpl(suite, source_name, problem_name, is_dll, parameters, manifest):
- # create unique problem file_name
- target_name = create_pgk_name(suite, problem_name, "", parameters, "bpl")
-
- # copy bpl
- if is_dll:
- # started from dll/exe, so rename converted bpl
- source_name = os.path.join(suite, source_name[:-1-len(PROVER_NAME)] + ".bpl")
- os.rename(source_name, target_name)
- else:
- # started from existing bpl, so just copy it
- source_name = os.path.join(suite, problem_name + ".bpl")
- shutil.copy(source_name, target_name)
-
- manifest.append(target_name)
-
-
-
-def create_simplify(suite, problem_name, parameters, file, manifest):
- # get background axioms
- background = []
- next = file.readline()
- if (re.match("; -------------------------------------------------------------------------", next)):
- next = file.readline()
- if (re.match(START_OF_AXIOMS, next)):
- while(not re.match(END_OF_AXIOMS, next)):
- background.append(next)
- next = file.readline()
-
- next = file.readline()
-
-
- # get individual queries
- name = next
- while(name):
- query = file.readline()
- status = file.readline()
-
- # create simplify file for this query
- match = re.match("; (?P<name>\S+)", name)
- condition_name = match.group("name")
- query_file_name = create_pgk_name(suite, problem_name, condition_name, parameters, PROVER_NAME)
-
- query_file = open(query_file_name, 'w')
- query_file.writelines(background)
- query_file.write(name)
- query_file.write(query)
- query_file.write(status)
- query_file.close()
-
- manifest.append(query_file_name)
-
- name = file.readline()
-
-
-
-
-
-#
-# main
-#
-
-# create problem specifications
-runtests(sys.argv[1:])
-
-# list of created files
-manifest = []
-# list of generated bpl files
-bpl_files = []
-
-# go into each test directory
-suites = open(TESTS_FILE)
-for suite in suites.readlines():
- suite = re.split("\s", suite)[0]
- #print suite
-
- # find the created simplify input files
- files = os.listdir(suite)
-
- prover_files = filter(lambda file: re.search(PREFIX_TMP + ("\S+\.%s$" % PROVER_NAME) , file), files)
- prover_files.sort()
-
- new_bpl_files = filter(lambda file: re.search(PREFIX_TMP + "\S+\.bpl$" , file), files)
- bpl_files.extend(map(lambda file: os.path.join(suite, file), new_bpl_files))
-
-
- # process each prover input file
- for prover_file in prover_files:
- # parse header
- file = open(os.path.join(suite, prover_file))
- line = file.readline()
- line = file.readline()
- (file_name, parameters) = process_boogie_call(line)
- (problem_name, is_dll) = process_file_name(file_name)
-
- # create bpl file
- create_bpl(suite, prover_file, problem_name, is_dll, parameters, manifest)
-
- # keep prover file for all queries
- target_name = create_pgk_name(suite, problem_name, "", parameters, PROVER_NAME)
- manifest.append(target_name)
-
- # split prover file into individual queries
- if PROVER_NAME == "simplify":
- create_simplify(suite, problem_name, parameters, file, manifest)
- file.close()
-
- os.rename(os.path.join(suite, prover_file), target_name)
-
-suites.close()
-
-
-
-#print "\n".join(manifest)
-
-# create package
-#print "zipping"
-zipFile = zipfile.ZipFile("boogie-benchmarks.zip", 'w', zipfile.ZIP_DEFLATED)
-for file_name in manifest:
- zipFile.write(file_name)
-zipFile.close()
-
-# clean up
-for file_name in manifest:
- os.remove(file_name)
-
-
-# some bpl files are create with /noVerify,
-# and then no prover file is generated,
-# so these files are just ignored and removed
-for file_name in bpl_files:
- try:
- os.remove(file_name)
- except OSError:
- ()
diff --git a/Test/README.md b/Test/README.md
index 136881a5..36eb474d 100644
--- a/Test/README.md
+++ b/Test/README.md
@@ -76,7 +76,15 @@ $ cd Test
$ lit test0/ livevars/bla1.bpl aitest0/constants.bpl
```
-Note replace ``/`` with ``\`` on Windows (tab completition is your friend)
+Note replace ``/`` with ``\`` on Windows (tab completition is your friend).
+
+If you would prefer to see less information when running tests you can use the
+``-s`` flag to show progress information and a summary when tests finish.
+
+```
+$ cd Test
+$ lit -s .
+```
To pass additional flags to Boogie when running tests run the following command
where ``-someParamter`` is a paramter Boogie supports.
@@ -86,6 +94,12 @@ $ cd Test
$ lit --param boogie_params='-someParameter' .
```
+For more ``lit`` options run
+
+```
+$ lit --help
+```
+
Debugging failing tests
-----------------------
@@ -97,6 +111,23 @@ $ cd Test
$ lit -v livevars/bla1.bpl
```
+Removing output produced by tests
+---------------------------------
+
+lit will by default create a folder named ``Output`` in each directory that
+will contain temporary files created by tests. You can run the following to
+remove all these folders/files.
+
+```
+$ cd Test
+$ ./clean.py
+```
+
+This script will also remove old files created by the legacy batch file based
+testing infrastructure (no longer in source tree). If temporary files are left
+behind from the old testing infrastructure it is necessary to run this script
+to remove those files before using ``lit``.
+
Writing tests
-------------
diff --git a/Test/aitest0/Answer b/Test/aitest0/Answer
deleted file mode 100644
index 1d19f568..00000000
--- a/Test/aitest0/Answer
+++ /dev/null
@@ -1,168 +0,0 @@
-var GlobalFlag: bool;
-
-const A: int;
-
-const B: int;
-
-const C: int;
-
-procedure Join(b: bool);
- modifies GlobalFlag;
-
-
-
-implementation Join(b: bool)
-{
- var x: int;
- var y: int;
- var z: int;
-
- start:
- assume {:inferred} true;
- GlobalFlag := true;
- x := 3;
- y := 4;
- z := x + y;
- assume {:inferred} GlobalFlag && x == 3 && y == 4 && z == 7;
- goto Then, Else;
-
- Else:
- assume {:inferred} GlobalFlag && x == 3 && y == 4 && z == 7;
- assume b <==> false;
- y := 4;
- assume {:inferred} GlobalFlag && x == 3 && y == 4 && z == 7 && !b;
- goto join;
-
- join:
- assume {:inferred} GlobalFlag && 3 <= x && x < 5 && y == 4 && z == 7;
- assert y == 4;
- assert z == 7;
- assert GlobalFlag <==> true;
- assume {:inferred} GlobalFlag && 3 <= x && x < 5 && y == 4 && z == 7;
- return;
-
- Then:
- assume {:inferred} GlobalFlag && x == 3 && y == 4 && z == 7;
- assume b <==> true;
- x := x + 1;
- assume {:inferred} GlobalFlag && x == 4 && y == 4 && z == 7 && b;
- goto join;
-}
-
-
-
-procedure Loop();
-
-
-
-implementation Loop()
-{
- var c: int;
- var i: int;
-
- start:
- assume {:inferred} true;
- c := 0;
- i := 0;
- assume {:inferred} c == 0 && i == 0;
- goto test;
-
- test: // cut point
- assume {:inferred} c == 0 && 0 <= i && i < 11;
- assume {:inferred} c == 0 && 0 <= i && i < 11;
- goto Then, Else;
-
- Else:
- assume {:inferred} c == 0 && 0 <= i && i < 11;
- assume {:inferred} c == 0 && 0 <= i && i < 11;
- return;
-
- Then:
- assume {:inferred} c == 0 && 0 <= i && i < 11;
- assume i < 10;
- i := i + 1;
- assume {:inferred} c == 0 && 1 <= i && i < 11;
- goto test;
-}
-
-
-
-procedure Evaluate();
-
-
-
-implementation Evaluate()
-{
- var i: int;
-
- start:
- assume {:inferred} true;
- i := 5;
- i := 3 * i + 1;
- i := 3 * (i + 1);
- i := 1 + 3 * i;
- i := (i + 1) * 3;
- assume {:inferred} i == 465;
- return;
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
-Intervals.bpl(64,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Intervals.bpl(59,5): anon0
- Intervals.bpl(60,3): anon3_LoopHead
- Intervals.bpl(60,3): anon3_LoopDone
-Intervals.bpl(75,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Intervals.bpl(70,5): anon0
- Intervals.bpl(71,3): anon3_LoopHead
- Intervals.bpl(71,3): anon3_LoopDone
-Intervals.bpl(94,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Intervals.bpl(89,5): anon0
- Intervals.bpl(90,3): loop_head
- Intervals.bpl(93,3): after_loop
-Intervals.bpl(140,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Intervals.bpl(135,5): anon0
- Intervals.bpl(136,3): anon3_LoopHead
- Intervals.bpl(136,3): anon3_LoopDone
-Intervals.bpl(151,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Intervals.bpl(146,5): anon0
- Intervals.bpl(147,3): anon3_LoopHead
- Intervals.bpl(147,3): anon3_LoopDone
-Intervals.bpl(202,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Intervals.bpl(192,8): anon0
- Intervals.bpl(193,3): anon4_LoopHead
- Intervals.bpl(193,3): anon4_LoopDone
-Intervals.bpl(240,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Intervals.bpl(235,5): anon0
- Intervals.bpl(236,3): anon3_LoopHead
- Intervals.bpl(236,3): anon3_LoopDone
-Intervals.bpl(252,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Intervals.bpl(246,8): anon0
- Intervals.bpl(247,3): anon3_LoopHead
- Intervals.bpl(247,3): anon3_LoopDone
-Intervals.bpl(263,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Intervals.bpl(258,5): anon0
- Intervals.bpl(259,3): anon3_LoopHead
- Intervals.bpl(259,3): anon3_LoopDone
-Intervals.bpl(285,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Intervals.bpl(280,5): anon0
- Intervals.bpl(281,3): anon3_LoopHead
- Intervals.bpl(281,3): anon3_LoopDone
-Intervals.bpl(307,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Intervals.bpl(302,5): anon0
- Intervals.bpl(303,3): anon3_LoopHead
- Intervals.bpl(303,3): anon3_LoopDone
-
-Boogie program verifier finished with 16 verified, 11 errors
diff --git a/Test/aitest0/runtest.bat b/Test/aitest0/runtest.bat
deleted file mode 100644
index b6ab77f0..00000000
--- a/Test/aitest0/runtest.bat
+++ /dev/null
@@ -1,7 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-
-%BGEXE% %* -infer:j -instrumentInfer:e -printInstrumented -noVerify constants.bpl
-%BGEXE% %* -infer:j Intervals.bpl
diff --git a/Test/aitest1/Answer b/Test/aitest1/Answer
deleted file mode 100644
index f5b5de90..00000000
--- a/Test/aitest1/Answer
+++ /dev/null
@@ -1,455 +0,0 @@
--------------------- ineq.bpl --------------------
-procedure SimpleLoop();
-
-
-
-implementation SimpleLoop()
-{
- var i: int;
-
- start:
- assume {:inferred} true;
- i := 0;
- assume {:inferred} i == 0;
- goto test;
-
- test: // cut point
- assume {:inferred} 0 <= i && i < 11;
- assume {:inferred} 0 <= i && i < 11;
- goto Then, Else;
-
- Else:
- assume {:inferred} 0 <= i && i < 11;
- assume !(i < 10);
- assume {:inferred} 0 <= i && i < 11;
- return;
-
- Then:
- assume {:inferred} 0 <= i && i < 11;
- assume i < 10;
- i := i + 1;
- assume {:inferred} 1 <= i && i < 11;
- goto test;
-}
-
-
-
-procedure VariableBoundLoop(n: int);
-
-
-
-implementation VariableBoundLoop(n: int)
-{
- var i: int;
-
- start:
- assume {:inferred} true;
- i := 0;
- assume {:inferred} i == 0;
- goto test;
-
- test: // cut point
- assume {:inferred} 0 <= i;
- assume {:inferred} 0 <= i;
- goto Then, Else;
-
- Else:
- assume {:inferred} 0 <= i;
- assume !(i < n);
- assume {:inferred} 0 <= i;
- return;
-
- Then:
- assume {:inferred} 0 <= i;
- assume i < n;
- i := i + 1;
- assume {:inferred} 1 <= i && 1 <= n;
- goto test;
-}
-
-
-
-procedure Foo();
-
-
-
-implementation Foo()
-{
- var i: int;
-
- start:
- assume {:inferred} true;
- i := 3 * i + 1;
- i := 3 * (i + 1);
- i := 1 + 3 * i;
- i := (i + 1) * 3;
- assume {:inferred} true;
- return;
-}
-
-
-
-procedure FooToo();
-
-
-
-implementation FooToo()
-{
- var i: int;
-
- start:
- assume {:inferred} true;
- i := 5;
- i := 3 * i + 1;
- i := 3 * (i + 1);
- i := 1 + 3 * i;
- i := (i + 1) * 3;
- assume {:inferred} i == 465;
- return;
-}
-
-
-
-procedure FooTooStepByStep();
-
-
-
-implementation FooTooStepByStep()
-{
- var i: int;
-
- L0:
- assume {:inferred} true;
- i := 5;
- i := 3 * i + 1;
- i := 3 * (i + 1);
- i := 1 + 3 * i;
- i := (i + 1) * 3;
- assume {:inferred} i == 465;
- return;
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
--------------------- Linear0.bpl --------------------
-var x: int;
-
-var y: int;
-
-procedure p();
-
-
-
-implementation p()
-{
-
- start:
- assume {:inferred} true;
- assume {:inferred} true;
- return;
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
--------------------- Linear1.bpl --------------------
-var x: int;
-
-var y: int;
-
-procedure p();
-
-
-
-implementation p()
-{
-
- start:
- assume {:inferred} true;
- assume x * x == y;
- assume {:inferred} true;
- return;
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
--------------------- Linear2.bpl --------------------
-var x: int;
-
-var y: int;
-
-procedure p();
-
-
-
-implementation p()
-{
-
- start:
- assume {:inferred} true;
- assume x == 8;
- assume {:inferred} x == 8;
- return;
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
--------------------- Linear3.bpl --------------------
-var x: int;
-
-var y: int;
-
-procedure p();
-
-
-
-implementation p()
-{
-
- start:
- assume {:inferred} true;
- assume x < y;
- assume {:inferred} true;
- return;
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
--------------------- Linear4.bpl --------------------
-var x: int;
-
-var y: int;
-
-procedure p();
- modifies x;
-
-
-
-implementation p()
-{
-
- A:
- assume {:inferred} true;
- assume x < y;
- assume {:inferred} true;
- goto B, C;
-
- C:
- assume {:inferred} true;
- assume {:inferred} true;
- return;
-
- B:
- assume {:inferred} true;
- x := x * x;
- assume {:inferred} true;
- return;
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
--------------------- Linear5.bpl --------------------
-var x: int;
-
-var y: int;
-
-procedure p();
- modifies x;
-
-
-
-implementation p()
-{
-
- A:
- assume {:inferred} true;
- assume -1 <= x;
- assume {:inferred} -1 <= x;
- goto B, E;
-
- E:
- assume {:inferred} true;
- assume {:inferred} true;
- return;
-
- B:
- assume {:inferred} -1 <= x;
- assume x < y;
- assume {:inferred} -1 <= x && 0 <= y;
- goto C, E;
-
- C:
- assume {:inferred} -1 <= x && 0 <= y;
- x := x * x;
- assume {:inferred} x < 2 && 0 <= y;
- goto D, E;
-
- D:
- assume {:inferred} x < 2 && 0 <= y;
- x := y;
- assume {:inferred} 0 <= x && 0 <= y;
- return;
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
--------------------- Linear6.bpl --------------------
-var x: int;
-
-var y: int;
-
-var z: int;
-
-procedure p();
- modifies x;
-
-
-
-implementation p()
-{
-
- A:
- assume {:inferred} true;
- x := 8;
- assume {:inferred} x == 8;
- goto B, C;
-
- C:
- assume {:inferred} x == 8;
- x := 10;
- assume {:inferred} x == 10;
- goto D;
-
- D:
- assume {:inferred} 9 <= x && x < 11;
- assume {:inferred} 9 <= x && x < 11;
- return;
-
- B:
- assume {:inferred} x == 8;
- x := 9;
- assume {:inferred} x == 9;
- goto D;
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
--------------------- Linear7.bpl --------------------
-var x: int;
-
-var y: int;
-
-var z: int;
-
-procedure p();
-
-
-
-implementation p()
-{
-
- A:
- assume {:inferred} true;
- assume {:inferred} true;
- goto B, C;
-
- C:
- assume {:inferred} true;
- assume y <= 0;
- assume {:inferred} y < 1;
- goto D;
-
- D:
- assume {:inferred} true;
- assume {:inferred} true;
- return;
-
- B:
- assume {:inferred} true;
- assume x <= 0;
- assume {:inferred} x < 1;
- goto D;
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
--------------------- Linear8.bpl --------------------
-procedure foo();
-
-
-
-implementation foo()
-{
- var i: int;
- var j: int;
- var n: int;
-
- A:
- assume {:inferred} true;
- n := 0;
- j := 0;
- i := j + 1;
- i := i + 1;
- i := i + 1;
- i := i + 1;
- i := i + 1;
- j := j + 1;
- assume {:inferred} i == 5 && j == 1 && n == 0;
- return;
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
--------------------- Linear9.bpl --------------------
-procedure foo();
-
-
-
-implementation foo()
-{
- var i: int;
- var j: int;
- var n: int;
-
- entry:
- assume {:inferred} true;
- assume n >= 4;
- i := 0;
- j := i + 1;
- assume {:inferred} i == 0 && j == 1 && 4 <= n;
- goto exit, loop0;
-
- loop0: // cut point
- assume {:inferred} 0 <= i && 1 <= j && 4 <= n;
- assume j <= n;
- i := i + 1;
- j := j + 1;
- assume {:inferred} 1 <= i && 2 <= j && 4 <= n;
- goto loop0, exit;
-
- exit:
- assume {:inferred} 0 <= i && 1 <= j && 4 <= n;
- assume {:inferred} 0 <= i && 1 <= j && 4 <= n;
- return;
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
--------------------- Bound.bpl --------------------
-Bound.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Bound.bpl(10,1): start
- Bound.bpl(16,1): LoopHead
- Bound.bpl(24,1): AfterLoop
-
-Boogie program verifier finished with 0 verified, 1 error
diff --git a/Test/aitest1/runtest.bat b/Test/aitest1/runtest.bat
deleted file mode 100644
index 6e8a7bb1..00000000
--- a/Test/aitest1/runtest.bat
+++ /dev/null
@@ -1,17 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-
-for %%f in (ineq.bpl Linear0.bpl Linear1.bpl Linear2.bpl
- Linear3.bpl Linear4.bpl Linear5.bpl Linear6.bpl
- Linear7.bpl Linear8.bpl Linear9.bpl) do (
- echo -------------------- %%f --------------------
- %BGEXE% %* -infer:j -instrumentInfer:e -printInstrumented -noVerify %%f
-)
-
-for %%f in (Bound.bpl) do (
- echo -------------------- %%f --------------------
- %BGEXE% %* -infer:j %%f
-)
-
diff --git a/Test/aitest9/answer b/Test/aitest9/answer
deleted file mode 100644
index ef9f4d83..00000000
--- a/Test/aitest9/answer
+++ /dev/null
@@ -1,31 +0,0 @@
-
--------------------- VarMapFixPoint.bpl --------------------
-VarMapFixPoint.bpl(13,5): Error BP5005: This loop invariant might not be maintained by the loop.
-Execution trace:
- VarMapFixPoint.bpl(7,3): start
- VarMapFixPoint.bpl(12,3): LoopHead
- VarMapFixPoint.bpl(16,3): LoopBody
-
-Boogie program verifier finished with 1 verified, 1 error
-
--------------------- TestIntervals.bpl --------------------
-TestIntervals.bpl(25,3): Error BP5001: This assertion might not hold.
-Execution trace:
- TestIntervals.bpl(7,5): anon0
- TestIntervals.bpl(8,3): anon9_LoopHead
- TestIntervals.bpl(14,14): anon10_Then
- TestIntervals.bpl(15,14): anon11_Then
- TestIntervals.bpl(16,14): anon12_Then
- TestIntervals.bpl(19,5): anon8
-TestIntervals.bpl(70,3): Error BP5001: This assertion might not hold.
-Execution trace:
- TestIntervals.bpl(62,3): anon0
- TestIntervals.bpl(67,3): anon3_LoopHead
- TestIntervals.bpl(67,3): anon3_LoopDone
-TestIntervals.bpl(71,3): Error BP5001: This assertion might not hold.
-Execution trace:
- TestIntervals.bpl(62,3): anon0
- TestIntervals.bpl(67,3): anon3_LoopHead
- TestIntervals.bpl(67,3): anon3_LoopDone
-
-Boogie program verifier finished with 2 verified, 3 errors
diff --git a/Test/aitest9/runtest.bat b/Test/aitest9/runtest.bat
deleted file mode 100644
index e66f7e2b..00000000
--- a/Test/aitest9/runtest.bat
+++ /dev/null
@@ -1,11 +0,0 @@
-@echo off
-setlocal
-
-set BOOGIEDIR=..\..\Binaries
-set BPLEXE=%BOOGIEDIR%\Boogie.exe
-
-for %%f in (VarMapFixPoint.bpl TestIntervals.bpl) do (
- echo.
- echo -------------------- %%f --------------------
- %BPLEXE% %* %%f /infer:j
-)
diff --git a/Test/alltests.txt b/Test/alltests.txt
deleted file mode 100644
index 47ce2611..00000000
--- a/Test/alltests.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-sanity Use Build stability test - makes sure the current build doesn't encounter a runtime error (a smoke test)
-test0 Use Name resolution tests
-test1 Use Typechecking tests
-test2 Use VC generation
-test7 Use Some tests for VCVariety.BlockNested
-test20 Use Types introduced in Boogie2
-test21 Use Verify Boogie 2 programs
-aitest0 Use Constant propagation test
-aitest1 Use Linear ineqality test
-aitest9 Use Test for the abstract domain of intervals
-lock Use SLAM example
-test13 Use error messages for failing asserts vs. loop invariants
-inline Use Procedure inlining
-textbook Use Some textbook examples
-test15 Use Benchmarks for error messages
-bitvectors Use Smoke tests for bitvectors
-smoke Use Soundness smoke testing
-test16 Use Tests loop unrolling
-codeexpr Use Tests code expressions
-prover Use Tests checking various prover options
-test17 Postponed Tests inference of parameterized contracts
-z3api Postponed Test for Z3 Managed .NET API prover
-houdini Use Test for Houdini decision procedure
-datatypes Use Test for datatypes
-generalizedarray Use Test for generalized array theory
-livevars Use STORM benchmarks for testing correctness of live variable analysis
-stratifiedinline Use Stratified inlining benchmarks
-extractloops Use Extract loops benchmarks
-havoc0 Use HAVOC-generated bpl files
-AbsHoudini Postponed Test for abstract houdini
-snapshots Use Tests for program snapshot verification
-symdiff Use Tests for symdiff
-linear Use Tests for linear type checking
-og Use Tests for concurrency
diff --git a/Test/bitvectors/Answer b/Test/bitvectors/Answer
deleted file mode 100644
index 6aa2bce2..00000000
--- a/Test/bitvectors/Answer
+++ /dev/null
@@ -1,51 +0,0 @@
--------------------- arrays.bpl --------------------
-
-Boogie program verifier finished with 2 verified, 0 errors
--------------------- bv0.bpl --------------------
-bv0.bpl(6,3): Error: mismatched types in assignment command (cannot assign bv31 to bv32)
-bv0.bpl(7,3): Error: mismatched types in assignment command (cannot assign int to bv32)
-bv0.bpl(8,4): Error: mismatched types in assignment command (cannot assign bv1 to bv32)
-bv0.bpl(9,10): Error: start index in extract must be no bigger than the end index
-bv0.bpl(10,4): Error: mismatched types in assignment command (cannot assign bv1 to bv32)
-bv0.bpl(11,4): Error: mismatched types in assignment command (cannot assign bv1 to bv32)
-bv0.bpl(12,4): Error: mismatched types in assignment command (cannot assign concat$bvproxy#10 to bv32)
-7 type checking errors detected in bv0.bpl
--------------------- bv1.bpl --------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
--------------------- bv2.bpl --------------------
-bv2.bpl(6,13): Error: bitvector bounds in illegal position
-bv2.bpl(8,13): Error: undeclared type: x
-bv2.bpl(9,14): Error: bitvector bounds in illegal position
-3 name resolution errors detected in bv2.bpl
--------------------- bv3.bpl --------------------
-bv3.bpl(4,5): Error: type name: bv16 is registered for bitvectors
-1 name resolution errors detected in bv3.bpl
--------------------- bv4.bpl --------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
--------------------- bv7.bpl --------------------
-bv7.bpl(6,14): error: arguments of extract need to be integer literals
-bv7.bpl(7,15): error: parentheses around bitvector bounds are not allowed
-2 parse errors detected in bv7.bpl
--------------------- bv5.bpl --------------------
-bv5.bpl(12,3): Error BP5001: This assertion might not hold.
-Execution trace:
- bv5.bpl(7,12): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
--------------------- bv6.bpl --------------------
-bv6.bpl(10,3): Error BP5001: This assertion might not hold.
-Execution trace:
- bv6.bpl(7,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
--------------------- bv8.bpl --------------------
-
-Boogie program verifier finished with 2 verified, 0 errors
--------------------- bv10.bpl --------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
--------------------- bv9.bpl /proverOpt:OPTIMIZE_FOR_BV=true --------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
diff --git a/Test/bitvectors/runtest.bat b/Test/bitvectors/runtest.bat
deleted file mode 100644
index 2a140368..00000000
--- a/Test/bitvectors/runtest.bat
+++ /dev/null
@@ -1,17 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-
-for %%f in (arrays.bpl bv0.bpl bv1.bpl bv2.bpl bv3.bpl bv4.bpl bv7.bpl) do (
- echo -------------------- %%f --------------------
- %BGEXE% /proverWarnings:1 %* %%f
-)
-
-for %%f in (bv5.bpl bv6.bpl bv8.bpl bv10.bpl) do (
- echo -------------------- %%f --------------------
- %BGEXE% %* %%f
-)
-
-echo -------------------- bv9.bpl /proverOpt:OPTIMIZE_FOR_BV=true --------------------
-%BGEXE% /proverOpt:OPTIMIZE_FOR_BV=true %* bv9.bpl
diff --git a/Test/ccnet.runtestall.bat b/Test/ccnet.runtestall.bat
deleted file mode 100644
index 03b717e1..00000000
--- a/Test/ccnet.runtestall.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-set BOOGIE=%CD%\..
-runtestall.bat %*
diff --git a/Test/codeexpr/Answer b/Test/codeexpr/Answer
deleted file mode 100644
index 15cced53..00000000
--- a/Test/codeexpr/Answer
+++ /dev/null
@@ -1,31 +0,0 @@
-
------------------------------- CodeExpr0.bpl ---------------------
-CodeExpr0.bpl(17,3): Error BP5001: This assertion might not hold.
-Execution trace:
- CodeExpr0.bpl(17,3): anon0
-CodeExpr0.bpl(22,3): Error BP5001: This assertion might not hold.
-Execution trace:
- CodeExpr0.bpl(22,3): anon0
-CodeExpr0.bpl(54,3): Error BP5001: This assertion might not hold.
-Execution trace:
- CodeExpr0.bpl(54,3): anon0
-
-Boogie program verifier finished with 3 verified, 3 errors
-
------------------------------- CodeExpr1.bpl ---------------------
-CodeExpr1.bpl(46,5): Error BP5003: A postcondition might not hold on this return path.
-CodeExpr1.bpl(42,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- CodeExpr1.bpl(44,3): start
-CodeExpr1.bpl(54,5): Error BP5001: This assertion might not hold.
-Execution trace:
- CodeExpr1.bpl(51,3): start
-CodeExpr1.bpl(68,5): Error BP5001: This assertion might not hold.
-Execution trace:
- CodeExpr1.bpl(59,3): start
-
-Boogie program verifier finished with 3 verified, 3 errors
-
------------------------------- CodeExpr2.bpl ---------------------
-
-Boogie program verifier finished with 6 verified, 0 errors
diff --git a/Test/codeexpr/runtest.bat b/Test/codeexpr/runtest.bat
deleted file mode 100644
index 502081b1..00000000
--- a/Test/codeexpr/runtest.bat
+++ /dev/null
@@ -1,10 +0,0 @@
-@echo off
-
-set BOOGIEDIR=..\..\Binaries
-set BPLEXE=%BOOGIEDIR%\Boogie.exe
-
-for %%f in (CodeExpr0.bpl CodeExpr1.bpl CodeExpr2.bpl) do (
- echo.
- echo ------------------------------ %%f ---------------------
- %BPLEXE% %* %%f
-)
diff --git a/Test/datatypes/Answer b/Test/datatypes/Answer
deleted file mode 100644
index 5624c30f..00000000
--- a/Test/datatypes/Answer
+++ /dev/null
@@ -1,18 +0,0 @@
-
--------------------- t1.bpl --------------------
-t1.bpl(25,3): Error BP5001: This assertion might not hold.
-Execution trace:
- t1.bpl(18,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
--------------------- t2.bpl --------------------
-t2.bpl(25,3): Error BP5001: This assertion might not hold.
-Execution trace:
- t2.bpl(18,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
--------------------- ex.bpl --------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
diff --git a/Test/datatypes/runtest.bat b/Test/datatypes/runtest.bat
deleted file mode 100644
index 2ff4bad8..00000000
--- a/Test/datatypes/runtest.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-@echo off
-setlocal
-
-set BOOGIEDIR=..\..\Binaries
-set BPLEXE=%BOOGIEDIR%\Boogie.exe
-
-for %%f in (t1.bpl t2.bpl ex.bpl) do (
- echo.
- echo -------------------- %%f --------------------
- %BPLEXE% %* /typeEncoding:m %%f
-)
-
diff --git a/Test/extractloops/Answer b/Test/extractloops/Answer
deleted file mode 100644
index 88bd8c99..00000000
--- a/Test/extractloops/Answer
+++ /dev/null
@@ -1,95 +0,0 @@
------ Running regression test t1.bpl
-(0,0): Error BP5001: This assertion might not hold.
-Execution trace:
- t1.bpl(19,3): anon0
- t1.bpl(24,3): anon3_LoopHead
- Inlined call to procedure foo begins
- t1.bpl(10,5): anon0
- Inlined call to procedure foo ends
- t1.bpl(28,3): anon3_LoopBody
- t1.bpl(24,3): anon3_LoopHead
- Inlined call to procedure foo begins
- t1.bpl(10,5): anon0
- Inlined call to procedure foo ends
- t1.bpl(28,3): anon3_LoopBody
- t1.bpl(24,3): anon3_LoopHead
- Inlined call to procedure foo begins
- t1.bpl(10,5): anon0
- Inlined call to procedure foo ends
- t1.bpl(34,3): anon3_LoopDone
- t1.bpl(38,3): anon2
-
-Boogie program verifier finished with 0 verified, 1 error
------
------ Running regression test t2.bpl
-(0,0): Error BP5001: This assertion might not hold.
-Execution trace:
- t2.bpl(18,3): anon0
- t2.bpl(23,3): anon3_LoopHead
- Inlined call to procedure foo begins
- t2.bpl(9,5): anon0
- Inlined call to procedure foo ends
- t2.bpl(27,3): anon3_LoopBody
- t2.bpl(34,3): lab1_LoopHead
- t2.bpl(37,3): lab1_LoopBody
- t2.bpl(34,3): lab1_LoopHead
- t2.bpl(37,3): lab1_LoopBody
- t2.bpl(34,3): lab1_LoopHead
- t2.bpl(42,3): lab1_LoopDone
- t2.bpl(23,3): anon3_LoopHead
- Inlined call to procedure foo begins
- t2.bpl(9,5): anon0
- Inlined call to procedure foo ends
- t2.bpl(27,3): anon3_LoopBody
- t2.bpl(34,3): lab1_LoopHead
- t2.bpl(37,3): lab1_LoopBody
- t2.bpl(34,3): lab1_LoopHead
- t2.bpl(37,3): lab1_LoopBody
- t2.bpl(34,3): lab1_LoopHead
- t2.bpl(42,3): lab1_LoopDone
- t2.bpl(23,3): anon3_LoopHead
- Inlined call to procedure foo begins
- t2.bpl(9,5): anon0
- Inlined call to procedure foo ends
- t2.bpl(46,3): anon3_LoopDone
- t2.bpl(50,3): anon2
-
-Boogie program verifier finished with 0 verified, 1 error
------
------ Running regression test t3.bpl with recursion bound 2
-
-Boogie program verifier finished with 1 verified, 0 errors
------
------ Running regression test t3.bpl with recursion bound 4
-(0,0): Error BP5001: This assertion might not hold.
-Execution trace:
- t3.bpl(19,3): anon0
- t3.bpl(24,3): anon3_LoopHead
- Inlined call to procedure foo begins
- t3.bpl(10,5): anon0
- Inlined call to procedure foo ends
- t3.bpl(28,3): anon3_LoopBody
- t3.bpl(24,3): anon3_LoopHead
- Inlined call to procedure foo begins
- t3.bpl(10,5): anon0
- Inlined call to procedure foo ends
- t3.bpl(28,3): anon3_LoopBody
- t3.bpl(24,3): anon3_LoopHead
- Inlined call to procedure foo begins
- t3.bpl(10,5): anon0
- Inlined call to procedure foo ends
- t3.bpl(34,3): anon3_LoopDone
- t3.bpl(38,3): anon2
-
-Boogie program verifier finished with 0 verified, 1 error
------
------ Running regression test detLoopExtract.bpl with deterministicExtractLoops
-Stratified Inlining: Reached recursion bound of 4
-
-Boogie program verifier finished with 1 verified, 0 errors
------
------ Running regression test detLoopExtract1.bpl with deterministicExtractLoops
-Stratified Inlining: Reached recursion bound of 4
-
-Boogie program verifier finished with 1 verified, 0 errors
------
diff --git a/Test/extractloops/runtest.bat b/Test/extractloops/runtest.bat
deleted file mode 100644
index 6bd151cb..00000000
--- a/Test/extractloops/runtest.bat
+++ /dev/null
@@ -1,25 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-rem set BGEXE=mono ..\..\Binaries\Boogie.exe
-
-echo ----- Running regression test t1.bpl
-%BGEXE% %* /stratifiedInline:1 /extractLoops /removeEmptyBlocks:0 /coalesceBlocks:0 t1.bpl
-echo -----
-echo ----- Running regression test t2.bpl
-%BGEXE% %* /stratifiedInline:1 /extractLoops /removeEmptyBlocks:0 /coalesceBlocks:0 t2.bpl
-echo -----
-echo ----- Running regression test t3.bpl with recursion bound 2
-%BGEXE% %* /stratifiedInline:1 /extractLoops /removeEmptyBlocks:0 /coalesceBlocks:0 /recursionBound:2 t3.bpl
-echo -----
-echo ----- Running regression test t3.bpl with recursion bound 4
-%BGEXE% %* /stratifiedInline:1 /extractLoops /removeEmptyBlocks:0 /coalesceBlocks:0 /recursionBound:4 t3.bpl
-echo -----
-echo ----- Running regression test detLoopExtract.bpl with deterministicExtractLoops
-%BGEXE% %* /stratifiedInline:1 /extractLoops /removeEmptyBlocks:0 /coalesceBlocks:0 /deterministicExtractLoops /recursionBound:4 detLoopExtract.bpl
-echo -----
-echo ----- Running regression test detLoopExtract1.bpl with deterministicExtractLoops
-%BGEXE% %* /stratifiedInline:1 /extractLoops /removeEmptyBlocks:0 /coalesceBlocks:0 /deterministicExtractLoops /recursionBound:4 detLoopExtract1.bpl
-echo -----
-
diff --git a/Test/generalizedarray/Answer b/Test/generalizedarray/Answer
deleted file mode 100644
index 285316aa..00000000
--- a/Test/generalizedarray/Answer
+++ /dev/null
@@ -1,4 +0,0 @@
-
--------------------- Maps.bpl --------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
diff --git a/Test/generalizedarray/runtest.bat b/Test/generalizedarray/runtest.bat
deleted file mode 100644
index 1f4c64f9..00000000
--- a/Test/generalizedarray/runtest.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-@echo off
-setlocal
-
-set BOOGIEDIR=..\..\Binaries
-set BPLEXE=%BOOGIEDIR%\Boogie.exe
-
-for %%f in (Maps.bpl) do (
- echo.
- echo -------------------- %%f --------------------
- %BPLEXE% %* /typeEncoding:m /useArrayTheory %%f
-)
-
diff --git a/Test/havoc0/Answer b/Test/havoc0/Answer
deleted file mode 100644
index 80fd4aa3..00000000
--- a/Test/havoc0/Answer
+++ /dev/null
@@ -1,12 +0,0 @@
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
diff --git a/Test/havoc0/runtest.bat b/Test/havoc0/runtest.bat
deleted file mode 100644
index 1be15364..00000000
--- a/Test/havoc0/runtest.bat
+++ /dev/null
@@ -1,13 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-rem set BGEXE=mono ..\..\Binaries\Boogie.exe
-
-%BGEXE% %* /monomorphize KbdCreateClassObject.bpl
-%BGEXE% %* /monomorphize KeyboardClassFindMorePorts.bpl
-%BGEXE% %* /monomorphize KeyboardClassUnload.bpl
-%BGEXE% %* /monomorphize MouCreateClassObject.bpl
-%BGEXE% %* /monomorphize MouseClassFindMorePorts.bpl
-%BGEXE% %* /monomorphize MouseClassUnload.bpl
-
diff --git a/Test/houdini/Answer b/Test/houdini/Answer
deleted file mode 100644
index a5eab2fe..00000000
--- a/Test/houdini/Answer
+++ /dev/null
@@ -1,171 +0,0 @@
-
--------------------- houd1.bpl --------------------
-Assignment computed by Houdini:
-b1 = False
-
-Boogie program verifier finished with 1 verified, 0 errors
-
--------------------- houd2.bpl --------------------
-Assignment computed by Houdini:
-b1 = False
-b2 = True
-houd2.bpl(14,1): Error BP5003: A postcondition might not hold on this return path.
-houd2.bpl(11,1): Related location: This is the postcondition that might not hold.
-Execution trace:
- houd2.bpl(13,3): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
-
--------------------- houd3.bpl --------------------
-Assignment computed by Houdini:
-b1 = False
-b2 = False
-
-Boogie program verifier finished with 2 verified, 0 errors
-
--------------------- houd4.bpl --------------------
-Assignment computed by Houdini:
-b1 = True
-b2 = True
-b3 = True
-b4 = True
-
-Boogie program verifier finished with 2 verified, 0 errors
-
--------------------- houd5.bpl --------------------
-Assignment computed by Houdini:
-b1 = False
-b2 = True
-b3 = False
-b4 = True
-b5 = True
-
-Boogie program verifier finished with 2 verified, 0 errors
-
--------------------- houd6.bpl --------------------
-Assignment computed by Houdini:
-b1 = False
-b2 = False
-b3 = False
-b4 = False
-b5 = False
-b6 = False
-b7 = False
-b8 = False
-
-Boogie program verifier finished with 3 verified, 0 errors
-
--------------------- houd7.bpl --------------------
-Assignment computed by Houdini:
-b1 = True
-b2 = False
-b3 = False
-
-Boogie program verifier finished with 2 verified, 0 errors
-
--------------------- houd8.bpl --------------------
-Assignment computed by Houdini:
-b1 = True
-b2 = False
-b3 = False
-
-Boogie program verifier finished with 1 verified, 0 errors
-
--------------------- houd9.bpl --------------------
-Assignment computed by Houdini:
-b1 = True
-b2 = True
-b3 = True
-houd9.bpl(21,3): Error BP5001: This assertion might not hold.
-Execution trace:
- houd9.bpl(20,9): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
--------------------- houd10.bpl --------------------
-Assignment computed by Houdini:
-b1 = True
-b2 = True
-b3 = True
-houd10.bpl(17,3): Error BP5002: A precondition for this call might not hold.
-houd10.bpl(22,1): Related location: This is the precondition that might not hold.
-Execution trace:
- houd10.bpl(16,9): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
--------------------- houd11.bpl --------------------
-Assignment computed by Houdini:
-houd11.bpl(10,3): Error BP5001: This assertion might not hold.
-Execution trace:
- houd11.bpl(9,9): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
--------------------- houd12.bpl --------------------
-Assignment computed by Houdini:
-b1 = False
-b2 = True
-b3 = True
-b4 = True
-b5 = True
-b6 = False
-b7 = False
-
-Boogie program verifier finished with 1 verified, 0 errors
-.
--------------------- test1.bpl --------------------
-Assignment computed by Houdini:
-b0 = True
-b1 = False
-b2 = False
-
-Boogie program verifier finished with 4 verified, 0 errors
-.
--------------------- test2.bpl --------------------
-Assignment computed by Houdini:
-b0 = True
-b1 = False
-b2 = False
-
-Boogie program verifier finished with 4 verified, 0 errors
-.
--------------------- test7.bpl --------------------
-Assignment computed by Houdini:
-
-Boogie program verifier finished with 2 verified, 0 errors
-.
--------------------- test8.bpl --------------------
-Assignment computed by Houdini:
-
-Boogie program verifier finished with 2 verified, 0 errors
-.
--------------------- test9.bpl --------------------
-Assignment computed by Houdini:
-b1 = False
-b2 = False
-b3 = False
-b4 = True
-b5 = False
-b6 = True
-b7 = False
-b8 = False
-b9 = False
-b10 = True
-b11 = False
-b12 = True
-b13 = False
-b14 = False
-b15 = False
-b16 = False
-
-Boogie program verifier finished with 5 verified, 0 errors
-.
--------------------- test10.bpl --------------------
-Assignment computed by Houdini:
-b1 = True
-b2 = True
-b3 = True
-b4 = True
-
-Boogie program verifier finished with 5 verified, 0 errors
diff --git a/Test/houdini/runtest.bat b/Test/houdini/runtest.bat
deleted file mode 100644
index b9816bb9..00000000
--- a/Test/houdini/runtest.bat
+++ /dev/null
@@ -1,16 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-
-for %%f in (houd1.bpl houd2.bpl houd3.bpl houd4.bpl houd5.bpl houd6.bpl houd7.bpl houd8.bpl houd9.bpl houd10.bpl houd11.bpl houd12.bpl) do (
- echo.
- echo -------------------- %%f --------------------
- %BGEXE% %* /nologo /noinfer /contractInfer /printAssignment %%f
-)
-
-for %%f in (test1.bpl test2.bpl test7.bpl test8.bpl test9.bpl test10.bpl) do (
- echo .
- echo -------------------- %%f --------------------
- %BGEXE% %* /nologo /noinfer /contractInfer /printAssignment /inlineDepth:1 %%f
-)
diff --git a/Test/inline/Answer b/Test/inline/Answer
deleted file mode 100644
index 88e3ed5f..00000000
--- a/Test/inline/Answer
+++ /dev/null
@@ -1,1570 +0,0 @@
--------------------- test0.bpl --------------------
-test0.bpl(32,5): Error BP5001: This assertion might not hold.
-Execution trace:
- test0.bpl(28,3): anon0
- test0.bpl(32,5): anon3_Then
-
-Boogie program verifier finished with 1 verified, 1 error
--------------------- codeexpr.bpl --------------------
-codeexpr.bpl(42,5): Error BP5001: This assertion might not hold.
-Execution trace:
- codeexpr.bpl(41,7): anon0
-
-Boogie program verifier finished with 5 verified, 1 error
--------------------- test1.bpl --------------------
-
-procedure Main();
-
-
-
-implementation Main()
-{
- var x: int;
- var y: int;
-
- anon0:
- x := 1;
- y := 0;
- call x := inc(x, 5);
- call y := incdec(x, 2);
- assert x - 1 == y;
- return;
-}
-
-
-
-procedure {:inline 1} incdec(x: int, y: int) returns (z: int);
- ensures z == x + 1 - y;
-
-
-
-implementation {:inline 1} incdec(x: int, y: int) returns (z: int)
-{
-
- anon0:
- z := x;
- z := x + 1;
- call z := dec(z, y);
- return;
-}
-
-
-
-procedure {:inline 1} inc(x: int, i: int) returns (y: int);
- ensures y == x + i;
-
-
-
-implementation {:inline 1} inc(x: int, i: int) returns (y: int)
-{
-
- anon0:
- y := x;
- y := x + i;
- return;
-}
-
-
-
-procedure {:inline 1} dec(x: int, i: int) returns (y: int);
- ensures y == x - i;
-
-
-
-implementation {:inline 1} dec(x: int, i: int) returns (y: int)
-{
-
- anon0:
- y := x;
- y := x - i;
- return;
-}
-
-
-after inlining procedure calls
-procedure Main();
-
-
-implementation Main()
-{
- var x: int;
- var y: int;
- var inline$inc$0$x: int;
- var inline$inc$0$i: int;
- var inline$inc$0$y: int;
- var inline$incdec$0$x: int;
- var inline$incdec$0$y: int;
- var inline$incdec$0$z: int;
- var inline$dec$0$x: int;
- var inline$dec$0$i: int;
- var inline$dec$0$y: int;
-
- anon0:
- x := 1;
- y := 0;
- goto inline$inc$0$Entry;
-
- inline$inc$0$Entry:
- inline$inc$0$x := x;
- inline$inc$0$i := 5;
- havoc inline$inc$0$y;
- goto inline$inc$0$anon0;
-
- inline$inc$0$anon0:
- inline$inc$0$y := inline$inc$0$x;
- inline$inc$0$y := inline$inc$0$x + inline$inc$0$i;
- goto inline$inc$0$Return;
-
- inline$inc$0$Return:
- assert inline$inc$0$y == inline$inc$0$x + inline$inc$0$i;
- x := inline$inc$0$y;
- goto anon0$1;
-
- anon0$1:
- goto inline$incdec$0$Entry;
-
- inline$incdec$0$Entry:
- inline$incdec$0$x := x;
- inline$incdec$0$y := 2;
- havoc inline$incdec$0$z;
- goto inline$incdec$0$anon0;
-
- inline$incdec$0$anon0:
- inline$incdec$0$z := inline$incdec$0$x;
- inline$incdec$0$z := inline$incdec$0$x + 1;
- goto inline$dec$0$Entry;
-
- inline$dec$0$Entry:
- inline$dec$0$x := inline$incdec$0$z;
- inline$dec$0$i := inline$incdec$0$y;
- havoc inline$dec$0$y;
- goto inline$dec$0$anon0;
-
- inline$dec$0$anon0:
- inline$dec$0$y := inline$dec$0$x;
- inline$dec$0$y := inline$dec$0$x - inline$dec$0$i;
- goto inline$dec$0$Return;
-
- inline$dec$0$Return:
- assert inline$dec$0$y == inline$dec$0$x - inline$dec$0$i;
- inline$incdec$0$z := inline$dec$0$y;
- goto inline$incdec$0$anon0$1;
-
- inline$incdec$0$anon0$1:
- goto inline$incdec$0$Return;
-
- inline$incdec$0$Return:
- assert inline$incdec$0$z == inline$incdec$0$x + 1 - inline$incdec$0$y;
- y := inline$incdec$0$z;
- goto anon0$2;
-
- anon0$2:
- assert x - 1 == y;
- return;
-}
-
-
-after inlining procedure calls
-procedure {:inline 1} incdec(x: int, y: int) returns (z: int);
- ensures z == x + 1 - y;
-
-
-implementation {:inline 1} incdec(x: int, y: int) returns (z: int)
-{
- var inline$dec$0$x: int;
- var inline$dec$0$i: int;
- var inline$dec$0$y: int;
-
- anon0:
- z := x;
- z := x + 1;
- goto inline$dec$0$Entry;
-
- inline$dec$0$Entry:
- inline$dec$0$x := z;
- inline$dec$0$i := y;
- havoc inline$dec$0$y;
- goto inline$dec$0$anon0;
-
- inline$dec$0$anon0:
- inline$dec$0$y := inline$dec$0$x;
- inline$dec$0$y := inline$dec$0$x - inline$dec$0$i;
- goto inline$dec$0$Return;
-
- inline$dec$0$Return:
- assert inline$dec$0$y == inline$dec$0$x - inline$dec$0$i;
- z := inline$dec$0$y;
- goto anon0$1;
-
- anon0$1:
- return;
-}
-
-
-
-Boogie program verifier finished with 4 verified, 0 errors
--------------------- test2.bpl --------------------
-
-var glb: int;
-
-procedure calculate();
- modifies glb;
-
-
-
-implementation calculate()
-{
- var x: int;
- var y: int;
-
- anon0:
- y := 5;
- call x := increase(y);
- return;
-}
-
-
-
-procedure {:inline 1} increase(i: int) returns (k: int);
- modifies glb;
-
-
-
-implementation {:inline 1} increase(i: int) returns (k: int)
-{
- var j: int;
-
- anon0:
- j := i;
- j := j + 1;
- glb := glb + j;
- k := j;
- return;
-}
-
-
-after inlining procedure calls
-procedure calculate();
- modifies glb;
-
-
-implementation calculate()
-{
- var x: int;
- var y: int;
- var inline$increase$0$j: int;
- var inline$increase$0$i: int;
- var inline$increase$0$k: int;
- var inline$increase$0$glb: int;
-
- anon0:
- y := 5;
- goto inline$increase$0$Entry;
-
- inline$increase$0$Entry:
- inline$increase$0$i := y;
- havoc inline$increase$0$j, inline$increase$0$k;
- inline$increase$0$glb := glb;
- goto inline$increase$0$anon0;
-
- inline$increase$0$anon0:
- inline$increase$0$j := inline$increase$0$i;
- inline$increase$0$j := inline$increase$0$j + 1;
- glb := glb + inline$increase$0$j;
- inline$increase$0$k := inline$increase$0$j;
- goto inline$increase$0$Return;
-
- inline$increase$0$Return:
- x := inline$increase$0$k;
- goto anon0$1;
-
- anon0$1:
- return;
-}
-
-
-
-Boogie program verifier finished with 2 verified, 0 errors
--------------------- test3.bpl --------------------
-
-var glb: int;
-
-procedure recursivetest();
- modifies glb;
-
-
-
-implementation recursivetest()
-{
-
- anon0:
- glb := 5;
- call glb := recursive(glb);
- return;
-}
-
-
-
-procedure {:inline 3} recursive(x: int) returns (y: int);
-
-
-
-implementation {:inline 3} recursive(x: int) returns (y: int)
-{
- var k: int;
-
- anon0:
- goto anon3_Then, anon3_Else;
-
- anon3_Then:
- assume {:partition} x == 0;
- y := 1;
- return;
-
- anon3_Else:
- assume {:partition} x != 0;
- goto anon2;
-
- anon2:
- call k := recursive(x - 1);
- y := y + k;
- return;
-}
-
-
-after inlining procedure calls
-procedure recursivetest();
- modifies glb;
-
-
-implementation recursivetest()
-{
- var inline$recursive$0$k: int;
- var inline$recursive$0$x: int;
- var inline$recursive$0$y: int;
- var inline$recursive$1$k: int;
- var inline$recursive$1$x: int;
- var inline$recursive$1$y: int;
- var inline$recursive$2$k: int;
- var inline$recursive$2$x: int;
- var inline$recursive$2$y: int;
-
- anon0:
- glb := 5;
- goto inline$recursive$0$Entry;
-
- inline$recursive$0$Entry:
- inline$recursive$0$x := glb;
- havoc inline$recursive$0$k, inline$recursive$0$y;
- goto inline$recursive$0$anon0;
-
- inline$recursive$0$anon0:
- goto inline$recursive$0$anon3_Then, inline$recursive$0$anon3_Else;
-
- inline$recursive$0$anon3_Else:
- assume {:partition} inline$recursive$0$x != 0;
- goto inline$recursive$1$Entry;
-
- inline$recursive$1$Entry:
- inline$recursive$1$x := inline$recursive$0$x - 1;
- havoc inline$recursive$1$k, inline$recursive$1$y;
- goto inline$recursive$1$anon0;
-
- inline$recursive$1$anon0:
- goto inline$recursive$1$anon3_Then, inline$recursive$1$anon3_Else;
-
- inline$recursive$1$anon3_Else:
- assume {:partition} inline$recursive$1$x != 0;
- goto inline$recursive$2$Entry;
-
- inline$recursive$2$Entry:
- inline$recursive$2$x := inline$recursive$1$x - 1;
- havoc inline$recursive$2$k, inline$recursive$2$y;
- goto inline$recursive$2$anon0;
-
- inline$recursive$2$anon0:
- goto inline$recursive$2$anon3_Then, inline$recursive$2$anon3_Else;
-
- inline$recursive$2$anon3_Else:
- assume {:partition} inline$recursive$2$x != 0;
- call inline$recursive$2$k := recursive(inline$recursive$2$x - 1);
- inline$recursive$2$y := inline$recursive$2$y + inline$recursive$2$k;
- goto inline$recursive$2$Return;
-
- inline$recursive$2$anon3_Then:
- assume {:partition} inline$recursive$2$x == 0;
- inline$recursive$2$y := 1;
- goto inline$recursive$2$Return;
-
- inline$recursive$2$Return:
- inline$recursive$1$k := inline$recursive$2$y;
- goto inline$recursive$1$anon3_Else$1;
-
- inline$recursive$1$anon3_Else$1:
- inline$recursive$1$y := inline$recursive$1$y + inline$recursive$1$k;
- goto inline$recursive$1$Return;
-
- inline$recursive$1$anon3_Then:
- assume {:partition} inline$recursive$1$x == 0;
- inline$recursive$1$y := 1;
- goto inline$recursive$1$Return;
-
- inline$recursive$1$Return:
- inline$recursive$0$k := inline$recursive$1$y;
- goto inline$recursive$0$anon3_Else$1;
-
- inline$recursive$0$anon3_Else$1:
- inline$recursive$0$y := inline$recursive$0$y + inline$recursive$0$k;
- goto inline$recursive$0$Return;
-
- inline$recursive$0$anon3_Then:
- assume {:partition} inline$recursive$0$x == 0;
- inline$recursive$0$y := 1;
- goto inline$recursive$0$Return;
-
- inline$recursive$0$Return:
- glb := inline$recursive$0$y;
- goto anon0$1;
-
- anon0$1:
- return;
-}
-
-
-after inlining procedure calls
-procedure {:inline 3} recursive(x: int) returns (y: int);
-
-
-implementation {:inline 3} recursive(x: int) returns (y: int)
-{
- var k: int;
- var inline$recursive$0$k: int;
- var inline$recursive$0$x: int;
- var inline$recursive$0$y: int;
- var inline$recursive$1$k: int;
- var inline$recursive$1$x: int;
- var inline$recursive$1$y: int;
- var inline$recursive$2$k: int;
- var inline$recursive$2$x: int;
- var inline$recursive$2$y: int;
-
- anon0:
- goto anon3_Then, anon3_Else;
-
- anon3_Else:
- assume {:partition} x != 0;
- goto inline$recursive$0$Entry;
-
- inline$recursive$0$Entry:
- inline$recursive$0$x := x - 1;
- havoc inline$recursive$0$k, inline$recursive$0$y;
- goto inline$recursive$0$anon0;
-
- inline$recursive$0$anon0:
- goto inline$recursive$0$anon3_Then, inline$recursive$0$anon3_Else;
-
- inline$recursive$0$anon3_Else:
- assume {:partition} inline$recursive$0$x != 0;
- goto inline$recursive$1$Entry;
-
- inline$recursive$1$Entry:
- inline$recursive$1$x := inline$recursive$0$x - 1;
- havoc inline$recursive$1$k, inline$recursive$1$y;
- goto inline$recursive$1$anon0;
-
- inline$recursive$1$anon0:
- goto inline$recursive$1$anon3_Then, inline$recursive$1$anon3_Else;
-
- inline$recursive$1$anon3_Else:
- assume {:partition} inline$recursive$1$x != 0;
- goto inline$recursive$2$Entry;
-
- inline$recursive$2$Entry:
- inline$recursive$2$x := inline$recursive$1$x - 1;
- havoc inline$recursive$2$k, inline$recursive$2$y;
- goto inline$recursive$2$anon0;
-
- inline$recursive$2$anon0:
- goto inline$recursive$2$anon3_Then, inline$recursive$2$anon3_Else;
-
- inline$recursive$2$anon3_Else:
- assume {:partition} inline$recursive$2$x != 0;
- call inline$recursive$2$k := recursive(inline$recursive$2$x - 1);
- inline$recursive$2$y := inline$recursive$2$y + inline$recursive$2$k;
- goto inline$recursive$2$Return;
-
- inline$recursive$2$anon3_Then:
- assume {:partition} inline$recursive$2$x == 0;
- inline$recursive$2$y := 1;
- goto inline$recursive$2$Return;
-
- inline$recursive$2$Return:
- inline$recursive$1$k := inline$recursive$2$y;
- goto inline$recursive$1$anon3_Else$1;
-
- inline$recursive$1$anon3_Else$1:
- inline$recursive$1$y := inline$recursive$1$y + inline$recursive$1$k;
- goto inline$recursive$1$Return;
-
- inline$recursive$1$anon3_Then:
- assume {:partition} inline$recursive$1$x == 0;
- inline$recursive$1$y := 1;
- goto inline$recursive$1$Return;
-
- inline$recursive$1$Return:
- inline$recursive$0$k := inline$recursive$1$y;
- goto inline$recursive$0$anon3_Else$1;
-
- inline$recursive$0$anon3_Else$1:
- inline$recursive$0$y := inline$recursive$0$y + inline$recursive$0$k;
- goto inline$recursive$0$Return;
-
- inline$recursive$0$anon3_Then:
- assume {:partition} inline$recursive$0$x == 0;
- inline$recursive$0$y := 1;
- goto inline$recursive$0$Return;
-
- inline$recursive$0$Return:
- k := inline$recursive$0$y;
- goto anon3_Else$1;
-
- anon3_Else$1:
- y := y + k;
- return;
-
- anon3_Then:
- assume {:partition} x == 0;
- y := 1;
- return;
-}
-
-
-
-Boogie program verifier finished with 2 verified, 0 errors
--------------------- test4.bpl --------------------
-
-procedure main(x: int);
-
-
-
-implementation main(x: int)
-{
- var A: [int]int;
- var i: int;
- var b: bool;
- var size: int;
-
- anon0:
- call i, b := find(A, size, x);
- goto anon3_Then, anon3_Else;
-
- anon3_Then:
- assume {:partition} b;
- assert i > 0 && A[i] == x;
- goto anon2;
-
- anon3_Else:
- assume {:partition} !b;
- goto anon2;
-
- anon2:
- return;
-}
-
-
-
-procedure {:inline 1} find(A: [int]int, size: int, x: int) returns (ret: int, found: bool);
-
-
-
-implementation {:inline 1} find(A: [int]int, size: int, x: int) returns (ret: int, found: bool)
-{
- var i: int;
- var b: bool;
-
- anon0:
- ret := -1;
- b := false;
- found := b;
- i := 0;
- goto anon4_LoopHead;
-
- anon4_LoopHead:
- goto anon4_LoopDone, anon4_LoopBody;
-
- anon4_LoopBody:
- assume {:partition} i < size;
- call b := check(A, i, x);
- goto anon5_Then, anon5_Else;
-
- anon5_Then:
- assume {:partition} b;
- ret := i;
- found := b;
- goto anon3;
-
- anon5_Else:
- assume {:partition} !b;
- goto anon4_LoopHead;
-
- anon4_LoopDone:
- assume {:partition} size <= i;
- goto anon3;
-
- anon3:
- return;
-}
-
-
-
-procedure {:inline 3} check(A: [int]int, i: int, c: int) returns (ret: bool);
- requires i >= 0;
- ensures old(A[i]) > c ==> ret == true;
-
-
-
-implementation {:inline 3} check(A: [int]int, i: int, c: int) returns (ret: bool)
-{
-
- anon0:
- goto anon4_Then, anon4_Else;
-
- anon4_Then:
- assume {:partition} A[i] == c;
- ret := true;
- goto anon3;
-
- anon4_Else:
- assume {:partition} A[i] != c;
- ret := false;
- goto anon3;
-
- anon3:
- return;
-}
-
-
-after inlining procedure calls
-procedure main(x: int);
-
-
-implementation main(x: int)
-{
- var A: [int]int;
- var i: int;
- var b: bool;
- var size: int;
- var inline$find$0$i: int;
- var inline$find$0$b: bool;
- var inline$find$0$A: [int]int;
- var inline$find$0$size: int;
- var inline$find$0$x: int;
- var inline$find$0$ret: int;
- var inline$find$0$found: bool;
- var inline$check$0$A: [int]int;
- var inline$check$0$i: int;
- var inline$check$0$c: int;
- var inline$check$0$ret: bool;
-
- anon0:
- goto inline$find$0$Entry;
-
- inline$find$0$Entry:
- inline$find$0$A := A;
- inline$find$0$size := size;
- inline$find$0$x := x;
- havoc inline$find$0$i, inline$find$0$b, inline$find$0$ret, inline$find$0$found;
- goto inline$find$0$anon0;
-
- inline$find$0$anon0:
- inline$find$0$ret := -1;
- inline$find$0$b := false;
- inline$find$0$found := inline$find$0$b;
- inline$find$0$i := 0;
- goto inline$find$0$anon4_LoopHead;
-
- inline$find$0$anon4_LoopHead:
- goto inline$find$0$anon4_LoopDone, inline$find$0$anon4_LoopBody;
-
- inline$find$0$anon4_LoopBody:
- assume {:partition} inline$find$0$i < inline$find$0$size;
- goto inline$check$0$Entry;
-
- inline$check$0$Entry:
- inline$check$0$A := inline$find$0$A;
- inline$check$0$i := inline$find$0$i;
- inline$check$0$c := inline$find$0$x;
- assert inline$check$0$i >= 0;
- havoc inline$check$0$ret;
- goto inline$check$0$anon0;
-
- inline$check$0$anon0:
- goto inline$check$0$anon4_Then, inline$check$0$anon4_Else;
-
- inline$check$0$anon4_Else:
- assume {:partition} inline$check$0$A[inline$check$0$i] != inline$check$0$c;
- inline$check$0$ret := false;
- goto inline$check$0$anon3;
-
- inline$check$0$anon3:
- goto inline$check$0$Return;
-
- inline$check$0$anon4_Then:
- assume {:partition} inline$check$0$A[inline$check$0$i] == inline$check$0$c;
- inline$check$0$ret := true;
- goto inline$check$0$anon3;
-
- inline$check$0$Return:
- assert inline$check$0$A[inline$check$0$i] > inline$check$0$c ==> (inline$check$0$ret <==> true);
- inline$find$0$b := inline$check$0$ret;
- goto inline$find$0$anon4_LoopBody$1;
-
- inline$find$0$anon4_LoopBody$1:
- goto inline$find$0$anon5_Then, inline$find$0$anon5_Else;
-
- inline$find$0$anon5_Else:
- assume {:partition} !inline$find$0$b;
- goto inline$find$0$anon4_LoopHead;
-
- inline$find$0$anon5_Then:
- assume {:partition} inline$find$0$b;
- inline$find$0$ret := inline$find$0$i;
- inline$find$0$found := inline$find$0$b;
- goto inline$find$0$anon3;
-
- inline$find$0$anon3:
- goto inline$find$0$Return;
-
- inline$find$0$anon4_LoopDone:
- assume {:partition} inline$find$0$size <= inline$find$0$i;
- goto inline$find$0$anon3;
-
- inline$find$0$Return:
- i := inline$find$0$ret;
- b := inline$find$0$found;
- goto anon0$1;
-
- anon0$1:
- goto anon3_Then, anon3_Else;
-
- anon3_Else:
- assume {:partition} !b;
- goto anon2;
-
- anon2:
- return;
-
- anon3_Then:
- assume {:partition} b;
- assert i > 0 && A[i] == x;
- goto anon2;
-}
-
-
-after inlining procedure calls
-procedure {:inline 1} find(A: [int]int, size: int, x: int) returns (ret: int, found: bool);
-
-
-implementation {:inline 1} find(A: [int]int, size: int, x: int) returns (ret: int, found: bool)
-{
- var i: int;
- var b: bool;
- var inline$check$0$A: [int]int;
- var inline$check$0$i: int;
- var inline$check$0$c: int;
- var inline$check$0$ret: bool;
-
- anon0:
- ret := -1;
- b := false;
- found := b;
- i := 0;
- goto anon4_LoopHead;
-
- anon4_LoopHead:
- goto anon4_LoopDone, anon4_LoopBody;
-
- anon4_LoopBody:
- assume {:partition} i < size;
- goto inline$check$0$Entry;
-
- inline$check$0$Entry:
- inline$check$0$A := A;
- inline$check$0$i := i;
- inline$check$0$c := x;
- assert inline$check$0$i >= 0;
- havoc inline$check$0$ret;
- goto inline$check$0$anon0;
-
- inline$check$0$anon0:
- goto inline$check$0$anon4_Then, inline$check$0$anon4_Else;
-
- inline$check$0$anon4_Else:
- assume {:partition} inline$check$0$A[inline$check$0$i] != inline$check$0$c;
- inline$check$0$ret := false;
- goto inline$check$0$anon3;
-
- inline$check$0$anon3:
- goto inline$check$0$Return;
-
- inline$check$0$anon4_Then:
- assume {:partition} inline$check$0$A[inline$check$0$i] == inline$check$0$c;
- inline$check$0$ret := true;
- goto inline$check$0$anon3;
-
- inline$check$0$Return:
- assert inline$check$0$A[inline$check$0$i] > inline$check$0$c ==> (inline$check$0$ret <==> true);
- b := inline$check$0$ret;
- goto anon4_LoopBody$1;
-
- anon4_LoopBody$1:
- goto anon5_Then, anon5_Else;
-
- anon5_Else:
- assume {:partition} !b;
- goto anon4_LoopHead;
-
- anon5_Then:
- assume {:partition} b;
- ret := i;
- found := b;
- goto anon3;
-
- anon3:
- return;
-
- anon4_LoopDone:
- assume {:partition} size <= i;
- goto anon3;
-}
-
-
-<console>(70,4): Error BP5003: A postcondition might not hold on this return path.
-<console>(78,2): Related location: This is the postcondition that might not hold.
-Execution trace:
- <console>(19,0): anon0
- <console>(29,0): inline$find$0$anon0
- <console>(39,0): inline$find$0$anon4_LoopBody
- <console>(43,0): inline$check$0$Entry
- <console>(54,0): inline$check$0$anon4_Else
- <console>(67,0): inline$check$0$Return
-<console>(109,4): Error BP5001: This assertion might not hold.
-Execution trace:
- <console>(19,0): anon0
- <console>(29,0): inline$find$0$anon0
- <console>(39,0): inline$find$0$anon4_LoopBody
- <console>(43,0): inline$check$0$Entry
- <console>(62,0): inline$check$0$anon4_Then
- <console>(67,0): inline$check$0$Return
- <console>(79,0): inline$find$0$anon5_Then
- <console>(107,0): anon3_Then
-<console>(51,4): Error BP5003: A postcondition might not hold on this return path.
-<console>(78,2): Related location: This is the postcondition that might not hold.
-Execution trace:
- <console>(10,0): anon0
- <console>(20,0): anon4_LoopBody
- <console>(24,0): inline$check$0$Entry
- <console>(35,0): inline$check$0$anon4_Else
- <console>(48,0): inline$check$0$Return
-<console>(99,0): Error BP5003: A postcondition might not hold on this return path.
-<console>(78,2): Related location: This is the postcondition that might not hold.
-Execution trace:
- <console>(85,0): anon0
- <console>(93,0): anon4_Else
- <console>(98,0): anon3
-
-Boogie program verifier finished with 0 verified, 4 errors
--------------------- test6.bpl --------------------
-
-procedure {:inline 2} foo();
- modifies x;
-
-
-
-implementation {:inline 2} foo()
-{
-
- anon0:
- x := x + 1;
- call foo();
- return;
-}
-
-
-
-procedure {:inline 2} foo1();
- modifies x;
-
-
-
-implementation {:inline 2} foo1()
-{
-
- anon0:
- x := x + 1;
- call foo2();
- return;
-}
-
-
-
-procedure {:inline 2} foo2();
- modifies x;
-
-
-
-implementation {:inline 2} foo2()
-{
-
- anon0:
- x := x + 1;
- call foo3();
- return;
-}
-
-
-
-procedure {:inline 2} foo3();
- modifies x;
-
-
-
-implementation {:inline 2} foo3()
-{
-
- anon0:
- x := x + 1;
- call foo1();
- return;
-}
-
-
-
-var x: int;
-
-procedure bar();
- modifies x;
-
-
-
-implementation bar()
-{
-
- anon0:
- call foo();
- call foo1();
- return;
-}
-
-
-after inlining procedure calls
-procedure {:inline 2} foo();
- modifies x;
-
-
-implementation {:inline 2} foo()
-{
- var inline$foo$0$x: int;
- var inline$foo$1$x: int;
-
- anon0:
- x := x + 1;
- goto inline$foo$0$Entry;
-
- inline$foo$0$Entry:
- inline$foo$0$x := x;
- goto inline$foo$0$anon0;
-
- inline$foo$0$anon0:
- x := x + 1;
- goto inline$foo$1$Entry;
-
- inline$foo$1$Entry:
- inline$foo$1$x := x;
- goto inline$foo$1$anon0;
-
- inline$foo$1$anon0:
- x := x + 1;
- call foo();
- goto inline$foo$1$Return;
-
- inline$foo$1$Return:
- goto inline$foo$0$anon0$1;
-
- inline$foo$0$anon0$1:
- goto inline$foo$0$Return;
-
- inline$foo$0$Return:
- goto anon0$1;
-
- anon0$1:
- return;
-}
-
-
-after inlining procedure calls
-procedure {:inline 2} foo1();
- modifies x;
-
-
-implementation {:inline 2} foo1()
-{
- var inline$foo2$0$x: int;
- var inline$foo3$0$x: int;
- var inline$foo1$0$x: int;
- var inline$foo2$1$x: int;
- var inline$foo3$1$x: int;
- var inline$foo1$1$x: int;
-
- anon0:
- x := x + 1;
- goto inline$foo2$0$Entry;
-
- inline$foo2$0$Entry:
- inline$foo2$0$x := x;
- goto inline$foo2$0$anon0;
-
- inline$foo2$0$anon0:
- x := x + 1;
- goto inline$foo3$0$Entry;
-
- inline$foo3$0$Entry:
- inline$foo3$0$x := x;
- goto inline$foo3$0$anon0;
-
- inline$foo3$0$anon0:
- x := x + 1;
- goto inline$foo1$0$Entry;
-
- inline$foo1$0$Entry:
- inline$foo1$0$x := x;
- goto inline$foo1$0$anon0;
-
- inline$foo1$0$anon0:
- x := x + 1;
- goto inline$foo2$1$Entry;
-
- inline$foo2$1$Entry:
- inline$foo2$1$x := x;
- goto inline$foo2$1$anon0;
-
- inline$foo2$1$anon0:
- x := x + 1;
- goto inline$foo3$1$Entry;
-
- inline$foo3$1$Entry:
- inline$foo3$1$x := x;
- goto inline$foo3$1$anon0;
-
- inline$foo3$1$anon0:
- x := x + 1;
- goto inline$foo1$1$Entry;
-
- inline$foo1$1$Entry:
- inline$foo1$1$x := x;
- goto inline$foo1$1$anon0;
-
- inline$foo1$1$anon0:
- x := x + 1;
- call foo2();
- goto inline$foo1$1$Return;
-
- inline$foo1$1$Return:
- goto inline$foo3$1$anon0$1;
-
- inline$foo3$1$anon0$1:
- goto inline$foo3$1$Return;
-
- inline$foo3$1$Return:
- goto inline$foo2$1$anon0$1;
-
- inline$foo2$1$anon0$1:
- goto inline$foo2$1$Return;
-
- inline$foo2$1$Return:
- goto inline$foo1$0$anon0$1;
-
- inline$foo1$0$anon0$1:
- goto inline$foo1$0$Return;
-
- inline$foo1$0$Return:
- goto inline$foo3$0$anon0$1;
-
- inline$foo3$0$anon0$1:
- goto inline$foo3$0$Return;
-
- inline$foo3$0$Return:
- goto inline$foo2$0$anon0$1;
-
- inline$foo2$0$anon0$1:
- goto inline$foo2$0$Return;
-
- inline$foo2$0$Return:
- goto anon0$1;
-
- anon0$1:
- return;
-}
-
-
-after inlining procedure calls
-procedure {:inline 2} foo2();
- modifies x;
-
-
-implementation {:inline 2} foo2()
-{
- var inline$foo3$0$x: int;
- var inline$foo1$0$x: int;
- var inline$foo2$0$x: int;
- var inline$foo3$1$x: int;
- var inline$foo1$1$x: int;
- var inline$foo2$1$x: int;
-
- anon0:
- x := x + 1;
- goto inline$foo3$0$Entry;
-
- inline$foo3$0$Entry:
- inline$foo3$0$x := x;
- goto inline$foo3$0$anon0;
-
- inline$foo3$0$anon0:
- x := x + 1;
- goto inline$foo1$0$Entry;
-
- inline$foo1$0$Entry:
- inline$foo1$0$x := x;
- goto inline$foo1$0$anon0;
-
- inline$foo1$0$anon0:
- x := x + 1;
- goto inline$foo2$0$Entry;
-
- inline$foo2$0$Entry:
- inline$foo2$0$x := x;
- goto inline$foo2$0$anon0;
-
- inline$foo2$0$anon0:
- x := x + 1;
- goto inline$foo3$1$Entry;
-
- inline$foo3$1$Entry:
- inline$foo3$1$x := x;
- goto inline$foo3$1$anon0;
-
- inline$foo3$1$anon0:
- x := x + 1;
- goto inline$foo1$1$Entry;
-
- inline$foo1$1$Entry:
- inline$foo1$1$x := x;
- goto inline$foo1$1$anon0;
-
- inline$foo1$1$anon0:
- x := x + 1;
- goto inline$foo2$1$Entry;
-
- inline$foo2$1$Entry:
- inline$foo2$1$x := x;
- goto inline$foo2$1$anon0;
-
- inline$foo2$1$anon0:
- x := x + 1;
- call foo3();
- goto inline$foo2$1$Return;
-
- inline$foo2$1$Return:
- goto inline$foo1$1$anon0$1;
-
- inline$foo1$1$anon0$1:
- goto inline$foo1$1$Return;
-
- inline$foo1$1$Return:
- goto inline$foo3$1$anon0$1;
-
- inline$foo3$1$anon0$1:
- goto inline$foo3$1$Return;
-
- inline$foo3$1$Return:
- goto inline$foo2$0$anon0$1;
-
- inline$foo2$0$anon0$1:
- goto inline$foo2$0$Return;
-
- inline$foo2$0$Return:
- goto inline$foo1$0$anon0$1;
-
- inline$foo1$0$anon0$1:
- goto inline$foo1$0$Return;
-
- inline$foo1$0$Return:
- goto inline$foo3$0$anon0$1;
-
- inline$foo3$0$anon0$1:
- goto inline$foo3$0$Return;
-
- inline$foo3$0$Return:
- goto anon0$1;
-
- anon0$1:
- return;
-}
-
-
-after inlining procedure calls
-procedure {:inline 2} foo3();
- modifies x;
-
-
-implementation {:inline 2} foo3()
-{
- var inline$foo1$0$x: int;
- var inline$foo2$0$x: int;
- var inline$foo3$0$x: int;
- var inline$foo1$1$x: int;
- var inline$foo2$1$x: int;
- var inline$foo3$1$x: int;
-
- anon0:
- x := x + 1;
- goto inline$foo1$0$Entry;
-
- inline$foo1$0$Entry:
- inline$foo1$0$x := x;
- goto inline$foo1$0$anon0;
-
- inline$foo1$0$anon0:
- x := x + 1;
- goto inline$foo2$0$Entry;
-
- inline$foo2$0$Entry:
- inline$foo2$0$x := x;
- goto inline$foo2$0$anon0;
-
- inline$foo2$0$anon0:
- x := x + 1;
- goto inline$foo3$0$Entry;
-
- inline$foo3$0$Entry:
- inline$foo3$0$x := x;
- goto inline$foo3$0$anon0;
-
- inline$foo3$0$anon0:
- x := x + 1;
- goto inline$foo1$1$Entry;
-
- inline$foo1$1$Entry:
- inline$foo1$1$x := x;
- goto inline$foo1$1$anon0;
-
- inline$foo1$1$anon0:
- x := x + 1;
- goto inline$foo2$1$Entry;
-
- inline$foo2$1$Entry:
- inline$foo2$1$x := x;
- goto inline$foo2$1$anon0;
-
- inline$foo2$1$anon0:
- x := x + 1;
- goto inline$foo3$1$Entry;
-
- inline$foo3$1$Entry:
- inline$foo3$1$x := x;
- goto inline$foo3$1$anon0;
-
- inline$foo3$1$anon0:
- x := x + 1;
- call foo1();
- goto inline$foo3$1$Return;
-
- inline$foo3$1$Return:
- goto inline$foo2$1$anon0$1;
-
- inline$foo2$1$anon0$1:
- goto inline$foo2$1$Return;
-
- inline$foo2$1$Return:
- goto inline$foo1$1$anon0$1;
-
- inline$foo1$1$anon0$1:
- goto inline$foo1$1$Return;
-
- inline$foo1$1$Return:
- goto inline$foo3$0$anon0$1;
-
- inline$foo3$0$anon0$1:
- goto inline$foo3$0$Return;
-
- inline$foo3$0$Return:
- goto inline$foo2$0$anon0$1;
-
- inline$foo2$0$anon0$1:
- goto inline$foo2$0$Return;
-
- inline$foo2$0$Return:
- goto inline$foo1$0$anon0$1;
-
- inline$foo1$0$anon0$1:
- goto inline$foo1$0$Return;
-
- inline$foo1$0$Return:
- goto anon0$1;
-
- anon0$1:
- return;
-}
-
-
-after inlining procedure calls
-procedure bar();
- modifies x;
-
-
-implementation bar()
-{
- var inline$foo$0$x: int;
- var inline$foo$1$x: int;
- var inline$foo1$0$x: int;
- var inline$foo2$0$x: int;
- var inline$foo3$0$x: int;
- var inline$foo1$1$x: int;
- var inline$foo2$1$x: int;
- var inline$foo3$1$x: int;
-
- anon0:
- goto inline$foo$0$Entry;
-
- inline$foo$0$Entry:
- inline$foo$0$x := x;
- goto inline$foo$0$anon0;
-
- inline$foo$0$anon0:
- x := x + 1;
- goto inline$foo$1$Entry;
-
- inline$foo$1$Entry:
- inline$foo$1$x := x;
- goto inline$foo$1$anon0;
-
- inline$foo$1$anon0:
- x := x + 1;
- call foo();
- goto inline$foo$1$Return;
-
- inline$foo$1$Return:
- goto inline$foo$0$anon0$1;
-
- inline$foo$0$anon0$1:
- goto inline$foo$0$Return;
-
- inline$foo$0$Return:
- goto anon0$1;
-
- anon0$1:
- goto inline$foo1$0$Entry;
-
- inline$foo1$0$Entry:
- inline$foo1$0$x := x;
- goto inline$foo1$0$anon0;
-
- inline$foo1$0$anon0:
- x := x + 1;
- goto inline$foo2$0$Entry;
-
- inline$foo2$0$Entry:
- inline$foo2$0$x := x;
- goto inline$foo2$0$anon0;
-
- inline$foo2$0$anon0:
- x := x + 1;
- goto inline$foo3$0$Entry;
-
- inline$foo3$0$Entry:
- inline$foo3$0$x := x;
- goto inline$foo3$0$anon0;
-
- inline$foo3$0$anon0:
- x := x + 1;
- goto inline$foo1$1$Entry;
-
- inline$foo1$1$Entry:
- inline$foo1$1$x := x;
- goto inline$foo1$1$anon0;
-
- inline$foo1$1$anon0:
- x := x + 1;
- goto inline$foo2$1$Entry;
-
- inline$foo2$1$Entry:
- inline$foo2$1$x := x;
- goto inline$foo2$1$anon0;
-
- inline$foo2$1$anon0:
- x := x + 1;
- goto inline$foo3$1$Entry;
-
- inline$foo3$1$Entry:
- inline$foo3$1$x := x;
- goto inline$foo3$1$anon0;
-
- inline$foo3$1$anon0:
- x := x + 1;
- call foo1();
- goto inline$foo3$1$Return;
-
- inline$foo3$1$Return:
- goto inline$foo2$1$anon0$1;
-
- inline$foo2$1$anon0$1:
- goto inline$foo2$1$Return;
-
- inline$foo2$1$Return:
- goto inline$foo1$1$anon0$1;
-
- inline$foo1$1$anon0$1:
- goto inline$foo1$1$Return;
-
- inline$foo1$1$Return:
- goto inline$foo3$0$anon0$1;
-
- inline$foo3$0$anon0$1:
- goto inline$foo3$0$Return;
-
- inline$foo3$0$Return:
- goto inline$foo2$0$anon0$1;
-
- inline$foo2$0$anon0$1:
- goto inline$foo2$0$Return;
-
- inline$foo2$0$Return:
- goto inline$foo1$0$anon0$1;
-
- inline$foo1$0$anon0$1:
- goto inline$foo1$0$Return;
-
- inline$foo1$0$Return:
- goto anon0$2;
-
- anon0$2:
- return;
-}
-
-
-
-Boogie program verifier finished with 5 verified, 0 errors
--------------------- test5.bpl --------------------
-test5.bpl(39,3): Error BP5001: This assertion might not hold.
-Execution trace:
- test5.bpl(36,10): anon0
- test5.bpl(30,10): inline$P$0$anon0
- test5.bpl(30,10): inline$P$1$anon0
- test5.bpl(36,10): anon0$2
-
-Boogie program verifier finished with 4 verified, 1 error
--------------------- expansion3.bpl --------------------
-*** detected expansion loop on foo3
-*** detected expansion loop on foo3
-*** detected expansion loop on foo3
-
-Boogie program verifier finished with 1 verified, 0 errors
--------------------- expansion4.bpl --------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
--------------------- Elevator.bpl --------------------
-Elevator.bpl(20,5): Error BP5005: This loop invariant might not be maintained by the loop.
-Execution trace:
- Elevator.bpl(18,3): anon0
- Elevator.bpl(18,3): anon0$1
- Elevator.bpl(19,3): anon10_LoopHead
- Elevator.bpl(22,5): anon10_LoopBody
- Elevator.bpl(102,3): inline$MoveDown_Error$0$anon0
- Elevator.bpl(27,7): anon13_Then$1
-
-Boogie program verifier finished with 1 verified, 1 error
--------------------- Elevator.bpl with empty blocks --------------------
-Elevator.bpl(20,5): Error BP5005: This loop invariant might not be maintained by the loop.
-Execution trace:
- Elevator.bpl(18,3): anon0
- Elevator.bpl(71,23): inline$Initialize$0$Entry
- Elevator.bpl(74,13): inline$Initialize$0$anon0
- Elevator.bpl(71,23): inline$Initialize$0$Return
- Elevator.bpl(18,3): anon0$1
- Elevator.bpl(19,3): anon10_LoopHead
- Elevator.bpl(22,5): anon10_LoopBody
- Elevator.bpl(22,5): anon11_Else
- Elevator.bpl(22,5): anon12_Else
- Elevator.bpl(27,7): anon13_Then
- Elevator.bpl(97,23): inline$MoveDown_Error$0$Entry
- Elevator.bpl(102,3): inline$MoveDown_Error$0$anon0
- Elevator.bpl(97,23): inline$MoveDown_Error$0$Return
- Elevator.bpl(27,7): anon13_Then$1
-
-Boogie program verifier finished with 1 verified, 1 error
--------------------- expansion2.bpl --------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
-
----------- EXPANSION2.SX: 0
-
----------- EXPANSION2.SX: 0
--------------------- fundef.bpl --------------------
-
-function {:inline true} foo(x: int) : bool
-{
- x > 0
-}
-
-function {:inline false} foo2(x: int) : bool;
-
-axiom (forall x: int :: {:inline false} { foo2(x): bool } foo2(x): bool == (x > 0));
-
-function foo3(x: int) : bool;
-
-axiom (forall x: int :: { foo3(x): bool } foo3(x): bool == (x > 0));
-
-Boogie program verifier finished with 0 verified, 0 errors
-fundef2.bpl(8,3): Error BP5001: This assertion might not hold.
-Execution trace:
- fundef2.bpl(7,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
--------------------- polyInline.bpl --------------------
-polyInline.bpl(30,9): Warning: type parameter alpha is ambiguous, instantiating to int
-polyInline.bpl(34,9): Warning: type parameter alpha is ambiguous, instantiating to int
-polyInline.bpl(38,9): Warning: type parameter alpha is ambiguous, instantiating to int
-polyInline.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- polyInline.bpl(23,3): anon0
-polyInline.bpl(42,3): Error BP5001: This assertion might not hold.
-Execution trace:
- polyInline.bpl(30,3): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
-polyInline.bpl(30,9): Warning: type parameter alpha is ambiguous, instantiating to int
-polyInline.bpl(34,9): Warning: type parameter alpha is ambiguous, instantiating to int
-polyInline.bpl(38,9): Warning: type parameter alpha is ambiguous, instantiating to int
-polyInline.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- polyInline.bpl(23,3): anon0
-polyInline.bpl(42,3): Error BP5001: This assertion might not hold.
-Execution trace:
- polyInline.bpl(30,3): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
--------------------- InliningAndLoops.bpl --------------------
-InliningAndLoops.bpl(14,5): Error BP5001: This assertion might not hold.
-Execution trace:
- InliningAndLoops.bpl(7,10): anon0#3
- InliningAndLoops.bpl(8,3): anon4_LoopHead#3
- InliningAndLoops.bpl(10,5): anon4_LoopBody#3
- InliningAndLoops.bpl(10,5): anon4_LoopBody$1#3
- InliningAndLoops.bpl(8,3): anon4_LoopHead#2
- InliningAndLoops.bpl(10,5): anon4_LoopBody#2
- InliningAndLoops.bpl(10,5): anon4_LoopBody$1#2
- InliningAndLoops.bpl(8,3): anon4_LoopHead#1
- InliningAndLoops.bpl(8,3): anon4_LoopDone#3
- InliningAndLoops.bpl(14,5): anon5_Then#3
-
-Boogie program verifier finished with 0 verified, 1 error
diff --git a/Test/inline/runtest.bat b/Test/inline/runtest.bat
deleted file mode 100644
index f025de1b..00000000
--- a/Test/inline/runtest.bat
+++ /dev/null
@@ -1,43 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-
-for %%f in (test0.bpl codeexpr.bpl) do (
- echo -------------------- %%f --------------------
- %BGEXE% %* %%f
-)
-
-for %%f in (test1.bpl test2.bpl test3.bpl test4.bpl test6.bpl) do (
- echo -------------------- %%f --------------------
- %BGEXE% %* /inline:spec /print:- /env:0 /printInlined /noinfer %%f
-)
-
-for %%f in (test5.bpl expansion3.bpl expansion4.bpl Elevator.bpl) do (
- echo -------------------- %%f --------------------
- %BGEXE% %* %%f
-)
-
-REM Peephole optimizations are so good that Elevator seems worthwhile
-REM to include twice among these inline tests
-for %%f in (Elevator.bpl) do (
- echo -------------------- %%f with empty blocks --------------------
- %BGEXE% /removeEmptyBlocks:0 %* %%f
-)
-
-echo -------------------- expansion2.bpl --------------------
-%BGEXE% %* /proverLog:expansion2.sx expansion2.bpl
-%SystemRoot%\system32\find.exe /C "xxgz" expansion2.sx
-%SystemRoot%\system32\find.exe /C "xxf1" expansion2.sx
-
-echo -------------------- fundef.bpl --------------------
-%BGEXE% %* /print:- /env:0 fundef.bpl
-%BGEXE% %* fundef2.bpl
-
-echo -------------------- polyInline.bpl --------------------
-%BGEXE% %* /typeEncoding:predicates /logPrefix:p polyInline.bpl
-%BGEXE% %* /typeEncoding:arguments /logPrefix:a polyInline.bpl
-
-echo -------------------- InliningAndLoops.bpl --------------------
-%BGEXE% %* /loopUnroll:3 /soundLoopUnrolling InliningAndLoops.bpl
-
diff --git a/Test/linear/Answer b/Test/linear/Answer
deleted file mode 100644
index 4b8794a6..00000000
--- a/Test/linear/Answer
+++ /dev/null
@@ -1,54 +0,0 @@
-
--------------------- typecheck.bpl --------------------
-typecheck.bpl(33,9): Error: Only simple assignment allowed on linear variable b
-typecheck.bpl(35,6): Error: Only variable can be assigned to linear variable a
-typecheck.bpl(37,6): Error: Only linear variable can be assigned to linear variable a
-typecheck.bpl(41,6): Error: Linear variable of domain D2 cannot be assigned to linear variable of domain D
-typecheck.bpl(47,9): Error: Linear variable x can occur only once in the right-hand-side of an assignment
-typecheck.bpl(51,4): Error: Linear variable a can occur only once as an input parameter
-typecheck.bpl(53,4): Error: Only variable can be passed to linear parameter b
-typecheck.bpl(55,4): Error: The domains of formal and actual parameters must be the same
-typecheck.bpl(57,4): Error: The domains of formal and actual parameters must be the same
-typecheck.bpl(59,4): Error: Only a linear argument can be passed to linear parameter a
-typecheck.bpl(64,4): Error: Linear variable a can occur only once as an input parameter of a parallel call
-typecheck.bpl(71,0): Error: Output variable d must be available at a return
-typecheck.bpl(80,0): Error: Global variable g must be available at a return
-typecheck.bpl(85,7): Error: unavailable source for a linear read
-typecheck.bpl(86,0): Error: Output variable r must be available at a return
-15 type checking errors detected in typecheck.bpl
-
--------------------- list.bpl --------------------
-
-Boogie program verifier finished with 2 verified, 0 errors
-
--------------------- allocator.bpl --------------------
-allocator.bpl(10,3): Error BP5001: This assertion might not hold.
-Execution trace:
- allocator.bpl(8,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
--------------------- f1.bpl --------------------
-f1.bpl(35,4): Error BP5001: This assertion might not hold.
-Execution trace:
- f1.bpl(29,6): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
-
--------------------- f2.bpl --------------------
-f2.bpl(21,4): Error BP5001: This assertion might not hold.
-Execution trace:
- f2.bpl(17,4): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
--------------------- f3.bpl --------------------
-
-Boogie program verifier finished with 2 verified, 0 errors
-
--------------------- bug.bpl --------------------
-bug.bpl(15,3): Error BP5001: This assertion might not hold.
-Execution trace:
- bug.bpl(14,3): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
diff --git a/Test/linear/runtest.bat b/Test/linear/runtest.bat
deleted file mode 100644
index bd32d250..00000000
--- a/Test/linear/runtest.bat
+++ /dev/null
@@ -1,17 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-
-for %%f in (typecheck.bpl) do (
- echo.
- echo -------------------- %%f --------------------
- %BGEXE% %* /nologo /noinfer /typeEncoding:m /useArrayTheory %%f
-)
-
-for %%f in (list.bpl allocator.bpl f1.bpl f2.bpl f3.bpl bug.bpl) do (
- echo.
- echo -------------------- %%f --------------------
- %BGEXE% %* /nologo /noinfer /typeEncoding:m /useArrayTheory /doModSetAnalysis %%f
-)
-
diff --git a/Test/livevars/Answer b/Test/livevars/Answer
deleted file mode 100644
index a7a77b7b..00000000
--- a/Test/livevars/Answer
+++ /dev/null
@@ -1,375 +0,0 @@
-bla1.bpl(2097,5): Error BP5001: This assertion might not hold.
-Execution trace:
- bla1.bpl(751,3): start#1
- bla1.bpl(791,3): anon10_Then#1
- bla1.bpl(796,3): anon2#1
- bla1.bpl(824,3): inline$storm_IoAllocateIrp$0$label_8_case_1#1
- bla1.bpl(856,3): inline$storm_IoAllocateIrp$0$anon14_Then#1
- bla1.bpl(861,3): inline$storm_IoAllocateIrp$0$anon2#1
- bla1.bpl(881,3): inline$storm_IoAllocateIrp$0$anon16_Then#1
- bla1.bpl(886,3): inline$storm_IoAllocateIrp$0$anon5#1
- bla1.bpl(906,3): inline$storm_IoAllocateIrp$0$anon18_Then#1
- bla1.bpl(911,3): inline$storm_IoAllocateIrp$0$anon8#1
- bla1.bpl(947,3): inline$storm_IoAllocateIrp$0$anon20_Then#1
- bla1.bpl(952,3): inline$storm_IoAllocateIrp$0$anon11#1
- bla1.bpl(983,3): inline$IoGetNextIrpStackLocation$0$anon3_Then#1
- bla1.bpl(988,3): inline$IoGetNextIrpStackLocation$0$anon2#1
- bla1.bpl(1020,3): inline$storm_IoAllocateIrp$0$anon22_Then#1
- bla1.bpl(1025,3): inline$storm_IoAllocateIrp$0$anon13#1
- bla1.bpl(1037,3): inline$storm_IoAllocateIrp$0$label_36#1
- bla1.bpl(1091,3): inline$IoSetNextIrpStackLocation$0$anon6_Then#1
- bla1.bpl(1096,3): inline$IoSetNextIrpStackLocation$0$anon2#1
- bla1.bpl(1114,3): inline$IoSetNextIrpStackLocation$0$anon8_Then#1
- bla1.bpl(1119,3): inline$IoSetNextIrpStackLocation$0$anon5#1
- bla1.bpl(1159,3): inline$IoGetCurrentIrpStackLocation$0$anon3_Then#1
- bla1.bpl(1164,3): inline$IoGetCurrentIrpStackLocation$0$anon2#1
- bla1.bpl(1199,3): anon12_Then#1
- bla1.bpl(1204,3): anon5#1
- bla1.bpl(1257,3): inline$IoGetCurrentIrpStackLocation$1$anon3_Then#1
- bla1.bpl(1261,3): inline$IoGetCurrentIrpStackLocation$1$anon2#1
- bla1.bpl(1310,3): inline$I8xDeviceControl$0$anon3_Then#1
- bla1.bpl(1314,3): inline$I8xDeviceControl$0$anon2#1
- bla1.bpl(1350,3): inline$I8xKeyboardGetSysButtonEvent$0$label_9_false#1
- bla1.bpl(1378,3): inline$storm_IoSetCancelRoutine$0$label_7_false#1
- bla1.bpl(1429,3): inline$storm_IoSetCancelRoutine$0$anon9_Then#1
- bla1.bpl(1433,3): inline$storm_IoSetCancelRoutine$0$anon3#1
- bla1.bpl(1453,3): inline$storm_IoSetCancelRoutine$0$anon11_Then#1
- bla1.bpl(1458,3): inline$storm_IoSetCancelRoutine$0$anon6#1
- bla1.bpl(1469,3): inline$storm_IoSetCancelRoutine$0$anon13_Then#1
- bla1.bpl(1474,3): inline$storm_IoSetCancelRoutine$0$anon8#1
- bla1.bpl(1526,3): inline$I8xKeyboardGetSysButtonEvent$0$anon6_Else#1
- bla1.bpl(1534,3): inline$I8xKeyboardGetSysButtonEvent$0$anon7_Then#1
- bla1.bpl(1544,3): inline$I8xKeyboardGetSysButtonEvent$0$anon2#1
- bla1.bpl(1568,3): inline$I8xKeyboardGetSysButtonEvent$0$label_23_true#1
- bla1.bpl(1588,3): inline$I8xKeyboardGetSysButtonEvent$0$label_13_true#1
- bla1.bpl(1621,3): inline$storm_IoCompleteRequest$0$label_6_false#1
- bla1.bpl(1656,3): inline$storm_IoCompleteRequest$0$anon4_Else#1
- bla1.bpl(1664,3): inline$storm_IoCompleteRequest$0$anon5_Then#1
- bla1.bpl(1674,3): inline$storm_IoCompleteRequest$0$anon2#1
- bla1.bpl(1678,3): inline$storm_IoCompleteRequest$0$label_1#1
- bla1.bpl(1736,3): anon14_Then#1
- bla1.bpl(1741,3): anon7#1
- bla1.bpl(1798,3): inline$storm_IoCancelIrp$0$anon12_Then#1
- bla1.bpl(1803,3): inline$storm_IoCancelIrp$0$anon2#1
- bla1.bpl(1827,3): inline$storm_IoCancelIrp$0$anon14_Then#1
- bla1.bpl(1832,3): inline$storm_IoCancelIrp$0$anon5#1
- bla1.bpl(1853,3): inline$storm_IoCancelIrp$0$anon16_Then#1
- bla1.bpl(1858,3): inline$storm_IoCancelIrp$0$anon8#1
- bla1.bpl(1869,3): inline$storm_IoCancelIrp$0$anon18_Then#1
- bla1.bpl(1874,3): inline$storm_IoCancelIrp$0$anon10#1
- bla1.bpl(1934,3): inline$storm_IoAcquireCancelSpinLock$0$label_11_true#1
- bla1.bpl(1962,3): inline$storm_IoAcquireCancelSpinLock$0$anon6_Then#1
- bla1.bpl(1967,3): inline$storm_IoAcquireCancelSpinLock$0$anon3#1
- bla1.bpl(1978,3): inline$storm_IoAcquireCancelSpinLock$0$anon8_Then#1
- bla1.bpl(1983,3): inline$storm_IoAcquireCancelSpinLock$0$anon5#1
- bla1.bpl(2007,3): inline$storm_IoCancelIrp$0$label_16_true#1
- bla1.bpl(2025,3): inline$storm_IoCancelIrp$0$label_22_true#1
- bla1.bpl(2038,3): inline$storm_IoCancelIrp$0$label_25_false#1
- bla1.bpl(2078,3): anon15_Then#1
- bla1.bpl(2083,3): anon9#1
-
-Boogie program verifier finished with 0 verified, 1 error
-
-Boogie program verifier finished with 1 verified, 0 errors
-daytona_bug2_ioctl_example_2.bpl(4835,5): Error BP5001: This assertion might not hold.
-Execution trace:
- daytona_bug2_ioctl_example_2.bpl(807,3): start#2
- daytona_bug2_ioctl_example_2.bpl(848,3): anon22_Then#2
- daytona_bug2_ioctl_example_2.bpl(853,3): anon2#2
- daytona_bug2_ioctl_example_2.bpl(881,3): inline$storm_IoAllocateIrp$0$label_8_case_1#2
- daytona_bug2_ioctl_example_2.bpl(913,3): inline$storm_IoAllocateIrp$0$anon18_Then#2
- daytona_bug2_ioctl_example_2.bpl(918,3): inline$storm_IoAllocateIrp$0$anon2#2
- daytona_bug2_ioctl_example_2.bpl(938,3): inline$storm_IoAllocateIrp$0$anon20_Then#2
- daytona_bug2_ioctl_example_2.bpl(943,3): inline$storm_IoAllocateIrp$0$anon5#2
- daytona_bug2_ioctl_example_2.bpl(963,3): inline$storm_IoAllocateIrp$0$anon22_Then#2
- daytona_bug2_ioctl_example_2.bpl(968,3): inline$storm_IoAllocateIrp$0$anon8#2
- daytona_bug2_ioctl_example_2.bpl(976,3): inline$storm_IoAllocateIrp$0$anon24_Else#2
- daytona_bug2_ioctl_example_2.bpl(1012,3): inline$storm_IoAllocateIrp$0$anon25_Then#2
- daytona_bug2_ioctl_example_2.bpl(1017,3): inline$storm_IoAllocateIrp$0$anon13#2
- daytona_bug2_ioctl_example_2.bpl(1048,3): inline$IoGetNextIrpStackLocation$0$anon3_Then#2
- daytona_bug2_ioctl_example_2.bpl(1053,3): inline$IoGetNextIrpStackLocation$0$anon2#2
- daytona_bug2_ioctl_example_2.bpl(1068,3): inline$storm_IoAllocateIrp$0$anon27_Else#2
- daytona_bug2_ioctl_example_2.bpl(1092,3): inline$storm_IoAllocateIrp$0$anon28_Then#2
- daytona_bug2_ioctl_example_2.bpl(1097,3): inline$storm_IoAllocateIrp$0$anon17#2
- daytona_bug2_ioctl_example_2.bpl(1117,3): inline$storm_IoAllocateIrp$0$label_36#2
- daytona_bug2_ioctl_example_2.bpl(1131,3): anon24_Else#2
- daytona_bug2_ioctl_example_2.bpl(1146,3): anon25_Else#2
- daytona_bug2_ioctl_example_2.bpl(1186,3): inline$IoSetNextIrpStackLocation$0$anon6_Then#2
- daytona_bug2_ioctl_example_2.bpl(1191,3): inline$IoSetNextIrpStackLocation$0$anon2#2
- daytona_bug2_ioctl_example_2.bpl(1209,3): inline$IoSetNextIrpStackLocation$0$anon8_Then#2
- daytona_bug2_ioctl_example_2.bpl(1214,3): inline$IoSetNextIrpStackLocation$0$anon5#2
- daytona_bug2_ioctl_example_2.bpl(1227,3): anon26_Else#2
- daytona_bug2_ioctl_example_2.bpl(1261,3): inline$IoGetCurrentIrpStackLocation$0$anon3_Then#2
- daytona_bug2_ioctl_example_2.bpl(1266,3): inline$IoGetCurrentIrpStackLocation$0$anon2#2
- daytona_bug2_ioctl_example_2.bpl(1281,3): anon27_Else#2
- daytona_bug2_ioctl_example_2.bpl(1308,3): anon28_Then#2
- daytona_bug2_ioctl_example_2.bpl(1313,3): anon13#2
- daytona_bug2_ioctl_example_2.bpl(1345,3): inline$myInitDriver$0$anon5_Then#2
- daytona_bug2_ioctl_example_2.bpl(1350,3): inline$myInitDriver$0$anon2#2
- daytona_bug2_ioctl_example_2.bpl(1385,3): inline$storm_KeInitializeSpinLock$0$anon3_Then#2
- daytona_bug2_ioctl_example_2.bpl(1390,3): inline$storm_KeInitializeSpinLock$0$anon2#2
- daytona_bug2_ioctl_example_2.bpl(1403,3): inline$myInitDriver$0$anon7_Else#2
- daytona_bug2_ioctl_example_2.bpl(1424,3): anon30_Else#2
- daytona_bug2_ioctl_example_2.bpl(1480,3): inline$IoGetCurrentIrpStackLocation$1$anon3_Then#2
- daytona_bug2_ioctl_example_2.bpl(1484,3): inline$IoGetCurrentIrpStackLocation$1$anon2#2
- daytona_bug2_ioctl_example_2.bpl(1497,3): inline$dispatch$0$anon4_Else#2
- daytona_bug2_ioctl_example_2.bpl(1536,3): inline$I8xDeviceControl$0$anon13_Else#2
- daytona_bug2_ioctl_example_2.bpl(1559,3): inline$I8xDeviceControl$0$anon14_Then#2
- daytona_bug2_ioctl_example_2.bpl(1564,3): inline$I8xDeviceControl$0$anon4#2
- daytona_bug2_ioctl_example_2.bpl(1577,3): inline$I8xDeviceControl$0$label_11_true#2
- daytona_bug2_ioctl_example_2.bpl(1590,3): inline$I8xDeviceControl$0$label_13_true#2
- daytona_bug2_ioctl_example_2.bpl(1598,3): inline$I8xDeviceControl$0$label_14_false#2
- daytona_bug2_ioctl_example_2.bpl(1627,3): inline$IoGetCurrentIrpStackLocation$2$anon3_Then#2
- daytona_bug2_ioctl_example_2.bpl(1631,3): inline$IoGetCurrentIrpStackLocation$2$anon2#2
- daytona_bug2_ioctl_example_2.bpl(1644,3): inline$I8xDeviceControl$0$anon16_Else#2
- daytona_bug2_ioctl_example_2.bpl(1657,3): inline$I8xDeviceControl$0$label_19_case_2#2
- daytona_bug2_ioctl_example_2.bpl(1721,3): inline$IoGetCurrentIrpStackLocation$4$anon3_Then#2
- daytona_bug2_ioctl_example_2.bpl(1725,3): inline$IoGetCurrentIrpStackLocation$4$anon2#2
- daytona_bug2_ioctl_example_2.bpl(1738,3): inline$I8xKeyboardGetSysButtonEvent$0$anon34_Else#2
- daytona_bug2_ioctl_example_2.bpl(1751,3): inline$I8xKeyboardGetSysButtonEvent$0$label_14_false#2
- daytona_bug2_ioctl_example_2.bpl(1759,3): inline$I8xKeyboardGetSysButtonEvent$0$label_15_false#2
- daytona_bug2_ioctl_example_2.bpl(1813,3): inline$storm_KeAcquireSpinLock$0$anon10_Else#2
- daytona_bug2_ioctl_example_2.bpl(1837,3): inline$storm_KeAcquireSpinLock$0$label_13_true#2
- daytona_bug2_ioctl_example_2.bpl(1845,3): inline$storm_KeAcquireSpinLock$0$anon11_Else#2
- daytona_bug2_ioctl_example_2.bpl(1869,3): inline$storm_KeAcquireSpinLock$0$anon12_Then#2
- daytona_bug2_ioctl_example_2.bpl(1874,3): inline$storm_KeAcquireSpinLock$0$anon7#2
- daytona_bug2_ioctl_example_2.bpl(1885,3): inline$storm_KeAcquireSpinLock$0$anon14_Then#2
- daytona_bug2_ioctl_example_2.bpl(1890,3): inline$storm_KeAcquireSpinLock$0$anon9#2
- daytona_bug2_ioctl_example_2.bpl(1894,3): inline$storm_KeAcquireSpinLock$0$label_1#2
- daytona_bug2_ioctl_example_2.bpl(1911,3): inline$I8xKeyboardGetSysButtonEvent$0$anon36_Else#2
- daytona_bug2_ioctl_example_2.bpl(1922,3): inline$I8xKeyboardGetSysButtonEvent$0$label_56_false#2
- daytona_bug2_ioctl_example_2.bpl(1953,3): inline$storm_IoSetCancelRoutine$0$label_7_false#2
- daytona_bug2_ioctl_example_2.bpl(2012,3): inline$storm_IoSetCancelRoutine$0$anon12_Then#2
- daytona_bug2_ioctl_example_2.bpl(2016,3): inline$storm_IoSetCancelRoutine$0$anon5#2
- daytona_bug2_ioctl_example_2.bpl(2036,3): inline$storm_IoSetCancelRoutine$0$anon14_Then#2
- daytona_bug2_ioctl_example_2.bpl(2041,3): inline$storm_IoSetCancelRoutine$0$anon8#2
- daytona_bug2_ioctl_example_2.bpl(2052,3): inline$storm_IoSetCancelRoutine$0$anon16_Then#2
- daytona_bug2_ioctl_example_2.bpl(2057,3): inline$storm_IoSetCancelRoutine$0$anon10#2
- daytona_bug2_ioctl_example_2.bpl(2064,3): inline$storm_IoSetCancelRoutine$0$label_1#2
- daytona_bug2_ioctl_example_2.bpl(2077,3): inline$I8xKeyboardGetSysButtonEvent$0$anon44_Else#2
- daytona_bug2_ioctl_example_2.bpl(2202,3): inline$I8xKeyboardGetSysButtonEvent$0$anon45_Else#2
- daytona_bug2_ioctl_example_2.bpl(2210,3): inline$I8xKeyboardGetSysButtonEvent$0$anon46_Then#2
- daytona_bug2_ioctl_example_2.bpl(2220,3): inline$I8xKeyboardGetSysButtonEvent$0$anon24#2
- daytona_bug2_ioctl_example_2.bpl(2248,3): inline$storm_IoSetCancelRoutine$1$label_7_false#2
- daytona_bug2_ioctl_example_2.bpl(2295,3): inline$storm_IoSetCancelRoutine$1$anon12_Else#2
- daytona_bug2_ioctl_example_2.bpl(2303,3): inline$storm_IoSetCancelRoutine$1$anon13_Then#2
- daytona_bug2_ioctl_example_2.bpl(2313,3): inline$storm_IoSetCancelRoutine$1$anon5#2
- daytona_bug2_ioctl_example_2.bpl(2321,3): inline$storm_IoSetCancelRoutine$1$anon14_Else#2
- daytona_bug2_ioctl_example_2.bpl(2329,3): inline$storm_IoSetCancelRoutine$1$anon15_Then#2
- daytona_bug2_ioctl_example_2.bpl(2339,3): inline$storm_IoSetCancelRoutine$1$anon8#2
- daytona_bug2_ioctl_example_2.bpl(2350,3): inline$storm_IoSetCancelRoutine$1$anon16_Then#2
- daytona_bug2_ioctl_example_2.bpl(2355,3): inline$storm_IoSetCancelRoutine$1$anon10#2
- daytona_bug2_ioctl_example_2.bpl(2363,3): inline$storm_IoSetCancelRoutine$1$label_1#2
- daytona_bug2_ioctl_example_2.bpl(2377,3): inline$I8xKeyboardGetSysButtonEvent$0$anon50_Else#2
- daytona_bug2_ioctl_example_2.bpl(2387,3): inline$I8xKeyboardGetSysButtonEvent$0$label_72_false#2
- daytona_bug2_ioctl_example_2.bpl(2409,3): inline$storm_IoMarkIrpPending$2$label_6_false#2
- daytona_bug2_ioctl_example_2.bpl(2449,3): inline$storm_IoMarkIrpPending$2$label_1#2
- daytona_bug2_ioctl_example_2.bpl(2462,3): inline$I8xKeyboardGetSysButtonEvent$0$anon51_Else#2
- daytona_bug2_ioctl_example_2.bpl(2509,3): inline$I8xKeyboardGetSysButtonEvent$0$label_59#2
- daytona_bug2_ioctl_example_2.bpl(2535,3): inline$storm_KeReleaseSpinLock$0$anon8_Else#2
- daytona_bug2_ioctl_example_2.bpl(2576,3): inline$storm_KeReleaseSpinLock$0$label_11_true#2
- daytona_bug2_ioctl_example_2.bpl(2583,3): inline$storm_KeReleaseSpinLock$0$anon9_Else#2
- daytona_bug2_ioctl_example_2.bpl(2591,3): inline$storm_KeReleaseSpinLock$0$anon10_Then#2
- daytona_bug2_ioctl_example_2.bpl(2601,3): inline$storm_KeReleaseSpinLock$0$anon5#2
- daytona_bug2_ioctl_example_2.bpl(2612,3): inline$storm_KeReleaseSpinLock$0$anon11_Then#2
- daytona_bug2_ioctl_example_2.bpl(2617,3): inline$storm_KeReleaseSpinLock$0$anon7#2
- daytona_bug2_ioctl_example_2.bpl(2621,3): inline$storm_KeReleaseSpinLock$0$label_1#2
- daytona_bug2_ioctl_example_2.bpl(2634,3): inline$I8xKeyboardGetSysButtonEvent$0$anon43_Else#2
- daytona_bug2_ioctl_example_2.bpl(2867,3): inline$I8xKeyboardGetSysButtonEvent$0$label_51_true#2
- daytona_bug2_ioctl_example_2.bpl(2910,3): inline$storm_IoCompleteRequest$2$label_6_false#2
- daytona_bug2_ioctl_example_2.bpl(2953,3): inline$storm_IoCompleteRequest$2$anon6_Else#2
- daytona_bug2_ioctl_example_2.bpl(2961,3): inline$storm_IoCompleteRequest$2$anon7_Then#2
- daytona_bug2_ioctl_example_2.bpl(2971,3): inline$storm_IoCompleteRequest$2$anon2#2
- daytona_bug2_ioctl_example_2.bpl(2975,3): inline$storm_IoCompleteRequest$2$label_1#2
- daytona_bug2_ioctl_example_2.bpl(2988,3): inline$I8xCompleteSysButtonIrp$0$anon2_Else#2
- daytona_bug2_ioctl_example_2.bpl(3008,3): inline$I8xKeyboardGetSysButtonEvent$0$anon42_Else#2
- daytona_bug2_ioctl_example_2.bpl(3015,3): inline$I8xKeyboardGetSysButtonEvent$0$label_52#2
- daytona_bug2_ioctl_example_2.bpl(3159,3): inline$I8xKeyboardGetSysButtonEvent$0$label_1#2
- daytona_bug2_ioctl_example_2.bpl(3177,3): inline$I8xDeviceControl$0$anon18_Else#2
- daytona_bug2_ioctl_example_2.bpl(3646,3): inline$I8xDeviceControl$0$label_1#2
- daytona_bug2_ioctl_example_2.bpl(3663,3): inline$dispatch$0$anon5_Else#2
- daytona_bug2_ioctl_example_2.bpl(3694,3): anon31_Then#2
- daytona_bug2_ioctl_example_2.bpl(3699,3): anon17#2
- daytona_bug2_ioctl_example_2.bpl(3756,3): inline$storm_IoCancelIrp$0$anon23_Then#2
- daytona_bug2_ioctl_example_2.bpl(3761,3): inline$storm_IoCancelIrp$0$anon2#2
- daytona_bug2_ioctl_example_2.bpl(3785,3): inline$storm_IoCancelIrp$0$anon25_Then#2
- daytona_bug2_ioctl_example_2.bpl(3790,3): inline$storm_IoCancelIrp$0$anon5#2
- daytona_bug2_ioctl_example_2.bpl(3811,3): inline$storm_IoCancelIrp$0$anon27_Then#2
- daytona_bug2_ioctl_example_2.bpl(3816,3): inline$storm_IoCancelIrp$0$anon8#2
- daytona_bug2_ioctl_example_2.bpl(3827,3): inline$storm_IoCancelIrp$0$anon29_Then#2
- daytona_bug2_ioctl_example_2.bpl(3832,3): inline$storm_IoCancelIrp$0$anon10#2
- daytona_bug2_ioctl_example_2.bpl(3892,3): inline$storm_IoAcquireCancelSpinLock$0$label_11_true#2
- daytona_bug2_ioctl_example_2.bpl(3902,3): inline$storm_IoAcquireCancelSpinLock$0$anon8_Else#2
- daytona_bug2_ioctl_example_2.bpl(3915,3): inline$storm_IoAcquireCancelSpinLock$0$anon9_Else#2
- daytona_bug2_ioctl_example_2.bpl(3923,3): inline$storm_IoAcquireCancelSpinLock$0$anon10_Then#2
- daytona_bug2_ioctl_example_2.bpl(3933,3): inline$storm_IoAcquireCancelSpinLock$0$anon5#2
- daytona_bug2_ioctl_example_2.bpl(3944,3): inline$storm_IoAcquireCancelSpinLock$0$anon11_Then#2
- daytona_bug2_ioctl_example_2.bpl(3949,3): inline$storm_IoAcquireCancelSpinLock$0$anon7#2
- daytona_bug2_ioctl_example_2.bpl(3953,3): inline$storm_IoAcquireCancelSpinLock$0$label_1#2
- daytona_bug2_ioctl_example_2.bpl(3966,3): inline$storm_IoCancelIrp$0$anon30_Else#2
- daytona_bug2_ioctl_example_2.bpl(3984,3): inline$storm_IoCancelIrp$0$label_16_true#2
- daytona_bug2_ioctl_example_2.bpl(4002,3): inline$storm_IoCancelIrp$0$label_22_true#2
- daytona_bug2_ioctl_example_2.bpl(4010,3): inline$storm_IoCancelIrp$0$anon32_Else#2
- daytona_bug2_ioctl_example_2.bpl(4023,3): inline$storm_IoCancelIrp$0$label_27_false#2
- daytona_bug2_ioctl_example_2.bpl(4724,3): inline$storm_IoCancelIrp$0$label_1#2
- daytona_bug2_ioctl_example_2.bpl(4759,3): inline$cancel$0$anon2_Then#2
- daytona_bug2_ioctl_example_2.bpl(4773,3): anon32_Then#2
- daytona_bug2_ioctl_example_2.bpl(4778,3): anon19#2
- daytona_bug2_ioctl_example_2.bpl(4816,3): anon33_Then#2
- daytona_bug2_ioctl_example_2.bpl(4821,3): anon21#2
-
-Boogie program verifier finished with 0 verified, 1 error
-stack_overflow.bpl(97944,5): Error BP5001: This assertion might not hold.
-Execution trace:
- stack_overflow.bpl(1143,3): start#1
- stack_overflow.bpl(1199,3): inline$storm_IoAllocateIrp$0$label_8_case_1#1
- stack_overflow.bpl(1232,3): inline$storm_IoAllocateIrp$0$anon6_Else#1
- stack_overflow.bpl(1285,3): inline$IoGetNextIrpStackLocation$0$label_3_true#1
- stack_overflow.bpl(1304,3): inline$storm_IoAllocateIrp$0$anon7_Else#1
- stack_overflow.bpl(1323,3): inline$storm_IoAllocateIrp$0$anon8_Else#1
- stack_overflow.bpl(1332,3): inline$storm_IoAllocateIrp$0$anon5#1
- stack_overflow.bpl(1352,3): inline$storm_IoAllocateIrp$0$label_36#1
- stack_overflow.bpl(1366,3): anon10_Else#1
- stack_overflow.bpl(1381,3): anon11_Else#1
- stack_overflow.bpl(1420,3): inline$IoSetNextIrpStackLocation$0$label_3_true#1
- stack_overflow.bpl(1426,3): inline$IoSetNextIrpStackLocation$0$label_5#1
- stack_overflow.bpl(1448,3): anon12_Else#1
- stack_overflow.bpl(1488,3): inline$IoGetCurrentIrpStackLocation$0$label_3_true#1
- stack_overflow.bpl(1509,3): anon13_Else#1
- stack_overflow.bpl(1571,3): inline$myInitDriver$0$anon8_Else#1
- stack_overflow.bpl(1607,3): inline$myInitDriver$0$anon9_Else#1
- stack_overflow.bpl(1643,3): inline$myInitDriver$0$anon10_Else#1
- stack_overflow.bpl(1679,3): inline$myInitDriver$0$anon11_Else#1
- stack_overflow.bpl(1712,3): anon14_Else#1
- stack_overflow.bpl(1775,3): inline$IoGetCurrentIrpStackLocation$1$label_3_true#1
- stack_overflow.bpl(1796,3): inline$storm_thread_dispatch$0$anon4_Else#1
- stack_overflow.bpl(1879,3): inline$BDLPnP$0$anon54_Else#1
- stack_overflow.bpl(1893,3): inline$BDLPnP$0$label_16_true#1
- stack_overflow.bpl(1937,3): inline$BDLPnP$0$anon55_Else#1
- stack_overflow.bpl(1951,3): inline$BDLPnP$0$label_26_true#1
- stack_overflow.bpl(1995,3): inline$BDLPnP$0$anon56_Else#1
- stack_overflow.bpl(2009,3): inline$BDLPnP$0$label_36_true#1
- stack_overflow.bpl(2054,3): inline$IoGetCurrentIrpStackLocation$2$label_3_true#1
- stack_overflow.bpl(2075,3): inline$BDLPnP$0$anon57_Else#1
- stack_overflow.bpl(2102,3): inline$BDLPnP$0$label_44_true#1
- stack_overflow.bpl(2111,3): inline$BDLPnP$0$label_47#1
- stack_overflow.bpl(2115,3): inline$BDLPnP$0$anon58_Else#1
- stack_overflow.bpl(2129,3): inline$BDLPnP$0$label_51_false#1
- stack_overflow.bpl(77684,3): inline$BDLPnP$0$label_52_case_1#1
- stack_overflow.bpl(77744,3): inline$BDLPnPStart$0$anon36_Else#1
- stack_overflow.bpl(77758,3): inline$BDLPnPStart$0$label_11_true#1
- stack_overflow.bpl(77802,3): inline$BDLPnPStart$0$anon37_Else#1
- stack_overflow.bpl(77816,3): inline$BDLPnPStart$0$label_21_true#1
- stack_overflow.bpl(77860,3): inline$BDLPnPStart$0$anon38_Else#1
- stack_overflow.bpl(77874,3): inline$BDLPnPStart$0$label_31_true#1
- stack_overflow.bpl(77881,3): inline$BDLPnPStart$0$label_32#1
- stack_overflow.bpl(77953,3): inline$IoGetCurrentIrpStackLocation$3$label_3_true#1
- stack_overflow.bpl(77974,3): inline$IoCopyCurrentIrpStackLocationToNext$0$anon4_Else#1
- stack_overflow.bpl(78015,3): inline$IoGetNextIrpStackLocation$1$label_3_true#1
- stack_overflow.bpl(78034,3): inline$IoCopyCurrentIrpStackLocationToNext$0$anon5_Else#1
- stack_overflow.bpl(78068,3): inline$BDLCallLowerLevelDriverAndWait$0$anon16_Else#1
- stack_overflow.bpl(78102,3): inline$BDLCallLowerLevelDriverAndWait$0$anon17_Else#1
- stack_overflow.bpl(78130,3): inline$storm_IoSetCompletionRoutine$0$label_7_false#1
- stack_overflow.bpl(78200,3): inline$IoGetNextIrpStackLocation$2$label_3_true#1
- stack_overflow.bpl(78219,3): inline$storm_IoSetCompletionRoutine$0$anon5_Else#1
- stack_overflow.bpl(78235,3): inline$storm_IoSetCompletionRoutine$0$label_1#1
- stack_overflow.bpl(78252,3): inline$BDLCallLowerLevelDriverAndWait$0$anon18_Else#1
- stack_overflow.bpl(78292,3): inline$IoGetCurrentIrpStackLocation$4$label_3_true#1
- stack_overflow.bpl(78313,3): inline$BDLCallLowerLevelDriverAndWait$0$anon19_Else#1
- stack_overflow.bpl(83281,3): inline$BDLCallLowerLevelDriverAndWait$0$label_18_true#1
- stack_overflow.bpl(83290,3): inline$BDLCallLowerLevelDriverAndWait$0$anon21_Else#1
- stack_overflow.bpl(83335,3): inline$storm_IoCallDriver$1$label_9_false#1
- stack_overflow.bpl(83405,3): inline$IoSetNextIrpStackLocation$2$label_3_true#1
- stack_overflow.bpl(83411,3): inline$IoSetNextIrpStackLocation$2$label_5#1
- stack_overflow.bpl(83433,3): inline$storm_IoCallDriver$1$anon11_Else#1
- stack_overflow.bpl(83473,3): inline$IoGetCurrentIrpStackLocation$14$label_3_true#1
- stack_overflow.bpl(83494,3): inline$storm_IoCallDriver$1$anon13_Else#1
- stack_overflow.bpl(85861,3): inline$storm_IoCallDriver$1$label_27_case_1#1
- stack_overflow.bpl(85931,3): inline$IoGetCurrentIrpStackLocation$19$label_3_true#1
- stack_overflow.bpl(85952,3): inline$CallCompletionRoutine$3$anon10_Else#1
- stack_overflow.bpl(86009,3): inline$IoGetCurrentIrpStackLocation$20$label_3_true#1
- stack_overflow.bpl(86030,3): inline$CallCompletionRoutine$3$anon11_Else#1
- stack_overflow.bpl(86047,3): inline$CallCompletionRoutine$3$label_18_true#1
- stack_overflow.bpl(87164,3): inline$CallCompletionRoutine$3$label_20_icall_2#1
- stack_overflow.bpl(87241,3): inline$IoGetCurrentIrpStackLocation$21$label_3_true#1
- stack_overflow.bpl(87264,3): inline$BDLDevicePowerIoCompletion$3$anon30_Else#1
- stack_overflow.bpl(87309,3): inline$BDLDevicePowerIoCompletion$3$anon31_Else#1
- stack_overflow.bpl(87323,3): inline$BDLDevicePowerIoCompletion$3$label_20_true#1
- stack_overflow.bpl(87367,3): inline$BDLDevicePowerIoCompletion$3$anon32_Else#1
- stack_overflow.bpl(87381,3): inline$BDLDevicePowerIoCompletion$3$label_30_true#1
- stack_overflow.bpl(87425,3): inline$BDLDevicePowerIoCompletion$3$anon33_Else#1
- stack_overflow.bpl(87439,3): inline$BDLDevicePowerIoCompletion$3$label_40_true#1
- stack_overflow.bpl(87454,3): inline$BDLDevicePowerIoCompletion$3$label_41_true#1
- stack_overflow.bpl(87485,3): inline$BDLDevicePowerIoCompletion$3$label_44_true#1
- stack_overflow.bpl(87529,3): inline$BDLDevicePowerIoCompletion$3$label_55_true#1
- stack_overflow.bpl(87557,3): inline$BDLDevicePowerIoCompletion$3$anon35_Else#1
- stack_overflow.bpl(87571,3): inline$BDLDevicePowerIoCompletion$3$label_62_true#1
- stack_overflow.bpl(87615,3): inline$BDLDevicePowerIoCompletion$3$anon36_Else#1
- stack_overflow.bpl(87629,3): inline$BDLDevicePowerIoCompletion$3$label_72_true#1
- stack_overflow.bpl(87673,3): inline$BDLDevicePowerIoCompletion$3$anon37_Else#1
- stack_overflow.bpl(87687,3): inline$BDLDevicePowerIoCompletion$3$label_82_true#1
- stack_overflow.bpl(87694,3): inline$BDLDevicePowerIoCompletion$3$label_83#1
- stack_overflow.bpl(87700,3): inline$BDLDevicePowerIoCompletion$3$label_86#1
- stack_overflow.bpl(87704,3): inline$BDLDevicePowerIoCompletion$3$anon38_Else#1
- stack_overflow.bpl(87715,3): inline$BDLDevicePowerIoCompletion$3$anon39_Else#1
- stack_overflow.bpl(87740,3): inline$storm_IoCompleteRequest$7$label_6_false#1
- stack_overflow.bpl(87779,3): inline$storm_IoCompleteRequest$7$label_7#1
- stack_overflow.bpl(87784,3): inline$storm_IoCompleteRequest$7$label_1#1
- stack_overflow.bpl(87797,3): inline$BDLDevicePowerIoCompletion$3$anon40_Else#1
- stack_overflow.bpl(87808,3): inline$BDLDevicePowerIoCompletion$3$anon41_Else#1
- stack_overflow.bpl(87839,3): inline$BDLDevicePowerIoCompletion$3$anon42_Else#1
- stack_overflow.bpl(87853,3): inline$BDLDevicePowerIoCompletion$3$label_101_true#1
- stack_overflow.bpl(87897,3): inline$BDLDevicePowerIoCompletion$3$anon43_Else#1
- stack_overflow.bpl(87911,3): inline$BDLDevicePowerIoCompletion$3$label_111_true#1
- stack_overflow.bpl(87955,3): inline$BDLDevicePowerIoCompletion$3$anon44_Else#1
- stack_overflow.bpl(87969,3): inline$BDLDevicePowerIoCompletion$3$label_121_true#1
- stack_overflow.bpl(87976,3): inline$BDLDevicePowerIoCompletion$3$label_122#1
- stack_overflow.bpl(88048,3): inline$CallCompletionRoutine$3$anon13_Else#1
- stack_overflow.bpl(88162,3): inline$CallCompletionRoutine$3$label_24_true#1
- stack_overflow.bpl(88171,3): inline$CallCompletionRoutine$3$label_1#1
- stack_overflow.bpl(88192,3): inline$storm_IoCallDriver$1$anon15_Else#1
- stack_overflow.bpl(88220,3): inline$storm_IoCallDriver$1$label_36#1
- stack_overflow.bpl(88224,3): inline$storm_IoCallDriver$1$label_1#1
- stack_overflow.bpl(88246,3): inline$storm_PoCallDriver$0$anon2_Else#1
- stack_overflow.bpl(88271,3): inline$BDLCallLowerLevelDriverAndWait$0$anon22_Else#1
- stack_overflow.bpl(88285,3): inline$BDLCallLowerLevelDriverAndWait$0$label_29_false#1
- stack_overflow.bpl(88443,3): inline$BDLCallLowerLevelDriverAndWait$0$label_30#1
- stack_overflow.bpl(88486,3): inline$BDLPnPStart$0$anon39_Else#1
- stack_overflow.bpl(88677,3): inline$BDLPnPStart$0$label_37_true#1
- stack_overflow.bpl(88989,3): inline$BDLPnPStart$0$label_51_true#1
- stack_overflow.bpl(89017,3): inline$BDLPnPStart$0$anon41_Else#1
- stack_overflow.bpl(89031,3): inline$BDLPnPStart$0$label_56_true#1
- stack_overflow.bpl(89075,3): inline$BDLPnPStart$0$anon42_Else#1
- stack_overflow.bpl(89089,3): inline$BDLPnPStart$0$label_66_true#1
- stack_overflow.bpl(89133,3): inline$BDLPnPStart$0$anon43_Else#1
- stack_overflow.bpl(89147,3): inline$BDLPnPStart$0$label_76_true#1
- stack_overflow.bpl(89178,3): inline$BDLPnPStart$0$anon44_Else#1
- stack_overflow.bpl(89192,3): inline$BDLPnPStart$0$label_81_true#1
- stack_overflow.bpl(89236,3): inline$BDLPnPStart$0$anon45_Else#1
- stack_overflow.bpl(89250,3): inline$BDLPnPStart$0$label_91_true#1
- stack_overflow.bpl(89294,3): inline$BDLPnPStart$0$anon46_Else#1
- stack_overflow.bpl(89308,3): inline$BDLPnPStart$0$label_101_true#1
- stack_overflow.bpl(89315,3): inline$BDLPnPStart$0$label_102#1
- stack_overflow.bpl(89370,3): inline$BDLPnP$0$anon67_Else#1
- stack_overflow.bpl(94595,3): inline$BDLPnP$0$label_139_true#1
- stack_overflow.bpl(94624,3): inline$storm_IoCompleteRequest$57$label_6_true#1
- stack_overflow.bpl(94632,3): inline$storm_IoCompleteRequest$57$anon3_Else#1
- stack_overflow.bpl(94644,3): inline$storm_IoCompleteRequest$57$label_9_false#1
- stack_overflow.bpl(94664,3): inline$storm_IoCompleteRequest$57$label_1#1
- stack_overflow.bpl(94712,3): inline$BDLPnP$0$anon75_Then#1
- stack_overflow.bpl(95228,3): inline$storm_thread_dispatch$0$anon5_Then#1
- stack_overflow.bpl(95236,3): inline$storm_thread_dispatch$0$Return#1
- stack_overflow.bpl(95296,3): inline$storm_IoCancelIrp$0$anon9_Then#1
- stack_overflow.bpl(95301,3): inline$storm_IoCancelIrp$0$anon1#1
- stack_overflow.bpl(95358,3): inline$storm_IoAcquireCancelSpinLock$0$anon4_Then#1
- stack_overflow.bpl(95520,3): inline$storm_IoCancelIrp$0$anon10_Then#1
- stack_overflow.bpl(95541,3): inline$storm_thread_cancel$0$anon2_Then#1
- stack_overflow.bpl(95545,3): inline$storm_thread_cancel$0$Return#1
- stack_overflow.bpl(97933,3): inline$storm_thread_completion$0$anon4_Then#1
- stack_overflow.bpl(97937,3): inline$storm_thread_completion$0$Return#1
-
-Boogie program verifier finished with 0 verified, 1 error
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
diff --git a/Test/livevars/runtest.bat b/Test/livevars/runtest.bat
deleted file mode 100644
index dbd3cb8c..00000000
--- a/Test/livevars/runtest.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-rem set BGEXE=mono ..\..\Binaries\Boogie.exe
-
-%BGEXE% %* /noinfer /useArrayTheory bla1.bpl
-%BGEXE% %* /noinfer /useArrayTheory daytona_bug2_ioctl_example_1.bpl
-%BGEXE% %* /noinfer /useArrayTheory daytona_bug2_ioctl_example_2.bpl
-%BGEXE% %* /noinfer /useArrayTheory stack_overflow.bpl
-%BGEXE% %* /noinfer /useArrayTheory NestedOneDimensionalMap.bpl
-%BGEXE% %* /noinfer /useArrayTheory TwoDimensionalMap.bpl
diff --git a/Test/lock/Answer b/Test/lock/Answer
deleted file mode 100644
index a5b63e44..00000000
--- a/Test/lock/Answer
+++ /dev/null
@@ -1,8 +0,0 @@
-
-Boogie program verifier finished with 3 verified, 0 errors
-LockIncorrect.bpl(19,3): Error BP5001: This assertion might not hold.
-Execution trace:
- LockIncorrect.bpl(11,1): start
- LockIncorrect.bpl(16,1): LoopHead
-
-Boogie program verifier finished with 0 verified, 1 error
diff --git a/Test/lock/runtest.bat b/Test/lock/runtest.bat
deleted file mode 100644
index a90972c9..00000000
--- a/Test/lock/runtest.bat
+++ /dev/null
@@ -1,7 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-
-%BGEXE% %* Lock.bpl
-%BGEXE% %* LockIncorrect.bpl
diff --git a/Test/og/Answer b/Test/og/Answer
deleted file mode 100644
index 4b1bceae..00000000
--- a/Test/og/Answer
+++ /dev/null
@@ -1,115 +0,0 @@
-
--------------------- foo.bpl --------------------
-foo.bpl(30,3): Error: Non-interference check failed
-Execution trace:
- foo.bpl(7,3): anon0
- foo.bpl(7,3): anon0$1
- foo.bpl(14,3): inline$Incr_1$0$this_A
- (0,0): inline$Impl_YieldChecker_PC_1$1$L0
-
-Boogie program verifier finished with 9 verified, 1 error
-
--------------------- bar.bpl --------------------
-bar.bpl(28,3): Error: Non-interference check failed
-Execution trace:
- bar.bpl(7,3): anon0
- bar.bpl(7,3): anon0$1
- bar.bpl(14,3): inline$Incr_1$0$this_A
- (0,0): inline$Impl_YieldChecker_PC_1$1$L0
-bar.bpl(28,3): Error: Non-interference check failed
-Execution trace:
- bar.bpl(38,3): anon0
- bar.bpl(38,3): anon0$1
- (0,0): inline$Impl_YieldChecker_PC_1$1$L0
-
-Boogie program verifier finished with 8 verified, 2 errors
-
--------------------- one.bpl --------------------
-
-Boogie program verifier finished with 3 verified, 0 errors
-
--------------------- parallel1.bpl --------------------
-parallel1.bpl(30,3): Error: Non-interference check failed
-Execution trace:
- parallel1.bpl(7,3): anon0
- parallel1.bpl(7,3): anon0$1
- parallel1.bpl(14,3): inline$Incr_1$0$this_A
- (0,0): inline$Impl_YieldChecker_PC_1$1$L0
-
-Boogie program verifier finished with 7 verified, 1 error
-
--------------------- linear-set.bpl --------------------
-
-Boogie program verifier finished with 4 verified, 0 errors
-
--------------------- linear-set2.bpl --------------------
-
-Boogie program verifier finished with 4 verified, 0 errors
-
--------------------- FlanaganQadeer.bpl --------------------
-
-Boogie program verifier finished with 6 verified, 0 errors
-
--------------------- parallel2.bpl --------------------
-
-Boogie program verifier finished with 8 verified, 0 errors
-
--------------------- parallel4.bpl --------------------
-parallel4.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- (0,0): og_init
- parallel4.bpl(24,5): anon0$1
-
-Boogie program verifier finished with 5 verified, 1 error
-
--------------------- parallel5.bpl --------------------
-
-Boogie program verifier finished with 8 verified, 0 errors
-
--------------------- akash.bpl --------------------
-
-Boogie program verifier finished with 6 verified, 0 errors
-
--------------------- t1.bpl --------------------
-t1.bpl(60,5): Error: Non-interference check failed
-Execution trace:
- (0,0): og_init
- t1.bpl(80,13): anon0
- t1.bpl(80,13): anon0$1
- (0,0): inline$SetG_1$0$Entry
- t1.bpl(80,13): anon0$2
- (0,0): inline$Impl_YieldChecker_A_1$1$L2
-
-Boogie program verifier finished with 5 verified, 1 error
-
--------------------- new1.bpl --------------------
-
-Boogie program verifier finished with 4 verified, 0 errors
-
--------------------- perm.bpl --------------------
-
-Boogie program verifier finished with 4 verified, 0 errors
-
--------------------- DeviceCache.bpl --------------------
-
-Boogie program verifier finished with 35 verified, 0 errors
-
--------------------- ticket.bpl --------------------
-
-Boogie program verifier finished with 28 verified, 0 errors
-
--------------------- lock.bpl --------------------
-
-Boogie program verifier finished with 8 verified, 0 errors
-
--------------------- lock2.bpl --------------------
-
-Boogie program verifier finished with 8 verified, 0 errors
-
--------------------- multiset.bpl --------------------
-
-Boogie program verifier finished with 85 verified, 0 errors
-
--------------------- civl-paper.bpl --------------------
-
-Boogie program verifier finished with 28 verified, 0 errors
diff --git a/Test/og/DeviceCache.bpl.expect b/Test/og/DeviceCache.bpl.expect
index 11d204a8..9e5be400 100644
--- a/Test/og/DeviceCache.bpl.expect
+++ b/Test/og/DeviceCache.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 35 verified, 0 errors
+
+Boogie program verifier finished with 28 verified, 0 errors
diff --git a/Test/og/DeviceCacheSimplified.bpl b/Test/og/DeviceCacheSimplified.bpl
deleted file mode 100644
index afc3e91b..00000000
--- a/Test/og/DeviceCacheSimplified.bpl
+++ /dev/null
@@ -1,158 +0,0 @@
-// RUN: %boogie -noinfer -typeEncoding:m -useArrayTheory "%s" > "%t"
-// RUN: %diff "%s.expect" "%t"
-// XFAIL: *
-type X;
-
-function {:builtin "MapConst"} MapConstBool(bool) : [X]bool;
-function {:inline} {:linear "tid"} TidCollector(x: X) : [X]bool
-{
- MapConstBool(false)[x := true]
-}
-
-function {:inline} Inv(ghostLock: X, currsize: int, newsize: int) : (bool)
-{
- currsize <= newsize && (ghostLock == nil <==> currsize == newsize)
-}
-
-procedure {:yields} YieldToReadCache({:linear "tid"} tid': X) returns ({:linear "tid"} tid: X)
-requires tid' != nil;
-requires Inv(ghostLock, currsize, newsize);
-ensures Inv(ghostLock, currsize, newsize);
-ensures old(currsize) <= currsize;
-ensures tid == tid';
-{
- tid := tid';
- yield;
- assert Inv(ghostLock, currsize, newsize);
- assert old(currsize) <= currsize;
- assert tid != nil;
-}
-
-procedure {:yields} YieldToUpdateCache({:linear "tid"} tid': X, i: int) returns ({:linear "tid"} tid: X)
-requires tid' != nil;
-requires Inv(ghostLock, currsize, newsize);
-requires ghostLock == tid';
-requires currsize <= i;
-ensures Inv(ghostLock, currsize, newsize);
-ensures old(currsize) <= currsize;
-ensures tid == tid';
-ensures ghostLock == tid;
-ensures currsize <= i;
-ensures newsize == old(newsize);
-{
- tid := tid';
- yield;
- assert Inv(ghostLock, currsize, newsize);
- assert old(currsize) <= currsize;
- assert tid != nil;
- assert ghostLock == tid;
- assert currsize <= i;
- assert newsize == old(newsize);
-}
-
-var ghostLock: X;
-var lock: X;
-const nil: X;
-var currsize: int;
-var newsize: int;
-
-procedure acquire(tid: X);
-modifies lock;
-ensures old(lock) == nil && lock == tid;
-
-procedure release(tid: X);
-modifies lock;
-requires lock == tid;
-ensures lock == nil;
-
-procedure {:yields} Read ({:linear "tid"} tid': X, start : int, size : int) returns (bytesread : int)
-requires tid' != nil;
-requires 0 <= start && 0 <= size;
-requires Inv(ghostLock, currsize, newsize);
-ensures 0 <= bytesread && bytesread <= size;
-{
- var copy_currsize: int;
- var i, j, tmp : int;
- var {:linear "tid"} tid: X;
- tid := tid';
-
- bytesread := size;
- call acquire(tid);
- i := currsize;
- if (start + size <= i) {
- call release(tid);
- call tid := YieldToReadCache(tid);
- goto COPY_TO_BUFFER;
- } else if (newsize > i) {
- bytesread := if (start <= i) then (i - start) else 0;
- call release(tid);
- call tid := YieldToReadCache(tid);
- goto COPY_TO_BUFFER;
- } else {
- newsize := start + size;
- ghostLock := tid;
- call release(tid);
- call tid := YieldToUpdateCache(tid, i);
- goto READ_DEVICE;
- }
-
-READ_DEVICE:
- while (i < start + size)
- invariant Inv(ghostLock, currsize, newsize);
- invariant ghostLock == tid;
- invariant tid != nil;
- invariant currsize <= i;
- invariant newsize == start + size;
- {
- call tid := YieldToUpdateCache(tid, i);
- assert currsize <= i;
- i := i + 1;
- }
- call acquire(tid);
- tmp := newsize;
- currsize := tmp;
- ghostLock := nil;
- call release(tid);
- call tid := YieldToReadCache(tid);
-
-COPY_TO_BUFFER:
- j := 0;
- while(j < bytesread)
- invariant 0 <= j;
- invariant Inv(ghostLock, currsize, newsize);
- invariant tid != nil;
- invariant bytesread == 0 || start + bytesread <= currsize;
- {
- call tid := YieldToReadCache(tid);
- assert start + j < currsize;
- j := j + 1;
- }
-}
-
-procedure {:yields} {:stable} thread({:linear "tid"} tid': X)
-requires tid' != nil;
-requires Inv(ghostLock, currsize, newsize);
-{
- var start, size, bytesread: int;
- var {:linear "tid"} tid: X;
-
- tid := tid';
- havoc start, size;
- assume (0 <= start && 0 <= size);
- call bytesread := Read(tid, start, size);
-}
-
-procedure {:entrypoint} {:yields} main()
-requires currsize == 0 && newsize == 0 && ghostLock == nil && lock == nil;
-{
- var {:linear "tid"} tid: X;
-
- while (*)
- {
- call tid := Allocate();
- async call thread(tid);
- }
-}
-
-procedure Allocate() returns ({:linear "tid"} xls: X);
-ensures xls != nil;
diff --git a/Test/og/DeviceCacheWithBuffer.bpl b/Test/og/DeviceCacheWithBuffer.bpl
deleted file mode 100644
index a66dbaca..00000000
--- a/Test/og/DeviceCacheWithBuffer.bpl
+++ /dev/null
@@ -1,173 +0,0 @@
-// RUN: %boogie -noinfer -typeEncoding:m -useArrayTheory "%s" > "%t"
-// RUN: %diff "%s.expect" "%t"
-// XFAIL: *
-type X;
-function {:builtin "MapConst"} mapconstbool(bool): [X]bool;
-const nil: X;
-var {:qed} ghostLock: X;
-var {:qed} lock: X;
-var {:qed} currsize: int;
-var {:qed} newsize: int;
-
-const device: [int]int;
-var {:qed} cache: [int]int;
-
-function {:inline} Inv(ghostLock: X, currsize: int, newsize: int, cache: [int]int) : (bool)
-{
- 0 <= currsize && currsize <= newsize &&
- (ghostLock == nil <==> currsize == newsize) &&
- (forall i: int :: 0 <= i && i < currsize ==> device[i] == cache[i])
-}
-
-procedure {:stable} {:yields} YieldToReadCache()
-requires Inv(ghostLock, currsize, newsize, cache);
-ensures Inv(ghostLock, currsize, newsize, cache) && old(currsize) <= currsize;
-{
-}
-
-procedure {:stable} {:yields} YieldToWriteCache({:linear "tid"} tid': X) returns ({:linear "tid"} tid: X)
-requires Inv(ghostLock, currsize, newsize, cache) && ghostLock == tid' && tid' != nil;
-ensures Inv(ghostLock, currsize, newsize, cache) && ghostLock == tid && tid != nil && tid == tid' && old(currsize) == currsize && old(newsize) == newsize;
-{
- tid := tid';
-}
-
-procedure Allocate({:linear "tid"} xls': [X]bool) returns ({:linear "tid"} xls: [X]bool, {:linear "tid"} xl: X);
-ensures xl != nil;
-
-procedure {:entrypoint} {:yields} main({:linear "tid"} xls':[X]bool)
-requires xls' == mapconstbool(true);
-{
- var {:linear "tid"} tid: X;
- var {:linear "tid"} xls: [X]bool;
-
- call xls := Init(xls');
-
- while (*)
- invariant Inv(ghostLock, currsize, newsize, cache);
- {
- call xls, tid := Allocate(xls);
- async call Thread(tid);
- }
-}
-
-procedure {:yields} {:stable} Thread({:linear "tid"} tid': X)
-requires tid' != nil;
-requires Inv(ghostLock, currsize, newsize, cache);
-{
- var start, size, bytesRead: int;
- var buffer: [int]int;
- var {:linear "tid"} tid: X;
-
- tid := tid';
- havoc start, size;
- assume (0 <= start && 0 <= size);
- call bytesRead, buffer := Read(tid, start, size);
-}
-
-procedure {:yields} Read({:linear "tid"} tid': X, start : int, size : int) returns (bytesRead : int, buffer : [int]int)
-requires tid' != nil;
-requires 0 <= start && 0 <= size;
-requires Inv(ghostLock, currsize, newsize, cache);
-ensures 0 <= bytesRead && bytesRead <= size;
-ensures (forall i: int :: 0 <= i && i < bytesRead ==> buffer[i] == device[start+i]);
-{
- var i, tmp: int;
- var {:linear "tid"} tid: X;
- tid := tid';
-
- yield;
- assert Inv(ghostLock, currsize, newsize, cache);
- bytesRead := size;
- call tid := acquire(tid);
- call tid, i := ReadCurrsize(tid);
- call tid, tmp := ReadNewsize(tid);
- if (start + size <= i) {
- call tid := release(tid);
- goto COPY_TO_BUFFER;
- } else if (tmp > i) {
- bytesRead := if (start <= i) then (i - start) else 0;
- call tid := release(tid);
- goto COPY_TO_BUFFER;
- } else {
- call tid := WriteNewsize(tid, start + size);
- call tid := release(tid);
- goto READ_DEVICE;
- }
-
-READ_DEVICE:
- par tid := YieldToWriteCache(tid);
- call tid := WriteCache(tid, start + size);
- call tid := acquire(tid);
- call tid, tmp := ReadNewsize(tid);
- call tid := WriteCurrsize(tid, tmp);
- call tid := release(tid);
-
-COPY_TO_BUFFER:
- par YieldToReadCache();
- call buffer := ReadCache(start, bytesRead);
-}
-
-procedure {:yields} WriteCache({:linear "tid"} tid': X, index: int) returns ({:linear "tid"} tid: X)
-ensures {:right 1} |{ A: assert ghostLock == tid' && tid' != nil; tid := tid'; cache := (lambda i: int :: if (currsize <= i && i < index) then device[i] else cache[i]); return true; }|;
-{
- var j: int;
- tid := tid';
-
- call tid, j := ReadCurrsize(tid);
- while (j < index)
- invariant {:phase 1} ghostLock == tid && currsize <= j && tid == tid';
- invariant {:phase 1} cache == (lambda i: int :: if (currsize <= i && i < j) then device[i] else old(cache)[i]);
- {
- call tid := WriteCacheEntry(tid, j);
- j := j + 1;
- }
-}
-
-procedure {:yields} ReadCache(start: int, bytesRead: int) returns (buffer: [int]int)
-requires 0 <= start && 0 <= bytesRead && (bytesRead == 0 || start + bytesRead <= currsize);
-requires (forall i: int :: 0 <= i && i < currsize ==> cache[i] == device[i]);
-ensures (forall i: int :: 0 <= i && i < bytesRead ==> buffer[i] == device[start+i]);
-{
- var x: int;
- var j: int;
- j := 0;
- while(j < bytesRead)
- invariant bytesRead == 0 || start + j <= currsize;
- invariant (forall i: int :: 0 <= i && i < j ==> buffer[i] == device[start+i]);
- {
- yield;
- assert start + j < currsize;
- assert (forall i: int :: 0 <= i && i < currsize ==> cache[i] == device[i]);
- call x := ReadCacheEntry(start + j);
- buffer[j] := x;
- j := j + 1;
- }
-}
-
-procedure {:yields} Init({:linear "tid"} xls':[X]bool) returns ({:linear "tid"} xls:[X]bool);
-ensures {:both 0} |{ A: assert xls' == mapconstbool(true); xls := xls'; currsize := 0; newsize := 0; lock := nil; ghostLock := nil; return true; }|;
-
-procedure {:yields} ReadCurrsize({:linear "tid"} tid': X) returns ({:linear "tid"} tid: X, val: int);
-ensures {:right 0} |{A: assert tid' != nil; assert lock == tid' || ghostLock == tid'; tid := tid'; val := currsize; return true; }|;
-
-procedure {:yields} ReadNewsize({:linear "tid"} tid': X) returns ({:linear "tid"} tid: X, val: int);
-ensures {:right 0} |{A: assert tid' != nil; assert lock == tid' || ghostLock == tid'; tid := tid'; val := newsize; return true; }|;
-
-procedure {:yields} WriteNewsize({:linear "tid"} tid': X, val: int) returns ({:linear "tid"} tid: X);
-ensures {:atomic 0} |{A: assert tid' != nil; assert lock == tid' && ghostLock == nil; tid := tid'; newsize := val; ghostLock := tid; return true; }|;
-
-procedure {:yields} WriteCurrsize({:linear "tid"} tid': X, val: int) returns ({:linear "tid"} tid: X);
-ensures {:atomic 0} |{A: assert tid' != nil; assert lock == tid' && ghostLock == tid'; tid := tid'; currsize := val; ghostLock := nil; return true; }|;
-
-procedure {:yields} ReadCacheEntry(index: int) returns (val: int);
-ensures {:atomic 0} |{ A: assert 0 <= index && index < currsize; val := cache[index]; return true; }|;
-
-procedure {:yields} WriteCacheEntry({:linear "tid"} tid': X, index: int) returns ({:linear "tid"} tid: X);
-ensures {:right 0} |{ A: assert tid' != nil; assert currsize <= index && ghostLock == tid'; tid := tid'; cache[index] := device[index]; return true; }|;
-
-procedure {:yields} acquire({:linear "tid"} tid': X) returns ({:linear "tid"} tid: X);
-ensures {:right 0} |{ A: assert tid' != nil; tid := tid'; assume lock == nil; lock := tid; return true; }|;
-
-procedure {:yields} release({:linear "tid"} tid': X) returns ({:linear "tid"} tid: X);
-ensures {:left 0} |{ A: assert tid' != nil; assert lock == tid'; tid := tid'; lock := nil; return true; }|;
diff --git a/Test/og/FlanaganQadeer.bpl.expect b/Test/og/FlanaganQadeer.bpl.expect
index 9823d44a..5b2909f1 100644
--- a/Test/og/FlanaganQadeer.bpl.expect
+++ b/Test/og/FlanaganQadeer.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 6 verified, 0 errors
+
+Boogie program verifier finished with 3 verified, 0 errors
diff --git a/Test/og/akash.bpl.expect b/Test/og/akash.bpl.expect
index 9823d44a..5b2909f1 100644
--- a/Test/og/akash.bpl.expect
+++ b/Test/og/akash.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 6 verified, 0 errors
+
+Boogie program verifier finished with 3 verified, 0 errors
diff --git a/Test/og/async.bpl b/Test/og/async.bpl
deleted file mode 100644
index 2219fe8c..00000000
--- a/Test/og/async.bpl
+++ /dev/null
@@ -1,19 +0,0 @@
-// RUN: %boogie -noinfer -typeEncoding:m -useArrayTheory "%s" > "%t"
-// RUN: %diff "%s.expect" "%t"
-// XFAIL: *
-var {:phase 1} x: int;
-var {:phase 1} y: int;
-
-procedure {:yields} {:phase 1} foo()
-{
- assume x == y;
- x := x + 1;
- async call P();
- y := y + 1;
-}
-
-procedure {:yields} {:phase 1} P()
-requires x != y;
-{
- assert {:phase 1} x != y;
-}
diff --git a/Test/og/bar.bpl.expect b/Test/og/bar.bpl.expect
index d59bd019..4bd6cc8c 100644
--- a/Test/og/bar.bpl.expect
+++ b/Test/og/bar.bpl.expect
@@ -1,13 +1,13 @@
-bar.bpl(28,3): Error: Non-interference check failed
-Execution trace:
- bar.bpl(7,3): anon0
- bar.bpl(7,3): anon0$1
- bar.bpl(14,3): inline$Incr_1$0$this_A
- (0,0): inline$Impl_YieldChecker_PC_1$1$L0
-bar.bpl(28,3): Error: Non-interference check failed
-Execution trace:
- bar.bpl(38,3): anon0
- bar.bpl(38,3): anon0$1
- (0,0): inline$Impl_YieldChecker_PC_1$1$L0
-
-Boogie program verifier finished with 8 verified, 2 errors
+bar.bpl(28,3): Error: Non-interference check failed
+Execution trace:
+ bar.bpl(7,3): anon0
+ bar.bpl(7,3): anon0$1
+ bar.bpl(14,3): inline$Incr_1$0$this_A
+ (0,0): inline$Impl_YieldChecker_PC_1$1$L0
+bar.bpl(28,3): Error: Non-interference check failed
+Execution trace:
+ bar.bpl(38,3): anon0
+ bar.bpl(38,3): anon0$1
+ (0,0): inline$Impl_YieldChecker_PC_1$1$L0
+
+Boogie program verifier finished with 3 verified, 2 errors
diff --git a/Test/og/civl-paper.bpl.expect b/Test/og/civl-paper.bpl.expect
index 812c54cc..ac38b46e 100644
--- a/Test/og/civl-paper.bpl.expect
+++ b/Test/og/civl-paper.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 28 verified, 0 errors
+
+Boogie program verifier finished with 23 verified, 0 errors
diff --git a/Test/og/foo.bpl.expect b/Test/og/foo.bpl.expect
index b386f3f6..287c2b4f 100644
--- a/Test/og/foo.bpl.expect
+++ b/Test/og/foo.bpl.expect
@@ -1,8 +1,8 @@
-foo.bpl(30,3): Error: Non-interference check failed
-Execution trace:
- foo.bpl(7,3): anon0
- foo.bpl(7,3): anon0$1
- foo.bpl(14,3): inline$Incr_1$0$this_A
- (0,0): inline$Impl_YieldChecker_PC_1$1$L0
-
-Boogie program verifier finished with 9 verified, 1 error
+foo.bpl(30,3): Error: Non-interference check failed
+Execution trace:
+ foo.bpl(7,3): anon0
+ foo.bpl(7,3): anon0$1
+ foo.bpl(14,3): inline$Incr_1$0$this_A
+ (0,0): inline$Impl_YieldChecker_PC_1$1$L0
+
+Boogie program verifier finished with 4 verified, 1 error
diff --git a/Test/og/houd1.bpl b/Test/og/houd1.bpl
deleted file mode 100644
index 8c86f22b..00000000
--- a/Test/og/houd1.bpl
+++ /dev/null
@@ -1,24 +0,0 @@
-// RUN: %boogie -noinfer -typeEncoding:m -useArrayTheory "%s" > "%t"
-// RUN: %diff "%s.expect" "%t"
-// XFAIL: *
-const {:existential true} b0: bool;
-const {:existential true} b1: bool;
-const {:existential true} b2: bool;
-
-var x:int;
-
-procedure A()
-{
- x := x + 1;
- yield;
-}
-
-procedure B()
-{
- x := 5;
- yield;
- assert b0 ==> (x == 5);
- assert b1 ==> (x >= 5);
- assert b2 ==> (x >= 6);
-}
-
diff --git a/Test/og/linear-set.bpl.expect b/Test/og/linear-set.bpl.expect
index 00ddb38b..3de74d3e 100644
--- a/Test/og/linear-set.bpl.expect
+++ b/Test/og/linear-set.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 4 verified, 0 errors
+
+Boogie program verifier finished with 2 verified, 0 errors
diff --git a/Test/og/linear-set2.bpl.expect b/Test/og/linear-set2.bpl.expect
index 00ddb38b..3de74d3e 100644
--- a/Test/og/linear-set2.bpl.expect
+++ b/Test/og/linear-set2.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 4 verified, 0 errors
+
+Boogie program verifier finished with 2 verified, 0 errors
diff --git a/Test/og/lock.bpl.expect b/Test/og/lock.bpl.expect
index 76a9a2bf..05d394c7 100644
--- a/Test/og/lock.bpl.expect
+++ b/Test/og/lock.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 8 verified, 0 errors
+
+Boogie program verifier finished with 5 verified, 0 errors
diff --git a/Test/og/lock2.bpl.expect b/Test/og/lock2.bpl.expect
index 76a9a2bf..05d394c7 100644
--- a/Test/og/lock2.bpl.expect
+++ b/Test/og/lock2.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 8 verified, 0 errors
+
+Boogie program verifier finished with 5 verified, 0 errors
diff --git a/Test/og/multiset.bpl.expect b/Test/og/multiset.bpl.expect
index 63682bb4..d72077a6 100644
--- a/Test/og/multiset.bpl.expect
+++ b/Test/og/multiset.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 85 verified, 0 errors
+
+Boogie program verifier finished with 78 verified, 0 errors
diff --git a/Test/og/new1.bpl.expect b/Test/og/new1.bpl.expect
index 00ddb38b..3de74d3e 100644
--- a/Test/og/new1.bpl.expect
+++ b/Test/og/new1.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 4 verified, 0 errors
+
+Boogie program verifier finished with 2 verified, 0 errors
diff --git a/Test/og/one.bpl.expect b/Test/og/one.bpl.expect
index a9949f2e..3de74d3e 100644
--- a/Test/og/one.bpl.expect
+++ b/Test/og/one.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 3 verified, 0 errors
+
+Boogie program verifier finished with 2 verified, 0 errors
diff --git a/Test/og/parallel1.bpl.expect b/Test/og/parallel1.bpl.expect
index 5fc0cbf6..1e0545a9 100644
--- a/Test/og/parallel1.bpl.expect
+++ b/Test/og/parallel1.bpl.expect
@@ -1,8 +1,8 @@
-parallel1.bpl(30,3): Error: Non-interference check failed
-Execution trace:
- parallel1.bpl(7,3): anon0
- parallel1.bpl(7,3): anon0$1
- parallel1.bpl(14,3): inline$Incr_1$0$this_A
- (0,0): inline$Impl_YieldChecker_PC_1$1$L0
-
-Boogie program verifier finished with 7 verified, 1 error
+parallel1.bpl(30,3): Error: Non-interference check failed
+Execution trace:
+ parallel1.bpl(7,3): anon0
+ parallel1.bpl(7,3): anon0$1
+ parallel1.bpl(14,3): inline$Incr_1$0$this_A
+ (0,0): inline$Impl_YieldChecker_PC_1$1$L0
+
+Boogie program verifier finished with 3 verified, 1 error
diff --git a/Test/og/parallel2.bpl.expect b/Test/og/parallel2.bpl.expect
index 76a9a2bf..fef5ddc0 100644
--- a/Test/og/parallel2.bpl.expect
+++ b/Test/og/parallel2.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 8 verified, 0 errors
+
+Boogie program verifier finished with 4 verified, 0 errors
diff --git a/Test/og/parallel4.bpl.expect b/Test/og/parallel4.bpl.expect
index 7c696364..771d5de9 100644
--- a/Test/og/parallel4.bpl.expect
+++ b/Test/og/parallel4.bpl.expect
@@ -1,6 +1,6 @@
-parallel4.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- (0,0): og_init
- parallel4.bpl(24,5): anon0$1
-
-Boogie program verifier finished with 5 verified, 1 error
+parallel4.bpl(26,3): Error BP5001: This assertion might not hold.
+Execution trace:
+ (0,0): og_init
+ parallel4.bpl(24,5): anon0$1
+
+Boogie program verifier finished with 2 verified, 1 error
diff --git a/Test/og/parallel5.bpl.expect b/Test/og/parallel5.bpl.expect
index 76a9a2bf..fef5ddc0 100644
--- a/Test/og/parallel5.bpl.expect
+++ b/Test/og/parallel5.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 8 verified, 0 errors
+
+Boogie program verifier finished with 4 verified, 0 errors
diff --git a/Test/og/perm.bpl.expect b/Test/og/perm.bpl.expect
index 00ddb38b..3de74d3e 100644
--- a/Test/og/perm.bpl.expect
+++ b/Test/og/perm.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 4 verified, 0 errors
+
+Boogie program verifier finished with 2 verified, 0 errors
diff --git a/Test/og/runtest.bat b/Test/og/runtest.bat
deleted file mode 100644
index 2a1d8ebb..00000000
--- a/Test/og/runtest.bat
+++ /dev/null
@@ -1,17 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-
-for %%f in (foo.bpl bar.bpl one.bpl parallel1.bpl) do (
- echo.
- echo -------------------- %%f --------------------
- %BGEXE% %* /nologo /noinfer %%f
-)
-
-for %%f in (linear-set.bpl linear-set2.bpl FlanaganQadeer.bpl parallel2.bpl parallel4.bpl parallel5.bpl akash.bpl t1.bpl new1.bpl perm.bpl DeviceCache.bpl ticket.bpl lock.bpl lock2.bpl multiset.bpl civl-paper.bpl) do (
- echo.
- echo -------------------- %%f --------------------
- %BGEXE% %* /nologo /noinfer /typeEncoding:m /useArrayTheory %%f
-)
-
diff --git a/Test/og/t1.bpl.expect b/Test/og/t1.bpl.expect
index 9f9e44b1..0fd3fde5 100644
--- a/Test/og/t1.bpl.expect
+++ b/Test/og/t1.bpl.expect
@@ -1,10 +1,10 @@
-t1.bpl(60,5): Error: Non-interference check failed
-Execution trace:
- (0,0): og_init
- t1.bpl(80,13): anon0
- t1.bpl(80,13): anon0$1
- (0,0): inline$SetG_1$0$Entry
- t1.bpl(80,13): anon0$2
- (0,0): inline$Impl_YieldChecker_A_1$1$L2
-
-Boogie program verifier finished with 5 verified, 1 error
+t1.bpl(60,5): Error: Non-interference check failed
+Execution trace:
+ (0,0): og_init
+ t1.bpl(80,13): anon0
+ t1.bpl(80,13): anon0$1
+ (0,0): inline$SetG_1$0$Entry
+ t1.bpl(80,13): anon0$2
+ (0,0): inline$Impl_YieldChecker_A_1$1$L2
+
+Boogie program verifier finished with 2 verified, 1 error
diff --git a/Test/og/ticket.bpl.expect b/Test/og/ticket.bpl.expect
index 812c54cc..bc10e4e3 100644
--- a/Test/og/ticket.bpl.expect
+++ b/Test/og/ticket.bpl.expect
@@ -1,2 +1,2 @@
-
-Boogie program verifier finished with 28 verified, 0 errors
+
+Boogie program verifier finished with 21 verified, 0 errors
diff --git a/Test/prover/Answer b/Test/prover/Answer
deleted file mode 100644
index 9d972092..00000000
--- a/Test/prover/Answer
+++ /dev/null
@@ -1,50 +0,0 @@
-==================== -z3multipleErrors ========================
-
--------------------- z3mutl.bpl --------------------
-z3mutl.bpl(22,5): Error BP5001: This assertion might not hold.
-Execution trace:
- z3mutl.bpl(7,1): start
- z3mutl.bpl(10,1): L1
- z3mutl.bpl(22,1): L5
-z3mutl.bpl(22,5): Error BP5001: This assertion might not hold.
-Execution trace:
- z3mutl.bpl(7,1): start
- z3mutl.bpl(13,1): L2
- z3mutl.bpl(22,1): L5
-z3mutl.bpl(22,5): Error BP5001: This assertion might not hold.
-Execution trace:
- z3mutl.bpl(7,1): start
- z3mutl.bpl(16,1): L3
- z3mutl.bpl(22,1): L5
-
-Boogie program verifier finished with 0 verified, 3 errors
-
--------------------- EQ_v2.Eval__v4.Eval_out.bpl --------------------
-EQ_v2.Eval__v4.Eval_out.bpl(2103,5): Error BP5003: A postcondition might not hold on this return path.
-EQ_v2.Eval__v4.Eval_out.bpl(1717,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- EQ_v2.Eval__v4.Eval_out.bpl(1788,3): AA_INSTR_EQ_BODY
- EQ_v2.Eval__v4.Eval_out.bpl(1864,3): inline$v2.Eval$0$label_11_case_2#2
- EQ_v2.Eval__v4.Eval_out.bpl(1896,3): inline$v2.Eval$0$label_12#2
- EQ_v2.Eval__v4.Eval_out.bpl(1991,3): inline$v4.Eval$0$label_11_case_2#2
- EQ_v2.Eval__v4.Eval_out.bpl(2013,3): inline$v4.Eval$0$label_14_true#2
- EQ_v2.Eval__v4.Eval_out.bpl(2083,3): inline$v4.Eval$0$label_12#2
-EQ_v2.Eval__v4.Eval_out.bpl(2103,5): Error BP5003: A postcondition might not hold on this return path.
-EQ_v2.Eval__v4.Eval_out.bpl(1717,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- EQ_v2.Eval__v4.Eval_out.bpl(1788,3): AA_INSTR_EQ_BODY
- EQ_v2.Eval__v4.Eval_out.bpl(1877,3): inline$v2.Eval$0$label_11_case_1#2
- EQ_v2.Eval__v4.Eval_out.bpl(1896,3): inline$v2.Eval$0$label_12#2
- EQ_v2.Eval__v4.Eval_out.bpl(2034,3): inline$v4.Eval$0$label_11_case_1#2
- EQ_v2.Eval__v4.Eval_out.bpl(2056,3): inline$v4.Eval$0$label_13_true#2
- EQ_v2.Eval__v4.Eval_out.bpl(2083,3): inline$v4.Eval$0$label_12#2
-EQ_v2.Eval__v4.Eval_out.bpl(2154,5): Error BP5003: A postcondition might not hold on this return path.
-EQ_v2.Eval__v4.Eval_out.bpl(2122,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- EQ_v2.Eval__v4.Eval_out.bpl(2135,3): AA_INSTR_EQ_BODY
-EQ_v2.Eval__v4.Eval_out.bpl(2194,5): Error BP5003: A postcondition might not hold on this return path.
-EQ_v2.Eval__v4.Eval_out.bpl(2169,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- EQ_v2.Eval__v4.Eval_out.bpl(2180,3): AA_INSTR_EQ_BODY
-
-Boogie program verifier finished with 6 verified, 4 errors
diff --git a/Test/prover/runtest.bat b/Test/prover/runtest.bat
deleted file mode 100644
index b9b64190..00000000
--- a/Test/prover/runtest.bat
+++ /dev/null
@@ -1,13 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-rem set BGEXE=mono ..\..\Binaries\Boogie.exe
-
-echo ==================== -z3multipleErrors ========================
-for %%f in (z3mutl.bpl EQ_v2.Eval__v4.Eval_out.bpl) do (
- echo.
- echo -------------------- %%f --------------------
- %BGEXE% -typeEncoding:m -z3multipleErrors %* %%f
-)
-
diff --git a/Test/runtest.bat b/Test/runtest.bat
deleted file mode 100755
index 5b3d45ae..00000000
--- a/Test/runtest.bat
+++ /dev/null
@@ -1,39 +0,0 @@
-@echo off
-rem Usage: runtest.bat <dir>
-if "%1" == "" goto noDirSpecified
-if not exist %1\nul goto noDirExists
-echo ----- Running regression test %1
-pushd %1
-if not exist runtest.bat goto noRunTest
-call runtest.bat -nologo -logPrefix:%* > Output
-rem There seem to be some race between finishing writing to the Output file, and running fc.
-rem Calling fc twice seems to fix (or at least alleviate) the problem.
-fc /W Answer Output > nul
-fc /W Answer Output > nul
-if not errorlevel 1 goto passTest
-echo %1 FAILED
-goto errorEnd
-
-:passTest
-echo %1 Succeeded
-goto end
-
-:noDirSpecified
-echo runtest: Error: Syntax: runtest testDirectory [ additionalTestArguments ... ]
-goto errorEnd
-
-:noDirExists
-echo runtest: Error: There is no test directory %1
-goto errorEnd
-
-:noRunTest
-echo runtest: Error: no runtest.bat found in test directory %1
-goto errorEnd
-
-:errorEnd
-popd
-exit /b 1
-
-:end
-popd
-exit /b 0
diff --git a/Test/runtestall.bat b/Test/runtestall.bat
deleted file mode 100644
index 207bb030..00000000
--- a/Test/runtestall.bat
+++ /dev/null
@@ -1,24 +0,0 @@
-@echo off
-setlocal
-
-set errors=0
-
-if "%1" == "short" goto UseShort
-
-set IncludeLong=True
-goto Loop
-
-:UseShort
-set IncludeLong=False
-shift
-goto Loop
-
-:Loop
-for /F "eol=; tokens=1,2,3*" %%i in (alltests.txt) do if %%j==Use call runtest.bat %%i %1 %2 %3 %4 %5 %6 %7 %8 %9 || set errors=1
-
-if not %IncludeLong%==True goto End
-
-for /F "eol=; tokens=1,2,3*" %%i in (alltests.txt) do if %%j==Long call runtest.bat %%i %1 %2 %3 %4 %5 %6 %7 %8 %9 || set errors=1
-
-:End
-exit /b %errors% \ No newline at end of file
diff --git a/Test/sanity/Answer b/Test/sanity/Answer
deleted file mode 100644
index 6abb715b..00000000
--- a/Test/sanity/Answer
+++ /dev/null
@@ -1,2 +0,0 @@
-
-Boogie program verifier finished with 1 verified, 0 errors
diff --git a/Test/sanity/lit.local.cfg b/Test/sanity/lit.local.cfg
deleted file mode 100644
index 462e3dc5..00000000
--- a/Test/sanity/lit.local.cfg
+++ /dev/null
@@ -1 +0,0 @@
-config.unsupported = True
diff --git a/Test/sanity/runtest.bat b/Test/sanity/runtest.bat
deleted file mode 100644
index 3568bf3f..00000000
--- a/Test/sanity/runtest.bat
+++ /dev/null
@@ -1,7 +0,0 @@
-@echo off
-setlocal
-
-set BOOGIEDIR=..\..\Binaries
-set BGEXE=%BOOGIEDIR%\Boogie.exe
-
-%BGEXE% %* ..\textbook\bubble.bpl
diff --git a/Test/smoke/Answer b/Test/smoke/Answer
deleted file mode 100644
index e2390446..00000000
--- a/Test/smoke/Answer
+++ /dev/null
@@ -1,23 +0,0 @@
--------------------- smoke0.bpl --------------------
-found unreachable code:
-implementation b(x: int)
-{
- var y: int;
-
-
- 0:
- goto anon0;
-
- anon0:
- goto anon3_Then;
-
- anon3_Then:
- assume {:partition} x < 0;
- y := 1;
- assert false;
- return;
-}
-
-
-
-Boogie program verifier finished with 4 verified, 0 errors
diff --git a/Test/smoke/runtest.bat b/Test/smoke/runtest.bat
deleted file mode 100644
index 7728d5ef..00000000
--- a/Test/smoke/runtest.bat
+++ /dev/null
@@ -1,11 +0,0 @@
-@echo off
-setlocal
-
-set BOOGIEDIR=..\..\Binaries
-set BGEXE=%BOOGIEDIR%\Boogie.exe
-
-for %%f in (smoke0.bpl) do (
- echo -------------------- %%f --------------------
- %BGEXE% /smoke %* %%f
-)
-
diff --git a/Test/snapshots/Answer b/Test/snapshots/Answer
deleted file mode 100644
index 0ba6f920..00000000
--- a/Test/snapshots/Answer
+++ /dev/null
@@ -1,92 +0,0 @@
-Snapshots0.v0.bpl(41,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Snapshots0.v0.bpl(41,5): anon0
-Snapshots0.v0.bpl(8,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Snapshots0.v0.bpl(8,5): anon0
-Snapshots0.v0.bpl(19,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Snapshots0.v0.bpl(19,5): anon0
-Snapshots0.v0.bpl(30,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Snapshots0.v0.bpl(30,5): anon0
-
-Boogie program verifier finished with 0 verified, 4 errors
-Snapshots0.v0.bpl(41,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Snapshots0.v0.bpl(41,5): anon0
-Snapshots0.v1.bpl(30,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Snapshots0.v1.bpl(30,5): anon0
-
-Boogie program verifier finished with 2 verified, 2 errors
-Snapshots0.v0.bpl(41,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Snapshots0.v0.bpl(41,5): anon0
-
-Boogie program verifier finished with 2 verified, 1 error
-Snapshots1.v0.bpl(13,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Snapshots1.v0.bpl(13,5): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
-Snapshots1.v1.bpl(13,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Snapshots1.v1.bpl(13,5): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
-Snapshots1.v2.bpl(5,5): Error BP5002: A precondition for this call might not hold.
-Snapshots1.v2.bpl(10,3): Related location: This is the precondition that might not hold.
-Execution trace:
- Snapshots1.v2.bpl(5,5): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
-Snapshots3.v1.bpl(6,1): Error BP5003: A postcondition might not hold on this return path.
-Snapshots3.v1.bpl(2,1): Related location: This is the postcondition that might not hold.
-Execution trace:
- Snapshots3.v1.bpl(6,1): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
-Boogie program verifier finished with 3 verified, 0 errors
-Snapshots4.v1.bpl(23,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Snapshots4.v1.bpl(23,5): anon0
-Snapshots4.v1.bpl(33,1): Error BP5003: A postcondition might not hold on this return path.
-Snapshots4.v1.bpl(28,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Snapshots4.v1.bpl(33,1): anon0
-
-Boogie program verifier finished with 2 verified, 2 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
-Snapshots5.v1.bpl(5,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Snapshots5.v1.bpl(5,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
-Boogie program verifier finished with 1 verified, 0 errors
-Snapshots6.v1.bpl(13,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Snapshots6.v1.bpl(9,7): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-Boogie program verifier finished with 1 verified, 0 errors
diff --git a/Test/snapshots/Snapshots6.v0.bpl b/Test/snapshots/Snapshots6.v0.bpl
index 157fc45b..bdf9c14a 100644
--- a/Test/snapshots/Snapshots6.v0.bpl
+++ b/Test/snapshots/Snapshots6.v0.bpl
@@ -4,7 +4,7 @@ var y: int;
procedure {:checksum "0"} M();
modifies x, y;
-implementation {:checksum "1"} M()
+implementation {:id "M"} {:checksum "1"} M()
{
y := 0;
diff --git a/Test/snapshots/Snapshots6.v1.bpl b/Test/snapshots/Snapshots6.v1.bpl
index eb139546..be8b699d 100644
--- a/Test/snapshots/Snapshots6.v1.bpl
+++ b/Test/snapshots/Snapshots6.v1.bpl
@@ -4,7 +4,7 @@ var y: int;
procedure {:checksum "0"} M();
modifies x, y;
-implementation {:checksum "1"} M()
+implementation {:id "M"} {:checksum "1"} M()
{
y := 0;
@@ -14,4 +14,5 @@ implementation {:checksum "1"} M()
}
procedure {:checksum "3"} N();
+ // Change: more modified variables
modifies x, y;
diff --git a/Test/snapshots/Snapshots7.v0.bpl b/Test/snapshots/Snapshots7.v0.bpl
index 6b99de1b..6e0932c8 100644
--- a/Test/snapshots/Snapshots7.v0.bpl
+++ b/Test/snapshots/Snapshots7.v0.bpl
@@ -5,7 +5,7 @@ var z: int;
procedure {:checksum "0"} M();
modifies x, y, z;
-implementation {:checksum "1"} M()
+implementation {:id "M"} {:checksum "1"} M()
{
z := 0;
diff --git a/Test/snapshots/Snapshots7.v1.bpl b/Test/snapshots/Snapshots7.v1.bpl
index bba0978b..8700e91c 100644
--- a/Test/snapshots/Snapshots7.v1.bpl
+++ b/Test/snapshots/Snapshots7.v1.bpl
@@ -5,7 +5,7 @@ var z: int;
procedure {:checksum "0"} M();
modifies x, y, z;
-implementation {:checksum "1"} M()
+implementation {:id "M"} {:checksum "1"} M()
{
z := 0;
@@ -15,5 +15,6 @@ implementation {:checksum "1"} M()
}
procedure {:checksum "3"} N();
+ // Change: fewer modified variables
modifies x;
ensures y < z;
diff --git a/Test/snapshots/Snapshots8.v0.bpl b/Test/snapshots/Snapshots8.v0.bpl
new file mode 100644
index 00000000..73dcd9aa
--- /dev/null
+++ b/Test/snapshots/Snapshots8.v0.bpl
@@ -0,0 +1,15 @@
+procedure {:checksum "0"} M(n: int);
+ requires 0 < n;
+
+implementation {:id "M"} {:checksum "1"} M(n: int)
+{
+ var x: int;
+
+ call x := N(n);
+
+ assert 0 <= x;
+}
+
+procedure {:checksum "2"} N(n: int) returns (r: int);
+ requires 0 < n;
+ ensures 0 < r;
diff --git a/Test/snapshots/Snapshots8.v1.bpl b/Test/snapshots/Snapshots8.v1.bpl
new file mode 100644
index 00000000..de241c24
--- /dev/null
+++ b/Test/snapshots/Snapshots8.v1.bpl
@@ -0,0 +1,16 @@
+procedure {:checksum "0"} M(n: int);
+ requires 0 < n;
+
+implementation {:id "M"} {:checksum "1"} M(n: int)
+{
+ var x: int;
+
+ call x := N(n);
+
+ assert 0 <= x;
+}
+
+procedure {:checksum "3"} N(n: int) returns (r: int);
+ requires 0 < n;
+ // Change: stronger postcondition
+ ensures 42 < r;
diff --git a/Test/snapshots/Snapshots9.v0.bpl b/Test/snapshots/Snapshots9.v0.bpl
new file mode 100644
index 00000000..73dcd9aa
--- /dev/null
+++ b/Test/snapshots/Snapshots9.v0.bpl
@@ -0,0 +1,15 @@
+procedure {:checksum "0"} M(n: int);
+ requires 0 < n;
+
+implementation {:id "M"} {:checksum "1"} M(n: int)
+{
+ var x: int;
+
+ call x := N(n);
+
+ assert 0 <= x;
+}
+
+procedure {:checksum "2"} N(n: int) returns (r: int);
+ requires 0 < n;
+ ensures 0 < r;
diff --git a/Test/snapshots/Snapshots9.v1.bpl b/Test/snapshots/Snapshots9.v1.bpl
new file mode 100644
index 00000000..d1886a6d
--- /dev/null
+++ b/Test/snapshots/Snapshots9.v1.bpl
@@ -0,0 +1,16 @@
+procedure {:checksum "0"} M(n: int);
+ requires 0 < n;
+
+implementation {:id "M"} {:checksum "1"} M(n: int)
+{
+ var x: int;
+
+ call x := N(n);
+
+ assert 0 <= x;
+}
+
+procedure {:checksum "3"} N(n: int) returns (r: int);
+ requires 0 < n;
+ // Change: weaker postcondition
+ ensures 0 <= r;
diff --git a/Test/snapshots/runtest.bat b/Test/snapshots/runtest.bat
deleted file mode 100644
index 7821e39c..00000000
--- a/Test/snapshots/runtest.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@echo off
-setlocal
-
-set BOOGIEDIR=..\..\Binaries
-set BGEXE=%BOOGIEDIR%\Boogie.exe
-
-%BGEXE% %* /verifySnapshots /verifySeparately Snapshots0.bpl Snapshots1.bpl Snapshots2.bpl Snapshots3.bpl Snapshots4.bpl Snapshots5.bpl Snapshots6.bpl Snapshots7.bpl
-
diff --git a/Test/snapshots/runtest.snapshot b/Test/snapshots/runtest.snapshot
index 0a4ef6d9..f67e6be7 100644
--- a/Test/snapshots/runtest.snapshot
+++ b/Test/snapshots/runtest.snapshot
@@ -1,2 +1,2 @@
-// RUN: %boogie -verifySnapshots -verifySeparately Snapshots0.bpl Snapshots1.bpl Snapshots2.bpl Snapshots3.bpl Snapshots4.bpl Snapshots5.bpl Snapshots6.bpl Snapshots7.bpl > "%t"
+// RUN: %boogie -verifySnapshots -verifySeparately Snapshots0.bpl Snapshots1.bpl Snapshots2.bpl Snapshots3.bpl Snapshots4.bpl Snapshots5.bpl Snapshots6.bpl Snapshots7.bpl Snapshots8.bpl Snapshots9.bpl > "%t"
// RUN: %diff "%s.expect" "%t"
diff --git a/Test/snapshots/runtest.snapshot.expect b/Test/snapshots/runtest.snapshot.expect
index 0ba6f920..c0a171c4 100644
--- a/Test/snapshots/runtest.snapshot.expect
+++ b/Test/snapshots/runtest.snapshot.expect
@@ -90,3 +90,11 @@ Boogie program verifier finished with 0 verified, 1 error
Boogie program verifier finished with 1 verified, 0 errors
Boogie program verifier finished with 1 verified, 0 errors
+
+Boogie program verifier finished with 1 verified, 0 errors
+
+Boogie program verifier finished with 1 verified, 0 errors
+
+Boogie program verifier finished with 1 verified, 0 errors
+
+Boogie program verifier finished with 1 verified, 0 errors
diff --git a/Test/stratifiedinline/Answer b/Test/stratifiedinline/Answer
deleted file mode 100644
index 2a3d7605..00000000
--- a/Test/stratifiedinline/Answer
+++ /dev/null
@@ -1,519 +0,0 @@
------ Running regression test bar1.bpl
-(0,0): Error BP5001: This assertion might not hold.
-Execution trace:
- bar1.bpl(24,3): anon0
- Inlined call to procedure foo begins
- bar1.bpl(15,5): anon0
- Inlined call to procedure bar begins
- bar1.bpl(9,5): anon0
- Inlined call to procedure bar ends
- Inlined call to procedure bar begins
- bar1.bpl(9,5): anon0
- Inlined call to procedure bar ends
- Inlined call to procedure foo ends
-
-Boogie program verifier finished with 0 verified, 1 error
------
------ Running regression test bar2.bpl
-(0,0): Error BP5001: This assertion might not hold.
-Execution trace:
- bar2.bpl(20,3): anon0
- Inlined call to procedure foo begins
- bar2.bpl(6,3): anon0
- bar2.bpl(7,7): anon3_Then
- Inlined call to procedure foo ends
- Inlined call to procedure foo begins
- bar2.bpl(6,3): anon0
- bar2.bpl(10,7): anon3_Else
- Inlined call to procedure foo ends
-
-Boogie program verifier finished with 0 verified, 1 error
------
------ Running regression test bar3.bpl
-(0,0): Error BP5001: This assertion might not hold.
-Execution trace:
- bar3.bpl(37,3): anon0
- Inlined call to procedure foo begins
- bar3.bpl(20,3): anon0
- bar3.bpl(21,7): anon3_Then
- Inlined call to procedure bar begins
- bar3.bpl(9,3): anon0
- bar3.bpl(10,7): anon3_Then
- Inlined call to procedure bar ends
- Inlined call to procedure bar begins
- bar3.bpl(9,3): anon0
- bar3.bpl(10,7): anon3_Then
- Inlined call to procedure bar ends
- Inlined call to procedure foo ends
- Inlined call to procedure bar begins
- bar3.bpl(9,3): anon0
- bar3.bpl(12,7): anon3_Else
- Inlined call to procedure bar ends
-
-Boogie program verifier finished with 0 verified, 1 error
------
------ Running regression test bar4.bpl
-
-Boogie program verifier finished with 1 verified, 0 errors
------
------ Running regression test bar6.bpl
-
-Boogie program verifier finished with 1 verified, 0 errors
------
------ Running regression test bar7.bpl
-(0,0): Error BP5001: This assertion might not hold.
-Execution trace:
- bar7.bpl(37,5): anon0
- bar7.bpl(39,5): anon4_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar7.bpl(9,3): anon0
- bar7.bpl(9,3): anon2_Else
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- bar7.bpl(44,3): anon3
-
-Boogie program verifier finished with 0 verified, 1 error
------
------ Running regression test bar8.bpl
-(0,0): Error BP5001: This assertion might not hold.
-Execution trace:
- bar8.bpl(36,5): anon0
- bar8.bpl(38,5): anon4_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar8.bpl(9,3): anon0
- bar8.bpl(9,3): anon2_Else
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- bar8.bpl(43,3): anon3
-
-Boogie program verifier finished with 0 verified, 1 error
------
------ Running regression test bar9.bpl
-(0,0): Error BP5001: This assertion might not hold.
-Execution trace:
- bar9.bpl(37,5): anon0
- bar9.bpl(43,5): anon4_Else
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(20,7): anon2_Then
- Inlined call to procedure bar1 begins
- bar9.bpl(18,3): anon0
- bar9.bpl(18,3): anon2_Else
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar2 begins
- bar9.bpl(28,3): anon0
- bar9.bpl(29,7): anon2_Then
- Inlined call to procedure bar2 begins
- bar9.bpl(28,3): anon0
- bar9.bpl(29,7): anon2_Then
- Inlined call to procedure bar2 begins
- bar9.bpl(28,3): anon0
- bar9.bpl(29,7): anon2_Then
- Inlined call to procedure bar2 begins
- bar9.bpl(28,3): anon0
- bar9.bpl(29,7): anon2_Then
- Inlined call to procedure bar2 begins
- bar9.bpl(28,3): anon0
- bar9.bpl(29,7): anon2_Then
- Inlined call to procedure bar2 begins
- bar9.bpl(28,3): anon0
- bar9.bpl(29,7): anon2_Then
- Inlined call to procedure bar2 begins
- bar9.bpl(28,3): anon0
- bar9.bpl(29,7): anon2_Then
- Inlined call to procedure bar2 begins
- bar9.bpl(28,3): anon0
- bar9.bpl(29,7): anon2_Then
- Inlined call to procedure bar2 begins
- bar9.bpl(28,3): anon0
- bar9.bpl(29,7): anon2_Then
- Inlined call to procedure bar2 begins
- bar9.bpl(28,3): anon0
- bar9.bpl(29,7): anon2_Then
- Inlined call to procedure bar2 begins
- bar9.bpl(28,3): anon0
- bar9.bpl(28,3): anon2_Else
- Inlined call to procedure bar2 ends
- Inlined call to procedure bar2 ends
- Inlined call to procedure bar2 ends
- Inlined call to procedure bar2 ends
- Inlined call to procedure bar2 ends
- Inlined call to procedure bar2 ends
- Inlined call to procedure bar2 ends
- Inlined call to procedure bar2 ends
- Inlined call to procedure bar2 ends
- Inlined call to procedure bar2 ends
- Inlined call to procedure bar2 ends
- bar9.bpl(46,3): anon3
-
-Boogie program verifier finished with 0 verified, 1 error
------
------ Running regression test bar10.bpl
-(0,0): Error BP5001: This assertion might not hold.
-Execution trace:
- bar10.bpl(37,5): anon0
- Inlined call to procedure bar1 begins
- bar10.bpl(18,3): anon0
- bar10.bpl(18,3): anon2_Else
- Inlined call to procedure bar1 ends
- Inlined call to procedure bar2 begins
- bar10.bpl(28,3): anon0
- bar10.bpl(28,3): anon2_Else
- Inlined call to procedure bar2 ends
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(10,9): anon2_Then
- Inlined call to procedure foo begins
- bar10.bpl(9,3): anon0
- bar10.bpl(9,3): anon2_Else
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
- Inlined call to procedure foo ends
-
-Boogie program verifier finished with 0 verified, 1 error
------
------ Running regression test bar11.bpl
-(0,0): Error BP5001: This assertion might not hold.
-Execution trace:
- bar11.bpl(28,3): anon0
- Inlined call to procedure foo begins
- bar11.bpl(17,3): anon0
- value = 0
- Inlined call to procedure bar begins
- bar11.bpl(10,5): anon0
- value = 1
- Inlined call to procedure bar ends
- Inlined call to procedure bar begins
- bar11.bpl(10,5): anon0
- value = 2
- Inlined call to procedure bar ends
- value = 2
- Inlined call to procedure foo ends
-
-Boogie program verifier finished with 0 verified, 1 error
------
------ Running regression test bar12.bpl
-(0,0): Error BP5001: This assertion might not hold.
-Execution trace:
- bar12.bpl(8,4): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
------
------ Running regression test bar13.bpl
-
-Boogie program verifier finished with 1 verified, 0 errors
------
------ Running regression test large.bpl to test for StackOverflowException
-
-Boogie program verifier finished with 1 verified, 0 errors
------
diff --git a/Test/stratifiedinline/runtest.bat b/Test/stratifiedinline/runtest.bat
deleted file mode 100644
index 5e0ab83f..00000000
--- a/Test/stratifiedinline/runtest.bat
+++ /dev/null
@@ -1,46 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-rem set BGEXE=mono ..\..\Binaries\Boogie.exe
-
-echo ----- Running regression test bar1.bpl
-%BGEXE% %* /stratifiedInline:1 /vc:i bar1.bpl
-echo -----
-echo ----- Running regression test bar2.bpl
-%BGEXE% %* /stratifiedInline:1 /vc:i bar2.bpl
-echo -----
-echo ----- Running regression test bar3.bpl
-%BGEXE% %* /stratifiedInline:1 /vc:i bar3.bpl
-echo -----
-echo ----- Running regression test bar4.bpl
-%BGEXE% %* /stratifiedInline:1 /vc:i bar4.bpl
-echo -----
-echo ----- Running regression test bar6.bpl
-%BGEXE% %* /stratifiedInline:1 /vc:i bar6.bpl
-echo -----
-echo ----- Running regression test bar7.bpl
-%BGEXE% %* /stratifiedInline:1 /vc:i /nonUniformUnfolding bar7.bpl
-echo -----
-echo ----- Running regression test bar8.bpl
-%BGEXE% %* /stratifiedInline:1 /vc:i /nonUniformUnfolding bar8.bpl
-echo -----
-echo ----- Running regression test bar9.bpl
-%BGEXE% %* /stratifiedInline:1 /vc:i /nonUniformUnfolding bar9.bpl
-echo -----
-echo ----- Running regression test bar10.bpl
-%BGEXE% %* /stratifiedInline:1 /vc:i /nonUniformUnfolding bar10.bpl
-echo -----
-echo ----- Running regression test bar11.bpl
-%BGEXE% %* /stratifiedInline:1 /vc:i bar11.bpl
-echo -----
-echo ----- Running regression test bar12.bpl
-%BGEXE% %* /stratifiedInline:1 /vc:i bar12.bpl
-echo -----
-echo ----- Running regression test bar13.bpl
-%BGEXE% %* /stratifiedInline:1 /vc:i bar13.bpl
-echo -----
-echo ----- Running regression test large.bpl to test for StackOverflowException
-%BGEXE% %* /stratifiedInline:1 /vc:i large.bpl
-echo -----
-
diff --git a/Test/symdiff/Answer b/Test/symdiff/Answer
deleted file mode 100644
index 322dacfd..00000000
--- a/Test/symdiff/Answer
+++ /dev/null
@@ -1,5 +0,0 @@
-foo.bpl(17,3): Error BP5001: This assertion might not hold.
-foo.bpl(17,3): Error BP5001: This assertion might not hold.
-foo.bpl(17,3): Error BP5001: This assertion might not hold.
-
-Boogie program verifier finished with 0 verified, 3 errors
diff --git a/Test/symdiff/runtest.bat b/Test/symdiff/runtest.bat
deleted file mode 100644
index 1596661c..00000000
--- a/Test/symdiff/runtest.bat
+++ /dev/null
@@ -1,9 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-rem set BGEXE=mono ..\..\Binaries\Boogie.exe
-
-%BGEXE% %* /z3multipleErrors /errorTrace:0 foo.bpl
-
-
diff --git a/Test/test0/Answer b/Test/test0/Answer
deleted file mode 100644
index 06f85659..00000000
--- a/Test/test0/Answer
+++ /dev/null
@@ -1,305 +0,0 @@
-
-Boogie program verifier finished with 0 verified, 0 errors
-
-Boogie program verifier finished with 0 verified, 0 errors
-Triggers0.bpl(16,31): error: the 'nopats' quantifier attribute expects a string-literal parameter
-1 parse errors detected in Triggers0.bpl
-Triggers1.bpl(9,17): Error: boolean operators are not allowed in triggers
-Triggers1.bpl(13,21): Error: boolean operators are not allowed in triggers
-Triggers1.bpl(17,9): Error: boolean operators are not allowed in triggers
-Triggers1.bpl(21,10): Error: boolean operators are not allowed in triggers
-Triggers1.bpl(25,17): Error: boolean operators are not allowed in triggers
-Triggers1.bpl(29,17): Error: boolean operators are not allowed in triggers
-Triggers1.bpl(34,17): Error: equality is not allowed in triggers
-Triggers1.bpl(38,17): Error: arithmetic comparisons are not allowed in triggers
-Triggers1.bpl(47,10): Error: quantifiers are not allowed in triggers
-Triggers1.bpl(55,7): Error: trigger must mention all quantified variables, but does not mention: x
-Triggers1.bpl(63,7): Error: trigger must mention all quantified variables, but does not mention: y
-Triggers1.bpl(64,7): Error: trigger must mention all quantified variables, but does not mention: x
-Triggers1.bpl(72,9): Error: a matching pattern must be more than just a variable by itself: x
-Triggers1.bpl(84,7): Error: trigger must mention all quantified variables, but does not mention: z
-Triggers1.bpl(96,16): Error: a matching pattern must be more than just a variable by itself: x
-Triggers1.bpl(97,16): Error: a matching pattern must be more than just a variable by itself: g
-Triggers1.bpl(107,40): Error: trigger must mention all quantified variables, but does not mention: y
-Triggers1.bpl(111,57): Error: trigger must mention all quantified variables, but does not mention: z
-Triggers1.bpl(121,33): Error: cannot refer to a global variable in this context: h1
-Triggers1.bpl(122,33): Error: cannot refer to a global variable in this context: h0
-20 name resolution errors detected in Triggers1.bpl
-const x: int;
-
-const y: int;
-
-const z: int;
-
-const r: real;
-
-const s: real;
-
-const t: real;
-
-const P: bool;
-
-const Q: bool;
-
-const R: bool;
-
-axiom x * (y + z) == x + y * z;
-
-axiom x * y + z == (x + y) * z;
-
-axiom x * y * z == x * y * z;
-
-axiom x * y * z * x == x * y * z;
-
-axiom x div y div z == x div (y div z);
-
-axiom x div y div (z div x) == x div y div z;
-
-axiom x + y mod z == y mod z + x;
-
-axiom (x + y) mod z == x mod z + y mod z;
-
-axiom x / y / z == x / (y / z);
-
-axiom x / y / (z / x) == x / y / z;
-
-axiom x / s / z == x / (s / z);
-
-axiom x / s / (z / x) == x / s / z;
-
-axiom r / s / t == r / (s / t);
-
-axiom r / s / (t / r) == r / s / t;
-
-axiom r * s / t == r * s / t;
-
-axiom r / s * t == r / s * t;
-
-axiom (r * s) ** t == r ** t * s ** t;
-
-axiom r ** (s + t) == r ** s * r ** t;
-
-axiom int(real(x)) == x;
-
-axiom r >= 0e0 ==> real(int(r)) <= r;
-
-axiom int(0e0 - 2e-2) == 0;
-
-axiom int(0e0 - 35e0) == -35;
-
-axiom int(27e-1) == 2;
-
-axiom x - y - z == x - (y - z);
-
-axiom x - y - (z - x) == x - y - z;
-
-axiom x + y - z - x + y == 0;
-
-axiom x + y - z - x + y == x + y - (z - (x + y));
-
-axiom P ==> Q ==> R <==> P ==> Q ==> R;
-
-axiom (P ==> Q) ==> R ==> P <==> (P ==> Q) ==> R;
-
-axiom P <==> Q <==> R;
-
-axiom P ==> Q <==> Q ==> R <==> R ==> P;
-
-axiom (P && Q) || (Q && R);
-
-axiom (P || Q) && (Q || R);
-
-axiom P || Q || Q || R;
-
-axiom P && Q && Q && R;
-
-function f(int) : int;
-
-axiom (forall x: int :: {:xname "hello"} {:weight 5} {:ValueFunc f(x + 1)} { f(x + x) } { f(x) * f(x) } {:nopats f(x + x + x) } f(f(x)) < 200);
-
-Boogie program verifier finished with 0 verified, 0 errors
-
-Boogie program verifier finished with 0 verified, 0 errors
-Arrays1.bpl(14,11): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: Q
-Arrays1.bpl(18,15): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: Q
-2 type checking errors detected in Arrays1.bpl
-Types0.bpl(8,18): error: expected identifier before ':'
-Types0.bpl(8,12): error: expecting an identifier as parameter name
-2 parse errors detected in Types0.bpl
-Types1.bpl(8,11): Error: undeclared type: x
-Types1.bpl(9,11): Error: undeclared type: x
-Types1.bpl(9,14): Error: undeclared type: x
-3 name resolution errors detected in Types1.bpl
-WhereParsing.bpl(16,37): error: where clause not allowed on the 'implementation' copies of formals
-WhereParsing.bpl(17,33): error: where clause not allowed on the 'implementation' copies of formals
-WhereParsing.bpl(34,38): error: attributes are not allowed on the 'implementation' copies of formals
-3 parse errors detected in WhereParsing.bpl
-WhereParsing0.bpl(19,38): error: where clause not allowed on bound variables
-WhereParsing0.bpl(20,38): error: where clause not allowed on bound variables
-2 parse errors detected in WhereParsing0.bpl
-WhereParsing1.bpl(16,27): error: ")" expected
-1 parse errors detected in WhereParsing1.bpl
-WhereParsing2.bpl(3,14): error: ";" expected
-1 parse errors detected in WhereParsing2.bpl
-WhereResolution.bpl(30,38): Error: undeclared identifier: alpha
-WhereResolution.bpl(34,30): Error: old expressions allowed only in two-state contexts
-2 name resolution errors detected in WhereResolution.bpl
-BadLabels0.bpl(6,2): Error: more than one declaration of block name: X
-BadLabels0.bpl(13,4): Error: more than one declaration of block name: Y
-2 name resolution errors detected in BadLabels0.bpl
-BadLabels1.bpl(6,3): error: Error: goto label 'X' is undefined
-BadLabels1.bpl(7,3): error: Error: goto label 'Y' is undefined
-BadLabels1.bpl(49,3): error: Error: break statement is not inside a loop
-BadLabels1.bpl(51,5): error: Error: break statement is not inside a loop
-BadLabels1.bpl(62,5): error: Error: break label 'B' must designate an enclosing statement
-BadLabels1.bpl(65,5): error: Error: break label 'A' must designate an enclosing statement
-BadLabels1.bpl(66,5): error: Error: break label 'C' must designate an enclosing statement
-BadLabels1.bpl(67,8): error: Error: break label 'F' must designate an enclosing statement
-8 parse errors detected in BadLabels1.bpl
-LineParse.bpl(3,0): error: Malformed (#line num [filename]) pragma: #line
-LineParse.bpl(4,0): error: Malformed (#line num [filename]) pragma: #line
-LineParse.bpl(1,0): error: Unrecognized pragma: #dontknow what this is No, I don't well, it's an error is what it is
-LineParse.bpl(3,0): error: Unrecognized pragma: #define ASSERT(x) {if (!(x)) { crash(); }} // error: A B C . txt(12,0)
-LineParse.bpl(6,2): error: EOF expected
-5 parse errors detected in LineParse.bpl
-LineResolve.bpl(7,1): Error: undeclared identifier: a
-LineResolve.bpl(9,2): Error: undeclared identifier: b
-LineResolve.bpl(12,0): Error: undeclared identifier: c
-LineResolve.bpl(13,10): Error: undeclared identifier: d
-LineResolve.bpl(12,0): Error: undeclared identifier: e
-LineResolve.bpl(2,0): Error: undeclared identifier: f
-LineResolve.bpl(900,0): Error: undeclared identifier: g
-Abc.txt(11,3): Error: undeclared identifier: h
-Abc.txt(13,0): Error: undeclared identifier: i
-Abc.txt(99,0): Error: undeclared identifier: j
-c:\Users\leino\Documents\Programs\MyClass.ssc(104,0): Error: undeclared identifier: k
-A B C . txt(12,0): Error: undeclared identifier: l
-12 name resolution errors detected in LineResolve.bpl
-AttributeParsingErr.bpl(3,33): error: only attributes, not triggers, allowed here
-AttributeParsingErr.bpl(5,33): error: only attributes, not triggers, allowed here
-AttributeParsingErr.bpl(7,52): error: only attributes, not triggers, allowed here
-AttributeParsingErr.bpl(9,37): error: only attributes, not triggers, allowed here
-AttributeParsingErr.bpl(11,31): error: only attributes, not triggers, allowed here
-AttributeParsingErr.bpl(13,29): error: only attributes, not triggers, allowed here
-AttributeParsingErr.bpl(15,13): error: only attributes, not triggers, allowed here
-AttributeParsingErr.bpl(17,18): error: only attributes, not triggers, allowed here
-AttributeParsingErr.bpl(22,26): error: only attributes, not triggers, allowed here
-9 parse errors detected in AttributeParsingErr.bpl
-
-type {:sourcefile "test.ssc"} T;
-
-function {:source "test.scc"} f(int) : int;
-
-const {:description "The largest integer value"} unique MAXINT: int;
-
-axiom {:naming "MyFavoriteAxiom"} (forall i: int :: { f(i) } f(i) == i + 1);
-
-var {:description "memory"} $Heap: [ref,name]any;
-
-var {:sort_of_like_a_trigger (forall i: int :: true)} Bla: [ref,name]any;
-
-procedure {:use_impl 1} foo(x: int) returns (n: int);
-
-
-
-implementation {:id 1} foo(x: int) returns (n: int)
-{
- block1:
- return;
-}
-
-
-
-implementation {:id 2} foo(x: int) returns (n: int)
-{
- block1:
- return;
-}
-
-
-
-type ref;
-
-type any;
-
-type name;
-
-procedure {:myAttribute "h\n\"ello\"", "again", "and\\" a\"gain\"", again} P();
-
-
-
-const again: int;
-
-Boogie program verifier finished with 0 verified, 0 errors
-AttributeResolution.bpl(3,18): Error: undeclared identifier: foo
-AttributeResolution.bpl(5,18): Error: undeclared identifier: bar
-AttributeResolution.bpl(9,15): Error: undeclared identifier: qux
-AttributeResolution.bpl(9,41): Error: undeclared identifier: ij
-AttributeResolution.bpl(15,21): Error: undeclared identifier: bzzt
-AttributeResolution.bpl(17,20): Error: undeclared identifier: blt
-AttributeResolution.bpl(7,20): Error: undeclared identifier: baz
-AttributeResolution.bpl(11,18): Error: undeclared identifier: mux
-AttributeResolution.bpl(13,29): Error: undeclared identifier: fux
-9 name resolution errors detected in AttributeResolution.bpl
-
-function \true() : bool;
-
-type \procedure;
-
-procedure \old(any: \procedure) returns (\var: \procedure);
-
-
-
-implementation \old(any: \procedure) returns (\var: \procedure)
-{
- var \modifies: \procedure;
-
- \modifies := any;
- \var := \modifies;
-}
-
-
-
-procedure qux(a: \procedure);
-
-
-
-implementation qux(a: \procedure)
-{
- var \var: \procedure;
- var x: bool;
-
- call \var := \old(a);
- x := \true();
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
-
-Boogie program verifier finished with 0 verified, 0 errors
-MapsResolutionErrors.bpl(8,9): Error: type variable must occur in map arguments: b
-MapsResolutionErrors.bpl(22,10): Error: type variable must occur in procedure arguments: a
-2 name resolution errors detected in MapsResolutionErrors.bpl
-Orderings.bpl(14,20): Error: undeclared identifier: x
-Orderings.bpl(17,23): Error: c0 occurs more than once as parent
-Orderings.bpl(18,19): Error: constant cannot be its own parent
-Orderings.bpl(20,20): Error: the parent of a constant has to be a constant
-4 name resolution errors detected in Orderings.bpl
-BadQuantifier.bpl(5,15): error: invalid QuantifierBody
-1 parse errors detected in BadQuantifier.bpl
-
-Boogie program verifier finished with 0 verified, 0 errors
------ SeparateVerification0.bpl
-SeparateVerification0.bpl(19,6): Error: undeclared identifier: y
-1 name resolution errors detected in SeparateVerification0.bpl
------ SeparateVerification1.bpl SeparateVerification0.bpl
-SeparateVerification1.bpl(6,6): Error: undeclared identifier: x
-SeparateVerification0.bpl(16,6): Error: undeclared identifier: x
-2 name resolution errors detected in SeparateVerification0.bpl
------ SeparateVerification0.bpl SeparateVerification0.bpl
-
-Boogie program verifier finished with 0 verified, 0 errors
------ SeparateVerification0.bpl SeparateVerification0.bpl SeparateVerification1.bpl
-
-Boogie program verifier finished with 0 verified, 0 errors
diff --git a/Test/test0/runtest.bat b/Test/test0/runtest.bat
deleted file mode 100644
index 5ecc22dc..00000000
--- a/Test/test0/runtest.bat
+++ /dev/null
@@ -1,42 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-rem set BGEXE=mono ..\..\Binaries\Boogie.exe
-
-%BGEXE% %* /noVerify Prog0.bpl
-%BGEXE% %* /noVerify ModifiedBag.bpl
-%BGEXE% %* /noVerify Triggers0.bpl
-%BGEXE% %* /noVerify Triggers1.bpl
-%BGEXE% %* /noVerify /printInstrumented PrettyPrint.bpl
-%BGEXE% %* /noVerify Arrays0.bpl
-%BGEXE% %* /noVerify Arrays1.bpl
-%BGEXE% %* /noVerify Types0.bpl
-%BGEXE% %* /noVerify Types1.bpl
-%BGEXE% %* /noVerify WhereParsing.bpl
-%BGEXE% %* /noVerify WhereParsing0.bpl
-%BGEXE% %* /noVerify WhereParsing1.bpl
-%BGEXE% %* /noVerify WhereParsing2.bpl
-%BGEXE% %* /noVerify WhereResolution.bpl
-%BGEXE% %* /noVerify BadLabels0.bpl
-%BGEXE% %* /noVerify BadLabels1.bpl
-%BGEXE% %* /noVerify LineParse.bpl
-%BGEXE% %* /noVerify LineResolve.bpl
-%BGEXE% %* /noVerify AttributeParsingErr.bpl
-%BGEXE% %* /noVerify /print:- /env:0 AttributeParsing.bpl
-%BGEXE% %* /noVerify AttributeResolution.bpl
-%BGEXE% %* /noVerify /print:- /env:0 Quoting.bpl
-%BGEXE% %* /noVerify LargeLiterals0.bpl
-%BGEXE% %* /noVerify MapsResolutionErrors.bpl
-%BGEXE% %* /noVerify Orderings.bpl
-%BGEXE% %* /noVerify BadQuantifier.bpl
-%BGEXE% %* /noVerify EmptyCallArgs.bpl
-
-echo ----- SeparateVerification0.bpl
-%BGEXE% %* /noVerify SeparateVerification0.bpl
-echo ----- SeparateVerification1.bpl SeparateVerification0.bpl
-%BGEXE% %* /noVerify SeparateVerification1.bpl SeparateVerification0.bpl
-echo ----- SeparateVerification0.bpl SeparateVerification0.bpl
-%BGEXE% %* /noVerify SeparateVerification0.bpl SeparateVerification0.bpl
-echo ----- SeparateVerification0.bpl SeparateVerification0.bpl SeparateVerification1.bpl
-%BGEXE% %* /noVerify SeparateVerification0.bpl SeparateVerification0.bpl SeparateVerification1.bpl
diff --git a/Test/test1/Answer b/Test/test1/Answer
deleted file mode 100644
index aff9894c..00000000
--- a/Test/test1/Answer
+++ /dev/null
@@ -1,170 +0,0 @@
-Frame0.bpl(12,11): Error: undeclared identifier: a
-Frame0.bpl(14,11): Error: undeclared identifier: b
-2 name resolution errors detected in Frame0.bpl
-Frame1.bpl(18,7): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: g1
-Frame1.bpl(19,6): Error: command assigns to an immutable variable: a
-Frame1.bpl(24,4): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: g1
-Frame1.bpl(25,4): Error: command assigns to an immutable variable: a
-Frame1.bpl(29,12): Error: command assigns to an immutable variable: hh
-Frame1.bpl(30,12): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: h0
-Frame1.bpl(32,7): Error: command assigns to an immutable variable: hh
-Frame1.bpl(33,7): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: h0
-Frame1.bpl(35,4): Error: command assigns to an immutable variable: hh
-Frame1.bpl(36,4): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: h0
-Frame1.bpl(57,4): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: g0
-Frame1.bpl(70,4): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: g0
-Frame1.bpl(70,4): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: g1
-Frame1.bpl(70,4): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: h0
-Frame1.bpl(86,15): Error: mismatched type of in-parameter in implementation MismatchedTypes: x
-Frame1.bpl(91,15): Error: mismatched type of in-parameter in implementation MismatchedTypes: x (named y in implementation)
-16 type checking errors detected in Frame1.bpl
-
-Boogie program verifier finished with 0 verified, 0 errors
-Arrays.bpl(17,14): Error: wrong number of arguments in map select: 2 instead of 1
-Arrays.bpl(18,14): Error: wrong number of arguments in map select: 1 instead of 2
-Arrays.bpl(22,7): Error: wrong number of arguments in map assignment: 2 instead of 1
-Arrays.bpl(23,7): Error: wrong number of arguments in map assignment: 1 instead of 2
-Arrays.bpl(43,13): Error: invalid type for argument 0 in map select: bool (expected: int)
-Arrays.bpl(44,16): Error: invalid argument types (bool and int) to binary operator ==
-Arrays.bpl(45,13): Error: invalid type for argument 0 in map select: int (expected: bool)
-Arrays.bpl(45,15): Error: invalid type for argument 1 in map select: int (expected: ref)
-Arrays.bpl(46,15): Error: invalid type for argument 1 in map select: bool (expected: ref)
-Arrays.bpl(46,23): Error: invalid type for argument 0 in map select: ref (expected: bool)
-Arrays.bpl(47,13): Error: invalid type for argument 0 in map select: ref (expected: bool)
-Arrays.bpl(47,18): Error: invalid type for argument 1 in map select: int (expected: ref)
-Arrays.bpl(47,2): Error: preconditions must be of type bool
-Arrays.bpl(48,13): Error: invalid type for argument 0 in map select: int (expected: bool)
-Arrays.bpl(48,15): Error: invalid type for argument 1 in map select: int (expected: ref)
-Arrays.bpl(52,6): Error: invalid type for argument 0 in map assignment: bool (expected: int)
-Arrays.bpl(53,6): Error: invalid type for argument 0 in map assignment: int (expected: bool)
-Arrays.bpl(53,8): Error: invalid type for argument 1 in map assignment: int (expected: ref)
-Arrays.bpl(53,5): Error: mismatched types in assignment command (cannot assign ref to int)
-Arrays.bpl(54,7): Error: invalid type for argument 0 in map assignment: bool (expected: int)
-Arrays.bpl(54,5): Error: mismatched types in assignment command (cannot assign int to bool)
-Arrays.bpl(55,12): Error: invalid type for argument 1 in map assignment: bool (expected: ref)
-Arrays.bpl(115,11): Error: invalid type for argument 0 in map select: name (expected: [int,int]bool)
-Arrays.bpl(116,4): Error: mismatched types in assignment command (cannot assign [int,int]bool to [[int,int]bool,[name]name]int)
-Arrays.bpl(117,4): Error: mismatched types in assignment command (cannot assign name to [int,int]bool)
-Arrays.bpl(118,5): Error: mismatched types in assignment command (cannot assign name to bool)
-Arrays.bpl(119,8): Error: invalid type for argument 1 in map assignment: name (expected: [name]name)
-Arrays.bpl(120,4): Error: mismatched types in assignment command (cannot assign [int,int][int]int to [[int,int]bool,[name]name]int)
-Arrays.bpl(125,10): Error: wrong number of arguments in map select: 1 instead of 2
-Arrays.bpl(126,14): Error: wrong number of arguments in map select: 1 instead of 2
-Arrays.bpl(127,6): Error: invalid type for argument 0 in map assignment: bool (expected: int)
-Arrays.bpl(128,4): Error: mismatched types in assignment command (cannot assign [int,int][int]int to [int,int][name]int)
-Arrays.bpl(129,4): Error: mismatched types in assignment command (cannot assign [int,int][name]int to [int,int][int]int)
-Arrays.bpl(132,21): Error: wrong number of arguments in map select: 2 instead of 1
-Arrays.bpl(133,5): Error: wrong number of arguments in map assignment: 2 instead of 1
-Arrays.bpl(134,13): Error: wrong number of arguments in map select: 2 instead of 1
-Arrays.bpl(135,17): Error: wrong number of arguments in map select: 1 instead of 2
-Arrays.bpl(136,14): Error: wrong number of arguments in map select: 2 instead of 1
-Arrays.bpl(168,12): Error: invalid type for argument 0 in application of Sf: [int,int]bool (expected: any)
-Arrays.bpl(178,4): Error: mismatched types in assignment command (cannot assign [int,int]bool to <a>[int,a]bool)
-Arrays.bpl(179,4): Error: mismatched types in assignment command (cannot assign <a>[int,a]bool to [int,int]bool)
-Arrays.bpl(180,4): Error: mismatched types in assignment command (cannot assign [any,any]bool to <a>[int,a]bool)
-Arrays.bpl(181,4): Error: mismatched types in assignment command (cannot assign <a>[int,a]bool to [any,any]bool)
-Arrays.bpl(182,4): Error: mismatched types in assignment command (cannot assign [ref]bool to [any]bool)
-Arrays.bpl(193,18): Error: invalid type for argument 0 in map select: any (expected: int)
-Arrays.bpl(200,11): Error: invalid type for argument 0 in map assignment: any (expected: int)
-Arrays.bpl(216,24): Error: invalid type for argument 0 in call to IntMethod: int (expected: any)
-Arrays.bpl(216,9): Error: invalid type for out-parameter 0 in call to IntMethod: any (expected: int)
-Arrays.bpl(217,4): Error: mismatched types in assignment command (cannot assign int to any)
-Arrays.bpl(218,4): Error: mismatched types in assignment command (cannot assign any to int)
-Arrays.bpl(220,24): Error: invalid type for argument 0 in call to AnyMethod: any (expected: int)
-Arrays.bpl(220,9): Error: invalid type for out-parameter 0 in call to AnyMethod: int (expected: any)
-52 type checking errors detected in Arrays.bpl
-WhereTyping.bpl(27,34): Error: invalid argument types (double and int) to binary operator +
-WhereTyping.bpl(28,12): Error: where clauses must be of type bool
-WhereTyping.bpl(38,22): Error: invalid argument types (name and int) to binary operator !=
-WhereTyping.bpl(43,30): Error: invalid argument types (name and int) to binary operator ==
-4 type checking errors detected in WhereTyping.bpl
-Family.bpl(32,4): Error: mismatched types in assignment command (cannot assign int to bool)
-Family.bpl(33,8): Error: mismatched types in assignment command (cannot assign bool to int)
-Family.bpl(35,8): Error: mismatched types in assignment command (cannot assign int to y)
-Family.bpl(36,15): Error: invalid type for argument 1 in map assignment: any (expected: Field x)
-Family.bpl(37,15): Error: invalid type for argument 1 in map assignment: any (expected: Field x)
-Family.bpl(39,8): Error: mismatched types in assignment command (cannot assign bool to any)
-Family.bpl(40,8): Error: mismatched types in assignment command (cannot assign Field any to any)
-Family.bpl(41,8): Error: mismatched types in assignment command (cannot assign Field y to any)
-8 type checking errors detected in Family.bpl
-AttributeTyping.bpl(5,23): Error: ++ operands need to be bitvectors (got int, int)
-AttributeTyping.bpl(7,29): Error: invalid type for argument 0 in application of F0: bool (expected: int)
-AttributeTyping.bpl(9,26): Error: invalid type for argument 0 in application of F0: bool (expected: int)
-AttributeTyping.bpl(11,21): Error: invalid argument types (int and int) to binary operator &&
-AttributeTyping.bpl(13,22): Error: invalid argument type (int) to unary operator !
-AttributeTyping.bpl(15,32): Error: invalid argument types (int and int) to binary operator ==>
-6 type checking errors detected in AttributeTyping.bpl
-UpdateExprTyping.bpl(5,11): Error: invalid argument types ([int]bool and [int]ref) to binary operator ==
-UpdateExprTyping.bpl(6,11): Error: invalid argument types ([int]bool and [bool]bool) to binary operator ==
-UpdateExprTyping.bpl(9,16): Error: invalid type for argument 0 in map store: bool (expected: int)
-UpdateExprTyping.bpl(10,21): Error: right-hand side in map store with wrong type: int (expected: bool)
-UpdateExprTyping.bpl(11,11): Error: invalid argument types ([int]bool and [int]ref) to binary operator ==
-UpdateExprTyping.bpl(17,18): Error: invalid type for argument 0 in map store: ref (expected: int)
-UpdateExprTyping.bpl(18,20): Error: invalid type for argument 1 in map store: bool (expected: ref)
-UpdateExprTyping.bpl(19,28): Error: right-hand side in map store with wrong type: ref (expected: bool)
-UpdateExprTyping.bpl(34,2): Error: mismatched types in assignment command (cannot assign int to any)
-UpdateExprTyping.bpl(38,28): Error: right-hand side in map store with wrong type: ref (expected: any)
-UpdateExprTyping.bpl(40,27): Error: right-hand side in map store with wrong type: ref (expected: int)
-UpdateExprTyping.bpl(41,27): Error: right-hand side in map store with wrong type: int (expected: ref)
-12 type checking errors detected in UpdateExprTyping.bpl
-MapsTypeErrors.bpl(28,6): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: m
-MapsTypeErrors.bpl(34,2): Error: mismatched types in assignment command (cannot assign int to []int)
-MapsTypeErrors.bpl(35,3): Error: mismatched types in assignment command (cannot assign []int to int)
-MapsTypeErrors.bpl(41,3): Error: mismatched types in assignment command (cannot assign bool to int)
-MapsTypeErrors.bpl(69,14): Error: invalid argument types (Field int and Field bool) to binary operator ==
-MapsTypeErrors.bpl(72,27): Error: invalid type for argument 1 in application of StrictEqual: Field bool (expected: a)
-MapsTypeErrors.bpl(77,33): Error: invalid type for argument 1 in application of StrictEqual: Field int (expected: a)
-MapsTypeErrors.bpl(79,31): Error: invalid type for argument 1 in application of IntEqual: Field alpha (expected: Field int)
-MapsTypeErrors.bpl(92,8): Error: extract operand must be a bitvector of at least 32 bits (got bv31)
-MapsTypeErrors.bpl(93,8): Error: extract operand must be a bitvector of at least 32 bits (got int)
-MapsTypeErrors.bpl(97,2): Error: mismatched types in assignment command (cannot assign bv33 to bv32)
-MapsTypeErrors.bpl(106,2): Error: mismatched types in assignment command (cannot assign bv20 to bv32)
-MapsTypeErrors.bpl(112,56): Error: invalid type for argument 1 in application of Same: bv18 (expected: T)
-MapsTypeErrors.bpl(122,4): Error: mismatched types in assignment command (cannot assign [?, ?]? to [int,int]bool)
-MapsTypeErrors.bpl(124,4): Error: mismatched types in assignment command (cannot assign [?, ?]? to HeapType)
-15 type checking errors detected in MapsTypeErrors.bpl
-Orderings.bpl(8,19): Error: parent of constant has incompatible type (int instead of C)
-1 type checking errors detected in Orderings.bpl
-EmptyCallArgs.bpl(21,7): Error: invalid type for out-parameter 0 in call to Q: int (expected: bool)
-1 type checking errors detected in EmptyCallArgs.bpl
-FunBody.bpl(8,45): Error: function body with invalid type: bool (expected: int)
-FunBody.bpl(10,61): Error: function body with invalid type: int (expected: alpha)
-FunBody.bpl(12,58): Error: function body with invalid type: int (expected: alpha)
-3 type checking errors detected in FunBody.bpl
-IfThenElse0.bpl(7,7): Error: the first argument to if-then-else should be bool, not int
-IfThenElse0.bpl(8,7): Error: branches of if-then-else have incompatible types bool and int
-IfThenElse0.bpl(9,2): Error: mismatched types in assignment command (cannot assign int to bool)
-3 type checking errors detected in IfThenElse0.bpl
-Lambda.bpl(7,2): Error: mismatched types in assignment command (cannot assign [int]int to [int,int]int)
-Lambda.bpl(8,2): Error: mismatched types in assignment command (cannot assign [int]int to [int]bool)
-Lambda.bpl(14,8): Error: the type variable T does not occur in types of the lambda parameters
-Lambda.bpl(14,2): Error: mismatched types in assignment command (cannot assign <T>[int]int to [int]int)
-Lambda.bpl(20,27): Error: invalid argument types (bool and int) to binary operator +
-5 type checking errors detected in Lambda.bpl
-IntReal.bpl(7,8): Error: invalid argument types (int and real) to binary operator >=
-IntReal.bpl(8,8): Error: invalid argument types (int and real) to binary operator <=
-IntReal.bpl(9,8): Error: invalid argument types (int and real) to binary operator <
-IntReal.bpl(10,8): Error: invalid argument types (int and real) to binary operator >
-IntReal.bpl(12,9): Error: invalid argument types (int and real) to binary operator ==
-IntReal.bpl(13,8): Error: invalid argument types (int and real) to binary operator +
-IntReal.bpl(14,8): Error: invalid argument types (int and real) to binary operator -
-IntReal.bpl(15,8): Error: invalid argument types (int and real) to binary operator *
-IntReal.bpl(16,8): Error: invalid argument types (int and real) to binary operator div
-IntReal.bpl(17,8): Error: invalid argument types (int and real) to binary operator mod
-IntReal.bpl(19,12): Error: invalid argument types (real and int) to binary operator ==
-IntReal.bpl(25,8): Error: invalid argument types (int and real) to binary operator **
-IntReal.bpl(29,14): Error: invalid argument types (real and int) to binary operator ==
-IntReal.bpl(31,13): Error: invalid argument types (int and real) to binary operator ==
-IntReal.bpl(34,6): Error: argument type int does not match expected type real
-IntReal.bpl(35,6): Error: argument type real does not match expected type int
-IntReal.bpl(47,8): Error: invalid argument types (real and int) to binary operator div
-IntReal.bpl(48,8): Error: invalid argument types (real and int) to binary operator mod
-18 type checking errors detected in IntReal.bpl
-AssumptionVariables0.bpl(5,22): Error: assumption variable may not be declared with a where clause
-AssumptionVariables0.bpl(21,7): Error: RHS of assignment to assumption variable a0 must match expression "a0 && <boolean expression>"
-AssumptionVariables0.bpl(30,7): Error: RHS of assignment to assumption variable a0 must match expression "a0 && <boolean expression>"
-AssumptionVariables0.bpl(39,7): Error: assumption variable may not be assigned to more than once
-AssumptionVariables0.bpl(56,7): Error: assumption variable may not be assigned to more than once
-5 name resolution errors detected in AssumptionVariables0.bpl
-AssumptionVariables1.bpl(5,22): Error: assumption variable must be of type 'bool'
-1 type checking errors detected in AssumptionVariables1.bpl
diff --git a/Test/test1/runtest.bat b/Test/test1/runtest.bat
deleted file mode 100644
index 9225d5f7..00000000
--- a/Test/test1/runtest.bat
+++ /dev/null
@@ -1,23 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-rem set BGEXE=mono ..\..\Binaries\Boogie.exe
-
-%BGEXE% %* /noVerify Frame0.bpl
-%BGEXE% %* /noVerify Frame1.bpl
-%BGEXE% %* /noVerify LogicalExprs.bpl
-%BGEXE% %* /noVerify Arrays.bpl
-%BGEXE% %* /noVerify WhereTyping.bpl
-%BGEXE% %* /noVerify Family.bpl
-%BGEXE% %* /noVerify AttributeTyping.bpl
-%BGEXE% %* /noVerify UpdateExprTyping.bpl
-%BGEXE% %* /noVerify MapsTypeErrors.bpl
-%BGEXE% %* /noVerify Orderings.bpl
-%BGEXE% %* /noVerify EmptyCallArgs.bpl
-%BGEXE% %* /noVerify FunBody.bpl
-%BGEXE% %* /noVerify IfThenElse0.bpl
-%BGEXE% %* /noVerify Lambda.bpl
-%BGEXE% %* /noVerify IntReal.bpl
-%BGEXE% %* /noVerify AssumptionVariables0.bpl
-%BGEXE% %* /noVerify AssumptionVariables1.bpl
diff --git a/Test/test13/Answer b/Test/test13/Answer
deleted file mode 100644
index c4dc0cb7..00000000
--- a/Test/test13/Answer
+++ /dev/null
@@ -1,15 +0,0 @@
-
--------------------- ErrorTraceTestLoopInvViolationBPL --------------------
-ErrorTraceTestLoopInvViolationBPL.bpl(9,3): Error BP5001: This assertion might not hold.
-Execution trace:
- ErrorTraceTestLoopInvViolationBPL.bpl(7,5): anon0
-ErrorTraceTestLoopInvViolationBPL.bpl(18,16): Error BP5004: This loop invariant might not hold on entry.
-Execution trace:
- ErrorTraceTestLoopInvViolationBPL.bpl(16,5): anon0
-ErrorTraceTestLoopInvViolationBPL.bpl(29,17): Error BP5005: This loop invariant might not be maintained by the loop.
-Execution trace:
- ErrorTraceTestLoopInvViolationBPL.bpl(27,5): anon0
- ErrorTraceTestLoopInvViolationBPL.bpl(29,3): anon2_LoopHead
- ErrorTraceTestLoopInvViolationBPL.bpl(30,7): anon2_LoopBody
-
-Boogie program verifier finished with 0 verified, 3 errors
diff --git a/Test/test13/runtest.bat b/Test/test13/runtest.bat
deleted file mode 100644
index e394fb2c..00000000
--- a/Test/test13/runtest.bat
+++ /dev/null
@@ -1,11 +0,0 @@
-@echo off
-setlocal
-
-set BOOGIEDIR=..\..\Binaries
-set BPLEXE=%BOOGIEDIR%\Boogie.exe
-
-for %%f in (ErrorTraceTestLoopInvViolationBPL) do (
- echo.
- echo -------------------- %%f --------------------
- "%BPLEXE%" %* %%f.bpl
-)
diff --git a/Test/test15/Answer b/Test/test15/Answer
deleted file mode 100644
index 7a5cb92f..00000000
--- a/Test/test15/Answer
+++ /dev/null
@@ -1,136 +0,0 @@
-
--------------------- NullInModel --------------------
-*** MODEL
-%lbl%@47 -> false
-%lbl%+24 -> true
-%lbl%+37 -> true
-null -> T@ref!val!0
-s -> T@ref!val!0
-tickleBool -> {
- true -> true
- false -> true
- else -> true
-}
-*** END_MODEL
-NullInModel.bpl(4,3): Error BP5001: This assertion might not hold.
-Execution trace:
- NullInModel.bpl(4,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
--------------------- IntInModel --------------------
-*** MODEL
-%lbl%@39 -> false
-%lbl%+23 -> true
-%lbl%+29 -> true
-i -> 0
-tickleBool -> {
- true -> true
- false -> true
- else -> true
-}
-*** END_MODEL
-IntInModel.bpl(4,3): Error BP5001: This assertion might not hold.
-Execution trace:
- IntInModel.bpl(4,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
--------------------- ModelTest --------------------
-*** MODEL
-%lbl%@147 -> false
-%lbl%+64 -> true
-%lbl%+84 -> true
-i@0 -> 1
-j@0 -> 2
-j@1 -> 3
-j@2 -> 4
-tickleBool -> {
- true -> true
- false -> true
- else -> true
-}
-*** END_MODEL
-ModelTest.bpl(9,3): Error BP5001: This assertion might not hold.
-Execution trace:
- ModelTest.bpl(5,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
-
--------------------- InterpretedFunctionTests --------------------
-InterpretedFunctionTests.bpl(6,3): Error BP5001: This assertion might not hold.
-Execution trace:
- InterpretedFunctionTests.bpl(4,3): anon0
-InterpretedFunctionTests.bpl(12,3): Error BP5001: This assertion might not hold.
-Execution trace:
- InterpretedFunctionTests.bpl(10,3): anon0
-InterpretedFunctionTests.bpl(18,3): Error BP5001: This assertion might not hold.
-Execution trace:
- InterpretedFunctionTests.bpl(16,3): anon0
-
-Boogie program verifier finished with 0 verified, 3 errors
-
--------------------- CaptureState --------------------
-CaptureState.bpl(29,1): Error BP5003: A postcondition might not hold on this return path.
-CaptureState.bpl(10,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- CaptureState.bpl(14,3): anon0
- CaptureState.bpl(18,5): anon4_Then
- CaptureState.bpl(26,5): anon3
-*** MODEL
-$mv_state_const -> 3
-%lbl%@293 -> false
-%lbl%+112 -> true
-%lbl%+114 -> true
-%lbl%+118 -> true
-%lbl%+148 -> true
-F -> T@FieldName!val!0
-Heap -> T@[Ref,FieldName]Int!val!0
-m -> **m
-m@0 -> -276
-m@1 -> -275
-m@3 -> -275
-r -> **r
-r@0 -> -550
-this -> T@Ref!val!0
-x -> 719
-y -> **y
-Select_[Ref,FieldName]$int -> {
- T@[Ref,FieldName]Int!val!0 T@Ref!val!0 T@FieldName!val!0 -> -276
- else -> -276
-}
-tickleBool -> {
- true -> true
- false -> true
- else -> true
-}
-$mv_state -> {
- 3 0 -> true
- 3 1 -> true
- 3 2 -> true
- 3 5 -> true
- else -> true
-}
-*** STATE <initial>
- Heap -> T@[Ref,FieldName]Int!val!0
- this -> T@Ref!val!0
- x -> 719
- y -> **y
- r -> **r
- m -> **m
-*** END_STATE
-*** STATE top
-*** END_STATE
-*** STATE then
- m -> -276
-*** END_STATE
-*** STATE postUpdate0
- m -> -275
-*** END_STATE
-*** STATE end
- r -> -550
- m -> 7
-*** END_STATE
-*** END_MODEL
-
-Boogie program verifier finished with 0 verified, 1 error
diff --git a/Test/test15/runtest.bat b/Test/test15/runtest.bat
deleted file mode 100644
index 83452323..00000000
--- a/Test/test15/runtest.bat
+++ /dev/null
@@ -1,21 +0,0 @@
-@echo off
-setlocal
-
-set BOOGIEDIR=..\..\Binaries
-set BGEXE=%BOOGIEDIR%\boogie.exe
-
-for %%f in (NullInModel IntInModel ModelTest) do (
- echo.
- echo -------------------- %%f --------------------
- "%BGEXE%" %* %%f.bpl /printModel:2
-)
-for %%f in (InterpretedFunctionTests) do (
- echo.
- echo -------------------- %%f --------------------
- "%BGEXE%" %* %%f.bpl
-)
-for %%f in (CaptureState) do (
- echo.
- echo -------------------- %%f --------------------
- "%BGEXE%" %* %%f.bpl /mv:-
-)
diff --git a/Test/test16/Answer b/Test/test16/Answer
deleted file mode 100644
index 8c0b0187..00000000
--- a/Test/test16/Answer
+++ /dev/null
@@ -1,23 +0,0 @@
--------------------- LoopUnroll.bpl /loopUnroll:1 --------------------
-LoopUnroll.bpl(62,5): Error BP5001: This assertion might not hold.
-Execution trace:
- LoopUnroll.bpl(58,5): anon0#1
- LoopUnroll.bpl(59,3): anon2_LoopHead#1
- LoopUnroll.bpl(61,5): anon2_LoopBody#1
-
-Boogie program verifier finished with 2 verified, 1 error
--------------------- LoopUnroll.bpl /loopUnroll:2 --------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
--------------------- LoopUnroll.bpl /loopUnroll:3 --------------------
-LoopUnroll.bpl(80,5): Error BP5001: This assertion might not hold.
-Execution trace:
- LoopUnroll.bpl(74,5): anon0#3
- LoopUnroll.bpl(75,3): anon2_LoopHead#3
- LoopUnroll.bpl(77,5): anon2_LoopBody#3
- LoopUnroll.bpl(75,3): anon2_LoopHead#2
- LoopUnroll.bpl(77,5): anon2_LoopBody#2
- LoopUnroll.bpl(75,3): anon2_LoopHead#1
- LoopUnroll.bpl(77,5): anon2_LoopBody#1
-
-Boogie program verifier finished with 0 verified, 1 error
diff --git a/Test/test16/runtest.bat b/Test/test16/runtest.bat
deleted file mode 100644
index 069ecd63..00000000
--- a/Test/test16/runtest.bat
+++ /dev/null
@@ -1,13 +0,0 @@
-@echo off
-setlocal
-
-set BOOGIEDIR=..\..\Binaries
-set BPLEXE=%BOOGIEDIR%\Boogie.exe
-
-echo -------------------- LoopUnroll.bpl /loopUnroll:1 --------------------
-"%BPLEXE%" %* /loopUnroll:1 /logPrefix:-lu1 LoopUnroll.bpl
-echo -------------------- LoopUnroll.bpl /loopUnroll:2 --------------------
-"%BPLEXE%" %* LoopUnroll.bpl /logPrefix:-lu2 /proc:ManyIterations /loopUnroll:2
-echo -------------------- LoopUnroll.bpl /loopUnroll:3 --------------------
-"%BPLEXE%" %* LoopUnroll.bpl /logPrefix:-lu3 /proc:ManyIterations /loopUnroll:3
-
diff --git a/Test/test2/Answer b/Test/test2/Answer
deleted file mode 100644
index 9403e6a9..00000000
--- a/Test/test2/Answer
+++ /dev/null
@@ -1,543 +0,0 @@
-
--------------------- FormulaTerm.bpl --------------------
-FormulaTerm.bpl(12,3): Error BP5003: A postcondition might not hold on this return path.
-FormulaTerm.bpl(6,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- FormulaTerm.bpl(10,1): start
-
-Boogie program verifier finished with 11 verified, 1 error
-
--------------------- FormulaTerm2.bpl --------------------
-FormulaTerm2.bpl(41,5): Error BP5001: This assertion might not hold.
-Execution trace:
- FormulaTerm2.bpl(38,3): start
-FormulaTerm2.bpl(49,5): Error BP5001: This assertion might not hold.
-Execution trace:
- FormulaTerm2.bpl(47,3): start
-
-Boogie program verifier finished with 2 verified, 2 errors
-
--------------------- Passification.bpl --------------------
-Passification.bpl(46,3): Error BP5003: A postcondition might not hold on this return path.
-Passification.bpl(38,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Passification.bpl(41,1): A
-Passification.bpl(118,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Passification.bpl(108,1): L0
- Passification.bpl(113,1): L1
- Passification.bpl(117,1): L2
-Passification.bpl(153,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Passification.bpl(146,1): L0
- Passification.bpl(152,1): L2
-Passification.bpl(167,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Passification.bpl(160,1): L0
- Passification.bpl(163,1): L1
- Passification.bpl(166,1): L2
-
-Boogie program verifier finished with 7 verified, 4 errors
-
--------------------- B.bpl --------------------
-
-Boogie program verifier finished with 4 verified, 0 errors
-
--------------------- Ensures.bpl --------------------
-Ensures.bpl(32,5): Error BP5003: A postcondition might not hold on this return path.
-Ensures.bpl(21,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Ensures.bpl(30,3): start
-Ensures.bpl(37,5): Error BP5003: A postcondition might not hold on this return path.
-Ensures.bpl(21,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Ensures.bpl(36,3): start
-Ensures.bpl(43,5): Error BP5003: A postcondition might not hold on this return path.
-Ensures.bpl(21,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Ensures.bpl(41,3): start
-Ensures.bpl(49,5): Error BP5003: A postcondition might not hold on this return path.
-Ensures.bpl(21,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Ensures.bpl(47,3): start
-Ensures.bpl(74,5): Error BP5003: A postcondition might not hold on this return path.
-Ensures.bpl(21,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Ensures.bpl(72,3): start
-
-Boogie program verifier finished with 5 verified, 5 errors
-
--------------------- Old.bpl --------------------
-Old.bpl(31,5): Error BP5003: A postcondition might not hold on this return path.
-Old.bpl(28,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Old.bpl(30,3): start
-
-Boogie program verifier finished with 7 verified, 1 error
-
--------------------- OldIllegal.bpl --------------------
-OldIllegal.bpl(9,11): Error: old expressions allowed only in two-state contexts
-OldIllegal.bpl(16,23): Error: old expressions allowed only in two-state contexts
-2 name resolution errors detected in OldIllegal.bpl
-
--------------------- Arrays.bpl --------------------
-Arrays.bpl(50,5): Error BP5003: A postcondition might not hold on this return path.
-Arrays.bpl(42,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Arrays.bpl(46,3): start
-Arrays.bpl(131,5): Error BP5003: A postcondition might not hold on this return path.
-Arrays.bpl(123,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Arrays.bpl(127,3): start
-
-Boogie program verifier finished with 8 verified, 2 errors
-
--------------------- Axioms.bpl --------------------
-Axioms.bpl(21,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Axioms.bpl(20,3): start
-
-Boogie program verifier finished with 2 verified, 1 error
-
--------------------- Quantifiers.bpl --------------------
-Quantifiers.bpl(22,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Quantifiers.bpl(21,3): start
-Quantifiers.bpl(45,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Quantifiers.bpl(44,3): start
-Quantifiers.bpl(67,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Quantifiers.bpl(66,3): start
-Quantifiers.bpl(75,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Quantifiers.bpl(73,3): start
-Quantifiers.bpl(127,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Quantifiers.bpl(126,3): start
-Quantifiers.bpl(152,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Quantifiers.bpl(151,3): start
-
-Boogie program verifier finished with 8 verified, 6 errors
-
--------------------- Call.bpl --------------------
-Call.bpl(15,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Call.bpl(11,3): entry
-Call.bpl(48,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Call.bpl(47,3): start
-Call.bpl(57,5): Error BP5003: A postcondition might not hold on this return path.
-Call.bpl(22,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Call.bpl(55,3): start
-
-Boogie program verifier finished with 2 verified, 3 errors
-
--------------------- AssumeEnsures.bpl --------------------
-AssumeEnsures.bpl(30,9): Error BP5001: This assertion might not hold.
-Execution trace:
- AssumeEnsures.bpl(28,5): entry
-AssumeEnsures.bpl(49,9): Error BP5001: This assertion might not hold.
-Execution trace:
- AssumeEnsures.bpl(48,5): entry
-AssumeEnsures.bpl(64,9): Error BP5001: This assertion might not hold.
-Execution trace:
- AssumeEnsures.bpl(62,5): entry
-
-Boogie program verifier finished with 4 verified, 3 errors
-
--------------------- CutBackEdge.bpl --------------------
-CutBackEdge.bpl(12,5): Error BP5005: This loop invariant might not be maintained by the loop.
-Execution trace:
- CutBackEdge.bpl(7,3): entry
- CutBackEdge.bpl(11,3): block850
-CutBackEdge.bpl(22,5): Error BP5004: This loop invariant might not hold on entry.
-Execution trace:
-CutBackEdge.bpl(28,5): Error BP5001: This assertion might not hold.
-Execution trace:
- CutBackEdge.bpl(27,3): L
-CutBackEdge.bpl(40,5): Error BP5004: This loop invariant might not hold on entry.
-Execution trace:
-
-Boogie program verifier finished with 1 verified, 4 errors
-
--------------------- False.bpl --------------------
-
-Boogie program verifier finished with 2 verified, 0 errors
-
--------------------- LoopInvAssume.bpl --------------------
-LoopInvAssume.bpl(20,7): Error BP5001: This assertion might not hold.
-Execution trace:
- LoopInvAssume.bpl(10,4): entry
- LoopInvAssume.bpl(18,4): exit
-
-Boogie program verifier finished with 0 verified, 1 error
-
--------------------- strings-no-where.bpl --------------------
-strings-no-where.bpl(203,103): Error: invalid argument types (any and name) to binary operator ==
-strings-no-where.bpl(205,105): Error: invalid argument types (any and name) to binary operator ==
-strings-no-where.bpl(211,106): Error: invalid type for argument 1 in application of IsAllocated: struct (expected: any)
-strings-no-where.bpl(213,72): Error: invalid type for argument 1 in application of IsAllocated: ref (expected: any)
-strings-no-where.bpl(213,108): Error: invalid type for argument 1 in application of IsAllocated: elements (expected: any)
-strings-no-where.bpl(213,130): Error: invalid type for argument 1 in application of IsAllocated: ref (expected: any)
-strings-no-where.bpl(215,78): Error: invalid type for argument 1 in application of IsAllocated: ref (expected: any)
-strings-no-where.bpl(237,98): Error: invalid argument types (any and name) to binary operator ==
-strings-no-where.bpl(251,118): Error: invalid argument types (any and name) to binary operator ==
-strings-no-where.bpl(701,34): Error: invalid type for argument 1 in application of IsAllocated: int (expected: any)
-strings-no-where.bpl(730,9): Error: mismatched types in assignment command (cannot assign bool to any)
-strings-no-where.bpl(739,9): Error: mismatched types in assignment command (cannot assign bool to any)
-strings-no-where.bpl(753,9): Error: mismatched types in assignment command (cannot assign bool to any)
-strings-no-where.bpl(762,9): Error: mismatched types in assignment command (cannot assign bool to any)
-strings-no-where.bpl(928,36): Error: invalid argument types (any and name) to binary operator ==
-strings-no-where.bpl(951,36): Error: invalid argument types (any and name) to binary operator ==
-strings-no-where.bpl(977,9): Error: mismatched types in assignment command (cannot assign name to any)
-strings-no-where.bpl(992,36): Error: invalid argument types (any and name) to binary operator ==
-18 type checking errors detected in strings-no-where.bpl
-
--------------------- strings-where.bpl --------------------
-strings-where.bpl(203,103): Error: invalid argument types (any and name) to binary operator ==
-strings-where.bpl(205,105): Error: invalid argument types (any and name) to binary operator ==
-strings-where.bpl(211,106): Error: invalid type for argument 1 in application of IsAllocated: struct (expected: any)
-strings-where.bpl(213,72): Error: invalid type for argument 1 in application of IsAllocated: ref (expected: any)
-strings-where.bpl(213,108): Error: invalid type for argument 1 in application of IsAllocated: elements (expected: any)
-strings-where.bpl(213,130): Error: invalid type for argument 1 in application of IsAllocated: ref (expected: any)
-strings-where.bpl(215,78): Error: invalid type for argument 1 in application of IsAllocated: ref (expected: any)
-strings-where.bpl(237,98): Error: invalid argument types (any and name) to binary operator ==
-strings-where.bpl(251,118): Error: invalid argument types (any and name) to binary operator ==
-strings-where.bpl(701,34): Error: invalid type for argument 1 in application of IsAllocated: int (expected: any)
-strings-where.bpl(730,9): Error: mismatched types in assignment command (cannot assign bool to any)
-strings-where.bpl(739,9): Error: mismatched types in assignment command (cannot assign bool to any)
-strings-where.bpl(753,9): Error: mismatched types in assignment command (cannot assign bool to any)
-strings-where.bpl(762,9): Error: mismatched types in assignment command (cannot assign bool to any)
-strings-where.bpl(928,36): Error: invalid argument types (any and name) to binary operator ==
-strings-where.bpl(951,36): Error: invalid argument types (any and name) to binary operator ==
-strings-where.bpl(977,9): Error: mismatched types in assignment command (cannot assign name to any)
-strings-where.bpl(992,36): Error: invalid argument types (any and name) to binary operator ==
-18 type checking errors detected in strings-where.bpl
-
--------------------- Structured.bpl --------------------
-Structured.bpl(254,14): Error BP5003: A postcondition might not hold on this return path.
-Structured.bpl(245,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Structured.bpl(246,5): anon0
- Structured.bpl(248,5): anon6_LoopBody
- Structured.bpl(249,7): anon7_LoopBody
- Structured.bpl(250,11): anon8_Then
- Structured.bpl(254,14): anon9_Then
-Structured.bpl(305,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Structured.bpl(301,5): anon0
- Structured.bpl(302,3): anon3_Else
- Structured.bpl(305,3): anon2
-Structured.bpl(313,7): Error BP5001: This assertion might not hold.
-Execution trace:
- Structured.bpl(310,3): anon0
- Structured.bpl(310,3): anon1_Then
- Structured.bpl(311,5): A
-
-Boogie program verifier finished with 16 verified, 3 errors
-
--------------------- Where.bpl --------------------
-Where.bpl(10,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Where.bpl(8,3): anon0
-Where.bpl(24,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Where.bpl(18,5): anon0
-Where.bpl(34,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Where.bpl(32,3): anon0
-Where.bpl(46,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Where.bpl(42,5): anon0
-Where.bpl(59,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Where.bpl(54,3): anon0
-Where.bpl(113,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Where.bpl(104,5): anon0
- Where.bpl(106,3): anon3_LoopHead
- Where.bpl(106,3): anon3_LoopDone
-Where.bpl(130,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Where.bpl(123,5): anon0
- Where.bpl(124,3): anon3_LoopHead
- Where.bpl(124,3): anon3_LoopDone
-Where.bpl(147,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Where.bpl(140,5): anon0
- Where.bpl(141,3): anon3_LoopHead
- Where.bpl(141,3): anon3_LoopDone
-Where.bpl(164,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Where.bpl(157,5): anon0
- Where.bpl(158,3): anon3_LoopHead
- Where.bpl(158,3): anon3_LoopDone
-
-Boogie program verifier finished with 2 verified, 9 errors
-
--------------------- UpdateExpr.bpl --------------------
-UpdateExpr.bpl(16,3): Error BP5001: This assertion might not hold.
-Execution trace:
- UpdateExpr.bpl(16,3): anon0
-UpdateExpr.bpl(21,3): Error BP5001: This assertion might not hold.
-Execution trace:
- UpdateExpr.bpl(21,3): anon0
-UpdateExpr.bpl(34,3): Error BP5001: This assertion might not hold.
-Execution trace:
- UpdateExpr.bpl(34,3): anon0
-UpdateExpr.bpl(40,3): Error BP5001: This assertion might not hold.
-Execution trace:
- UpdateExpr.bpl(40,3): anon0
-UpdateExpr.bpl(54,3): Error BP5001: This assertion might not hold.
-Execution trace:
- UpdateExpr.bpl(53,5): anon0
-
-Boogie program verifier finished with 5 verified, 5 errors
-
--------------------- NeverPattern.bpl --------------------
-NeverPattern.bpl(18,3): Error BP5001: This assertion might not hold.
-Execution trace:
- NeverPattern.bpl(17,3): anon0
-NeverPattern.bpl(24,3): Error BP5001: This assertion might not hold.
-Execution trace:
- NeverPattern.bpl(23,3): anon0
-NeverPattern.bpl(30,3): Error BP5001: This assertion might not hold.
-Execution trace:
- NeverPattern.bpl(29,3): anon0
-
-Boogie program verifier finished with 2 verified, 3 errors
-
--------------------- NullaryMaps.bpl --------------------
-NullaryMaps.bpl(30,3): Error BP5001: This assertion might not hold.
-Execution trace:
- NullaryMaps.bpl(30,3): anon0
-NullaryMaps.bpl(32,3): Error BP5001: This assertion might not hold.
-Execution trace:
- NullaryMaps.bpl(30,3): anon0
-NullaryMaps.bpl(38,3): Error BP5001: This assertion might not hold.
-Execution trace:
- NullaryMaps.bpl(38,3): anon0
-
-Boogie program verifier finished with 2 verified, 3 errors
-
--------------------- Implies.bpl --------------------
-Implies.bpl(14,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Implies.bpl(13,3): anon0
-Implies.bpl(17,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Implies.bpl(13,3): anon0
-Implies.bpl(21,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Implies.bpl(21,3): anon0
-Implies.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Implies.bpl(26,3): anon0
-Implies.bpl(27,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Implies.bpl(26,3): anon0
-Implies.bpl(31,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Implies.bpl(31,3): anon0
-Implies.bpl(36,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Implies.bpl(36,3): anon0
-Implies.bpl(37,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Implies.bpl(36,3): anon0
-
-Boogie program verifier finished with 0 verified, 8 errors
-
--------------------- IfThenElse1.bpl --------------------
-IfThenElse1.bpl(28,3): Error BP5001: This assertion might not hold.
-Execution trace:
- IfThenElse1.bpl(28,3): anon0
-IfThenElse1.bpl(35,3): Error BP5001: This assertion might not hold.
-Execution trace:
- IfThenElse1.bpl(35,3): anon0
-
-Boogie program verifier finished with 2 verified, 2 errors
-
--------------------- Lambda.bpl --------------------
-Lambda.bpl(41,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Lambda.bpl(40,5): anon0
-Lambda.bpl(42,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Lambda.bpl(40,5): anon0
-
-Boogie program verifier finished with 6 verified, 2 errors
-
--------------------- LambdaPoly.bpl --------------------
-LambdaPoly.bpl(30,5): Error BP5001: This assertion might not hold.
-Execution trace:
- LambdaPoly.bpl(26,5): anon0
- LambdaPoly.bpl(29,5): anon4_Then
-LambdaPoly.bpl(33,5): Error BP5001: This assertion might not hold.
-Execution trace:
- LambdaPoly.bpl(26,5): anon0
- LambdaPoly.bpl(32,5): anon5_Then
-LambdaPoly.bpl(38,5): Error BP5001: This assertion might not hold.
-Execution trace:
- LambdaPoly.bpl(26,5): anon0
- LambdaPoly.bpl(36,5): anon5_Else
-
-Boogie program verifier finished with 1 verified, 3 errors
-
--------------------- LambdaOldExpressions.bpl --------------------
-LambdaOldExpressions.bpl(29,1): Error BP5003: A postcondition might not hold on this return path.
-LambdaOldExpressions.bpl(23,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- LambdaOldExpressions.bpl(27,7): anon0
-
-Boogie program verifier finished with 4 verified, 1 error
-
--------------------- SelectiveChecking.bpl --------------------
-SelectiveChecking.bpl(19,3): Error BP5001: This assertion might not hold.
-Execution trace:
- SelectiveChecking.bpl(17,3): anon0
-SelectiveChecking.bpl(32,3): Error BP5001: This assertion might not hold.
-Execution trace:
- SelectiveChecking.bpl(26,3): anon0
- SelectiveChecking.bpl(29,5): anon3_Then
- SelectiveChecking.bpl(32,3): anon2
-SelectiveChecking.bpl(39,3): Error BP5001: This assertion might not hold.
-Execution trace:
- SelectiveChecking.bpl(39,3): anon0
-SelectiveChecking.bpl(41,3): Error BP5001: This assertion might not hold.
-Execution trace:
- SelectiveChecking.bpl(39,3): anon0
-
-Boogie program verifier finished with 1 verified, 4 errors
-
--------------------- FreeCall.bpl --------------------
-FreeCall.bpl(39,5): Error BP5002: A precondition for this call might not hold.
-FreeCall.bpl(10,3): Related location: This is the precondition that might not hold.
-Execution trace:
- FreeCall.bpl(39,5): anon0
-FreeCall.bpl(44,5): Error BP5002: A precondition for this call might not hold.
-FreeCall.bpl(8,3): Related location: This is the precondition that might not hold.
-Execution trace:
- FreeCall.bpl(44,5): anon0
-FreeCall.bpl(61,5): Error BP5002: A precondition for this call might not hold.
-FreeCall.bpl(18,3): Related location: This is the precondition that might not hold.
-Execution trace:
- FreeCall.bpl(61,5): anon0
-FreeCall.bpl(68,5): Error BP5002: A precondition for this call might not hold.
-FreeCall.bpl(16,3): Related location: This is the precondition that might not hold.
-Execution trace:
- FreeCall.bpl(68,5): anon0
-
-Boogie program verifier finished with 7 verified, 4 errors
-
--------------------- AssumptionVariables0.bpl --------------------
-AssumptionVariables0.bpl(17,5): Error BP5001: This assertion might not hold.
-Execution trace:
- AssumptionVariables0.bpl(15,8): anon0
-AssumptionVariables0.bpl(27,5): Error BP5001: This assertion might not hold.
-Execution trace:
- AssumptionVariables0.bpl(25,5): anon0
-AssumptionVariables0.bpl(39,5): Error BP5001: This assertion might not hold.
-Execution trace:
- AssumptionVariables0.bpl(37,8): anon0
-
-Boogie program verifier finished with 1 verified, 3 errors
-
--------------------- Arrays.bpl /typeEncoding:m --------------------
-Arrays.bpl(50,5): Error BP5003: A postcondition might not hold on this return path.
-Arrays.bpl(42,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Arrays.bpl(46,3): start
-Arrays.bpl(131,5): Error BP5003: A postcondition might not hold on this return path.
-Arrays.bpl(123,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Arrays.bpl(127,3): start
-
-Boogie program verifier finished with 8 verified, 2 errors
-
--------------------- Lambda.bpl /typeEncoding:m --------------------
-Lambda.bpl(41,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Lambda.bpl(40,5): anon0
-Lambda.bpl(42,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Lambda.bpl(40,5): anon0
-
-Boogie program verifier finished with 6 verified, 2 errors
-
--------------------- TypeEncodingM.bpl /typeEncoding:m --------------------
-TypeEncodingM.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- TypeEncodingM.bpl(13,9): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
--------------------- sk_hack.bpl --------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
-
--------------------- ContractEvaluationOrder.bpl --------------------
-ContractEvaluationOrder.bpl(10,1): Error BP5003: A postcondition might not hold on this return path.
-ContractEvaluationOrder.bpl(5,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- ContractEvaluationOrder.bpl(9,5): anon0
-ContractEvaluationOrder.bpl(17,3): Error BP5001: This assertion might not hold.
-Execution trace:
- ContractEvaluationOrder.bpl(14,5): anon0
-ContractEvaluationOrder.bpl(26,3): Error BP5002: A precondition for this call might not hold.
-ContractEvaluationOrder.bpl(32,3): Related location: This is the precondition that might not hold.
-Execution trace:
- ContractEvaluationOrder.bpl(25,5): anon0
-
-Boogie program verifier finished with 1 verified, 3 errors
-
--------------------- Timeouts0.bpl --------------------
-Timeouts0.bpl(21,5): Error BP5003: A postcondition might not hold on this return path.
-Timeouts0.bpl(6,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Timeouts0.bpl(10,7): anon0
- Timeouts0.bpl(12,5): anon4_LoopHead
- Timeouts0.bpl(12,5): anon4_LoopDone
- Timeouts0.bpl(21,5): anon5_LoopHead
- Timeouts0.bpl(21,5): anon5_LoopDone
-Timeouts0.bpl(23,7): Error BP5005: This loop invariant might not be maintained by the loop.
-Execution trace:
- Timeouts0.bpl(10,7): anon0
- Timeouts0.bpl(12,5): anon4_LoopHead
- Timeouts0.bpl(12,5): anon4_LoopDone
- Timeouts0.bpl(21,5): anon5_LoopHead
- Timeouts0.bpl(25,11): anon5_LoopBody
-Timeouts0.bpl(50,5): Error BP5003: A postcondition might not hold on this return path.
-Timeouts0.bpl(33,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Timeouts0.bpl(39,7): anon0
- Timeouts0.bpl(41,5): anon4_LoopHead
- Timeouts0.bpl(41,5): anon4_LoopDone
- Timeouts0.bpl(50,5): anon5_LoopHead
- Timeouts0.bpl(50,5): anon5_LoopDone
-Timeouts0.bpl(52,7): Error BP5005: This loop invariant might not be maintained by the loop.
-Execution trace:
- Timeouts0.bpl(39,7): anon0
- Timeouts0.bpl(41,5): anon4_LoopHead
- Timeouts0.bpl(41,5): anon4_LoopDone
- Timeouts0.bpl(50,5): anon5_LoopHead
- Timeouts0.bpl(54,11): anon5_LoopBody
-Timeouts0.bpl(79,5): Error BP5003: A postcondition might not hold on this return path.
-Timeouts0.bpl(62,3): Related location: This is the postcondition that might not hold.
-Execution trace:
- Timeouts0.bpl(68,7): anon0
- Timeouts0.bpl(70,5): anon4_LoopHead
- Timeouts0.bpl(70,5): anon4_LoopDone
- Timeouts0.bpl(79,5): anon5_LoopHead
- Timeouts0.bpl(79,5): anon5_LoopDone
-Timeouts0.bpl(81,7): Error BP5005: This loop invariant might not be maintained by the loop.
-Execution trace:
- Timeouts0.bpl(68,7): anon0
- Timeouts0.bpl(70,5): anon4_LoopHead
- Timeouts0.bpl(70,5): anon4_LoopDone
- Timeouts0.bpl(79,5): anon5_LoopHead
- Timeouts0.bpl(83,11): anon5_LoopBody
-
-Boogie program verifier finished with 0 verified, 6 errors
diff --git a/Test/test2/runtest.bat b/Test/test2/runtest.bat
deleted file mode 100644
index 5827d8b5..00000000
--- a/Test/test2/runtest.bat
+++ /dev/null
@@ -1,38 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-rem set BGEXE=mono ..\..\Binaries\Boogie.exe
-
-for %%f in (FormulaTerm.bpl FormulaTerm2.bpl Passification.bpl B.bpl
- Ensures.bpl Old.bpl OldIllegal.bpl Arrays.bpl Axioms.bpl
- Quantifiers.bpl Call.bpl AssumeEnsures.bpl
- CutBackEdge.bpl False.bpl LoopInvAssume.bpl
- strings-no-where.bpl strings-where.bpl
- Structured.bpl Where.bpl UpdateExpr.bpl
- NeverPattern.bpl NullaryMaps.bpl Implies.bpl
- IfThenElse1.bpl Lambda.bpl LambdaPoly.bpl LambdaOldExpressions.bpl
- SelectiveChecking.bpl FreeCall.bpl AssumptionVariables0.bpl) do (
- echo.
- echo -------------------- %%f --------------------
- %BGEXE% %* /noinfer %%f
-)
-
-for %%f in (Arrays.bpl Lambda.bpl TypeEncodingM.bpl ) do (
- echo.
- echo -------------------- %%f /typeEncoding:m --------------------
- %BGEXE% %* /noinfer /typeEncoding:m %%f
-)
-
-echo -------------------- sk_hack.bpl --------------------
-%BGEXE% %* /noinfer sk_hack.bpl
-
-for %%f in (ContractEvaluationOrder.bpl) do (
- echo.
- echo -------------------- %%f --------------------
- %BGEXE% %* %%f
-)
-
-echo.
-echo -------------------- Timeouts0.bpl --------------------
-%BGEXE% %* /timeLimit:4 Timeouts0.bpl
diff --git a/Test/test20/Answer b/Test/test20/Answer
deleted file mode 100644
index 7e7af57b..00000000
--- a/Test/test20/Answer
+++ /dev/null
@@ -1,191 +0,0 @@
-TypeDecls0.bpl(22,5): Error: more than one declaration of type name: C
-TypeDecls0.bpl(15,12): Error: more than one declaration of type variable: a
-TypeDecls0.bpl(16,18): Error: more than one declaration of type variable: a
-TypeDecls0.bpl(20,17): Error: type variable must occur in map arguments: b
-TypeDecls0.bpl(24,9): Error: type constructor received wrong number of arguments: C
-TypeDecls0.bpl(26,9): Error: undeclared type: A0
-TypeDecls0.bpl(27,9): Error: undeclared type: F
-TypeDecls0.bpl(30,9): Error: type constructor received wrong number of arguments: E
-TypeDecls0.bpl(32,9): Error: type constructor received wrong number of arguments: E
-TypeDecls0.bpl(34,9): Error: type constructor received wrong number of arguments: E
-TypeDecls0.bpl(40,11): Error: type constructor received wrong number of arguments: E
-TypeDecls0.bpl(40,13): Error: type constructor received wrong number of arguments: E
-12 name resolution errors detected in TypeDecls0.bpl
-TypeDecls1.bpl(9,13): Error: invalid type for argument 0 in map select: int (expected: <b>[b]a)
-TypeDecls1.bpl(15,25): Error: right-hand side in map store with wrong type: int (expected: bool)
-TypeDecls1.bpl(21,36): Error: invalid type for argument 0 in map select: <c>[c]c (expected: <b>[b]a)
-TypeDecls1.bpl(23,13): Error: invalid type for argument 0 in map select: <a>[<b>[b]a]bool (expected: <b>[b]a)
-4 type checking errors detected in TypeDecls1.bpl
-Prog0.bpl(19,10): Error: type variable must occur in map arguments: a
-Prog0.bpl(31,27): Error: more than one declaration of type variable: beta
-Prog0.bpl(34,22): Error: undeclared type: alpha
-Prog0.bpl(35,35): Error: undeclared type: alpha
-4 name resolution errors detected in Prog0.bpl
-Prog1.bpl(20,11): Error: invalid type for argument 0 in map select: int (expected: ref)
-Prog1.bpl(21,14): Error: invalid type for argument 1 in map select: int (expected: Field a)
-Prog1.bpl(22,17): Error: invalid argument types (bool and int) to binary operator >=
-3 type checking errors detected in Prog1.bpl
-Prog2.bpl(8,14): Error: trigger does not mention alpha, which does not occur in variables types either
-1 type checking errors detected in Prog2.bpl
-PolyFuns0.bpl(25,33): Error: invalid type for argument 1 in application of fieldValue: ref (expected: Field a)
-PolyFuns0.bpl(42,18): Error: invalid type for argument 1 in application of lessThan: bool (expected: a)
-PolyFuns0.bpl(43,43): Error: invalid type for argument 1 in application of lessThan: b (expected: a)
-PolyFuns0.bpl(55,55): Error: invalid argument types (<c>[Field c]a and <d>[Field d]d) to binary operator ==
-4 type checking errors detected in PolyFuns0.bpl
-PolyFuns1.bpl(12,9): Error: invalid type for argument 0 in application of F: <c>[c]c (expected: <b>[b]a)
-PolyFuns1.bpl(13,9): Error: invalid type for argument 0 in map select: <c>[c]c (expected: <b>[b]a)
-PolyFuns1.bpl(14,31): Error: invalid type for argument 0 in application of F: <c>[c]c (expected: <b>[b]a)
-PolyFuns1.bpl(15,31): Error: invalid type for argument 0 in map select: <c>[c]c (expected: <b>[b]a)
-PolyFuns1.bpl(19,55): Error: invalid argument types (<c>[Field c]a and <d>[Field d]d) to binary operator ==
-PolyFuns1.bpl(20,55): Error: invalid argument types (<c>[Field c]a and <d>[Field d]d) to binary operator ==
-PolyFuns1.bpl(30,11): Error: invalid type for argument 0 in call to Uhu: <dd>[Field dd]dd (expected: <c>[Field c]a)
-PolyFuns1.bpl(31,15): Error: invalid type for argument 1 in call to Uhu: <cc>[Field cc]T (expected: <d>[Field d]d)
-PolyFuns1.bpl(32,12): Error: invalid argument types (<cc>[Field cc]T and <dd>[Field dd]dd) to binary operator ==
-PolyFuns1.bpl(33,12): Error: invalid argument types (<dd>[Field dd]dd and <cc>[Field cc]T) to binary operator ==
-PolyFuns1.bpl(35,15): Error: invalid type for argument 1 in call to Uhu: <ee>[Field T]ee (expected: <d>[Field d]d)
-PolyFuns1.bpl(43,11): Error: invalid argument types (<a>[a,a]int and <b>[b,int]int) to binary operator ==
-PolyFuns1.bpl(44,11): Error: invalid argument types (<b>[b,int]int and <c>[int,c]int) to binary operator ==
-PolyFuns1.bpl(45,11): Error: invalid argument types (<a>[a,a]int and <c>[int,c]int) to binary operator ==
-PolyFuns1.bpl(52,11): Error: invalid argument types (<a,b>[a,a,b]int and <a,b>[a,b,b]int) to binary operator ==
-PolyFuns1.bpl(59,54): Error: invalid argument types (Field b and NagainCtor b) to binary operator ==
-16 type checking errors detected in PolyFuns1.bpl
-PolyProcs0.bpl(13,16): Error: invalid type for argument 0 in map select: Field b (expected: ref)
-PolyProcs0.bpl(13,19): Error: invalid type for argument 1 in map select: ref (expected: Field a)
-PolyProcs0.bpl(23,30): Error: invalid type for argument 1 in call to FieldAccess: Field int (expected: ref)
-PolyProcs0.bpl(23,34): Error: invalid type for argument 2 in call to FieldAccess: ref (expected: Field b)
-PolyProcs0.bpl(27,7): Error: invalid type for out-parameter 0 in call to FieldAccess: bool (expected: int)
-PolyProcs0.bpl(28,35): Error: invalid type for argument 2 in call to FieldAccess: ref (expected: Field b)
-6 type checking errors detected in PolyProcs0.bpl
-TypeSynonyms0.bpl(13,5): Error: type synonym could not be resolved because of cycles: Cyclic0 (replacing body with "bool" to continue resolving)
-TypeSynonyms0.bpl(14,5): Error: type synonym could not be resolved because of cycles: Cyclic1 (replacing body with "bool" to continue resolving)
-TypeSynonyms0.bpl(16,5): Error: type synonym could not be resolved because of cycles: AlsoCyclic (replacing body with "bool" to continue resolving)
-TypeSynonyms0.bpl(26,10): Error: type constructor received wrong number of arguments: Field
-TypeSynonyms0.bpl(27,10): Error: type synonym received wrong number of arguments: Set
-TypeSynonyms0.bpl(30,10): Error: type variable must occur in map arguments: a
-6 name resolution errors detected in TypeSynonyms0.bpl
-TypeSynonyms1.bpl(48,8): Error: invalid type for argument 0 in application of h: <b>[b,b,<b2>[b2,b,int]int]int (expected: nested2)
-1 type checking errors detected in TypeSynonyms1.bpl
-
-Boogie program verifier finished with 1 verified, 0 errors
-
-type Set a = [a]bool;
-
-type Field _;
-
-type Heap = <a>[ref,Field a]a;
-
-type notAllParams a b = Field b;
-
-type Cyclic0 = Cyclic1;
-
-type Cyclic1 = Cyclic0;
-
-type AlsoCyclic a = <b>[AlsoCyclic b]int;
-
-type C _ _;
-
-type C2 b a = C a b;
-
-function f(C int bool) : int;
-
-const x: C2 bool int;
-
-const y: Field int bool;
-
-const z: Set int bool;
-
-const d: <a,b>[notAllParams a b]int;
-
-type ref;
-<console>(10,-1): Error: type synonym could not be resolved because of cycles: Cyclic0 (replacing body with "bool" to continue resolving)
-<console>(12,-1): Error: type synonym could not be resolved because of cycles: Cyclic1 (replacing body with "bool" to continue resolving)
-<console>(14,-1): Error: type synonym could not be resolved because of cycles: AlsoCyclic (replacing body with "bool" to continue resolving)
-<console>(24,8): Error: type constructor received wrong number of arguments: Field
-<console>(26,8): Error: type synonym received wrong number of arguments: Set
-<console>(28,8): Error: type variable must occur in map arguments: a
-6 name resolution errors detected in TypeSynonyms0.bpl
-
-type Set a = [a]bool;
-
-function union<a>(x: Set a, y: Set a) : Set a;
-
-axiom (forall<a> x: Set a, y: Set a, z: a :: (x[z] || y[z]) == union(x, y)[z]);
-
-const intSet0: Set int;
-
-axiom (forall x: int :: intSet0[x] == (x == 0 || x == 2 || x == 3));
-
-const intSet1: Set int;
-
-axiom (forall x: int :: intSet1[x] == (x == -5 || x == 3));
-
-procedure P();
-
-
-
-implementation P()
-{
- assert (forall x: int :: union(intSet0, intSet1)[x] == (x == -5 || x == 0 || x == 2 || x == 3));
-}
-
-
-
-type Set a = [a]bool;
-
-function union<a>(x: Set a, y: Set a) : Set a;
-
-axiom (forall<a> x: Set a, y: Set a, z: a :: x[z] || y[z] <==> union(x, y)[z]);
-
-const intSet0: Set int;
-
-axiom (forall x: int :: intSet0[x] <==> x == 0 || x == 2 || x == 3);
-
-const intSet1: Set int;
-
-axiom (forall x: int :: intSet1[x] <==> x == -5 || x == 3);
-
-procedure P();
-
-
-
-implementation P()
-{
- assert (forall x: int :: union(intSet0, intSet1)[x] <==> x == -5 || x == 0 || x == 2 || x == 3);
-}
-
-
-
-Boogie program verifier finished with 0 verified, 0 errors
-PolyPolyPoly.bpl(14,26): Error: invalid argument types ([]? and <a>[]C a) to binary operator ==
-PolyPolyPoly.bpl(17,23): Error: invalid argument types ([]? and <a>[]C a) to binary operator ==
-PolyPolyPoly.bpl(23,57): Error: invalid type for argument 1 in map select: b (expected: a)
-3 type checking errors detected in PolyPolyPoly.bpl
-PolyPolyPoly2.bpl(7,8): Warning: type parameter a is ambiguous, instantiating to int
-PolyPolyPoly2.bpl(9,8): Warning: type parameter a is ambiguous, instantiating to <arg0,res>[arg0]res
-PolyPolyPoly2.bpl(13,8): Warning: type parameter a is ambiguous, instantiating to bv0
-PolyPolyPoly2.bpl(13,15): Warning: type parameter a is ambiguous, instantiating to bv0
-PolyPolyPoly2.bpl(13,27): Warning: type parameter a is ambiguous, instantiating to bv17
-PolyPolyPoly2.bpl(14,8): Warning: type parameter a is ambiguous, instantiating to bv17
-PolyPolyPoly2.bpl(14,15): Warning: type parameter a is ambiguous, instantiating to bv0
-PolyPolyPoly2.bpl(24,7): Warning: type parameter a is ambiguous, instantiating to int
-PolyPolyPoly2.bpl(33,3): Warning: type parameter a is ambiguous, instantiating to int
-PolyPolyPoly2.bpl(34,3): Warning: type parameter a is ambiguous, instantiating to int
-
-Boogie program verifier finished with 0 verified, 0 errors
-ProcParamReordering.bpl(15,15): Error: mismatched type of in-parameter in implementation P: y (named b in implementation)
-ProcParamReordering.bpl(17,15): Error: mismatched number of type parameters in procedure implementation: P
-2 type checking errors detected in ProcParamReordering.bpl
-ParallelAssignment.bpl(19,2): Error: mismatched types in assignment command (cannot assign bool to int)
-ParallelAssignment.bpl(20,4): Error: invalid type for argument 0 in map assignment: bool (expected: int)
-ParallelAssignment.bpl(22,4): Error: command assigns to a global variable that is not in the enclosing procedure's modifies clause: z
-3 type checking errors detected in ParallelAssignment.bpl
-ParallelAssignment2.bpl(11,7): Error: number of left-hand sides does not match number of right-hand sides
-ParallelAssignment2.bpl(12,9): Error: variable a is assigned more than once in parallel assignment
-2 name resolution errors detected in ParallelAssignment2.bpl
-Coercions.bpl(13,8): Error: int cannot be coerced to E <a>[a]int
-Coercions.bpl(15,8): Error: C cannot be coerced to D
-Coercions.bpl(17,9): Error: int cannot be coerced to D
-Coercions.bpl(18,9): Error: int cannot be coerced to E int
-4 type checking errors detected in Coercions.bpl
-
-Boogie program verifier finished with 0 verified, 0 errors
diff --git a/Test/test20/runtest.bat b/Test/test20/runtest.bat
deleted file mode 100644
index 0e607a1f..00000000
--- a/Test/test20/runtest.bat
+++ /dev/null
@@ -1,26 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-rem set BGEXE=mono ..\..\Binaries\Boogie.exe
-
-%BGEXE% %* /noVerify TypeDecls0.bpl
-%BGEXE% %* /noVerify TypeDecls1.bpl
-%BGEXE% %* /noVerify Prog0.bpl
-%BGEXE% %* /noVerify Prog1.bpl
-%BGEXE% %* /noVerify Prog2.bpl
-%BGEXE% %* /noVerify PolyFuns0.bpl
-%BGEXE% %* /noVerify PolyFuns1.bpl
-%BGEXE% %* /noVerify PolyProcs0.bpl
-%BGEXE% %* /noVerify TypeSynonyms0.bpl
-%BGEXE% %* /noVerify TypeSynonyms1.bpl
-%BGEXE% %* TypeSynonyms2.bpl
-%BGEXE% %* /noVerify /print:- /env:0 TypeSynonyms0.bpl
-%BGEXE% %* /noVerify /print:- /env:0 /printDesugared TypeSynonyms2.bpl
-%BGEXE% %* /noVerify PolyPolyPoly.bpl
-%BGEXE% %* /noVerify PolyPolyPoly2.bpl
-%BGEXE% %* /noVerify ProcParamReordering.bpl
-%BGEXE% %* /noVerify ParallelAssignment.bpl
-%BGEXE% %* /noVerify ParallelAssignment2.bpl
-%BGEXE% %* /noVerify Coercions.bpl
-%BGEXE% %* /noVerify EmptySeq.bpl
diff --git a/Test/test21/Answer b/Test/test21/Answer
deleted file mode 100644
index fba65f5f..00000000
--- a/Test/test21/Answer
+++ /dev/null
@@ -1,879 +0,0 @@
---------------------- TypeEncoding n z3types ----------------------------
---------------------- File DisjointDomains.bpl ----------------------------
-
-Boogie program verifier finished with 3 verified, 0 errors
---------------------- File DisjointDomains2.bpl ----------------------------
-DisjointDomains2.bpl(17,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(15,3): start
-DisjointDomains2.bpl(24,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(22,3): start
-
-Boogie program verifier finished with 4 verified, 2 errors
---------------------- File FunAxioms.bpl ----------------------------
-FunAxioms.bpl(36,3): Error BP5001: This assertion might not hold.
-Execution trace:
- FunAxioms.bpl(24,3): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
---------------------- File FunAxioms2.bpl ----------------------------
-FunAxioms2.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- FunAxioms2.bpl(22,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File PolyList.bpl ----------------------------
-PolyList.bpl(48,3): Error BP5001: This assertion might not hold.
-Execution trace:
- PolyList.bpl(33,7): anon0
-PolyList.bpl(66,3): Error BP5001: This assertion might not hold.
-Execution trace:
- PolyList.bpl(55,7): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File Maps0.bpl ----------------------------
-Maps0.bpl(29,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps0.bpl(20,3): anon0
-Maps0.bpl(52,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps0.bpl(47,9): anon0
-Maps0.bpl(55,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps0.bpl(47,9): anon0
-Maps0.bpl(58,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps0.bpl(47,9): anon0
-Maps0.bpl(59,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps0.bpl(47,9): anon0
-
-Boogie program verifier finished with 1 verified, 5 errors
---------------------- File Maps1.bpl ----------------------------
-Maps1.bpl(32,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps1.bpl(25,3): anon0
-Maps1.bpl(37,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps1.bpl(25,3): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File InterestingExamples0.bpl ----------------------------
-InterestingExamples0.bpl(13,1): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples0.bpl(11,6): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File InterestingExamples1.bpl ----------------------------
-InterestingExamples1.bpl(22,3): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples1.bpl(19,5): anon0
-InterestingExamples1.bpl(28,3): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples1.bpl(19,5): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File InterestingExamples2.bpl ----------------------------
-InterestingExamples2.bpl(15,1): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples2.bpl(14,6): anon0
-InterestingExamples2.bpl(16,1): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples2.bpl(14,6): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File InterestingExamples3.bpl ----------------------------
-InterestingExamples3.bpl(21,2): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples3.bpl(19,2): anon0
-
-Boogie program verifier finished with 2 verified, 1 error
---------------------- File InterestingExamples4.bpl ----------------------------
-InterestingExamples4.bpl(42,3): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples4.bpl(42,3): anon0
-InterestingExamples4.bpl(45,3): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples4.bpl(42,3): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File InterestingExamples5.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File Colors.bpl ----------------------------
-Colors.bpl(19,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Colors.bpl(18,3): anon0
-Colors.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Colors.bpl(25,3): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File HeapAbstraction.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File HeapAxiom.bpl ----------------------------
-HeapAxiom.bpl(30,3): Error BP5001: This assertion might not hold.
-Execution trace:
- HeapAxiom.bpl(19,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Triggers0.bpl ----------------------------
-Triggers0.bpl(45,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Triggers0.bpl(45,3): anon0
-Triggers0.bpl(49,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Triggers0.bpl(45,3): anon0
-
-Boogie program verifier finished with 1 verified, 2 errors
---------------------- File Triggers1.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File Keywords.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File Casts.bpl ----------------------------
-Casts.bpl(16,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Casts.bpl(12,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File BooleanQuantification.bpl ----------------------------
-BooleanQuantification.bpl(25,3): Error BP5001: This assertion might not hold.
-Execution trace:
- BooleanQuantification.bpl(24,3): anon0
-BooleanQuantification.bpl(37,3): Error BP5001: This assertion might not hold.
-Execution trace:
- BooleanQuantification.bpl(35,3): anon0
-
-Boogie program verifier finished with 2 verified, 2 errors
---------------------- File EmptyList.bpl ----------------------------
-EmptyList.bpl(52,9): Warning: type parameter a is ambiguous, instantiating to List int
-EmptyList.bpl(34,3): Error BP5001: This assertion might not hold.
-Execution trace:
- EmptyList.bpl(32,5): anon0
-EmptyList.bpl(48,3): Error BP5001: This assertion might not hold.
-Execution trace:
- EmptyList.bpl(32,5): anon0
-EmptyList.bpl(52,3): Error BP5001: This assertion might not hold.
-Execution trace:
- EmptyList.bpl(52,3): anon0
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File Boxing.bpl ----------------------------
-Boxing.bpl(25,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Boxing.bpl(21,6): anon0
-Boxing.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Boxing.bpl(21,6): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File MapOutputTypeParams.bpl ----------------------------
-MapOutputTypeParams.bpl(35,3): Warning: type parameter a is ambiguous, instantiating to int
-MapOutputTypeParams.bpl(18,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MapOutputTypeParams.bpl(13,9): anon0
-MapOutputTypeParams.bpl(19,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MapOutputTypeParams.bpl(13,9): anon0
-MapOutputTypeParams.bpl(29,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MapOutputTypeParams.bpl(25,9): anon0
-MapOutputTypeParams.bpl(30,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MapOutputTypeParams.bpl(25,9): anon0
-MapOutputTypeParams.bpl(37,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MapOutputTypeParams.bpl(34,8): anon0
-MapOutputTypeParams.bpl(38,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MapOutputTypeParams.bpl(34,8): anon0
-
-Boogie program verifier finished with 0 verified, 6 errors
---------------------- File ParallelAssignment.bpl ----------------------------
-ParallelAssignment.bpl(32,3): Error BP5001: This assertion might not hold.
-Execution trace:
- ParallelAssignment.bpl(21,5): anon0
-ParallelAssignment.bpl(41,3): Error BP5001: This assertion might not hold.
-Execution trace:
- ParallelAssignment.bpl(21,5): anon0
-ParallelAssignment.bpl(60,3): Error BP5001: This assertion might not hold.
-Execution trace:
- ParallelAssignment.bpl(46,11): anon0
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File BooleanQuantification2.bpl ----------------------------
-BooleanQuantification2.bpl(19,3): Error BP5001: This assertion might not hold.
-Execution trace:
- BooleanQuantification2.bpl(16,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Flattening.bpl ----------------------------
-Flattening.bpl(18,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Flattening.bpl(18,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Orderings.bpl ----------------------------
-Orderings.bpl(20,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings.bpl(15,3): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
---------------------- File Orderings2.bpl ----------------------------
-Orderings2.bpl(23,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings2.bpl(18,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Orderings3.bpl ----------------------------
-Orderings3.bpl(35,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings3.bpl(21,3): anon0
-Orderings3.bpl(40,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings3.bpl(40,3): anon0
-Orderings3.bpl(42,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings3.bpl(40,3): anon0
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File Orderings4.bpl ----------------------------
-Orderings4.bpl(16,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings4.bpl(15,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File EmptySetBug.bpl ----------------------------
-EmptySetBug.bpl(33,3): Error BP5001: This assertion might not hold.
-Execution trace:
- EmptySetBug.bpl(31,5): anon0
-EmptySetBug.bpl(35,3): Error BP5001: This assertion might not hold.
-Execution trace:
- EmptySetBug.bpl(31,5): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File Coercions2.bpl ----------------------------
-Coercions2.bpl(18,23): Warning: type parameter a is ambiguous, instantiating to int
-Coercions2.bpl(24,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Coercions2.bpl(24,3): anon0
-Coercions2.bpl(29,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Coercions2.bpl(24,3): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File MapAxiomsConsistency.bpl ----------------------------
-MapAxiomsConsistency.bpl(100,5): Error BP5001: This assertion might not hold.
-Execution trace:
- MapAxiomsConsistency.bpl(85,13): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File LargeLiterals0.bpl ----------------------------
-LargeLiterals0.bpl(24,3): Error BP5001: This assertion might not hold.
-Execution trace:
- LargeLiterals0.bpl(13,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Real.bpl ----------------------------
-Real.bpl(32,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Real.bpl(29,5): anon0
- Real.bpl(32,5): anon3_Then
-Real.bpl(47,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Real.bpl(40,3): anon0
- Real.bpl(47,5): anon3_Else
-
-Boogie program verifier finished with 2 verified, 2 errors
---------------------- File NameClash.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File Keywords.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File LargeLiterals0.bpl ----------------------------
-LargeLiterals0.bpl(24,3): Error BP5001: This assertion might not hold.
-Execution trace:
- LargeLiterals0.bpl(13,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File LetSorting.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- TypeEncoding p z3types ----------------------------
---------------------- File DisjointDomains.bpl ----------------------------
-DisjointDomains.bpl(20,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains.bpl(17,3): start
-DisjointDomains.bpl(27,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains.bpl(26,3): start
-DisjointDomains.bpl(33,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains.bpl(32,3): start
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File DisjointDomains2.bpl ----------------------------
-DisjointDomains2.bpl(17,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(15,3): start
-DisjointDomains2.bpl(24,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(22,3): start
-DisjointDomains2.bpl(38,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(36,3): start
-DisjointDomains2.bpl(45,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(43,3): start
-DisjointDomains2.bpl(55,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(51,3): start
-DisjointDomains2.bpl(69,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(64,3): start
-
-Boogie program verifier finished with 0 verified, 6 errors
---------------------- File FunAxioms.bpl ----------------------------
-FunAxioms.bpl(36,3): Error BP5001: This assertion might not hold.
-Execution trace:
- FunAxioms.bpl(24,3): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
---------------------- File FunAxioms2.bpl ----------------------------
-FunAxioms2.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- FunAxioms2.bpl(22,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File PolyList.bpl ----------------------------
-PolyList.bpl(48,3): Error BP5001: This assertion might not hold.
-Execution trace:
- PolyList.bpl(33,7): anon0
-PolyList.bpl(66,3): Error BP5001: This assertion might not hold.
-Execution trace:
- PolyList.bpl(55,7): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File Maps0.bpl ----------------------------
-Maps0.bpl(29,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps0.bpl(20,3): anon0
-Maps0.bpl(38,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps0.bpl(38,3): anon0
-Maps0.bpl(59,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps0.bpl(47,9): anon0
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File Maps1.bpl ----------------------------
-Maps1.bpl(37,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps1.bpl(25,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File InterestingExamples0.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File InterestingExamples1.bpl ----------------------------
-InterestingExamples1.bpl(28,3): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples1.bpl(19,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File InterestingExamples2.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File InterestingExamples3.bpl ----------------------------
-InterestingExamples3.bpl(21,2): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples3.bpl(19,2): anon0
-
-Boogie program verifier finished with 2 verified, 1 error
---------------------- File InterestingExamples4.bpl ----------------------------
-InterestingExamples4.bpl(45,3): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples4.bpl(42,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File InterestingExamples5.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File Colors.bpl ----------------------------
-Colors.bpl(19,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Colors.bpl(18,3): anon0
-Colors.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Colors.bpl(25,3): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File HeapAbstraction.bpl ----------------------------
-HeapAbstraction.bpl(21,3): Error BP5001: This assertion might not hold.
-Execution trace:
- HeapAbstraction.bpl(20,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File HeapAxiom.bpl ----------------------------
-HeapAxiom.bpl(30,3): Error BP5001: This assertion might not hold.
-Execution trace:
- HeapAxiom.bpl(19,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Triggers0.bpl ----------------------------
-Triggers0.bpl(45,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Triggers0.bpl(45,3): anon0
-Triggers0.bpl(49,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Triggers0.bpl(45,3): anon0
-
-Boogie program verifier finished with 1 verified, 2 errors
---------------------- File Triggers1.bpl ----------------------------
-Triggers1.bpl(22,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Triggers1.bpl(18,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Keywords.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File Casts.bpl ----------------------------
-Casts.bpl(16,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Casts.bpl(12,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File BooleanQuantification.bpl ----------------------------
-BooleanQuantification.bpl(25,3): Error BP5001: This assertion might not hold.
-Execution trace:
- BooleanQuantification.bpl(24,3): anon0
-BooleanQuantification.bpl(37,3): Error BP5001: This assertion might not hold.
-Execution trace:
- BooleanQuantification.bpl(35,3): anon0
-
-Boogie program verifier finished with 2 verified, 2 errors
---------------------- File EmptyList.bpl ----------------------------
-EmptyList.bpl(52,9): Warning: type parameter a is ambiguous, instantiating to List int
-EmptyList.bpl(48,3): Error BP5001: This assertion might not hold.
-Execution trace:
- EmptyList.bpl(32,5): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
---------------------- File Boxing.bpl ----------------------------
-Boxing.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Boxing.bpl(21,6): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File MapOutputTypeParams.bpl ----------------------------
-MapOutputTypeParams.bpl(35,3): Warning: type parameter a is ambiguous, instantiating to int
-MapOutputTypeParams.bpl(19,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MapOutputTypeParams.bpl(13,9): anon0
-MapOutputTypeParams.bpl(30,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MapOutputTypeParams.bpl(25,9): anon0
-MapOutputTypeParams.bpl(38,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MapOutputTypeParams.bpl(34,8): anon0
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File ParallelAssignment.bpl ----------------------------
-ParallelAssignment.bpl(32,3): Error BP5001: This assertion might not hold.
-Execution trace:
- ParallelAssignment.bpl(21,5): anon0
-ParallelAssignment.bpl(41,3): Error BP5001: This assertion might not hold.
-Execution trace:
- ParallelAssignment.bpl(21,5): anon0
-ParallelAssignment.bpl(60,3): Error BP5001: This assertion might not hold.
-Execution trace:
- ParallelAssignment.bpl(46,11): anon0
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File BooleanQuantification2.bpl ----------------------------
-BooleanQuantification2.bpl(19,3): Error BP5001: This assertion might not hold.
-Execution trace:
- BooleanQuantification2.bpl(16,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Flattening.bpl ----------------------------
-Flattening.bpl(18,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Flattening.bpl(18,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Orderings.bpl ----------------------------
-Orderings.bpl(20,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings.bpl(15,3): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
---------------------- File Orderings2.bpl ----------------------------
-Orderings2.bpl(23,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings2.bpl(18,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Orderings3.bpl ----------------------------
-Orderings3.bpl(35,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings3.bpl(21,3): anon0
-Orderings3.bpl(40,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings3.bpl(40,3): anon0
-Orderings3.bpl(42,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings3.bpl(40,3): anon0
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File Orderings4.bpl ----------------------------
-Orderings4.bpl(16,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings4.bpl(15,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File EmptySetBug.bpl ----------------------------
-EmptySetBug.bpl(35,3): Error BP5001: This assertion might not hold.
-Execution trace:
- EmptySetBug.bpl(31,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Coercions2.bpl ----------------------------
-Coercions2.bpl(18,23): Warning: type parameter a is ambiguous, instantiating to int
-Coercions2.bpl(29,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Coercions2.bpl(24,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File MapAxiomsConsistency.bpl ----------------------------
-MapAxiomsConsistency.bpl(100,5): Error BP5001: This assertion might not hold.
-Execution trace:
- MapAxiomsConsistency.bpl(85,13): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File LargeLiterals0.bpl ----------------------------
-LargeLiterals0.bpl(24,3): Error BP5001: This assertion might not hold.
-Execution trace:
- LargeLiterals0.bpl(13,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Real.bpl ----------------------------
-Real.bpl(32,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Real.bpl(29,5): anon0
- Real.bpl(32,5): anon3_Then
-Real.bpl(47,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Real.bpl(40,3): anon0
- Real.bpl(47,5): anon3_Else
-
-Boogie program verifier finished with 2 verified, 2 errors
---------------------- File NameClash.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File Keywords.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File LargeLiterals0.bpl ----------------------------
-LargeLiterals0.bpl(24,3): Error BP5001: This assertion might not hold.
-Execution trace:
- LargeLiterals0.bpl(13,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File LetSorting.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- TypeEncoding a z3types ----------------------------
---------------------- File DisjointDomains.bpl ----------------------------
-DisjointDomains.bpl(20,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains.bpl(17,3): start
-DisjointDomains.bpl(27,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains.bpl(26,3): start
-DisjointDomains.bpl(33,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains.bpl(32,3): start
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File DisjointDomains2.bpl ----------------------------
-DisjointDomains2.bpl(17,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(15,3): start
-DisjointDomains2.bpl(24,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(22,3): start
-DisjointDomains2.bpl(38,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(36,3): start
-DisjointDomains2.bpl(45,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(43,3): start
-DisjointDomains2.bpl(55,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(51,3): start
-DisjointDomains2.bpl(69,5): Error BP5001: This assertion might not hold.
-Execution trace:
- DisjointDomains2.bpl(64,3): start
-
-Boogie program verifier finished with 0 verified, 6 errors
---------------------- File FunAxioms.bpl ----------------------------
-FunAxioms.bpl(36,3): Error BP5001: This assertion might not hold.
-Execution trace:
- FunAxioms.bpl(24,3): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
---------------------- File FunAxioms2.bpl ----------------------------
-FunAxioms2.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- FunAxioms2.bpl(22,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File PolyList.bpl ----------------------------
-PolyList.bpl(48,3): Error BP5001: This assertion might not hold.
-Execution trace:
- PolyList.bpl(33,7): anon0
-PolyList.bpl(66,3): Error BP5001: This assertion might not hold.
-Execution trace:
- PolyList.bpl(55,7): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File Maps0.bpl ----------------------------
-Maps0.bpl(29,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps0.bpl(20,3): anon0
-Maps0.bpl(38,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps0.bpl(38,3): anon0
-Maps0.bpl(59,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps0.bpl(47,9): anon0
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File Maps1.bpl ----------------------------
-Maps1.bpl(37,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Maps1.bpl(25,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File InterestingExamples0.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File InterestingExamples1.bpl ----------------------------
-InterestingExamples1.bpl(28,3): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples1.bpl(19,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File InterestingExamples2.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File InterestingExamples3.bpl ----------------------------
-InterestingExamples3.bpl(21,2): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples3.bpl(19,2): anon0
-
-Boogie program verifier finished with 2 verified, 1 error
---------------------- File InterestingExamples4.bpl ----------------------------
-InterestingExamples4.bpl(42,3): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples4.bpl(42,3): anon0
-InterestingExamples4.bpl(45,3): Error BP5001: This assertion might not hold.
-Execution trace:
- InterestingExamples4.bpl(42,3): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File InterestingExamples5.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File Colors.bpl ----------------------------
-Colors.bpl(19,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Colors.bpl(18,3): anon0
-Colors.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Colors.bpl(25,3): anon0
-
-Boogie program verifier finished with 0 verified, 2 errors
---------------------- File HeapAbstraction.bpl ----------------------------
-HeapAbstraction.bpl(21,3): Error BP5001: This assertion might not hold.
-Execution trace:
- HeapAbstraction.bpl(20,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File HeapAxiom.bpl ----------------------------
-HeapAxiom.bpl(30,3): Error BP5001: This assertion might not hold.
-Execution trace:
- HeapAxiom.bpl(19,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Triggers0.bpl ----------------------------
-Triggers0.bpl(45,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Triggers0.bpl(45,3): anon0
-Triggers0.bpl(49,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Triggers0.bpl(45,3): anon0
-
-Boogie program verifier finished with 1 verified, 2 errors
---------------------- File Triggers1.bpl ----------------------------
-Triggers1.bpl(22,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Triggers1.bpl(18,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Keywords.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File Casts.bpl ----------------------------
-Casts.bpl(16,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Casts.bpl(12,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File BooleanQuantification.bpl ----------------------------
-BooleanQuantification.bpl(25,3): Error BP5001: This assertion might not hold.
-Execution trace:
- BooleanQuantification.bpl(24,3): anon0
-BooleanQuantification.bpl(37,3): Error BP5001: This assertion might not hold.
-Execution trace:
- BooleanQuantification.bpl(35,3): anon0
-
-Boogie program verifier finished with 2 verified, 2 errors
---------------------- File EmptyList.bpl ----------------------------
-EmptyList.bpl(52,9): Warning: type parameter a is ambiguous, instantiating to List int
-EmptyList.bpl(48,3): Error BP5001: This assertion might not hold.
-Execution trace:
- EmptyList.bpl(32,5): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
---------------------- File Boxing.bpl ----------------------------
-Boxing.bpl(26,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Boxing.bpl(21,6): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File MapOutputTypeParams.bpl ----------------------------
-MapOutputTypeParams.bpl(35,3): Warning: type parameter a is ambiguous, instantiating to int
-MapOutputTypeParams.bpl(19,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MapOutputTypeParams.bpl(13,9): anon0
-MapOutputTypeParams.bpl(30,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MapOutputTypeParams.bpl(25,9): anon0
-MapOutputTypeParams.bpl(38,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MapOutputTypeParams.bpl(34,8): anon0
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File ParallelAssignment.bpl ----------------------------
-ParallelAssignment.bpl(32,3): Error BP5001: This assertion might not hold.
-Execution trace:
- ParallelAssignment.bpl(21,5): anon0
-ParallelAssignment.bpl(41,3): Error BP5001: This assertion might not hold.
-Execution trace:
- ParallelAssignment.bpl(21,5): anon0
-ParallelAssignment.bpl(60,3): Error BP5001: This assertion might not hold.
-Execution trace:
- ParallelAssignment.bpl(46,11): anon0
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File BooleanQuantification2.bpl ----------------------------
-BooleanQuantification2.bpl(19,3): Error BP5001: This assertion might not hold.
-Execution trace:
- BooleanQuantification2.bpl(16,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Flattening.bpl ----------------------------
-Flattening.bpl(18,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Flattening.bpl(18,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Orderings.bpl ----------------------------
-Orderings.bpl(20,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings.bpl(15,3): anon0
-
-Boogie program verifier finished with 1 verified, 1 error
---------------------- File Orderings2.bpl ----------------------------
-Orderings2.bpl(23,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings2.bpl(18,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Orderings3.bpl ----------------------------
-Orderings3.bpl(35,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings3.bpl(21,3): anon0
-Orderings3.bpl(40,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings3.bpl(40,3): anon0
-Orderings3.bpl(42,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings3.bpl(40,3): anon0
-
-Boogie program verifier finished with 0 verified, 3 errors
---------------------- File Orderings4.bpl ----------------------------
-Orderings4.bpl(16,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Orderings4.bpl(15,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File EmptySetBug.bpl ----------------------------
-EmptySetBug.bpl(35,3): Error BP5001: This assertion might not hold.
-Execution trace:
- EmptySetBug.bpl(31,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Coercions2.bpl ----------------------------
-Coercions2.bpl(18,23): Warning: type parameter a is ambiguous, instantiating to int
-Coercions2.bpl(29,3): Error BP5001: This assertion might not hold.
-Execution trace:
- Coercions2.bpl(24,3): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File MapAxiomsConsistency.bpl ----------------------------
-MapAxiomsConsistency.bpl(100,5): Error BP5001: This assertion might not hold.
-Execution trace:
- MapAxiomsConsistency.bpl(85,13): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File LargeLiterals0.bpl ----------------------------
-LargeLiterals0.bpl(24,3): Error BP5001: This assertion might not hold.
-Execution trace:
- LargeLiterals0.bpl(13,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File Real.bpl ----------------------------
-Real.bpl(32,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Real.bpl(29,5): anon0
- Real.bpl(32,5): anon3_Then
-Real.bpl(47,5): Error BP5001: This assertion might not hold.
-Execution trace:
- Real.bpl(40,3): anon0
- Real.bpl(47,5): anon3_Else
-
-Boogie program verifier finished with 2 verified, 2 errors
---------------------- File NameClash.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File Keywords.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
---------------------- File LargeLiterals0.bpl ----------------------------
-LargeLiterals0.bpl(24,3): Error BP5001: This assertion might not hold.
-Execution trace:
- LargeLiterals0.bpl(13,5): anon0
-
-Boogie program verifier finished with 0 verified, 1 error
---------------------- File LetSorting.bpl ----------------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
diff --git a/Test/test21/runtest.bat b/Test/test21/runtest.bat
deleted file mode 100644
index bfdcc570..00000000
--- a/Test/test21/runtest.bat
+++ /dev/null
@@ -1,35 +0,0 @@
-@echo off
-setlocal
-
-set BGEXE=..\..\Binaries\Boogie.exe
-rem set BGEXE=mono ..\..\Binaries\Boogie.exe
-
-
-for %%m in (
- n p a
- ) do (
-echo --------------------- TypeEncoding %%m z3types ----------------------------
-for %%f in (DisjointDomains.bpl DisjointDomains2.bpl FunAxioms.bpl
- FunAxioms2.bpl PolyList.bpl Maps0.bpl Maps1.bpl
- InterestingExamples0.bpl InterestingExamples1.bpl InterestingExamples2.bpl
- InterestingExamples3.bpl InterestingExamples4.bpl InterestingExamples5.bpl
- Colors.bpl HeapAbstraction.bpl HeapAxiom.bpl Triggers0.bpl Triggers1.bpl
- Keywords.bpl Casts.bpl BooleanQuantification.bpl EmptyList.bpl Boxing.bpl
- MapOutputTypeParams.bpl ParallelAssignment.bpl BooleanQuantification2.bpl
- Flattening.bpl Orderings.bpl Orderings2.bpl Orderings3.bpl Orderings4.bpl
- EmptySetBug.bpl Coercions2.bpl MapAxiomsConsistency.bpl LargeLiterals0.bpl
- Real.bpl) do (
- echo --------------------- File %%f ----------------------------
- %BGEXE% %* /typeEncoding:%%m /logPrefix:0%%m %%f
-)
-
-echo --------------------- File NameClash.bpl ----------------------------
-%BGEXE% %* /typeEncoding:%%m /logPrefix:0%%m NameClash.bpl
-echo --------------------- File Keywords.bpl ----------------------------
-%BGEXE% %* /typeEncoding:%%m /logPrefix:0%%m Keywords.bpl
-echo --------------------- File LargeLiterals0.bpl ----------------------------
-%BGEXE% %* /typeEncoding:%%m /logPrefix:0%%m LargeLiterals0.bpl
-
-echo --------------------- File LetSorting.bpl ----------------------------
-%BGEXE% %* /typeEncoding:%%m /logPrefix:0%%m LetSorting.bpl
-)
diff --git a/Test/test7/Answer b/Test/test7/Answer
deleted file mode 100644
index 00b9069f..00000000
--- a/Test/test7/Answer
+++ /dev/null
@@ -1,64 +0,0 @@
------------------------------- NestedVC.bpl ---------------------
-NestedVC.bpl(17,4): Error BP5001: This assertion might not hold.
-Execution trace:
- NestedVC.bpl(16,1): A
- NestedVC.bpl(17,1): B
-
-Boogie program verifier finished with 1 verified, 1 error
------------------------------- UnreachableBlocks.bpl ---------------------
-
-Boogie program verifier finished with 4 verified, 0 errors
------------------------------- MultipleErrors.bpl ---------------------
-
------ /vc:block
-MultipleErrors.bpl(28,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MultipleErrors.bpl(24,1): start
- MultipleErrors.bpl(27,1): A
-
-Boogie program verifier finished with 0 verified, 1 error
-
------ /vc:local
-MultipleErrors.bpl(32,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MultipleErrors.bpl(31,1): B
-
-Boogie program verifier finished with 0 verified, 1 error
-
------ /vc:dag
-MultipleErrors.bpl(28,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MultipleErrors.bpl(24,1): start
- MultipleErrors.bpl(27,1): A
-
-Boogie program verifier finished with 0 verified, 1 error
-
------ /errorLimit:10 /vc:local
-MultipleErrors.bpl(28,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MultipleErrors.bpl(27,1): A
-MultipleErrors.bpl(32,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MultipleErrors.bpl(31,1): B
-MultipleErrors.bpl(36,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MultipleErrors.bpl(35,1): C
-
-Boogie program verifier finished with 0 verified, 3 errors
-
------ /errorLimit:10 /vc:dag
-MultipleErrors.bpl(28,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MultipleErrors.bpl(24,1): start
- MultipleErrors.bpl(27,1): A
-MultipleErrors.bpl(32,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MultipleErrors.bpl(24,1): start
- MultipleErrors.bpl(31,1): B
-MultipleErrors.bpl(36,3): Error BP5001: This assertion might not hold.
-Execution trace:
- MultipleErrors.bpl(24,1): start
- MultipleErrors.bpl(27,1): A
- MultipleErrors.bpl(35,1): C
-
-Boogie program verifier finished with 0 verified, 3 errors
diff --git a/Test/test7/runtest.bat b/Test/test7/runtest.bat
deleted file mode 100644
index 8da87233..00000000
--- a/Test/test7/runtest.bat
+++ /dev/null
@@ -1,34 +0,0 @@
-@echo off
-setlocal
-
-set BOOGIEDIR=..\..\Binaries
-set BGEXE=%BOOGIEDIR%\Boogie.exe
-
-echo ------------------------------ NestedVC.bpl ---------------------
-%BGEXE% %* /vc:nested NestedVC.bpl
-
-echo ------------------------------ UnreachableBlocks.bpl ---------------------
-%BGEXE% %* /vc:nested UnreachableBlocks.bpl
-
-echo ------------------------------ MultipleErrors.bpl ---------------------
-rem The following tests are rather fickle at the moment--different errors
-rem may be reported during different runs. Moreover, it is conceivable that
-rem the error trace would be reported in different orders, since we do not
-rem attempt to sort the trace labels at this time.
-rem An interesting thing is that /vc:local can with Simplify report more than one
-rem error for this file, even with /errorLimit:1. Other than that, only
-rem local and dag produce VCs to which Simplify actually produces different
-rem counterexamples.
-
-setlocal
-for %%f in (block local dag) do (
- echo.
- echo ----- /vc:%%f
- %BGEXE% %* /errorLimit:1 /errorTrace:1 /vc:%%f /logPrefix:-1%%f MultipleErrors.bpl
-)
-for %%f in (local dag) do (
- echo.
- echo ----- /errorLimit:10 /vc:%%f
- %BGEXE% %* /errorLimit:10 /errorTrace:1 /vc:%%f /logPrefix:-10%%f MultipleErrors.bpl
-)
-endlocal
diff --git a/Test/textbook/Answer b/Test/textbook/Answer
deleted file mode 100644
index 42e41c5a..00000000
--- a/Test/textbook/Answer
+++ /dev/null
@@ -1,28 +0,0 @@
-
------------------------------- Find.bpl ---------------------
-
-Boogie program verifier finished with 2 verified, 0 errors
-
------------------------------- DutchFlag.bpl ---------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
-
------------------------------- Bubble.bpl ---------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
-
------------------------------- DivMod.bpl ---------------------
-
-Boogie program verifier finished with 2 verified, 0 errors
-
------------------------------- McCarthy-91.bpl ---------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
-
------------------------------- TuringFactorial.bpl ---------------------
-
-Boogie program verifier finished with 1 verified, 0 errors
-
------------------------------- BQueue.bpl ---------------------
-
-Boogie program verifier finished with 8 verified, 0 errors
diff --git a/Test/textbook/runtest.bat b/Test/textbook/runtest.bat
deleted file mode 100644
index f43e54d9..00000000
--- a/Test/textbook/runtest.bat
+++ /dev/null
@@ -1,14 +0,0 @@
-@echo off
-
-set BOOGIEDIR=..\..\Binaries
-set BPLEXE=%BOOGIEDIR%\Boogie.exe
-
-REM ======================
-REM ====================== Examples written in Boogie
-REM ======================
-for %%f in (Find.bpl DutchFlag.bpl Bubble.bpl DivMod.bpl McCarthy-91.bpl
- TuringFactorial.bpl BQueue.bpl) do (
- echo.
- echo ------------------------------ %%f ---------------------
- %BPLEXE% %* %%f
-)