summaryrefslogtreecommitdiff
path: root/Test
Commit message (Collapse)AuthorAge
* Dafny: Support class type parameters in refinements. Added another ↵Gravatar kyessenov2010-07-02
| | | | regression test -- a sequence refined by a singly linked list.
* Dafny: added Carrol Morgan's calculator regression test.Gravatar kyessenov2010-07-02
|
* Dafny: support input/output parameters in refined methods.Gravatar kyessenov2010-07-02
|
* Dafny: added a regression test for the refinement extension.Gravatar kyessenov2010-07-02
|
* Dafny:Gravatar rustanleino2010-06-24
| | | | | * For every loop decreases clause N, generate a free loop invariant N <= N0, where N0 is the value of N just before the loop. * Added Test/dafny1/KatzManna.dfy, which contains the 3 programs (and their termination annotations) from the Katz and Manna 1975 paper "A closer look at termination" (which benefits from the feature above).
* Updated the frame files to work with the latest Coco/R. This entails *not* ↵Gravatar mikebarnett2010-06-22
| | | | | | having them in this repository because of license issues. Instead, they must be downloaded from http://boogiepartners.codeplex.com/ and then copied into the appropriate directories. Lots of code changes to compensate for the new frame files.
* Boogie:Gravatar rustanleino2010-06-22
| | | | | | | | | * Set Z3's QI_COST as the sum of "weight" and "generation", not their product. This worked better when setting the :weight of a quantifier (see below). Dafny: * Improved axiomatization of sequences; in particular, use an axiom to generate terms that say what the two pieces of a concatenation are * Two of the (previous) sequence axioms could cause a matching loop, in cases where Z3's arithmetic reasoning does not infer all rational arithmetic equalities during instantiation. The effect of this was apparently not noticed before, perhaps the concatenation/drop properties previously had to be supplied in manual assert statements. But now, with the improved sequence axiomatization (see previous bullet), this effect became remarkably noticeable. To reduce the bad effect of this apparent matching loop, Michal and I added a :weight annotation on two of the axioms, which, along with the Boogie change above, seems to give acceptable results. * Removed several assert lemmas that are no longer needed in Test programs (the test programs now contain only about a handful of such lemmas)
* Dafny:Gravatar rustanleino2010-06-19
| | | | | | * Improved design and implementation of SplitExpr * Fixed some tests in dafny0/Use.dfy * Added test case (in dafny0/Termination.dfy) to test the recent strengthening of set axioms
* Dafny:Gravatar rustanleino2010-06-14
| | | | | * changed implementation of Test/VSI-Benchmarks/b4.dfy to be more interesting (and, in particular, different from the specification) * reformatted Test/VSI-Benchmarks/b3.dfy
* Dafny: Added two additional heuristics for guessing missing loop decreases ↵Gravatar rustanleino2010-06-11
| | | | clauses (for loop guard A!=B and for loop guards with multiple conjuncts)
* Dafny: Another bug fix in SplitExpr, having to do with generic results of ↵Gravatar rustanleino2010-06-09
| | | | function calls
* Dafny: Fix type bug in SplitExpr translation.Gravatar rustanleino2010-06-08
|
* Boogie:Gravatar rustanleino2010-06-08
| | | | | | | | | * Look for Z3 versions up to 2.15 (but did not implement a better algorithm for it). * Added prover-path output as part of /trace flag (that probably isn't the best command-line option for it). Dafny: * Split off some tests from Test/dafny0 into Test/dafny1. * Added Test/dafny1/UltraFilter.dfy.
* Dafny:Gravatar rustanleino2010-06-05
| | | | | | * Fixed bug in translation of well-formedness conditions * Added Test/dafny0/Celebrity.dfy * Added a harness to Test/vacid0/Composite.dfy
* added lazyinline to the regressionsGravatar qadeer2010-05-28
|
* Dafny: Allow < and > for comparisons of datatype values (which then compares ↵Gravatar rustanleino2010-05-21
| | | | their ranks)
* Dafny:Gravatar rustanleino2010-05-21
| | | | | | | * Added arrays * Beefed up set axiomatization to know more things about set displays * Added a simple heuristic that can infer some simple decreases clauses for loops * Added Dafny solutions to a couple of VACID benchmarks
* Boogie:Gravatar rustanleino2010-05-15
| | | | | | | | | | * Added support for polymorphism in lambda expressions * Little clean-up here and there * Added 'then' keyword to emacs and latex modes Dafny: * Added support for fine-grained framing, using the back-tick syntax from Region Logic * Internally, changed checking of reads clauses to use a local variable $_Frame, analogous to the $_Frame variable used in checking modifies clauses
* Dafny:Gravatar rustanleino2010-05-13
| | | | | * Effectively make all in- and out-parameters of ghost methods ghosts. * Added DafnyRuntime.cs back in, which is needed to run Dafny programs, but which, unfortunately, is currently not being used in the test suite (something we should address)
* Dafny:Gravatar rustanleino2010-05-08
| | | | | Previously, a "use" function was one whose definition was applied only in limited ways, namely when the function was uttered in a program (possibly in a "use" statement). Now, recursive functions are always limited, unless declared with the new modifier "unlimited". Non-recursive functions are always unlimited. Also new is that only function calls within the same SCC of the call graph use the limited form of the callee. The "use" modifier is no longer supported. The "use" statement is still supported, now for both limited and unlimited functions; but it's probably better and easier to just explicitly mention a function in an assertion, if needed.
* Dafny:Gravatar rustanleino2010-05-06
| | | | | * Recoded frame axioms to be more goal directed * Added Main test driver to Test/VSI-Benchmarks/b2.dfy
* Dafny:Gravatar rustanleino2010-05-06
| | | | | | | | * First crack at a compiler (/compile:1 writes out.cs, if Dafny program verifies) * Added "print" statement (to make running compiled programs more interesting) * Changed name of default class from $default to _default Boogie: * Included "lambda" as a keyword in emacs and latex style files
* First cut of lazy inlining. The option can be turned on by the flag ↵Gravatar qadeer2010-04-17
| | | | /lazyInline:1. It is off by default. This option currently does not support loops and recursion and also does not allow assertions and specifications in inlined procedures. The usage is currently not documented.
* Dafny: Removed the previous optional curly braces in match expressions (use ↵Gravatar rustanleino2010-04-02
| | | | parens instead, when needed!).
* Dafny:Gravatar rustanleino2010-03-31
| | | | | | | * Added match statements (in addition to the previous match expressions) * Added missing axiom about boxes and datatypes * Improved axioms for datatype rank comparisons * Added test cases with mutual-recursion termination challenges
* Dafny: Ensures that function axioms are not being used while their ↵Gravatar rustanleino2010-03-19
| | | | consistency is being checked.
* Dafny:Gravatar rustanleino2010-03-18
| | | | | * Allow "decreases *" only for loops. * Cosmetic changes in SchorrWaite.dfy
* Dafny:Gravatar rustanleino2010-03-16
| | | | | | | | | | | | | | | | * Added modules with imports. These can be used to deal with termination checks without going into method/function implementations. Imports must be acyclic. * Added a default module. It contains all classes/datatypes defined outside the lexical scope of any other module. * Added a default class. It contains all class members defined outside the lexical scope of any module and class. This means that one can write small Dafny programs without any mention of a "class"! * Revised scheme for termination metrics. Inter-module calls are allowed iff they follow the import relation. Intra-module calls where the callee is in another strongly connected component of the call graph are always allowed. Intra-module calls in the same strongly connected component are verified to terminate via decreases clauses. * Removed previous hack that allowed methods with no decreases clauses not to be subjected to termination checking. * Removed or simplified decreases clauses in test suite, where possible. * Fixed error in Test/VSI-Benchmarks/b1.dfy
* Dafny:Gravatar rustanleino2010-03-16
| | | | | * Beginning of module implementation * Changed "class" modifier (for functions and methods) to "static"
* Dafny: Added definedness checks for all statements (previously, some were ↵Gravatar rustanleino2010-03-13
| | | | | | missing) Boogie: Added {:subsumption <n>} attribute to assert statements, which overrides the /subsumption command-line setting
* Added wellformedness checks to method specificationsGravatar rustanleino2010-03-12
|
* Dafny:Gravatar rustanleino2010-03-12
| | | | | * Modifies clause checking is now done with each update, instead of at the end of the method. Not only does this improve error messages, but on some examples, it gives a dramatic speed-up (2x) in proving time. * bugfix: range expressions of foreach statements were previously ignored during Translation
* Dafny:Gravatar rustanleino2010-03-11
| | | | | | * Enforce ghost vs. non-ghost separation * Allow ghost parameters and ghost locals * Functions are ghost, but allow the non-ghost "function method"
* Dafny: Added stratosphere tests for datatypes--that is, it is now checked ↵Gravatar rustanleino2010-03-11
| | | | that every datatype has some value.
* Dafny:Gravatar rustanleino2010-03-10
| | | | | * Added "decreases" clauses to methods. * Interpret the filename stdin.dfy as an indication to read the program from standard input.
* Boogie:Gravatar rustanleino2010-02-20
| | | | | | | | | | | * Bug fix: Changed checking of postconditions to follow the order in which ensures clauses are given (not reverse order, as was previously the case) * Added command-line option (/instrumentInfer) that decides how to instrument the Boogie program with inferred invariants. Previously, the only option was to instrument at the beginning and end of every basic block. The new option, which is now the default, is to instrument only at the beginning of loop heads. * Add empty blocks between other blocks only as needed, and try a little harder to retain source information when blocks are peep-hole optimized * Renamed flag /noRemoveEmptyBlocks to /removeEmptyBlocks:<c> where <c> is 0 or 1 Boogie refactoring: * Removed LoopPredicate class and related classes and methods left over from when (back in the Zap 2 days) we supported loop invariants on demand * Cleaned up some parsing of command-line options
* Fix up the polymorphic case for lambda; it probably still isn't quite correct.Gravatar MichalMoskal2010-02-19
|
* Split parts of AbsyExpr.ssc into AbsyQuant.ssc. Implement lambda ↵Gravatar MichalMoskal2010-02-19
| | | | expressions; they might not yet fully work for polymorphic maps.
* Implement if-then-else expression.Gravatar MichalMoskal2010-02-18
|
* Implemented block coalescing invoked right after type checking.Gravatar qadeer2010-02-16
| | | | Controlled by the option /coalesceBlocks (default is to perform the optimization).
* eliminated the line printing version number in the golden outputGravatar qadeer2010-02-13
|
* Dafny:Gravatar rustanleino2010-02-13
| | | | | | * Allow ghost methods (all "ghost" keywords are currently parsed and then ignored) * Improved and made more automatic the treatment of "use" functions (a good next step would be to automatically infer which functions would make good "use" functions) * Include preconditions in all definedness checks of function-call expressions
* (no commit message)Gravatar qadeer2010-02-12
|
* Dafny: Added if-then-else expressions (replacing and extending the previous ↵Gravatar rustanleino2010-02-04
| | | | | | | | boolean-only if-then-else expressions) Dafny: Added 'class' functions and methods (i.e., functions and methods with a receiver parameter) Dafny grammar changes: Tthe 'use' keyword now goes before 'function' (akin to 'ghost' and 'class'), and quantifier triggers now go before the '::' Dafny: Check for division-by-zero for both '/' and '%'
* Fixed the implementation of inlining to deal with inlining depth properly.Gravatar qadeer2010-01-30
|
* Added experimental feature /DoomDebug. Can be test using ↵Gravatar schaef2010-01-28
| | | | Test/doomed/doomdebug.bpl
* Dafny: updated to reflect Boogie's new parsing of function argumentsGravatar rustanleino2010-01-07
|
* Doomed checking now uses the counterexample trace to minimize the number of ↵Gravatar schaef2009-12-18
| | | | theorem prover calls (See useCE in notdoomed.bpl).
* Allow ":" in addition to "returns" in function definitions. Make the ↵Gravatar MichalMoskal2009-12-17
| | | | | | | | pretty-printer use ":" not "returns". Allow foo(x,y,z:int,p,q:ptr) kind of syntax in function definitions. Consequently foo(int,y:bool) is no longer allowed. Update the testsuite to match that.
* Add makefile for running tests, allows "make -j4" to utilize multiple cores.Gravatar MichalMoskal2009-12-17
| | | | | Change the runtest.bat to report the testname in "succeeded/failed" message, so one can make sense of the multiple core output.