Optimizing Relational Programs I
summary
Tool builds a compact tree automaton that encodes many equivalent programs by merging states for equal subexpressions, grows it by applying rewrite rules until saturation, then extracts a cheapest implementation via a generalized Dijkstra on hyperedges. Key claims: this yields a huge (even infinite) search space compression, associativity/commutativity causes combinatorial blowup, DAG extraction becomes NP‑hard, and the correct extraction encoding uses equality saturation plus ASP vs ILP (answer‑set programming fixes an ILP counterexample).
AI-written summary · about
chapters (7)
- 0:00Workshop overview
- 3:51Program optimization as search
- 10:39Tree automata for programs
- 22:27Equality saturation
- 27:14Finding fastest program
- 34:02Extracting optimal programs
- 40:41Closing
related talks
05mRelational Programming
18mParikh's Theorem Made Symbolic
15mSpeeding up Symbolic Reasoning for Relational Queries
15mUniversal Scalability in Declarative Program Analysis (with Choice-Based Combination(…)
13mAccelerating Program Analyses in Datalog by Merging Library Facts
01h 01mDatalog and Equality Saturation
17mBetter Together: Unifying Datalog and Equality Saturation
01h 03mQuery Optimization and Evaluation 3: Variable Elimination and Tensor Decomposition
