Versioned E-Graphs
summary
Introduces versioned e-graphs that store multiple conditional equivalence sets in one structure, implements a versioned union-find with propagation and version path compression, mechanizes correctness in Lean and ships a reusable Rust library supporting rebuilding, e‑class analyses, e‑matching and extraction. Evaluations use 25,000 random configs, 6,000 SMT‑LIB UF benchmarks and 300 Tety benchmarks; versioned e‑graphs cut memory by 5–30% and run up to 4× faster than cloning or naive persistent baselines.
AI-written summary · about
chapters (6)
- 0:00Versioned e-graphs intro
- 2:12Program verification motivation
- 10:40Union-find design challenges
- 13:13Extending versioned e-graphs
- 17:22Summary and evaluation
- 18:25Q&A
related talks
20mSlotted E-Graphs: First-Class Support for (Bound) Variables in E-Graphs
23mSlotted E-Graphs
23mPerformant Dynamically Typed E-Graphs in Pure Julia
30megg: Fast and Extensible Equality Saturation
24mIncremental Equality Saturation
28mBridging Syntax and Semantics of Lean Expressions in E-Graphs
22mFrom Rewriting to Fixpoints: Solving Recursive Equations with E-Graphs
14mPredicate E-Graphs with Symbolic Conditional Rewriting
