skip to main content

Rewrite rule inference using equality saturation

Published:15 October 2021Publication History
Skip Abstract Section

Abstract

Many compilers, synthesizers, and theorem provers rely on rewrite rules to simplify expressions or prove equivalences. Developing rewrite rules can be difficult: rules may be subtly incorrect, profitable rules are easy to miss, and rulesets must be rechecked or extended whenever semantics are tweaked. Large rulesets can also be challenging to apply: redundant rules slow down rule-based search and frustrate debugging.

This paper explores how equality saturation, a promising technique that uses e-graphs to apply rewrite rules, can also be used to infer rewrite rules. E-graphs can compactly represent the exponentially large sets of enumerated terms and potential rewrite rules. We show that equality saturation efficiently shrinks both sets, leading to faster synthesis of smaller, more general rulesets.

We prototyped these strategies in a tool dubbed Ruler. Compared to a similar tool built on CVC4, Ruler synthesizes 5.8× smaller rulesets 25× faster without compromising on proving power. In an end-to-end case study, we show Ruler-synthesized rules which perform as well as those crafted by domain experts, and addressed a longstanding issue in a popular open source tool.

Skip Supplemental Material Section

Supplemental Material

Auxiliary Presentation Video

This is the talk video of our paper on Rewrite Rule Inference Using Equality Saturation. Our paper explores how equality saturation, a promising technique that uses e-graphs to apply rewrite rules, can also be used to infer rewrite rules. E-graphs can compactly represent the exponentially large sets of enumerated terms and potential rewrite rules. We show that equality saturation efficiently shrinks both sets, leading to faster synthesis of smaller, more general rulesets. We prototyped these strategies in a tool dubbed Ruler. Compared to a similar tool built on CVC4, Ruler synthesizes 5.8× smaller rulesets 25× faster without compromising on proving power. In an end-to-end case study, we show Ruler-synthesized rules which perform as well as those crafted by domain experts, and addressed a longstanding issue in a popular open source tool.

