Litcius/Paper detail

Better Together: Unifying Datalog and Equality Saturation

Yihong Zhang, Yisu Remy Wang, Oliver Flatt, David Cao, Philip Zucker, Eli Rosenthal, Zachary Tatlock, Max Willsey

2023Proceedings of the ACM on Programming Languages30 citationsDOIOpen Access PDF

Abstract

We present egglog, a fixpoint reasoning system that unifies Datalog and equality saturation (EqSat). Like Datalog, egglog supports efficient incremental execution, cooperating analyses, and lattice-based reasoning. Like EqSat, egglog supports term rewriting, efficient congruence closure, and extraction of optimized terms. We identify two recent applications -- a unification-based pointer analysis in Datalog and an EqSat-based floating-point term rewriter -- that have been hampered by features missing from Datalog but found in EqSat or vice-versa. We evaluate our system by reimplementing those projects in egglog. The resulting systems in egglog are faster, simpler, and fix bugs found in the original systems.

Topics & Concepts

DatalogRewritingComputer scienceProgramming languageUnificationPointer (user interface)ConcurrencyTheoretical computer scienceArtificial intelligenceLogic, programming, and type systemsFormal Methods in VerificationLogic, Reasoning, and Knowledge