The main result of this subsection follows as an immediate corollary of the soundness of the typing system.
The tool's soundness theorem is expressed in terms of the bit-level semantics of x86 programs, so its correctness depends on very few assumptions.
If the system in figure 4 is operationally correct then, because of the soundness theorem above, the system in figure 3 is operationally correct.
We show that the system enjoys properties like type uniqueness, subject reduction, soundness, confluence, and weak normalization.
Section 5 then proves soundness (but not completeness) in the general case where predicates in contracts may diverge.
The addition of recursive contracts has far-reaching implications, deeply affecting the formulation of our model and requiring different techniques for proving soundness.
The following results are required by the proof of the soundness theorem below.
We are interested in the soundness and conservativity issues these features raise: can we ensure modularity features do not lead to inconsistencies?