summaryrefslogtreecommitdiff
path: root/Test/dafny0/SmallTests.dfy
Commit message (Collapse)AuthorAge
* 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.
* 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
* Fix lit headers implicitly relying on bash-style constructsGravatar Clément Pit--Claudel2015-06-08
| | | | | Window's batch doesn't recognize ";" as a command separator; lit has a workaround for that, bu it's just as simple to do the right thing on our side.
* Beefed up collection axioms (in particular, for maps) to improve the chance ↵Gravatar Rustan Leino2015-03-10
| | | | of proving the existence check of let-such-that and assign-such-that
* 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.
* Resolve attributes of a forall statement only after bound variables have ↵Gravatar leino2014-10-29
| | | | | | | been added to the scope. Resolve the attributes of local variables. Don't resolve attributes of PredicateStmt's more than once.
* Marked "free" as soon-to-be-deprecatedGravatar leino2014-10-25
|
* Stricter rules about that types need to be completely resolved.Gravatar leino2014-10-08
| | | | | | Renamed "default constructor" to "anonymous constructor" (since there's really nothing "default" about it). If the type of literal "null" is unresolved, make the type "object". The need to translate unresolved proxies is now assumed to be gone.
* 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
* Check that type arguments to map display expressions are fully resolvedGravatar Dan Rosén2014-07-11
| | | | Also add a test case for the different display expressions.
* MergeGravatar Rustan Leino2014-07-08
|\
| * New logical encoding of types with Is and IsAllocGravatar Dan Rosén2014-07-07
| |
* | Fixed a crash in the translation of fresh(seq<T>).Gravatar Rustan Leino2014-07-02
|/
* Set up the same test infrastructure as in Boogie.Gravatar wuestholz2014-05-29
|
* Added support for attributes on variable declarations.Gravatar wuestholz2013-11-18
|
* Replaced SuperSetBoundedPool by SubSetBoundedPool, which is much more useful ↵Gravatar Rustan Leino2013-03-27
| | | | | | in compiling assign-such-that statements Added run-time support for printing sets, multisets, maps, and sequences
* Beefed up assign/let-such-that to generate possible witnesses for ↵Gravatar Rustan Leino2013-03-25
| | | | | | | set/multiset/sequence/map display expressions Run SmallTests.dfy and LetExpr.dfy only once in the test suite Fixed some translation bugs (and a pretty-printing bug) for map display expressions
* Disallow allocations in ghost contextsGravatar Rustan Leino2013-03-06
|
* Renamed "parallel" statement to "forall" statement, and made the parentheses ↵Gravatar Rustan Leino2013-03-06
| | | | around the bound variables optional.
* Translate let-such-that expressionsGravatar Rustan Leino2013-01-22
|
* improved and fixed compilation and resolution of assign-such-that statementsGravatar Rustan Leino2012-10-05
|
* Dafny: added heuristics for finding witnesses in assign-such-that checkingGravatar Unknown2012-08-10
|
* Dafny: removed allocated, changed semantics of freshGravatar Jason Koenig2012-07-29
| | | | | -allocated(x) removed, as really only useful in old(...) -old(allocated(x)) and !fresh(x) are equivalent (for x with type ref, set, sequence, and datatype).
* Dafny: Since it's no longer true that all types support equality at run-time ↵Gravatar Unknown2012-06-21
| | | | (in particular, codatatypes), Dafny needs to check this. In these changes, Dafny supports the "(==)" suffix to type parameters, infers that suffix in some cases, and enforces equality support in many places. Refinement and datatypes still need more attention in the Dafny implementation.
* Dafny: Changed the semantics of the assign-such-that statement "x :| P;" to ↵Gravatar Unknown2012-06-13
| | | | check the existence of a value. The previous "assume only" version is available by supplying the keyword "assume" in front of "P".
* Dafny: added assign-such-that statements; syntax: x,y,a[i],o.f :| Expr;Gravatar Unknown2012-03-15
|
* Dafny: Fixed a bug in the pretty printer.Gravatar wuestholz2011-12-26
|
* Dafny: Extended the support for attributes on method/constructor calls.Gravatar wuestholz2011-12-23
|
* Dafny: Added support for attributes on method/constructor calls.Gravatar wuestholz2011-12-21
|
* Dafny: Added support for attributes on various specification constructs ↵Gravatar wuestholz2011-12-07
| | | | (assert, ensures, modifies, decreases, invariant).
* Dafny: fix bug in translation of (the splitting of) if-then-else expressions ↵Gravatar Rustan Leino2011-12-10
| | | | (see bug report Issue 10214 on codeplex)
* Dafny: Forward attributes on Dafny functions to Boogie (e.g., to disable ↵Gravatar wuestholz2011-12-07
| | | | wellformedness checks).
* Dafny: removed Dafny's "foreach" statements (replaced by the new "parallel" ↵Gravatar Rustan Leino2011-10-26
| | | | statement)
* Dafny: Added support for attributes on methods and constructors.Gravatar wuestholz2011-09-16
|
* Dafny: Fixed axioms for Seq#Contains vs. the sequence building functionsGravatar Rustan Leino2011-06-29
|
* 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: fixed bug (ill-formed Boogie) in translation of "foreach" for sequencesGravatar Rustan Leino2011-05-26
| |
| * 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: Test case for sequence of boxed booleansGravatar Rustan Leino2011-05-16
|
* Dafny: added optional range expressions to logical quantifiers, preparing ↵Gravatar Rustan Leino2011-05-15
| | | | for addition other other comprehensions (like set comprehension)
* 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: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 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: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
* 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