summaryrefslogtreecommitdiff
path: root/Test/dafny1
Commit message (Collapse)AuthorAge
...
* Dafny induction:Gravatar Rustan Leino2011-10-29
| | | | | | | * implemented induction tactic for result-less, non-mutating ghost methods * refine heuristics for determining if a variables is usefully passed to a recursive function * disallow certain "ensures" to use two-state features (needed for soundness of the parallel-statement translation, see comments in Resolver.cs and ParallelResolveErrors.dfy) * added command-line flags /induction and /inductionHeuristic (everything is on by default)
* Dafny: continued translation of "parallel" statements (Assign and Proof ↵Gravatar Rustan Leino2011-10-24
| | | | | | | forms are mostly there, Call is missing and so is compilation) Dafny: included some test cases for the "parallel" statement Dafny: starting changing old "foreach" statements to the new "parallel" statement
* Dafny: added translation of Assign case of the parallel statementGravatar Rustan Leino2011-10-22
| | | | Dafny: discovered and fixed bug in no-overlap check of multi-dimensional array update, and changed previously incorrect MatrixFun.dfy test case (the new version is also a more efficient program)
* Dafny: beautification in one test case, and fixed an Answer fileGravatar Rustan Leino2011-09-29
|
* Dafny: added Flatten example to test suiteGravatar Rustan Leino2011-09-11
|
* Dafny: updated Answer file from recent test additionsGravatar Rustan Leino2011-08-22
|
* Dafny: updated test files (will soon update Answer files as well)Gravatar Rustan Leino2011-08-22
|
* Dafny: Fixed a bug in the printer that led to a stack overflow.Gravatar wuestholz2011-08-11
|
* Jennisys: started to work on synthesizing some methods. So far, onlyGravatar Aleksandar Milicevic2011-08-10
| | | | | | infrastructural things have been implemented, like handling return parameters, generating different "fresh" spec for methods than for constructors, adding "Valid()" to method preconditions.
* Dafny: added reverse*reverse=id example to test suiteGravatar Rustan Leino2011-08-04
|
* Dafny: re-ran parser generator to include semicolon-less body-less ↵Gravatar Rustan Leino2011-07-26
| | | | functions/methods, and updated some test files accordingly (compare with changesets 1429 and 1366)
* MergeGravatar Rustan Leino2011-07-21
|\
* | Dafny: call previous lemma instead of restating itGravatar Rustan Leino2011-07-21
| |
| * Fixed regression test failures due to removal of bodiless methods and functions.Gravatar Jason Koenig2011-07-15
|/
* Dafny: allow constructors only inside classes, removed semi-colons at end of ↵Gravatar Rustan Leino2011-07-11
| | | | body-less functions/methods
* Dafny: Translate general LHSs for var and := (not yet for call, no ↵Gravatar Rustan Leino2011-05-30
| | | | compilation yet)
* MergeGravatar Rustan Leino2011-05-27
|\
| * Dafny: permanently changed the syntax of "datatype" declarations to what ↵Gravatar Rustan Leino2011-05-27
| | | | | | | | previously was an alternative syntax
| * Dafny:Gravatar Rustan Leino2011-05-26
| | | | | | | | | | | | * fixed ghost/non-ghost story for breaks and returns * changed compilation/translation to always use goto's to implement Dafny's breaks * introduced "break break" statements
* | Dafny: fixed bug in induction-tactic heuristic (should never pick values ↵Gravatar Rustan Leino2011-05-26
| | | | | | | | whose type is a type parameter)
| * Dafny: retired the "call" keywordGravatar Rustan Leino2011-05-26
| |
| * Dafny:Gravatar Rustan Leino2011-05-21
|/ | | | | | | | | | * started rewriting parsing of qualified identifiers in expressions * annoyingly, had to introduce AST nodes for concrete syntax * previous syntax for invoking datatype constructors: #List.Cons(h, t) new syntax: List.Cons(h, t) or, if only one datatype has a constructor named Cons: Cons(h, t) * Removed type parameters for datatype constructors from the grammar * Helped Test/VSI-Benchmarks/b4.dfy along with a couple of assertions (previously, its proving performance was highly varied)
* Dafny: added some test cases that use natGravatar Rustan Leino2011-05-16
|
* MergeGravatar Rustan Leino2011-05-13
|\
| * Dafny:Gravatar Rustan Leino2011-05-11
| | | | | | | | | | | | * added missing error checking for ghost-vs-physical contexts (e.g., use of the "old" keyword) * check that arrays are not null when accessed * added dafny1/FindZero.dfy test case
* | Dafny: fixed compilation bugs, added @-signs in front of identifiers to ↵Gravatar Rustan Leino2011-05-11
|/ | | | avoid clashes with C# keywords, added switch in runtest scripts to turn on compilation
* Dafny: Fix parsing of if-then-else expressions, and don't require ↵Gravatar Rustan Leino2011-04-21
| | | | parentheses around forall/exists expressions
* Dafny: Alternative (and candidate replacement) syntax for declaring datatypesGravatar Rustan Leino2011-04-20
| | | | Dafny: Additional induction test cases
* Dafny: added manual proofs for 5 theorems in Rippling.dfyGravatar Rustan Leino2011-04-12
|
* Dafny: don't require parentheses in syntax of "choose" statementsGravatar Rustan Leino2011-04-05
|
* branch mergeGravatar Rustan Leino2011-04-05
|\
* | Dafny: Allow field selections and array-element selection as LHSs of ↵Gravatar Unknown2011-04-05
| | | | | | | | assignments where RHS is not just an expression
| * Dafny: fixed bug in induction over integersGravatar Unknown2011-04-04
|/ | | | Dafny: added pow2 example
* Dafny:Gravatar rustanleino2011-03-30
| | | | | * Fixed handling of type parameters in automatic decreases clauses * Added ACL2s Rotate example
* Dafny: Added support for an initializing call as part of the new-allocation ↵Gravatar rustanleino2011-03-27
| | | | | | | | | | | syntax. What you previously would have written like: c := new C; call c.Init(x, y); you can now write as: c := new C.Init(x, y);
* Dafny: added "choose" operator on setsGravatar rustanleino2011-03-26
|
* Dafny: improved and corrected physical/ghost distinctionGravatar rustanleino2011-03-26
|
* Dafny: compile quantifiersGravatar rustanleino2011-03-26
| | | | | | Dafny: allow {:induction} attribute to take an explicit list of bound variables on which to apply induction Dafny: split expressions when proving function postconditions Boogie and BVD: updated copyright year ranges
* Dafny: Fixed typo in P16 of Rippling benchmarks, which now makes it (true ↵Gravatar rustanleino2011-03-07
| | | | and) verifiable
* Dafny:Gravatar rustanleino2011-03-06
| | | | | | * Support for induction over more than 1 variable * Added many of the Rippling induction benchmarks * Fixed bug in case handling
* Dafny: Added heuristic for when to turn on the induction tacticGravatar rustanleino2011-03-05
|
* Dafny:Gravatar rustanleino2011-03-04
| | | | | | * Add support for an {:induction} attribute on universal quantifiers over one bound variable. It causes the universally quantified formulas to be proved by induction. * For a user-defined function F, introduce not just F and F#limited, but also F#2 (which sits "above" F, just as F sits "above" F#limited) * In base case of SplitExpr, make use of F#2 functions (unless already inside an inlined predicate)
* Dafny:Gravatar rustanleino2011-02-17
| | | | | | | | | | | | | | | | | | * Big change: Add type and allocatedness information everywhere in the Boogie translation. This not only fixes some potential soundness problems (see Test/dafny1/TypeAntecedents.dfy), but it also gives more information about the program. On the downside, it also requires discharging more antecedents in order to use some axioms. Another downside is that overall performance has gone down (however, this may be just an indirect consequence of the change, as it was in one investigated case). * Increase the applicability of function axioms (extending the coarse-grain function/module height mechanism used as an antecedent of function axioms). (Internally, this uses the new canCall mechanism.) * Extend language with "allocated( Expr )" expressions, which for any type of expression "Expr" says that "Expr" is allocated and has the expected type. * More details error messages about ill-defined expressions (internally, by using CheckWellformedness instead of "assert IsTotal") * Add axioms about idempotence of set union and intersection * The compiler does not support (the experimental feature) coupling invariants, so generate error if the compiler ever gets one * In the implementation, combine common behavior of MatchCaseStmt and MatchCaseExpr into a superclass MatchCase * Fixed error in translation of while(*)
* Dafny: added test harness to Test/dafny1/ExtensibleArray.dfyGravatar rustanleino2011-02-16
|
* Dafny: added ExtensibleArray program as a testGravatar rustanleino2011-02-16
|
* Dafny: added alternate version of PriorityQueueGravatar rustanleino2011-02-15
|
* Dafny: every decreases clause implicitly ends with a never-ending sequence ↵Gravatar rustanleino2011-02-03
| | | | of TOP elements; this reduces the need for manually supplied decreases clauses (see the Outer/Inner example in Test/dafny0/Termination.dfy and the Substitute/SubstSeq example in Test/dafny1/Substitution.dfy).
* Dafny: implemented a more precise scheme for allowing use of a function's ↵Gravatar rustanleino2011-02-03
| | | | rep axiom
* Dafny: added ensures clauses to functionsGravatar rustanleino2011-02-02
|
* Dafny: Added Test/dafny1/PriorityQueue.dfyGravatar rustanleino2010-12-10
|