| Commit message (Collapse) | Author | Age |
|
|
|
| |
wrong.
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
That commit accidentally overwrote the dafny shell script for Linux and MacOS.
|
| |\ |
|
| |/
|/| |
|
|/ |
|
|
|
|
| |
The mono wrapper for Dafny didn't forward command line arguments.
|
| |
|
|
|
|
|
|
| |
Dafny now first looks for a z3 binary in z3/bin, and if it can't find one it
looks for one in Binaries/z3.exe (mostly for backwards-compatibility with
already set-up source installations).
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Improvements in encoding of reads of function values.
|
|
|
|
|
|
| |
be a "heap anchor".
Currently, a heap is an anchor if it produced by a havoc (but not a direct update).
|
|
|
|
| |
copied to the output directory when the /optimize flag is used.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
elements.
|
| |
|
| |
|
|\ |
|
| | |
|
|/
|
|
|
|
|
| |
with type parameters).
Resolve ClassDecl.TraitsTyp as types.
Moved declaration of TraitParent and NoTraitAtAll to prelude.
|
| |
|
|
|
|
| |
of proving the existence check of let-such-that and assign-such-that
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
EuclideanModulus_short call EuclideanModulus_int, not the BigInteger EuclideanModulus. (Same for EuclideanDivision.)
|
|
|
|
| |
EuclideanDivision_short call EuclideanDivision_int, not the BigInteger EuclideanDivision. (Same for EuclideanModulus.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
use native C# representation of small integer newtypes.
Examples:
newtype{:nativeType "byte"} byte = i:int | 0 <= i < 0x100
newtype{:nativeType "sbyte"} sbyte = i:int | -0x80 <= i < 0x80
newtype{:nativeType "ushort"} uint16 = i:int | 0 <= i < 0x10000
newtype{:nativeType "short"} int16 = i:int | -0x8000 <= i < 0x8000
newtype{:nativeType "uint"} uint32 = i:int | 0 <= i < 0x100000000
newtype{:nativeType "int"} int32 = i:int | -0x80000000 <= i < 0x80000000
newtype{:nativeType "ulong"} uint64 = i:int | 0 <= i < 0x10000000000000000
newtype{:nativeType "long"} int64 = i:int | -0x8000000000000000 <= i < 0x8000000000000000
newtype month = i:int | 0 <= i < 12 // use smallest compatible C# type if possible (byte in this case), otherwise BigInteger
newtype{:nativeType} month = i:int | 0 <= i < 12 // same as {:nativeType true}
newtype{:nativeType true} month = i:int | 0 <= i < 12 // use smallest compatible C# type if possible (byte in this case), otherwise error
newtype{:nativeType false} month = i:int | 0 <= i < 12 // use BigInteger
newtype{:nativeType "uint"} month = i:int | 0 <= i < 12 // use C# uint type if possible, otherwise error
newtype{:nativeType} even20 = i:int | 0 <= i < 20 && (i % 2 == 0) // nativeTypes need not be contiguous
newtype{:nativeType} even10 = i:even20 | i < 10 // nativeTypes can inherit constraints from other nativeTypes
|
|
|
|
| |
Removed unused cases from axioms where Seq#Take and Seq#Drop take out-of-range arguments
|
| |
|
|
|
|
| |
Results in more manual work, but it also produces more predictable behavior.
|
|
|
|
| |
Also include ModelViewer.dll in binary distribution
|
| |
|
|
|
|
|
|
| |
Added string literals with various escapes--a subset of those supported in C# and similar languages, including the C# verbatim strings.
Previously, the "print" statement and custom attributes could support expression-or-string arguments; there is no longer a need to special-case these, so these arguments are now just expressions.
Fixed lack of operator resolution in custom attributes.
|
|
|
|
| |
Made up for inadequacy in reasoning machinery (supplying Int(Real(i)) == i axiom)
|
|
|
|
| |
Changed semantics of real-to-int conversions--these now have a precondition that the number converted is already an integer
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* The reads clause now needs to be self framing.
* The requires clause now needs to be framed by the reads clause.
* There are one-shot lambdas, with a single arrow, but they will probably be
removed.
* There is a {:heapQuantifier} attribute to quantifiers, but they will
probably be removed.
* Add smart handling of type variables
* Add < and > for datatype & type parameter
|