paperbot · PL 论文追踪

全部论文 待读 收藏

P1 Better Together: Unifying Datalog and Equality Saturation

合则更强:统一 Datalog 与等式饱和
PLDI 7(PLDI)2023匹配度 5/10 · 论文提出 egglog 统一 Datalog 与等式饱和,属于静态分析/形式推理基础设施,并包含指针分析与浮点项重写案例,与浮点程序分析和静态分析有间接关联;但完全不涉及 LLM/Agent,也不属于贝叶斯程序分析,因此偏离用户当前 PL+AI 的核心交叉。引用 36 inbox
Yihong Zhang, Yisu Remy Wang, Oliver Flatt, David Cao, Philip Zucker, Eli Rosenthal, Zachary Tatlock, Max Willsey
crossref: 2026-09-10

AI 速览

一句话:egglog 将 Datalog 与等式饱和(EqSat)统一为定点推理系统,兼具增量执行、同余闭包与项抽取能力。

论文指出现有两大定点推理范式各有短板:Datalog 擅长高效增量执行、协作分析与基于格的推理,却缺乏项重写、同余闭包与优化项抽取;等式饱和(EqSat)恰好相反。作者提出 egglog,将二者统一在同一个定点推理系统中,使其既能像 Datalog 那样增量执行并支持多分析协作与格推理,又能像 EqSat 那样进行项重写、高效同余闭包以及提取优化后的项。为验证设计,作者选取两个近期应用——Datalog 中基于合一(unification)的指针分析与 EqSat 的浮点项重写器——它们原本各自受限于对方范式的缺失特性,并分别用 egglog 重新实现。结果显示,重写后的系统更快、更简单,并修复了原系统中的若干缺陷。

问题
Datalog 与等式饱和(EqSat)各有能力盲区:Datalog 缺少项重写、同余闭包与优化项抽取,EqSat 缺少增量执行、协作分析与格推理,导致依赖这些特性的应用受限于所用范式。
方法
提出 egglog,一个统一 Datalog 与 EqSat 的定点推理系统,在单一引擎中同时支持增量执行、协作分析、格推理、项重写、高效同余闭包与优化项抽取。
评估
用 egglog 重新实现两个此前分别受限于 Datalog 或 EqSat 缺点的应用:基于合一的指针分析与基于 EqSat 的浮点项重写器,结果表明新系统更快、更简单且修复了原系统缺陷。
原文摘要(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.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1982,
  title = {Better Together: Unifying Datalog and Equality Saturation},
  author = {Yihong Zhang and Yisu Remy Wang and Oliver Flatt and David Cao and Philip Zucker and Eli Rosenthal and Zachary Tatlock and Max Willsey},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {7},
  number = {PLDI},
  year = {2023},
  doi = {10.1145/3591239}
}