Better Together: Unifying Datalog and Equality Saturation

04/10/2023
by   Yihong Zhang, et al.
0

We present egglog, a fixpoint reasoning system that unifies Datalog and equality saturation (EqSat). Like Datalog, it supports efficient incremental execution, cooperating analyses, and lattice-based reasoning. Like EqSat, it 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 egglog by reimplementing those projects in egglog. The resulting systems in egglog are faster, simpler, and fix bugs found in the original systems.

READ FULL TEXT
research
06/10/2021

Finding normal binary floating-point factors in constant time

Solving the floating-point equation x ⊗ y = z, where x, y and z belong t...
research
02/25/2021

NSan: A Floating-Point Numerical Sanitizer

Sanitizers are a relatively recent trend in software engineering. They a...
research
04/07/2020

egg: Easy, Efficient, and Extensible E-graphs

An E-graph is a data structure that can efficiently encode the congruenc...
research
11/25/2019

Checking Chase Termination over Ontologies of Existential Rules with Equality

The chase is a sound and complete algorithm for conjunctive query answer...
research
05/30/2023

Colored E-Graph: Equality Reasoning with Conditions

E-graphs are a prominent data structure that has been increasing in popu...
research
04/07/2020

egg: Fast and Extensible E-graphs

An e-graph efficiently represents a congruence relation over many expres...
research
12/07/2022

Expressiveness of SHACL Features and Extensions for Full Equality and Disjointness Tests

SHACL is a W3C-proposed schema language for expressing structural constr...

Please sign up or login with your details

Forgot password? Click here to reset