This is not a full copy from the compromise branch. In particular,
some counts (in arachne.c) are missing, as well as the modified dot output (dotout.c).
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.
mess out of it. One of the reasons is that the intruder events
cannot be used along with the normal ranking, because they no longer
correspond to real events.
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.
terms were destroyed before it could be tested whether they were in
sys->variables. Thus, garbage was left in sys->variables. This has
gone undetected because it was never really used. Hmpf.
the (monstrously large) system structure, there is now a global
'switchdata' structure originating in switches.c. This makes it much
easier to see what's happening.
* Note: although this code has been tested, there might be some
hiccups, because doing multiple search&replace actions over all
files is bound to cause some problems.
* removed <term> wrappers
* added <const> wrappers
* removed <role><term> construct, now <rolename>R</rolename>
constructs.
* added <variables> section.
* variable substitutions are followed through in runs. Thus, only
unbound variables occur in the semitrace.
* added the untested claims back in, so that all events in a
role/semitrace are now shown. Note that they can be disabled
again by using the new '-H' switch.
expanded explicitly. This solves a long-standing issue with {k}k
decryption to yield k. Needs some testing to ensure that it did not
introduce any new errors.