summaryrefslogtreecommitdiff
path: root/Source/Dafny/Translator.cs
Commit message (Collapse)AuthorAge
...
* 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
| |
| * Dafny: retired the "call" keywordGravatar Rustan Leino2011-05-26
| |
| * Dafny: cleaned up parser, moved foreach statement from AssignStmt<> parsing ↵Gravatar Rustan Leino2011-05-25
| | | | | | | | to UpdateStmt, automatically infer ghosts when local variables are introduced with a call RHS
| * Dafny: changed local "var" introductions to use new VarDeclStmt instead of ↵Gravatar Rustan Leino2011-05-24
| | | | | | | | | | | | parsing as the old VarDecl's with RHS's To-do: automatically make some variables introduce ghost variables, depending on RHS of initial assignment
| * Dafny:Gravatar Rustan Leino2011-05-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fixed parsing problem with a block ending a block * replaced AssignStmt and "call" statements with UpdateStmt's * fixed some minor printing problems * changed implementation to check for ghost expressions in a pass separate from ResolveExpr To-dos: * compile and translate multi-assignments * handle non-identifier LHSs of call statements * change "var" statements in a similar way * tighten up parsing of LHSs to allow only things like SelectExpr * code and grammar clean-up to remove unused parts (e.g., "call" grammar productions and the "allowGhostFeatures" parameters) * include the commented-out precondition of TrAssignment * check in changes to the test suite
| * 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 alternative statement and alternative-loop statementGravatar Rustan Leino2011-05-19
|
* Dafny: let verifier, not the resolver, check for missing cases in match ↵Gravatar Rustan Leino2011-05-19
| | | | expressions/statements
* Dafny: added set comprehension expressionsGravatar Rustan Leino2011-05-18
|
* Dafny: To help verifications involving sequences of (boxed) booleans along, ↵Gravatar Rustan Leino2011-05-16
| | | | added function $IsCanonicalBoolBox
* Dafny: added optional range expressions to logical quantifiers, preparing ↵Gravatar Rustan Leino2011-05-15
| | | | for addition other other comprehensions (like set comprehension)
* 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: added type "nat"Gravatar Rustan Leino2011-04-19
|
* 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: refactoring to soon support more general assignment statementsGravatar rustanleino2011-03-29
|
* 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: 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
* Renamed NonNullElements to NonNullDictionaryAndValues because the keys to ↵Gravatar mikebarnett2011-03-10
| | | | | | dictionaries are non-null, which is enforced by the implementation of Dictionary. Added class constraints to all of the generic NonNull and NonNullElements methods so only non-value types will be checked.
* 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)