VOD: https://www.youtube.com/watch?v=2rChq0gwhxo


Verification of Program Optimisations (Lean)

Agenda. Blog post has been released: https://l-m.dev/cs/formally-verifying-peephole-optimisations-in-lean/.

Between last stream and this stream, the theorem

was proved. This wasn’t what I expected, but it makes sense. I always thought of x <~> y meaning that the “definedness” of x is the same as y. But, apparently they’re equal.

So now the RewriteIff := x ~> y ∧ y ~> x relation has been removed from the codebase and replaced with equality. Theorems that rewrite back and forth are replaced with equality like here:

Aftermath