Combining E-Graphs with Abstract Interpretation
Samuel Coward, George A. Constantinides, Theo Drane

TL;DR
This paper presents a novel integration of e-graphs and abstract interpretation, enabling more precise and efficient application of conditional rewrite rules in program analysis.
Contribution
It introduces a theoretical framework and practical implementation demonstrating how e-graphs and abstract interpretation can mutually enhance each other.
Findings
Improved detection of condition validity in rewrite rules.
Enhanced precision in program analysis through combined methods.
Successful application to the FPBench suite.
Abstract
E-graphs are a data structure that compactly represents equivalent expressions. They are constructed via the repeated application of rewrite rules. Often in practical applications, conditional rewrite rules are crucial, but their application requires the detection - at the time the e-graph is being built - that a condition is valid in the domain of application. Detecting condition validity amounts to proving a property of the program. Abstract interpretation is a general method to learn such properties, traditionally used in static analysis tools. We demonstrate that abstract interpretation and e-graph analysis naturally reinforce each other through a tight integration because (i) the e-graph clustering of equivalent expressions induces natural precision refinement of abstractions and (ii) precise abstractions allow the application of deeper rewrite rules (and hence potentially even…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Formal Methods in Verification
