summaryrefslogtreecommitdiff
path: root/Test/dafny2
Commit message (Collapse)AuthorAge
* Make /autoTriggers:1 to be default. Add /autoTriggers:0 to tests that requiresGravatar qunyanm2016-03-28
| | | | | it. Don't use pretty warning signs since we can't diff them correctly in the test output from the test run.
* In method and iterator specifications, inline top-level predicates (exceptGravatar leino2015-10-24
| | | | protected predicated in cross-module calls) like in other places.
* Implement workarounds for some tests that fail with /autoTriggers.Gravatar Clément Pit--Claudel2015-08-28
| | | | | | The issues here are mostly with induction (wrt. to trigger selection and quantifier splitting) and with expressions like P(i, j-1) where no good choices are available.
* Suppress many warnings in the test suite.Gravatar Clément Pit--Claudel2015-08-28
| | | | | We already have separate tests for those, and we want the output to be the same with and without /autoTriggers.
* Renamed "ghost method" to "lemma" whenever appropriate (which is most of the ↵Gravatar Rustan Leino2015-07-28
| | | | | | time) in the test suite. Removed some assertions that have been rendered unnecessary because of the computations that Dafny instructs the SMT solver to do.
* Fix: Unify column numbers in Dafny's errorsGravatar Clément Pit--Claudel2015-07-23
| | | | | | | | | Dafny counts from 0, but Boogie counts from 1. Tokens are 1-based. Thus when we print tokens, we need to decrement the column number. This was done for resolver errors, but not for verification or parsing errors. In addition, parsing errors were inconsistent with resolution errors case-wise. Unfortunately, the fix affects the output of many tests.
* Minor fixes in .expect filesGravatar Clément Pit--Claudel2015-07-16
|
* Fix multiple tests that relied on z3 triggering on $BoxGravatar Clément Pit--Claudel2015-07-13
| | | | Found by enabling auto-generated triggers and looking for failing tests
* This changeset changes the default visibility of a function/predicate body ↵Gravatar leino2015-03-09
| | | | | | | | | | outside the module that declares it. The body is now visible across the module boundary. To contain the knowledge of the body inside the module, mark the function/predicate as 'protected'. Semantics of 'protected': * The definition (i.e., body) of a 'protected' function is not visible outside the defining module * The idea is that inside the defining module, a 'protected' function may or may not be opaque. However, this will be easier to support once opaque/reveal are language primitives. Therefore, for the time being, {:opaque} is not allowed to be applied to 'protected' functions. * In order to extend the definition of a predicate in a refinement module, the predicate must be 'protected' * The 'protected' status of a function must be preserved in refinement modules
* Stop pretty-print from emitting deprecated semi-colons.Gravatar qunyanm2015-03-05
|
* Language change: All functions and methods declared lexically outside any ↵Gravatar leino2014-12-12
| | | | | | | | | | class are now automatically static, and fields are no longer allowed to be declared there. Stated differently, all heap state must now be declared inside an explicitly declared class, and functions and methods declared outside any class can be viewed as belonging to the module. The motivating benefit of this change is to no longer need the 'static' keyword when declaring a module of functions and methods.
* Snapshot, to be continuedGravatar leino2014-12-02
|
* Refactored SnapshotableTrees a bit and made it verify in a reasonable amount ↵Gravatar leino2014-11-04
| | | | of time :)
* Added VC Splitting switch to dafny2/SnapshotableTrees.dfy to try to avoid ↵Gravatar leino2014-10-21
| | | | some brittleness
* Enabled 'SnapshotableTrees.dfy' in the test suite.Gravatar wuestholz2014-09-24
|
* Made 'SnapshotableTrees.dfy' verify again.Gravatar wuestholz2014-09-24
|
* Disallow parentheses-less declarations of predicates and co-predicates, ↵Gravatar leino2014-08-27
| | | | along with a backward-compatibility warning message if such declarations are attempted
* Change behavior of 'decreases *', which can be applied to loops and methods. ↵Gravatar Rustan Leino2014-08-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now, loops that may possibly do an infinite number of iterations (that is, loops marked with 'decreases *') and calls to methods marked with 'decreases *' are allowed only in methods that themselves are marked with 'decreases *'. As before, ghost loops and ghost methods are not allowed to be marked with 'decreases *'. Previously, 'decreases *' was allowed on a method only if the method was tail recursive; this is no longer so. Note, however, that if the method is not tail recursive and engages in infinite recursion, then it will eventually run out of stack space. Previously, a 'decreases *' was not inherited in a refining module; this is no longer so. That is, 'decreases *' is now inherited. To refine a possibly non-terminating method or loop, the refining version simply provides a decreases clause that does not mention '*'. Note that if the refined method is not recursive, it still needs to have _some_ decreases clause in order not to inherit the 'decreases *' from the refined method, but the expression stated in the decreases clause can be arbitrary (for example, one can write 'decreases true' or 'decreases 7' or 'decreases x' for some 'x' in scope). Note, in the new design, a method needs to be declared with 'decreases *' if it may recurse forever _or_ if it contains a possibly infinite loop. Note that the absence of 'decreases *' on a loop does not mean the loop will terminate, but it does mean that the loop will iterate a finite number of times (the subtle distinction here is that a loop without a 'decreases *' is allowed to contain a nested loop that has a 'decreases *' -- provided the enclosing method is also declared with 'decreases *', as previously mentioned).
* Add higher-order-functions and some other goodiesGravatar Dan Rosén2014-08-11
| | | | | | | | | | | | | | | | * The reads clause now needs to be self framing. * The requires clause now needs to be framed by the reads clause. * There are one-shot lambdas, with a single arrow, but they will probably be removed. * There is a {:heapQuantifier} attribute to quantifiers, but they will probably be removed. * Add smart handling of type variables * Add < and > for datatype & type parameter
* Improved AnalyzeList encoding in a way that performs way better.Gravatar Rustan Leino2014-07-09
| | | | Cleaned up file to use some improved Dafny constructs.
* MergeGravatar Dan Rosén2014-07-07
|\
* | New logical encoding of types with Is and IsAllocGravatar Dan Rosén2014-07-07
| |
| * Removed the old test infrastructure.Gravatar wuestholz2014-07-01
| |
* | Made the snapshotable trees test "unsupported" instead of "unresolved".Gravatar wuestholz2014-06-05
| |
| * Made the snapshotable trees test "unsupported" instead of "unresolved".Gravatar wuestholz2014-06-05
|/
* Set up the same test infrastructure as in Boogie.Gravatar wuestholz2014-05-29
|
* Renamed a constructor in a test fileGravatar Rustan Leino2014-01-03
|
* Add support for the /verifySeparately flag in Boogie and change most tests ↵Gravatar wuestholz2013-12-18
| | | | to use it.
* Update an 'Answer' file.Gravatar wuestholz2013-12-10
|
* Change a test program to verify faster (by a factor of 10-25).Gravatar wuestholz2013-12-10
|
* Moved resolution of BinaryExpr.ResolveOp until the CheckTypeInference phase, ↵Gravatar Rustan Leino2013-04-01
| | | | | | | where more type information is known Refactored ConcreteUpdateStatement to no longer inherit from ConcreteSyntaxStatement. Fixed numerous places where some recursive checks did not reach.
* Renamed "parallel" statement to "forall" statement, and made the parentheses ↵Gravatar Rustan Leino2013-03-06
| | | | around the bound variables optional.
* Added tests: parallel calc, better well-formedness checks, calc expression.Gravatar Nadia Polikarpova2013-02-15
|
* Updated a test in dafny2 with the new calc syntax.Gravatar Nadia Polikarpova2013-02-14
|
* MergeGravatar Nadia Polikarpova2013-02-14
|\
| * Report error if type of a quantified variable cannot be inferredGravatar Rustan Leino2013-02-11
| |
* | Changed calc syntax (custom operators are now written before the hint)Gravatar Nadia Polikarpova2013-02-08
|/
* renamed "abstract module" to "module facade"Gravatar Rustan Leino2012-10-22
| | | | renamed "ghost module" to "abstract module", adding a keyword "abstract"
* added two "calc" proofs (by Nadia) of the MajorityVote exampleGravatar Unknown2012-10-19
|
* improved and fixed compilation and resolution of assign-such-that statementsGravatar Rustan Leino2012-10-05
|
* Fixed some goof-ups in the test script editsGravatar Rustan Leino2012-10-04
| | | | Changed the test output to make it easier to spot (in the console output) that everything passed with success or if there were any failures
* Added Test/dafny3 and another test file for iterators (hey, you can even run ↵Gravatar Rustan Leino2012-10-04
| | | | | | Iter.dfy!) Fixed migration issues
* Use expression splitting for checking calculation stepsGravatar Nadia Polikarpova2012-09-23
|
* Allow multiple calc/block statements in a hint. Removed the empty calc test ↵Gravatar Nadia Polikarpova2012-09-19
| | | | from dafny2/Calculations, as it actually belongs in dafny0.
* Allow empty calc statementsGravatar Nadia Polikarpova2012-09-19
|
* Dafny: some test cases for "calc" (very cool!)Gravatar Unknown2012-09-17
|
* Dafny: added MonotonicHeapstate refinement exampleGravatar Unknown2012-08-09
|
* Dafny: updated test suite to new syntaxGravatar Jason Koenig2012-07-30
|
* Dafny: restored soundness for refinement by disallowing certain updates and ↵Gravatar Jason Koenig2012-07-11
| | | | method calls
* Dafny: reinstated autocontractsGravatar Jason Koenig2012-07-02
|