Expand description

Transformation which injects data invariants into the bytecode.

This transformation adds the data invariant to all occurrences of the WellFormed(x) call which has been introduced by the spec instrumenter, by essentially transforming WellFormed(x) into WellFormed(x) && <data invariant>(x). The WellFormed expressions are maintained in the output for processing by the backend, in case type assumptions needed to be added by the backend (which depends on the compilation scheme). It also handles PackRef/PackRefDeep instructions introduced by memory instrumentation, as well as the Pack instructions.

Structs