VOD: https://www.youtube.com/watch?v=2rChq0gwhxo
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:

ideal directory contains the canonicalisations (the
“ideal” forms). At the moment, canon will just be a simple
simplifier but might become an SoN-esque worklist optimiser later.opt/the framework is just to be a low level wrapper
over actual optimisation functions. Eventually you would want to prove
these correct as well, but the initial implementation should be amenable
to rewrite proofs (proof of confluence, etc).