Combining E-Graphs with Abstract Interpretation

05/30/2022
by   Samuel Coward, et al.
0

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 greater precision). We develop the theory behind this intuition and present an exemplar interval arithmetic implementation, which we apply to the FPBench suite of benchmarks.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/17/2022

Abstract Interpretation on E-Graphs

Recent e-graph applications have typically considered concrete semantics...
research
12/28/2017

Abstract Interpretation using a Language of Symbolic Approximation

The traditional abstract domain framework for imperative programs suffer...
research
03/03/2023

Automating Constraint-Aware Datapath Optimization using E-Graphs

Numerical hardware design requires aggressive optimization, where design...
research
07/06/2021

Thread-modular Analysis of Release-Acquire Concurrency

We present a thread-modular abstract interpretation(TMAI) technique to v...
research
08/17/2021

Improving Thread-Modular Abstract Interpretation

We give thread-modular non-relational value analyses as abstractions of ...
research
11/23/2021

Caviar: An E-graph Based TRS for Automatic Code Optimization

Term Rewriting Systems (TRSs) are used in compilers to simplify and prov...
research
01/10/2020

A computational interpretation of Zorn's lemma

We give a computational interpretation to an abstract instance of Zorn's...

Please sign up or login with your details

Forgot password? Click here to reset