There is a new event:
not match(t1,t2)
where t1,t2 are terms.
They are implemented by using a special claim that simply stores the
intended inequality. The pruning theorems (prune_theorems.c) ensure that
these terms never become equal. If there are equal, the constraint is
violated. As long as they are not equal, there exists a solution using
groung terms such that their instantiation is not equal.
Currently not very efficient implemented and the graph out output is
also ugly for now.
Conflicts:
gui/Scyther/Trace.py
src/compiler.c
src/scanner.l
When untyped variables occur, the encryption level depth pruning is for
now unjustified. Maybe we can get a proof later. Previously this was
hidden, which was a bad design decision. Now the output is much
clearer.
errors with --extravert: even if Alice is already occurring in the
system, the name can be used.
- Added explicit level 2 encryption bound. This is technically
incorrect, but for now it should work.
- Added rho/sigma/constants fields to the runs, on which the new code is
based. Over time, .locals should be deprecated in favour of these
better variants.
- Untyped variant is out of grace for the time being (cf. Athena interm
problems)
- Improved graph output further.
Minor:
- Added TERMLISTADD and APPEND macros for more concise code.