Equality saturation theory exploration `a la carte
Anjali Pal, Brett Saiki, Ryan Tjoa, Cynthia Richey, Amy Zhu, Oliver Flatt, Max Willsey, Zachary Tatlock, Chandrakana Nandi
Abstract
Rewrite rules are critical in equality saturation, an increasingly popular technique in optimizing compilers, synthesizers, and verifiers. Unfortunately, developing high-quality rulesets is difficult and error-prone. Recent work to automatically infer rewrite rules does not scale to large terms or grammars. Users struggle to guide inference and incrementally construct rulesets because existing rule inference tools are monolithic and opaque. As a result, most equality saturation users still manually develop and maintain rulesets. This paper proposes Enumo, a new domain-specific language for programmable theory exploration. Enumo provides a small set of core operators that enable users to strategically guide rule inference and incrementally build rulesets. Short Enumo programs easily replicate results from state-of-the-art tools like Ruler, but Enumo programs can also scale to infer deeper rules from larger grammars than prior approaches. Enumo's composable operators even facilitate developing new strategies for ruleset inference. We introduce a new fast-forwarding strategy which does not require evaluating terms in the target language, and thus supports domains that were out of scope for prior work. Enumo is also easy to extend: two new operators suffice to incorporate large language models into rule inference, where they complement guided search. We evaluate Enumo and fast-forwarding across a variety of domains. Compared to state-of-the-art techniques, Enumo can synthesize better rulesets over a diverse set of domains, in some cases matching the effects of manually developed rulesets in systems driven by equality saturation.
Create a lesson
Related papers
Behavioral Analysis of Timed Actors using Syntactic Slice Equivalence
Ali Ataollahi, Fatemeh Ghassemi, Eduard Kamburjan et al.
Exo-GPU: Safe, Imperative, User-schedulable Programming for Tensor Cores
David Zhao Akeley, Yuka Ikarashi, Jonathan Ragan-Kelley
Revisiting Soundness for Occurrence Typing, Semantically
Yuquan Fu, Carlo Angiuli, Sam Tobin-Hochstadt
Opportunistic ZGC: Leveraging Idle Cores for More Effective Concurrent Garbage Collection
Jacob Malloy, Michael R. Jantz, Terry Jones
QuickerChick
Ivan Mladenov, Alperen Keles, Leonidas Lampropoulos
Expressing NumPy Broadcasting via Verb Rank in J
Marcin Żołek