| Commit message (Collapse) | Author | Age |
| |
|
| |
|
|
|
|
| |
empty.
|
|
|
|
| |
between a module and its refinement base.
|
|
|
|
| |
bound as undetermined so that iteration will continue.
|
| |
|
| |
|
|
|
|
| |
collectors.
|
|
|
|
| |
collide with the names of its formals.
|
| |
|
|
|
|
| |
in MakeAbstractSignature.
|
|
|
|
| |
trying to substitute the nested CasePattern with the BoundVar.
|
|\ |
|
| | |
|
|/
|
|
| |
the auto-triggers can be computed for ForallStmt.
|
|
|
|
| |
occurrence of Set/MapComprehension when translating it to c#.
|
|
|
|
| |
LiteralExpr, write out its type instead.
|
|
|
|
| |
function and connect with Apply1 of the function.
|
| |
|
|
|
|
|
| |
swap them when the expr is first created in parser or for calcstmt. This
avoids problems of operands being swapped again when the expr is copied.
|
|
|
|
|
| |
need exclude the private terms (the ones that includes the quantifier expr's bv)
from it exported terms.
|
|
|
|
| |
DatatypeUpdateExpr if ResovedExpression is not null.
|
|
|
|
|
|
| |
method that is generated by LetExpr. Change the compiler so that each stmt
writes to its own buffer before add it to the program's buffer so that we can
insert the above mentioned copy instruction before the stmt.
|
| |
|
|
|
|
| |
it does not depend on the order they appeared.
|
| |
|
| |
|
|
|
|
| |
Moved all bounds discovery to resolution pass 1.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
We already have separate tests for those, and we want the output to be the same
with and without /autoTriggers.
|
| |
|
| |
|
|
|
|
|
|
| |
clues about which parameters to include.
As a result, improved many test cases (see, e.g., dafny4/NipkowKlein-chapter7.dfy!) and beautified some others.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
This contains trigger related things under the autoTriggers flag (disabled by
default), and some bug-fixes and cleanups that are already enabled.
|
| | |
|
| |
| |
| |
| | |
Found by enabling auto-generated triggers and looking for failing tests
|
| | |
|
| |\ |
|
|/ /
| |
| |
| | |
Improvements in encoding of reads of function values.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\ |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|