References

  1. Franz Baader and Tobias Nipkow. 1998. Term Rewriting and All That. Cambridge University Press. https://doi.org/10.1017/CBO9781139172752 Google ScholarGoogle Scholar
  2. L. Bachmair, I. V. Ramakrishnan, A. Tiwari, and L. Vigneron. 2000. Congruence Closure Modulo Associativity and Commutativity. In Frontiers of Combining Systems, Hélène Kirchner and Christophe Ringeissen (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 245–259. isbn:978-3-540-46421-1 https://doi.org/10.1007/10720084_16 Google ScholarGoogle ScholarCross RefCross Ref
  3. Sorav Bansal and Alex Aiken. 2006. Automatic Generation of Peephole Superoptimizers. In Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XII). Association for Computing Machinery, New York, NY, USA. 394–403. isbn:1595934510 https://doi.org/10.1145/1168857.1168906 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Hendrik Pieter Barendregt, Marko C. J. D. van Eekelen, John R. W. Glauert, Richard Kennaway, Marinus J. Plasmeijer, and M. Ronan Sleep. 1987. Term Graph Rewriting. In PARLE, Parallel Architectures and Languages Europe, Volume II: Parallel Languages, Eindhoven, The Netherlands, June 15-19, 1987, Proceedings. 141–158. https://doi.org/10.1007/3-540-17945-3_8 Google ScholarGoogle ScholarCross RefCross Ref
  5. Clark Barrett, Christopher L. Conway, Morgan Deters, Liana Hadarean, Dejan Jovanović, Tim King, Andrew Reynolds, and Cesare Tinelli. 2011. CVC4. In Proceedings of the 23rd International Conference on Computer Aided Verification (CAV’11). Springer-Verlag, Berlin, Heidelberg. 171–177. isbn:9783642221095 https://doi.org/10.5555/2032305.2032319Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Clark Barrett, Pascal Fontaine, and Cesare Tinelli. 2016. The Satisfiability Modulo Theories Library (SMT-LIB). www.SMT-LIB.org.Google ScholarGoogle Scholar
  7. Yves Bertot and Pierre Castran. 2010. Interactive Theorem Proving and Program Development: Coq’Art The Calculus of Inductive Constructions (1st ed.). Springer Publishing Company, Incorporated. isbn:3642058809 https://doi.org/10.5555/1965123Google ScholarGoogle Scholar
  8. M. Bezem, J.W. Klop, E. Barendsen, R. de Vrijer, and Terese. 2003. Term Rewriting Systems. Cambridge University Press. isbn:9780521391153 lccn:2002067658 https://books.google.com/books?id=oe3QKzhFEBACGoogle ScholarGoogle Scholar
  9. Gabriel Hjort Blindell. 2013. Survey on Instruction Selection: An Extensive and Modern Literature Review. CoRR, abs/1306.4898 (2013), arxiv:1306.4898. arxiv:1306.4898Google ScholarGoogle Scholar
  10. Peter Borovanskỳ, Claude Kirchner, Hélene Kirchner, Pierre-Etienne Moreau, and Christophe Ringeissen. 1998. An overview of ELAN. Electronic Notes in Theoretical Computer Science, 15 (1998), 55–70. https://doi.org/10.1016/S1571-0661(05)82552-6 Google ScholarGoogle ScholarCross RefCross Ref
  11. Sebastian Buchwald, Andreas Fried, and Sebastian Hack. 2018. Synthesizing an Instruction Selection Rule Library from Semantic Specifications. In Proceedings of the 2018 International Symposium on Code Generation and Optimization (CGO 2018). Association for Computing Machinery, New York, NY, USA. 300–313. isbn:9781450356176 https://doi.org/10.1145/3168821 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Tianqi Chen, Thierry Moreau, Ziheng Jiang, Lianmin Zheng, Eddie Yan, Meghan Cowan, Haichen Shen, Leyuan Wang, Yuwei Hu, Luis Ceze, Carlos Guestrin, and Arvind Krishnamurthy. 2018. TVM: An Automated End-to-End Optimizing Compiler for Deep Learning. In Proceedings of the 13th USENIX Conference on Operating Systems Design and Implementation (OSDI’18). USENIX Association, USA. 579–594. isbn:9781931971478 https://doi.org/10.5555/3291168.3291211Google ScholarGoogle Scholar
  13. Koen Claessen, Moa Johansson, Dan Rosén, and Nicholas Smallbone. 2013. Automating Inductive Proofs Using Theory Exploration. In Automated Deduction – CADE-24, Maria Paola Bonacina (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg. 392–406. isbn:978-3-642-38574-2 https://doi.org/10.1007/978-3-642-38574-2_27 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Koen Claessen, Nicholas Smallbone, and John Hughes. 2010. QuickSpec: Guessing Formal Specifications Using Testing. In Tests and Proofs, Gordon Fraser and Angelo Gargantini (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 6–21. isbn:978-3-642-13977-2 https://doi.org/10.1007/978-3-642-13977-2_3 Google ScholarGoogle Scholar
  15. Manuel Clavel, Francisco Durán, Steven Eker, Patrick Lincoln, Narciso Martí-Oliet, José Meseguer, and Carolyn Talcott. 2007. All About Maude-A High-Performance Logical Framework: How to Specify, Program, and Verify Systems in Rewriting Logic. 4350, Springer. https://doi.org/10.1007/978-3-540-71999-1 Google ScholarGoogle ScholarCross RefCross Ref
  16. Jack W. Davidson and Christopher W. Fraser. 2004. Automatic Generation of Peephole Optimizations. SIGPLAN Not., 39, 4 (2004), April, 104–111. issn:0362-1340 https://doi.org/10.1145/989393.989407 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Leonardo De Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In Proceedings of the Theory and Practice of Software, 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’08/ETAPS’08). Springer-Verlag, Berlin, Heidelberg. 337–340. isbn:3-540-78799-2, 978-3-540-78799-0 http://dl.acm.org/citation.cfm?id=1792734.1792766Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Nachum Dershowitz. 1982. Orderings for term-rewriting systems. Theoretical computer science, 17, 3 (1982), 279–301. https://doi.org/10.1016/0304-3975(82)90026-3 Google ScholarGoogle ScholarCross RefCross Ref
  19. Nachum Dershowitz. 1987. Termination of rewriting. Journal of symbolic computation, 3, 1-2 (1987), 69–115. https://doi.org/10.1016/S0747-7171(87)80022-6 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. David Detlefs, Greg Nelson, and James B. Saxe. 2005. Simplify: A Theorem Prover for Program Checking. J. ACM, 52, 3 (2005), May, 365–473. issn:0004-5411 https://doi.org/10.1145/1066100.1066102 Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. João Dias and Norman Ramsey. 2010. Automatically Generating Instruction Selectors Using Declarative Machine Descriptions. In Proceedings of the 37th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’10). Association for Computing Machinery, New York, NY, USA. 403–416. isbn:9781605584799 https://doi.org/10.1145/1706299.1706346 Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Steven Eker. 2003. Associative-commutative rewriting on large terms. In International Conference on Rewriting Techniques and Applications. 14–29. https://doi.org/10.1007/3-540-44881-0_3 Google ScholarGoogle ScholarCross RefCross Ref
  23. A. P. Ershov. 1958. On Programming of Arithmetic Operations. Commun. ACM, 1, 8 (1958), Aug., 3–6. issn:0001-0782 https://doi.org/10.1145/368892.368907 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Trevor Alexander Hansen. 2012. A constraint solver and its application to machine code test generation.. Ph.D. Dissertation. Melbourne, Australia.Google ScholarGoogle Scholar
  25. Herbie. 2021. Herbie can generate more-complex expressions that aren’t more precise. https://github.com/uwplse/herbie/issues/261#issuecomment-680896733Google ScholarGoogle Scholar
  26. Herbie. 2021. Optimize floating-point expressions for accuracy. https://github.com/uwplse/herbie/issuesGoogle ScholarGoogle Scholar
  27. James C. Hoe and Arvind. 2000. Hardware Synthesis from Term Rewriting Systems. Springer US, Boston, MA. 595–619. isbn:978-0-387-35498-9 https://doi.org/10.1007/978-0-387-35498-9_52 Google ScholarGoogle ScholarCross RefCross Ref
  28. Zhihao Jia, Oded Padon, James Thomas, Todd Warszawski, Matei Zaharia, and Alex Aiken. 2019. TASO: Optimizing Deep Learning Computation with Automatic Generation of Graph Substitutions. In Proceedings of the 27th ACM Symposium on Operating Systems Principles (SOSP ’19). Association for Computing Machinery, New York, NY, USA. 47–62. isbn:9781450368735 https://doi.org/10.1145/3341301.3359630 Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Moa Johansson, L. Dixon, and A. Bundy. 2010. Conjecture Synthesis for Inductive Theories. Journal of Automated Reasoning, 47 (2010), 251–289. https://doi.org/10.1007/s10817-010-9193-y Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Moa Johansson, Dan Rosén, Nicholas Smallbone, and Koen Claessen. 2014. Hipster: Integrating Theory Exploration in a Proof Assistant. In Intelligent Computer Mathematics, Stephen M. Watt, James H. Davenport, Alan P. Sexton, Petr Sojka, and Josef Urban (Eds.). Springer International Publishing, Cham. 108–122. isbn:978-3-319-08434-3 https://doi.org/10.1007/978-3-319-08434-3_9 Google ScholarGoogle ScholarCross RefCross Ref
  31. Rajeev Joshi, Greg Nelson, and Keith Randall. 2002. Denali: A Goal-directed Superoptimizer. SIGPLAN Not., 37, 5 (2002), May, 304–314. issn:0362-1340 https://doi.org/10.1145/543552.512566 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Hélène Kirchner. 2015. Rewriting strategies and strategic rewrite programs. In Logic, Rewriting, and Concurrency. Springer, 380–403.Google ScholarGoogle Scholar
  33. Donald E Knuth and Peter B Bendix. 1983. Simple word problems in universal algebras. In Automation of Reasoning. Springer, 342–376. https://doi.org/10.1007/978-3-642-81955-1_23 Google ScholarGoogle ScholarCross RefCross Ref
  34. Chris Lattner, Mehdi Amini, Uday Bondhugula, Albert Cohen, Andy Davis, Jacques Arnaud Pienaar, River Riddle, Tatiana Shpeisman, Nicolas Vasilache, and Oleksandr Zinenko. 2021. MLIR: Scaling Compiler Infrastructure for Domain Specific Computation. In CGO 2021. https://doi.org/10.1109/CGO51591.2021.9370308 Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Benjamin Livshits, Manu Sridharan, Yannis Smaragdakis, Ondřej Lhoták, J. Nelson Amaral, Bor-Yuh Evan Chang, Samuel Z. Guyer, Uday P. Khedker, Anders Møller, and Dimitrios Vardoulakis. 2015. In Defense of Soundiness: A Manifesto. Commun. ACM, 58, 2 (2015), Jan., 44–46. issn:0001-0782 https://doi.org/10.1145/2644805 Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Nuno P. Lopes, Juneyoung Lee, Chung-Kil Hur, Zhengyang Liu, and John Regehr. 2021. Alive2: Bounded Translation Validation for LLVM. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2021). Association for Computing Machinery, New York, NY, USA. 65–79. isbn:9781450383912 https://doi.org/10.1145/3453483.3454030 Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Salvador Lucas. 2001. Termination of rewriting with strategy annotations. In International Conference on Logic for Programming Artificial Intelligence and Reasoning. 669–684. https://doi.org/10.5555/645710.664488Google ScholarGoogle ScholarCross RefCross Ref
  38. Henry Massalin. 1987. Superoptimizer: A Look at the Smallest Program. In Proceedings of the Second International Conference on Architectual Support for Programming Languages and Operating Systems (ASPLOS II). IEEE Computer Society Press, Washington, DC, USA. 122–126. isbn:0818608056 https://doi.org/10.1145/36177.36194 Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. W. M. McKeeman. 1965. Peephole Optimization. Commun. ACM, 8, 7 (1965), July, 443–444. issn:0001-0782 https://doi.org/10.1145/364995.365000 Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. David Menendez and Santosh Nagarakatte. 2017. Alive-Infer: Data-Driven Precondition Inference for Peephole Optimizations in LLVM. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2017). Association for Computing Machinery, New York, NY, USA. 49–63. isbn:9781450349888 https://doi.org/10.1145/3062341.3062372 Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. David Menendez, Santosh Nagarakatte, and Aarti Gupta. 2016. Alive-FP: Automated Verification of Floating Point Based Peephole Optimizations in LLVM. In Static Analysis - 23rd International Symposium, SAS 2016, Edinburgh, UK, September 8-10, 2016, Proceedings, Xavier Rival (Ed.) (Lecture Notes in Computer Science, Vol. 9837). Springer, 317–337. https://doi.org/10.1007/978-3-662-53413-7_16 Google ScholarGoogle ScholarCross RefCross Ref
  42. Alexander Nadel. 2014. Bit-Vector Rewriting with Automatic Rule Generation. In Proceedings of the 16th International Conference on Computer Aided Verification - Volume 8559. Springer-Verlag, Berlin, Heidelberg. 663–679. isbn:9783319088662 https://doi.org/10.1007/978-3-319-08867-9_44 Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Chandrakana Nandi, Max Willsey, Adam Anderson, James R. Wilcox, Eva Darulova, Dan Grossman, and Zachary Tatlock. 2020. Synthesizing Structured CAD Models with Equality Saturation and Inverse Transformations. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2020). Association for Computing Machinery, New York, NY, USA. 31–44. isbn:9781450376136 https://doi.org/10.1145/3385412.3386012 Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Charles Gregory Nelson. 1980. Techniques for Program Verification. Ph.D. Dissertation. Stanford, CA, USA. AAI8011683.Google ScholarGoogle Scholar
  45. Julie L. Newcomb, Andrew Adams, Steven Johnson, Rastislav Bodik, and Shoaib Kamil. 2020. Verifying and Improving Halide’s Term Rewriting System with Program Synthesis. Proc. ACM Program. Lang., 4, OOPSLA (2020), Article 166, Nov., 28 pages. https://doi.org/10.1145/3428234 Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Aina Niemetz, Mathias Preiner, Andrew Reynolds, Clark Barrett, and Cesare Tinelli. 2018. Solving Quantified Bit-Vectors Using Invertibility Conditions. In Computer Aided Verification, Hana Chockler and Georg Weissenbacher (Eds.). Springer International Publishing, Cham. 236–255. isbn:978-3-319-96142-2 https://doi.org/10.1007/s10703-020-00359-9 Google ScholarGoogle ScholarCross RefCross Ref
  47. Tobias Nipkow, Markus Wenzel, and Lawrence C. Paulson. 2002. Isabelle/HOL: A Proof Assistant for Higher-Order Logic. Springer-Verlag, Berlin, Heidelberg. isbn:3540433767 https://doi.org/10.1007/3-540-45949-9 Google ScholarGoogle Scholar
  48. Andres Nötzli, Andrew Reynolds, Haniel Barbosa, Aina Niemetz, Mathias Preiner, Clark Barrett, and Cesare Tinelli. 2019. Syntax-Guided Rewrite Rule Enumeration for SMT Solvers. In Theory and Applications of Satisfiability Testing – SAT 2019, Mikoláš Janota and Inês Lynce (Eds.). Springer International Publishing, Cham. 279–297. isbn:978-3-030-24258-9 https://doi.org/10.1007/978-3-030-24258-9_20 Google ScholarGoogle ScholarCross RefCross Ref
  49. Pavel Panchekha, Alex Sanchez-Stern, James R. Wilcox, and Zachary Tatlock. 2015. Automatically Improving Accuracy for Floating Point Expressions. SIGPLAN Not., 50, 6 (2015), June, 1–11. issn:0362-1340 https://doi.org/10.1145/2813885.2737959 Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Doron Peled. 1998. Ten years of partial order reduction. In International Conference on Computer Aided Verification. 17–28. https://doi.org/10.1007/BFb0028727 Google ScholarGoogle ScholarCross RefCross Ref
  51. Simon Peyton Jones, Andrew Tolmach, and Tony Hoare. 2001. Playing by the rules: rewriting as a practical optimisation technique in GHC. In 2001 Haskell Workshop (2001 haskell workshop ed.). https://www.microsoft.com/en-us/research/publication/playing-by-the-rules-rewriting-as-a-practical-optimisation-technique-in-ghc/Google ScholarGoogle Scholar
  52. Varot Premtoon, James Koppel, and Armando Solar-Lezama. 2020. Semantic Code Search via Equational Reasoning. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2020). Association for Computing Machinery, New York, NY, USA. 1066–1082. isbn:9781450376136 https://doi.org/10.1145/3385412.3386001 Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Racket. 2021. Racket, the Programming Language. https://racket-lang.org/Google ScholarGoogle Scholar
  54. Jonathan Ragan-Kelley, Connelly Barnes, Andrew Adams, Sylvain Paris, Frédo Durand, and Saman Amarasinghe. 2013. Halide: A Language and Compiler for Optimizing Parallelism, Locality, and Recomputation in Image Processing Pipelines. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’13). Association for Computing Machinery, New York, NY, USA. 519–530. isbn:9781450320146 https://doi.org/10.1145/2491956.2462176 Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Anthony Romano and Dawson R. Engler. 2013. Expression Reduction from Programs in a Symbolic Binary Executor. In Model Checking Software - 20th International Symposium, SPIN 2013, Stony Brook, NY, USA, July 8-9, 2013. Proceedings, Ezio Bartocci and C. R. Ramakrishnan (Eds.) (Lecture Notes in Computer Science, Vol. 7976). Springer, 301–319. https://doi.org/10.1007/978-3-642-39176-7_19 Google ScholarGoogle ScholarCross RefCross Ref
  56. Rust. 2021. Rust BigInt Library. https://docs.rs/num-bigint/0.4.0/num_bigint/struct.BigInt.htmlGoogle ScholarGoogle Scholar
  57. Rust. 2021. Rust Rational Library. https://docs.rs/num-rational/0.4.0/num_rational/struct.Ratio.htmlGoogle ScholarGoogle Scholar
  58. Eric Schkufza, Rahul Sharma, and Alex Aiken. 2014. Stochastic Optimization of Floating-Point Programs with Tunable Precision. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’14). Association for Computing Machinery, New York, NY, USA. 53–64. isbn:9781450327848 https://doi.org/10.1145/2594291.2594302 Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Rahul Sharma, Eric Schkufza, Berkeley Churchill, and Alex Aiken. 2015. Conditionally Correct Superoptimization. SIGPLAN Not., 50, 10 (2015), Oct., 147–162. issn:0362-1340 https://doi.org/10.1145/2858965.2814278 Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Rohit Singh and Armando Solar-Lezama. 2016. Swapper: A Framework for Automatic Generation of Formula Simplifiers Based on Conditional Rewrite Rules. In Proceedings of the 16th Conference on Formal Methods in Computer-Aided Design (FMCAD ’16). FMCAD Inc, Austin, Texas. 185–192. isbn:9780983567868 https://doi.org/10.5555/3077629.3077661Google ScholarGoogle ScholarCross RefCross Ref
  61. Eytan Singher and Shachar Itzhaky. 2021. Theory Exploration Powered by Deductive Synthesis. In Computer Aided Verification, Alexandra Silva and K. Rustan M. Leino (Eds.). Springer International Publishing, Cham. 125–148. isbn:978-3-030-81688-9 https://doi.org/10.1007/978-3-030-81688-9_6 Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Armando Solar-Lezama. 2008. Program Synthesis by Sketching. Ph.D. Dissertation. Berkeley, CA, USA. isbn:978-1-109-09745-0 AAI3353225.Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Michael Stepp, Ross Tate, and Sorin Lerner. 2011. Equality-Based Translation Validator for LLVM. In Computer Aided Verification, Ganesh Gopalakrishnan and Shaz Qadeer (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 737–742. isbn:978-3-642-22110-1 https://doi.org/10.1007/978-3-642-22110-1_59 Google ScholarGoogle ScholarCross RefCross Ref
  64. Robert Endre Tarjan. 1975. Efficiency of a Good But Not Linear Set Union Algorithm. J. ACM, 22, 2 (1975), April, 215–225. issn:0004-5411 https://doi.org/10.1145/321879.321884 Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Ross Tate, Michael Stepp, Zachary Tatlock, and Sorin Lerner. 2009. Equality Saturation: A New Approach to Optimization. In Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’09). ACM, New York, NY, USA. 264–276. isbn:978-1-60558-379-2 https://doi.org/10.1145/1480881.1480915 Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Alexa VanHattum, Rachit Nigam, Vincent T. Lee, James Bornholt, and Adrian Sampson. 2021. Vectorization for Digital Signal Processors via Equality Saturation. In Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2021). Association for Computing Machinery, New York, NY, USA. 874–886. isbn:9781450383172 https://doi.org/10.1145/3445814.3446707 Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Eelco Visser. 2001. Stratego: A Language for Program Transformation Based on Rewriting Strategies System Description of Stratego 0.5. In Rewriting Techniques and Applications, Aart Middeldorp (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg. 357–361. isbn:978-3-540-45127-3Google ScholarGoogle Scholar
  68. Eelco Visser. 2001. A Survey of Rewriting Strategies in Program Transformation Systems. Electronic Notes in Theoretical Computer Science, 57 (2001), 109–143. issn:1571-0661 https://doi.org/10.1016/S1571-0661(04)00270-1 WRS 2001, 1st International Workshop on Reduction Strategies in Rewriting and Programming. Google ScholarGoogle Scholar
  69. Yisu Remy Wang, Shana Hutchison, Jonathan Leang, Bill Howe, and Dan Suciu. 2020. SPORES: Sum-Product Optimization via Relational Equality Saturation for Large Scale Linear Algebra. Proc. VLDB Endow., 13, 12 (2020), July, 1919–1932. issn:2150-8097 https://doi.org/10.14778/3407790.3407799 Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Deborah L. Whitfield and Mary Lou Soffa. 1997. An Approach for Exploring Code Improving Transformations. ACM Trans. Program. Lang. Syst., 19, 6 (1997), Nov., 1053–1084. issn:0164-0925 https://doi.org/10.1145/267959.267960 Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Max Willsey. 2021. egg Documentation. https://docs.rs/egg/0.6.0/egg/struct.BackoffScheduler.htmlGoogle ScholarGoogle Scholar
  72. Max Willsey, Chandrakana Nandi, Yisu Remy Wang, Oliver Flatt, Zachary Tatlock, and Pavel Panchekha. 2021. Egg: Fast and Extensible Equality Saturation. Proc. ACM Program. Lang., 5, POPL (2021), Article 23, Jan., 29 pages. https://doi.org/10.1145/3434304 Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Chenming Wu, Haisen Zhao, Chandrakana Nandi, Jeffrey I. Lipton, Zachary Tatlock, and Adriana Schulz. 2019. Carpentry Compiler. ACM Trans. Graph., 38, 6 (2019), Article 195, Nov., 14 pages. issn:0730-0301 https://doi.org/10.1145/3355089.3356518 Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Yichen Yang, Phitchaya Phothilimthana, Yisu Wang, Max Willsey, Sudip Roy, and Jacques Pienaar. 2021. Equality Saturation for Tensor Graph Superoptimization. In Proceedings of Machine Learning and Systems, A. Smola, A. Dimakis, and I. Stoica (Eds.). 3, 255–268. https://proceedings.mlsys.org/paper/2021/file/65ded5353c5ee48d0b7d48c591b8f430-Paper.pdfGoogle ScholarGoogle Scholar

Index Terms

  1. Rewrite rule inference using equality saturation

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!