summaryrefslogtreecommitdiff
path: root/Source/Dafny/Translator.cs
Commit message (Collapse)AuthorAge
* Dafny: added support for co-recursive callsGravatar Rustan Leino2012-05-01
|
* Dafny: rudimentary translation into Boogie of co-inductive datatypesGravatar Unknown2012-04-25
|
* Dafny: fixed bug (missing Boogie cast) in translation of induction over ↵Gravatar Unknown2012-04-20
| | | | generic datatypes instantiated with datatypes
* Dafny: added assign-such-that statements; syntax: x,y,a[i],o.f :| Expr;Gravatar Unknown2012-03-15
|
* Dafny: fixed build errorGravatar Rustan Leino2012-03-09
|
* Dafny: added ghost modules (the meaning is simply that such a module will ↵Gravatar Rustan Leino2012-03-07
| | | | | | | not be compiled) Dafny: improved :autocontracts heuristic for detecting "simple query method" Dafny: fixed some bugs
* Dafny: fixed well-formedness checking of LET expressions to allow the RHS to ↵Gravatar Rustan Leino2012-02-29
| | | | be used
* Dafny: make sure assume->assert transformation gives rise to a checkGravatar Rustan Leino2012-02-19
|
* Dafny: improved error location for violations of function postconditionsGravatar Rustan Leino2012-01-18
|
* Dafny: allow parallel statements with an empty list of bound variablesGravatar Rustan Leino2012-01-17
|
* Dafny: parallel statements:Gravatar Rustan Leino2012-01-17
| | | | | | | - removed the awkward restriction that method postconditions cannot use old/fresh if there's no modifies clause and no out-parameters; instead, implemented parallel statements to handle these cases - also allow old/fresh in ensures clauses of parallel statements - allow TypeRhs and choose expressions in Call/Proof parallel statements - disallow calls to non-ghost methods in parallel statements (since those may do "print" statements and we don't want to allow those to take place in parallel; besides, the compiler wants to omit the parallel statement altogether and could not do so if there were print statements)
* Dafny: Recheck specifications that contain refined (extended) predicates, ↵Gravatar Rustan Leino2012-01-16
| | | | even if they are contained inside a split expression. Superposition is thought to be sound.
* Dafny: handle refinement of nested tokens that come from SpliExpr (still ↵Gravatar Rustan Leino2012-01-12
| | | | need to deal with unsplit expressions, like quantifiers)
* Dafny: make full predicate definitions available only inside a module ↵Gravatar Rustan Leino2012-01-11
| | | | (outside is just an implication: the predicate implies the body known so far)
* Dafny: fixed bugs in contract types, and a code bug that caused a contract ↵Gravatar Rustan Leino2012-01-10
| | | | to fail
* Dafny: some bug fixesGravatar Rustan Leino2012-01-10
|
* Dafny: allow definitions and uses of parameter-less predicates to go without ↵Gravatar Rustan Leino2012-01-10
| | | | parentheses
* Dafny: changed translation to be sensitive to refinement inheritance; this ↵Gravatar Rustan Leino2012-01-09
| | | | feature is now functional, provided the refining module does not add or change anything
* Dafny: fully qualify (with module names) names of types in the translation ↵Gravatar Rustan Leino2012-01-05
| | | | | | | into Boogie Dafny: started cloning of refined classes Dafny: added /rprint switch to print the (syntax of the) resolved Dafny program
* Dafny: Start of new refinement features -- clean out old onesGravatar Rustan Leino2012-01-04
|
* Dafny: for a datatype with just one constructor, don't check (but do assume) ↵Gravatar Rustan Leino2011-12-19
| | | | that destructors are applied only to those values constructed by that one-and-only constructor
* 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)
* MergeGravatar Rustan Leino2011-12-07
|\
* | Dafny: Forward attributes on Dafny functions to Boogie (e.g., to disable ↵Gravatar wuestholz2011-12-07
| | | | | | | | wellformedness checks).
| * Dafny: Added "type" declaration (syntax: "type X;"), which introduces an ↵Gravatar Rustan Leino2011-11-21
|/ | | | arbitrary type (like a global type parameter). In the future, a refined module may allow such types to be instantiated.
* Dafny: fixed bad Code ContractsGravatar Rustan Leino2011-11-16
|
* Boogie (and Dafny, with effects also on SscBoogie): I refactored ↵Gravatar Rustan Leino2011-11-15
| | | | CommandLineOptions to separate the options that belong to these 3 tools.
* Dafny: added let expressions (syntax: "var x := E0; E1")Gravatar Rustan Leino2011-11-14
| | | | | Dafny: firmed up semantics of assert/assume expressions (the condition is now good for all program control paths that pass through the expression) Dafny: various implementation clean-ups
* Dafny: implemented the wellformedness check that datatype destructors are ↵Gravatar Rustan Leino2011-11-11
| | | | | | only applied to values created by the corresponding constructor Dafny: implement ghost destructors properly
* Dafny: added assert/assume expressionsGravatar Rustan Leino2011-11-09
|
* Dafny: moved definition of class.array into prelude, anticipating writing ↵Gravatar Rustan Leino2011-11-09
| | | | axioms that use it
* Dafny: fixed part of a type-inference issue with datatypes and the < ↵Gravatar Rustan Leino2011-11-09
| | | | | | operator on datatypes Dafny: allow the well-formedness check of a function's specification to know that the function, on the current arguments, returns a value of the declared result type
* Dafny: fixed bug in reads checking of array-to-sequence conversionsGravatar Rustan Leino2011-11-08
|
* Dafny: added a new /inductionHeuristic optionGravatar Rustan Leino2011-11-04
|
* Dafny: added options to make Induction Heuristic apply to array index ↵Gravatar Rustan Leino2011-11-04
| | | | expressions
* 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: removed Dafny's "foreach" statements (replaced by the new "parallel" ↵Gravatar Rustan Leino2011-10-26
| | | | statement)
* Dafny: removed support for assigning to an array-range (that is, an ↵Gravatar Rustan Leino2011-10-26
| | | | assignment statement where the LHS has the form a[lo..hi])
* BVD: fixed two basic but damning problems with the Dafny provider, and ↵Gravatar Rustan Leino2011-10-26
| | | | elided some temporary variables
* Dafny: check subrange restriction in parallel Assign statementGravatar Rustan Leino2011-10-24
| | | | | Dafny: verify parallel Call statement Dafny: fixed some bugs: handle all cases of comprehension expressions in resolver's UsesSpecFeatures, check target of method calls to be non-null (duh!)
* 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: changed triggers (which are never really used, anyhow) from having a ↵Gravatar Rustan Leino2011-10-21
| | | | | | | special syntactic form to being just an attribute Dafny: added "parallel" statement (so far, only parsing and resolving) Dafny: allow types on bound variables in "match" expressions/statements (there's never any incentive to list them explicitly in the program text, but it nevertheless seemed silly to forbid them)
* Dafny: fixed performance-buggy translation of exists, and also added some ↵Gravatar Rustan Leino2011-10-19
| | | | other features in SplitExpr (such as induction on existential quantifiers)
* Dafny: fixed bug in translator when LHS of a call was an array element or a natGravatar Rustan Leino2011-09-30
|
* Dafny: Added a 'Checked' configuration and fixed some runtime assertion ↵Gravatar wuestholz2011-09-23
| | | | violations.
* Dafny: Fixed an assertion violation in the "Checked" configuration.Gravatar wuestholz2011-09-20
|
* Dafny: Added support for attributes on methods and constructors.Gravatar wuestholz2011-09-16
|
* Dafny: fixed parsing bug with "!in"Gravatar Rustan Leino2011-09-08
| | | | | Dafny: fixed translation bug with missing match cases (where the constructor has some parameters) Dafny: fixed translation bug where the program had forward references to members of a datatype