| Commit message (Collapse) | Author | Age |
|
|
|
| |
temporary hack in FloydCycleDetect.dfy to be corrected shortly)
|
|
|
|
|
|
|
|
|
| |
division '/' and (uninterpreted) real exponentiation '**', real literals and coercion functions 'int' and 'real';
Integer operations 'div' and 'mod' are now mapped to corresponding SMT-LIB operations instead of treating them uninterpreted;
Made unary minus valid Boogie syntax again (the expression '- e' used to be rewritten by the parser to '0 - e', now this is done when generating VCs);
Extended the BigDec class with additional functionality;
Added test cases for SMT-LIB prover backend (the Z3 API interface has been adapted accordingly, but is untested)
|
| |
|
|
|
|
| |
of / and %
|
|
|
|
|
|
|
| |
interval-based abstract interpretation instead.
Command-line option '/infer' now accepts only arguments 't' and 'j' where the latter is the default now for Boogie.
Command-line option '/logInfer' has been dropped.
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| | |
now enabled by default.
|
| |\ |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |/|
|/| | |
|
| | |
| | |
| | |
| | |
| | | |
Improved error reporting.
Tidied up code.
|
|\ \ \ |
|
| | | | |
|
| |\ \ \ |
|
| | | | | |
|
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | | |
predicate permission masks.
|
| | | |
| | | |
| | | |
| | | | |
quantification instead of explicit enumeration of locations.
|
| | | | |
|
|\| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Reworked implementation of barriers.
Started on support for barrier invariants.
|
| |\| | |
|
| | | | |
|
| | | | |
|
| | |\ \ |
|
| | | | | |
|
| |/ / / |
|
| | |\ \
| | |/ /
| |/| | |
|
| | | | |
|
| | | | |
|
| |\ \ \
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
point) will be regarded as uniform. This simplification avoids various edge
cases.
|
| | | |
| | | |
| | | |
| | | | |
triggers to make them more permissive (and for instance fix a recent test failure).
|
|\ \ \ \ |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
trigger-generation feature
|
| | | | |
| | | | |
| | | | |
| | | | | |
now the test does not pass.. this is a problem with triggering the framing axiom, if the way the function is mentioned in a state is under a quantifier... but it's about to be fixed :)
|
| | | | |
| | | | |
| | | | |
| | | | | |
cases where different numbers of extra boolean variables are needed to generate different trigger sets. In this case, the resulting quantified assertions are conjoined together in the result.
|
| | |/ /
| |/| |
| | | |
| | | | |
Z3 4.1.
|
| | | |
| | | |
| | | |
| | | | |
additional boolean variables to replace any sub-expressions that would be problematic in a candidate trigger (logical operators and comparison operators are forbidden). These extra variables are used in the triggers but not in the bnody of the quantifier. However, they need to be quantified over as well, and this creates a problem if different trigger sets employ different sets of extra variables. For the moment, the implementation groups all of the trigger sets by the sets of extra variables they use, and only outputs the first (in practice, often the only) such group. Hopefully this will be improved on soon.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
arrays are turned into 2D maps with first index type bool. Thread 1 always
indexes into "true", while threads 2 indexes into "samegroup" (a formula which
is true iff threads 1 and 2 are in the same group). Thus if the threads are in
different groups they operate on different shared arrays, but if they are in the
same group they operate on the same shared array. This paves the way for
implementing support for barrier invariants.
|
| | | | |
|
| | |\ \ |
|
| | | | |
| | | | |
| | | | |
| | | | | |
going to be used (otherwise Nil is passed).
|