Proof of static soundness of Yul.
We show that if the safety checks in the static semantics are satisfied, no dynamic semantics errors can occur during execution, except for running out of the artificial limit counter (since the static semantics clearly does not check for termination). This is a soundness property, because the safety checks in the static semantics are designed exactly to prevent the occurrence of those errors, which the dynamic semantics defensively checks.