Width-independent native program prefixes #
An execution that halts at one width identifies every successful prefix at a larger width when the program does not read physical width. These rules apply to both complete native frontends and programs that compose them.
Main results #
Code.readsWidth_rename: register renaming does not change width observation.Runs.prefix_at_smaller_width: wider prefixes agree with an admitted smaller-width execution.
These determinism and representation lemmas are original.
theorem Cslib.WordRAM.Runs.prefix_at_smaller_width {B : Basis} {w w' r : ℕ} {p : Program B r} (hp : ¬p.ReadsWidth) (hw : w ≤ w') {s t : State r} {k v total : ℕ} (hwide : Runs w' p s t k) (hlow : Executes w p s v total) :
Runs w p s t k
Every wider prefix is the same smaller-width prefix if that smaller execution halts.