summaryrefslogtreecommitdiff
path: root/Test/dafny4
Commit message (Collapse)AuthorAge
...
* Made /rewriteFocalPredicates:1 the defaultGravatar Rustan Leino2015-10-02
|
* Removed specContextOnly parameter from ResolveStatement.Gravatar leino2015-09-28
| | | | Moved all bounds discovery to resolution pass 1.
* Improvements in proofsGravatar leino2015-09-28
|
* Changed computation of ghosts until pass 2 of resolution.Gravatar leino2015-09-28
| | | | | | | Other clean-up in resolution passes, like: Include everything of type "char" into bounds that are discovered, and likewise for reference types. Allow more set comprehensions, determining if they are finite based on their argument type. Changed CalcExpr.SubExpressions to not include computed expressions.
* A test file with an example of least vs greatest fixpoints.Gravatar leino2015-09-22
|
* Proof that Ackermann can be curried and that it is monotonic in both arguments.Gravatar Rustan Leino2015-09-08
|
* Fix some tests by locally disabling auto triggersGravatar Clément Pit--Claudel2015-08-28
|
* 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.
* Make use of new syntax in a test fileGravatar Rustan Leino2015-08-21
|
* Fixed bug in type unificationGravatar Rustan Leino2015-08-20
|
* Change the induction heuristic for lemmas to also look in precondition for ↵Gravatar leino2015-08-12
| | | | | | clues about which parameters to include. As a result, improved many test cases (see, e.g., dafny4/NipkowKlein-chapter7.dfy!) and beautified some others.
* Renamed "ghost method" to "lemma" whenever appropriate (which is most of the ↵Gravatar Rustan Leino2015-07-28
| | | | | | time) in the test suite. Removed some assertions that have been rendered unnecessary because of the computations that Dafny instructs the SMT solver to do.
* Fix: Unify column numbers in Dafny's errorsGravatar Clément Pit--Claudel2015-07-23
| | | | | | | | | Dafny counts from 0, but Boogie counts from 1. Tokens are 1-based. Thus when we print tokens, we need to decrement the column number. This was done for resolver errors, but not for verification or parsing errors. In addition, parsing errors were inconsistent with resolution errors case-wise. Unfortunately, the fix affects the output of many tests.
* Merge my autoTriggers work into the master branchGravatar Clément Pit--Claudel2015-07-17
|\ | | | | | | | | This contains trigger related things under the autoTriggers flag (disabled by default), and some bug-fixes and cleanups that are already enabled.
* | Enable autoTriggers in LitTriggers and SeqFromArrayGravatar Clément Pit--Claudel2015-07-17
| |
* | 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
| * Added another lemma to a test fileGravatar Rustan Leino2015-07-02
| |
| * MergeGravatar leino2015-07-01
| |\
| * | Fixed bug in BplImp!Gravatar leino2015-07-01
|/ / | | | | | | Improvements in encoding of reads of function values.
| * Add the ability to specify how much "fuel" a function should have,Gravatar Bryan Parno2015-07-01
|/ | | | | | | | | | | | | | | | | | | i.e., how many times Z3 is permitted to unfold it's definition. The new {:fuel} annotation can be added to the function itself, it which case it will apply to all uses of that function, or it can overridden within the scope of a module, function, method, iterator, calc, forall, while, assert, or assume. The general format is: {:fuel functionName,lowFuel,highFuel} When applied as an annotation to the function itself, omit functionName. If highFuel is omitted, it defaults to lowFuel + 1. The default fuel setting for recursive functions is 1,2. Setting the fuel higher, say, to 3,4, will give more unfoldings, which may make some proofs go through with less programmer assistance (e.g., with fewer assert statements), but it may also increase verification time, so use it with care. Setting the fuel to 0,0 is similar to making the definition opaque, except when used with all literal arguments.
* MergeGravatar leino2015-06-12
|\
* | Added /vcs... cop-out to test case to make it go throughGravatar leino2015-06-12
| |
| * Fix a bug spotted by Chris in my BigInteger patch; thanks!Gravatar Clément Pit--Claudel2015-06-12
|/ | | | | | | | | | | The problem was this: Console.WriteLine(Int64.Parse("08000000000000000", NumberStyles.HexNumber)); // => -9223372036854775808 Console.WriteLine(Int64.Parse("9223372036854775808")); // => Value was either too large or too small for an Int64. In other words, large hex numbers are interpreted as a sequence of bits, not as an actual number.
* Generate #requires function for OpaqueFunction.Gravatar qunyanm2015-06-04
|
* Improvements to Nipkow and Klein test cases: Changed imap to map, removed ↵Gravatar leino2015-05-29
| | | | need for Total
* Fix issue #81. Pass a call's TypeArgumentSubstitution to CheckCallTermination.Gravatar qunyanm2015-05-18
|
* Fix issue #79. Allow tuple pattern matching with parenthesis only.Gravatar qunyanm2015-05-15
|
* Don't include arrow types among ordered types.Gravatar leino2015-05-11
| | | | | | Fix bug with not seeing imap's because of type synonyms. Don't show semi-colon after "decreases" in hover text. Minor cosmetic change in a test case.
* Added to the test suite a Dafny encoding of Chapter 7 from the Nipkow and ↵Gravatar leino2015-05-10
| | | | | | Klein book on semantics. It includes many uses of inductive predicates and inductive lemmas.
* Added to the test suite a Dafny encoding of Chapter 3 from the Nipkow and ↵Gravatar leino2015-04-29
| | | | Klein book on semantics
* Added a test where Dafny verifies something that the Juggernaut tool can inferGravatar leino2015-04-28
|
* Fix issue #72. Add the constructor questionmark to a function's axiom if theGravatar qunyanm2015-04-24
| | | | function has a MemberSelectExpr that accesses a type with only one constructor.
* Fix issue #70. Check the ctors for equality before marking them as duplicates.Gravatar qunyanm2015-04-21
|
* Fix issue #73. Pass in expr.tok when creating Bpl.Expr for InMap and NotInMap.Gravatar qunyanm2015-04-20
|
* Fix issue #69. If we can't find a member in classMembers, search the staticGravatar qunyanm2015-04-17
| | | | members of the enclosing module or its imports.
* HashCode for Set/MultiSet/Map should be independent of the order of theGravatar qunyanm2015-04-17
| | | | elements.
* Change GetHashCode for Set, MultiSet and MapGravatar qunyanm2015-04-16
|
* Fix issue #71. When substitute the forall's variables for those of theGravatar qunyanm2015-04-16
| | | | fn in fixupRevealLemma substitute the types as well.
* Fix issue #68. Change GetHashCode implementation for Sequence.Gravatar qunyanm2015-04-14
|
* Fix issue #67. Check SupportsEquality before determining whether to emit EqualsGravatar qunyanm2015-04-13
| | | | or == for equality testing.
* Fix issue #62. Check for modifies clause and constructors in the enclosingGravatar qunyanm2015-03-31
| | | | class when determining whether a method named Main() is the program entry.
* Fix issue 61. Decreases are by default in ghost context. Therefore,Gravatar qunyanm2015-03-31
| | | | dontCareAboutCompilation flag should be set to false in the ResolveOpts.
* Fix issue #56. Convert parametered opaque type parameters into an IdentifierExprGravatar qunyanm2015-03-27
| | | | instead of FunctionCall.
* Fix issue #58. In TrSplitExpr(), add allocatedness for arguments to the inlinedGravatar qunyanm2015-03-26
| | | | call.
* Fix issue #63. ForceSubstitutionOfQuantifiedVars for SetComprehesion.Gravatar qunyanm2015-03-17
|
* Fix issue #55 and #64. When performing type argument substitution for functionGravatar qunyanm2015-03-16
| | | | | | F's corresponding F_FULL, make sure the function is indeed the FullVesion before the substitution. Also keep the TypeArgsSubst for the enclosingClass in the typeMap.
* MergeGravatar qunyanm2015-03-11
|\
* | Fix issue #54 and #57. Resolve a formal's type before creating a substitute.Gravatar qunyanm2015-03-11
| |
| * This changeset changes the default visibility of a function/predicate body ↵Gravatar leino2015-03-09
|/ | | | | | | | | | outside the module that declares it. The body is now visible across the module boundary. To contain the knowledge of the body inside the module, mark the function/predicate as 'protected'. Semantics of 'protected': * The definition (i.e., body) of a 'protected' function is not visible outside the defining module * The idea is that inside the defining module, a 'protected' function may or may not be opaque. However, this will be easier to support once opaque/reveal are language primitives. Therefore, for the time being, {:opaque} is not allowed to be applied to 'protected' functions. * In order to extend the definition of a predicate in a refinement module, the predicate must be 'protected' * The 'protected' status of a function must be preserved in refinement modules
* Fix issue #60Gravatar qunyanm2015-03-06
|