summaryrefslogtreecommitdiff
path: root/Source/Dafny/Translator.cs
Commit message (Collapse)AuthorAge
* 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
* Dafny: fixed bug in looking at the arguments of the :induction attributeGravatar Rustan Leino2011-08-18
|
* MergeGravatar Jason Koenig2011-07-15
|\
| * Updated the Parser.cs and Scanner.cs files in Boogie and Dafny and removed ↵Gravatar wuestholz2011-07-15
| | | | | | | | some trailing whitespace.
* | Fixed bug where wellformedness for E in multiset(E) was checked in the "old" ↵Gravatar Jason Koenig2011-07-14
| | | | | | | | context.
* | Added multiset from sequence axioms, removed array range RHSs. Fixed issue ↵Gravatar Jason Koenig2011-07-13
| | | | | | | | with duplicate array.Length functions in generated Boogie file.
* | Multiset forming operators added.Gravatar Jason Koenig2011-07-11
| |
* | MergeGravatar Jason Koenig2011-07-11
|\ \
* | | Added s[..] syntax in anticipation of sequence forming operation. (also ↵Gravatar Jason Koenig2011-07-11
| |/ |/| | | | | updated regression tests.)
| * Partial implementation of multisets.Gravatar Jason Koenig2011-07-11
|/
* Added the /noCheating option. (treats assume as assert and drops free.)Gravatar Jason Koenig2011-07-01
|
* Initial implementation of return statments with parameters.Gravatar Jason Koenig2011-06-29
|
* Removed development comments.Gravatar Jason Koenig2011-06-29
|
* Initial modifies on loops implementation. Still some errors remaining.Gravatar Jason Koenig2011-06-28
|
* Dafny: bug fix in generating IsCanonicalBoolBox predicatesGravatar Rustan Leino2011-06-21
|
* Dafny: better error message when "decreases *" is attempted on a function or ↵Gravatar Rustan Leino2011-06-20
| | | | | | | method Dafny: fixed compilation bug with parallel assignment involving a ghost LHS Dafny: added sequence-to-set conversion if a function's reads clause is used implicitly as the decreases clause
* Dafny: fixed accidental omission of CaptureState after some assignmentsGravatar Rustan Leino2011-06-16
|
* Dafny: added implicit datatype query fields and datatype destructor fieldsGravatar Rustan Leino2011-06-05
|
* Dafny: translate call statements with fancy LHSsGravatar Rustan Leino2011-05-31
|
* Dafny: Translate general LHSs for var and := (not yet for call, no ↵Gravatar Rustan Leino2011-05-30
| | | | compilation yet)
* Dafny: fixed parsing bug that prevented all expressions from occurring in ↵Gravatar Rustan Leino2011-05-27
| | | | match-case expressions
* MergeGravatar Rustan Leino2011-05-27
|\
| * Dafny: retired "use" statementsGravatar Rustan Leino2011-05-27
| |
| * 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: fixed bug (ill-formed Boogie) in translation of "foreach" for sequencesGravatar Rustan Leino2011-05-26
| |
| * Dafny implementation: removed always-true "allowGhostFeatures" parameterGravatar Rustan Leino2011-05-26
| |