Zulip Chat Archive
Stream: Program verification
Topic: Automation for Directed Rewrite Based Proof Search
Jesse Slater (Feb 13 2026 at 19:07):
I have a deeply embedded DSL and a set of directed rewrite rules. The rewrites are directed because the semantics are nondeterministic and some rewrites are refinements which reduce non-determinism irreversibly.
Using sequences of rewrites, I can prove complex program equivalences, but the proofs become long and unwieldy quickly. I have monotonicity lemmas for each operation, so to apply a rewrite deep in an AST, I apply a sequence of monotonicity lemmas to get the spot I want to rewrite at the root and then apply the rule. This makes proofs long, and the process feels readily automatable.
Are there automation tools for Lean which would be appropriate for this task?
Aaron Liu (Feb 13 2026 at 19:10):
there's grw
Malvin Gattinger (Feb 13 2026 at 19:27):
Maybe the egg tactic by @Andrés Goens and @Marcus Rossel could help in your use case. (I've not actually used it myself much.) https://github.com/marcusrossel/lean-egg
Marcus Rossel (Feb 16 2026 at 09:50):
egg can only do =/↔, so this probably won't help
Last updated: Feb 28 2026 at 14:05 UTC