summaryrefslogtreecommitdiff
path: root/Chalice
Commit message (Collapse)AuthorAge
* Chalice: Also exhale correctly in two steps for multiple contracts (e.g. two ↵Gravatar stefanheule2011-07-18
| | | | preconditions), and include missing well-formedness assumption afer async method calls.
* Chalice: Fix a problem with permission expressions. Prevsiously, exhaling ↵Gravatar stefanheule2011-07-18
| | | | "acc(o.f,100-rd) && acc(o.f,rd)" resulted in a contradiction. This is now solved by using a two-step exhale (loosely speaking, read permissions and functional properties are exhaled first, and only afterwards all other permissions). Extended testcases appropriately.
* MergeGravatar Unknown2011-07-16
|\
* | Suppress generation of Drop(s, 0). This expression caused unnecessary ↵Gravatar Unknown2011-07-16
| | | | | | | | verification problems, even though the axioms should be sufficient to handle this case (and also trigger).
| * Chalice: Fix workitem 10191 (escaping method arguments).Gravatar stefanheule2011-07-07
| |
| * Chalice: New test script to execute all tests (in all folder) at once. Test ↵Gravatar stefanheule2011-07-07
| | | | | | | | scripts now set the errorlevel to the number of failed tests.
| * Chalice: Error message of the valid-permission-check often included ↵Gravatar stefanheule2011-07-07
| | | | | | | | '<undefined position>'. Reference output of one affected test updated.
| * Chalice: Allow _ as wildcard in the eval construct for parameters. Usage is ↵Gravatar stefanheule2011-07-07
|/ | | | demonstrated in a new test case.
* Chalice: fix workitem 10194 (unfolding and old-expressions).Gravatar stefanheule2011-07-06
|
* Chalice: fix workitem 10199 (partial unfolding of nested predicates).Gravatar stefanheule2011-07-06
|
* Chalice: fix workitem 8236 (lockchange on return values causes invalid ↵Gravatar stefanheule2011-07-05
| | | | Boogie code).
* MergeGravatar mschwerhoff2011-07-05
|\
* | Chalice: Removed debug codeGravatar mschwerhoff2011-07-05
| |
| * Chalice: Four new interesting Chalice examples (added to test suite with the ↵Gravatar stefanheule2011-07-05
|/ | | | correct reference output). The example FictionallyDisjointCells.chalice is due to Yannis Kassios. Small fix to test script.
* Chalice: Fixed a bug that prevented Chalice from correctly dealing with ↵Gravatar Unknown2011-07-05
| | | | Boogie options containing white space characters
* Chalice: Completely switch to new testing scripts (more flexible and ↵Gravatar stefanheule2011-07-05
| | | | fine-grained testing) and remove old test.bat. New testing scripts are described in Chalice/tests/readme.txt.
* Chalice: New permission model that provides more abstraction and more ↵Gravatar stefanheule2011-07-01
| | | | | | | | | | | | | | | | | | | | | | | flexibility. Details of the model can be found in the paper 'Fractional Permissions without the Fractions', FTfJP 2011 (see http://www.pm.inf.ethz.ch/publications/). This changeset also fixes several bugs not directly related to the permissions model and improves the error handling. The following features have been added or enhanced: - Error handling: If exceptions (e.g. about not supported features) are encountered, a user-friendly message is displayed - Sequence axioms: There is an additional axiom for singleton lists, which is helpful in some cases - Prelude: Chalice's prelude has been split into sections (e.g. one for permission-related stuff, one for sequence axioms, and so on), which are included on demand (less superfluous axioms, etc.) Currently not working - but planned to be updated as well - are the following features: - Stepwise refinements - autoFold - read locks There is a performance issue with permission scaling (i.e., taking non-full versions of predicates that contain read-permissions). Details can be found in the following file: Chalice/tests/permission-model/scaling.chalice. A list of fixed bugs (see http://boogie.codeplex.com/workitem/<workitem number> for details on the individual bugs) - workitem 10200: Issue with the axiom of framing functions - workitem 10197: The translation of old(waitlevel) resultet in Boogie error - workitem 10196: Quantification over empty sequences - workitem 10195: Contradiction when descending sequences are used - workitem 10192: Invalid translation of old-construct in certain cases - workitem 10190: Stack overflow when parsing large comment blocks - workitem 10147: Duplicated method parameters and return values are not detected
* Fix some deprecation warnings from scalac 2.8.0.Gravatar kyessenov2011-02-16
| | | | | Check for Boogie.exe only on Windows. Fix parser (_ is a keyword, not a delimiter)
* Chalice: Applied patch 7685, this fixes a small bug that duplicated members ↵Gravatar alexanderjsummers2011-01-12
| | | | are not detected (neither duplicated methods, nor fields).
* Applied patch 7636 - this fixes workitem 9978Gravatar alexanderjsummers2011-01-12
|
* Chalice: this fixes a bug (an unsoundness) that arose in when a program ↵Gravatar mueller2010-12-16
| | | | combined predicates, read permissions to predicates, and forks.
* Small changes to compile and test Chalice on Linux.Gravatar kyessenov2010-12-04
|
* Chalice: white space delta in test fileGravatar rustanleino2010-11-17
| | | | Dafny: Simplified VSComp2010/Problem4-Queens.dfy from using an inductive ghost-method lemmas to just using an assert
* Chalice: Automatically created a simple class diagram of the current ASTGravatar mschwerhoff2010-11-13
|
* Chalice: Added axioms about div and mod. Updated DuplicatesVideo.chaliceGravatar rustanleino2010-11-06
|
* Miscellaneous changes:Gravatar rustanleino2010-10-22
| | | | | | | * Also copy CodeContractExtender in PrepareBoogieZip.bat * Added some comments and a new program in Test/textbook * Included refinement keywords in Chalice emacs mode * Used assignment instead of spec statement in DuplicatesVideo.chalice
* Chalice: Now compiles with Scala 2.7.7 and 2.8.0, the latter yields many ↵Gravatar mschwerhoff2010-10-21
| | | | warnings, though. If 2.8.0 terminates with a stack overflow, increase stack size of the JVM (-Xss16M)
* Chalice: allow replace by to match LocalVarGravatar kyessenov2010-10-09
|
* Chalice:Gravatar rustanleino2010-10-09
| | | | | * extended the cheap type inference to also consider "in" expressions and quantifiers * added some refinement keywords to the Emacs mode for Chalice
* Chalice: permit replaces by to match assign clausesGravatar kyessenov2010-10-09
|
* Chalice: fix a bug where output variables of a method were not decoupled.Gravatar kyessenov2010-10-05
|
* Chalice: incorporate another regression testGravatar kyessenov2010-09-03
|
* Chalice: added Duplicates refinement from Verification Corner videoGravatar kyessenov2010-09-02
|
* Chalice: fix in refinement loop target resolution; added "spec" as a keyword ↵Gravatar kyessenov2010-09-02
| | | | synonym to "var"
* Chalice: working out mask transfers between concrete and abstract heaps -- ↵Gravatar kyessenov2010-08-24
| | | | next goal is to make this verify!
* Chalice:Gravatar kyessenov2010-08-24
| | | | | * fix bugs -- translateAssert and etran.fromPreGlobals were referring to globals by name instead of using current globals * example of finding duplicate elements in a sequence using a bitset
* Chalice: exhale spec statement post condition in refinement block ↵Gravatar kyessenov2010-08-23
| | | | translation; tag global coupling assertions (bug fix)
* Chalice: copy concrete values for every permission in coupling invariants of ↵Gravatar kyessenov2010-08-23
| | | | "this"
* Chalice:Gravatar kyessenov2010-08-23
| | | | | | * added celebrity example (theory of sequences is still weak to prove basic things...) * bug in Chalice: old in while loops is ignored, needs to be fixed if ever want to complete DSW example * evil input from Z3 makes subsequent refinement proofs unsound; need to debug before building upon DSW.chalice; the error is triggered when adding parent field to Node
* Chalice: spec stmt was unimplementable; changed it and refined; Z3 produces ↵Gravatar kyessenov2010-08-22
| | | | evil input again...
* Chalice: start of a DSW refinementGravatar kyessenov2010-08-22
|
* Chalice: refining lists doesn't quite work yet...Gravatar kyessenov2010-08-22
|
* Chalice: limited functions are still problematic (see Calculator.chalice)Gravatar kyessenov2010-08-22
|
* Chalice:Gravatar kyessenov2010-08-22
| | | | * coupling invariants work (with certain restrictions as described in TODO comments)
* Chalice:Gravatar kyessenov2010-08-21
| | | | | * fix a compilation problem (scalac relied on old binaries) * combinator parser and state don't work well together -- added higher-order parser for method transform
* server-side renameGravatar kyessenov2010-08-21
|
* Chalice: added syntax, printer and resolver for coupling invariantsGravatar kyessenov2010-08-20
|
* VS 2010 mode for Chalice: some errors didn't show up in the window because ↵Gravatar kyessenov2010-08-20
| | | | positions were negative
* Chalice: more regression tests; cosmetic changes to codeGravatar kyessenov2010-08-19
|
* Chalice: added finite differencing refinementGravatar kyessenov2010-08-19
|