egg: Fast and extensible equality saturation
An e-graph efficiently represents a congruence relation over many expressions. Although they were originally developed in the late 1970s for use in automated theorem provers, a more recent technique known as equality saturation repurposes e-graphs to implement state-of-the-art, rewrite-driven compil...
Gespeichert in:
| Veröffentlicht in: | Proceedings of ACM on programming languages Jg. 5; H. POPL; S. 1 - 29 |
|---|---|
| Hauptverfasser: | , , , , , |
| Format: | Journal Article |
| Sprache: | Englisch |
| Veröffentlicht: |
01.01.2021
|
| ISSN: | 2475-1421, 2475-1421 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Abstract | An e-graph efficiently represents a congruence relation over many expressions. Although they were originally developed in the late 1970s for use in automated theorem provers, a more recent technique known as equality saturation repurposes e-graphs to implement state-of-the-art, rewrite-driven compiler optimizations and program synthesizers. However, e-graphs remain unspecialized for this newer use case. Equality saturation workloads exhibit distinct characteristics and often require ad-hoc e-graph extensions to incorporate transformations beyond purely syntactic rewrites.
This work contributes two techniques that make e-graphs fast and extensible, specializing them to equality saturation. A new amortized invariant restoration technique called rebuilding takes advantage of equality saturation's distinct workload, providing asymptotic speedups over current techniques in practice. A general mechanism called e-class analyses integrates domain-specific analyses into the e-graph, reducing the need for ad hoc manipulation.
We implemented these techniques in a new open-source library called egg. Our case studies on three previously published applications of equality saturation highlight how egg's performance and flexibility enable state-of-the-art results across diverse domains. |
|---|---|
| AbstractList | An e-graph efficiently represents a congruence relation over many expressions. Although they were originally developed in the late 1970s for use in automated theorem provers, a more recent technique known as equality saturation repurposes e-graphs to implement state-of-the-art, rewrite-driven compiler optimizations and program synthesizers. However, e-graphs remain unspecialized for this newer use case. Equality saturation workloads exhibit distinct characteristics and often require ad-hoc e-graph extensions to incorporate transformations beyond purely syntactic rewrites.
This work contributes two techniques that make e-graphs fast and extensible, specializing them to equality saturation. A new amortized invariant restoration technique called rebuilding takes advantage of equality saturation's distinct workload, providing asymptotic speedups over current techniques in practice. A general mechanism called e-class analyses integrates domain-specific analyses into the e-graph, reducing the need for ad hoc manipulation.
We implemented these techniques in a new open-source library called egg. Our case studies on three previously published applications of equality saturation highlight how egg's performance and flexibility enable state-of-the-art results across diverse domains. |
| Author | Willsey, Max Flatt, Oliver Nandi, Chandrakana Tatlock, Zachary Panchekha, Pavel Wang, Yisu Remy |
| Author_xml | – sequence: 1 givenname: Max orcidid: 0000-0001-8066-4218 surname: Willsey fullname: Willsey, Max organization: University of Washington, USA – sequence: 2 givenname: Chandrakana surname: Nandi fullname: Nandi, Chandrakana organization: University of Washington, USA – sequence: 3 givenname: Yisu Remy surname: Wang fullname: Wang, Yisu Remy organization: University of Washington, USA – sequence: 4 givenname: Oliver surname: Flatt fullname: Flatt, Oliver organization: University of Utah, USA – sequence: 5 givenname: Zachary surname: Tatlock fullname: Tatlock, Zachary organization: University of Washington, USA – sequence: 6 givenname: Pavel surname: Panchekha fullname: Panchekha, Pavel organization: University of Utah, USA |
| BookMark | eNplj0FLw0AUhBepYK3Fv5CbF6P7Ni_ZxJsUq0LBi57Dvs3bshIT3d2C_ffW2oMoc5g5fAwzp2IyjAMLcQ7yCgDL6wJ3kngkpgp1mQMqmPzKJ2Ie46uUEpoC66KZikter2-ypYkpM0OX8WfiIXrqOeOPjel92mbRpE0wyY_DmTh2po88P_hMvCzvnhcP-erp_nFxu8qtKuuU14wSOrQEjrACoNoBSVtoo5WWrIk06MqxJENdKclVpEChbbDhqtuBM5H_9NowxhjYtdan_YIUjO9bkO332_bwdsdf_OHfg38zYfuP_AJg1VRA |
| CitedBy_id | crossref_primary_10_1145_3689757 crossref_primary_10_1145_3656453 crossref_primary_10_14778_3611540_3611635 crossref_primary_10_1145_3622813 crossref_primary_10_1007_s11432_024_4155_7 crossref_primary_10_1111_cgf_14775 crossref_primary_10_1145_3588717 crossref_primary_10_1145_3729258 crossref_primary_10_1109_TVLSI_2025_3544860 crossref_primary_10_1145_3729262 crossref_primary_10_1145_3591239 crossref_primary_10_1145_3632928 crossref_primary_10_1145_3674653 crossref_primary_10_1145_3591254 crossref_primary_10_1109_TCAD_2024_3410154 crossref_primary_10_1145_3632900 crossref_primary_10_1145_3622874 crossref_primary_10_1145_3704913 crossref_primary_10_1145_3498696 crossref_primary_10_1145_3571207 crossref_primary_10_1016_j_cose_2024_103731 crossref_primary_10_1145_3689801 crossref_primary_10_1145_3720474 crossref_primary_10_1016_j_cose_2023_103296 crossref_primary_10_1145_3689741 crossref_primary_10_1038_s41467_024_50966_x crossref_primary_10_1145_3632874 crossref_primary_10_1145_3656445 crossref_primary_10_1145_3547622 crossref_primary_10_1109_TSE_2023_3271065 crossref_primary_10_1145_3508499 crossref_primary_10_1145_3729326 crossref_primary_10_1109_TCAD_2024_3483096 crossref_primary_10_1145_3485496 crossref_primary_10_1145_3632894 crossref_primary_10_1145_3591622 crossref_primary_10_1145_3729254 crossref_primary_10_1145_3592416 crossref_primary_10_1145_3639051 crossref_primary_10_1145_3552490_3552492 crossref_primary_10_1145_3571234 crossref_primary_10_1145_3511528_3511535 crossref_primary_10_1145_3622800 crossref_primary_10_1007_s00778_024_00892_7 crossref_primary_10_1145_3571258 crossref_primary_10_1145_3622840 |
| Cites_doi | 10.1145/322186.322198 10.1145/2813885.2737959 10.1007/978-1-4612-1986-6_17 10.1007/978-3-319-77525-8_187 10.1145/3355089.3356518 10.1145/543552.512566 10.1145/800105.803406 10.1145/289423.289425 10.1145/321879.321884 10.1145/3385412.3386012 10.1145/322217.322228 10.1145/3341301.3359630 10.1145/567097.567099 10.14778/3407790.3407799 10.1007/978-3-540-78800-3_24 10.1007/978-3-540-32033-3_33 10.1145/3272127.3275006 10.1145/3236794 10.1145/1066100.1066102 10.1145/3385412.3386001 10.1145/1480881.1480915 10.1145/321033.321034 10.1145/36206.36194 10.1016/S0167-6423(98)00023-9 10.1007/3-540-56883-2_11 10.1016/b978-0-444-88074-1.50011-1 |
| ContentType | Journal Article |
| DBID | AAYXX CITATION |
| DOI | 10.1145/3434304 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 29 |
| ExternalDocumentID | 10_1145_3434304 |
| GroupedDBID | AAKMM AAYFX AAYXX ACM AEFXT AEJOY AIKLT AKRVB ALMA_UNASSIGNED_HOLDINGS CITATION GUFHI LHSKQ M~E OK1 ROL |
| ID | FETCH-LOGICAL-c258t-8e401d4cb1fb4611b8f1b0c37a7270e7bb7176fe0babd50bf6b2124c949e6d0c3 |
| ISICitedReferencesCount | 110 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000679806100023&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 2475-1421 |
| IngestDate | Sat Nov 29 07:52:21 EST 2025 Tue Nov 18 21:05:27 EST 2025 |
| IsDoiOpenAccess | false |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | POPL |
| Language | English |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c258t-8e401d4cb1fb4611b8f1b0c37a7270e7bb7176fe0babd50bf6b2124c949e6d0c3 |
| ORCID | 0000-0001-8066-4218 |
| OpenAccessLink | https://dl.acm.org/doi/pdf/10.1145/3434304 |
| PageCount | 29 |
| ParticipantIDs | crossref_citationtrail_10_1145_3434304 crossref_primary_10_1145_3434304 |
| PublicationCentury | 2000 |
| PublicationDate | 2021-01-01 |
| PublicationDateYYYYMMDD | 2021-01-01 |
| PublicationDate_xml | – month: 01 year: 2021 text: 2021-01-01 day: 01 |
| PublicationDecade | 2020 |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationYear | 2021 |
| References | e_1_2_1_20_1 e_1_2_1_23_1 e_1_2_1_24_1 e_1_2_1_21_1 e_1_2_1_22_1 e_1_2_1_27_1 e_1_2_1_26_1 e_1_2_1_29_1 de Moura Leonardo (e_1_2_1_5_1) Ellis Kevin (e_1_2_1_12_1) 2018 e_1_2_1_7_1 e_1_2_1_31_1 e_1_2_1_8_1 e_1_2_1_30_1 e_1_2_1_6_1 e_1_2_1_3_1 e_1_2_1_4_1 e_1_2_1_13_1 e_1_2_1_1_1 e_1_2_1_10_1 Tian Yonglong (e_1_2_1_28_1) 2019 e_1_2_1_2_1 e_1_2_1_11_1 Stepp Michael (e_1_2_1_25_1) e_1_2_1_32_1 e_1_2_1_16_1 e_1_2_1_17_1 e_1_2_1_14_1 e_1_2_1_15_1 e_1_2_1_9_1 e_1_2_1_18_1 |
| References_xml | – ident: e_1_2_1_20_1 doi: 10.1145/322186.322198 – ident: e_1_2_1_22_1 doi: 10.1145/2813885.2737959 – ident: e_1_2_1_3_1 doi: 10.1007/978-1-4612-1986-6_17 – ident: e_1_2_1_2_1 doi: 10.1007/978-3-319-77525-8_187 – ident: e_1_2_1_24_1 – ident: e_1_2_1_32_1 doi: 10.1145/3355089.3356518 – ident: e_1_2_1_14_1 doi: 10.1145/543552.512566 – ident: e_1_2_1_15_1 doi: 10.1145/800105.803406 – ident: e_1_2_1_30_1 doi: 10.1145/289423.289425 – ident: e_1_2_1_26_1 doi: 10.1145/321879.321884 – ident: e_1_2_1_18_1 doi: 10.1145/3385412.3386012 – ident: e_1_2_1_10_1 doi: 10.1145/322217.322228 – ident: e_1_2_1_13_1 doi: 10.1145/3341301.3359630 – ident: e_1_2_1_29_1 doi: 10.1145/567097.567099 – ident: e_1_2_1_31_1 doi: 10.14778/3407790.3407799 – ident: e_1_2_1_6_1 doi: 10.1007/978-3-540-78800-3_24 – volume-title: Automated Deduction-CADE-21 ident: e_1_2_1_5_1 – ident: e_1_2_1_21_1 doi: 10.1007/978-3-540-32033-3_33 – ident: e_1_2_1_11_1 doi: 10.1145/3272127.3275006 – ident: e_1_2_1_17_1 doi: 10.1145/3236794 – volume-title: Tenenbaum year: 2018 ident: e_1_2_1_12_1 – ident: e_1_2_1_9_1 doi: 10.1145/1066100.1066102 – ident: e_1_2_1_23_1 doi: 10.1145/3385412.3386001 – ident: e_1_2_1_27_1 doi: 10.1145/1480881.1480915 – ident: e_1_2_1_4_1 doi: 10.1145/321033.321034 – ident: e_1_2_1_16_1 doi: 10.1145/36206.36194 – volume-title: Equality-Based Translation Validator for LLVM ident: e_1_2_1_25_1 – ident: e_1_2_1_1_1 doi: 10.1016/S0167-6423(98)00023-9 – ident: e_1_2_1_7_1 doi: 10.1007/3-540-56883-2_11 – ident: e_1_2_1_8_1 doi: 10.1016/b978-0-444-88074-1.50011-1 – volume-title: International Conference on Learning Representations. https://openreview.net/forum?id=rylNH20qFQ year: 2019 ident: e_1_2_1_28_1 |
| SSID | ssj0001934839 |
| Score | 2.5776367 |
| Snippet | An e-graph efficiently represents a congruence relation over many expressions. Although they were originally developed in the late 1970s for use in automated... |
| SourceID | crossref |
| SourceType | Enrichment Source Index Database |
| StartPage | 1 |
| Title | egg: Fast and extensible equality saturation |
| Volume | 5 |
| WOSCitedRecordID | wos000679806100023&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-1421 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001934839 issn: 2475-1421 databaseCode: M~E dateStart: 20170101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV07T8MwELbKY2DhjXjLA2KBQJI6icOGEBUDhQ4gwVT5FVQRAmpLVRZ-O-fYeVCQgIElqiy7avtdz3ef7_MhtOdzN4xFkDiC-pCgSAF-0OeBkxAOAX4zSTwu82YT0dUVvbuLO43GqNDCjNIoy-h4HL_8K9QwBmBr6ewf4C7fFAbgNYAOT4Adnr8CXj3kCuYWG5ji8ZzmBsNP1YEyEsq3g4G-zrPCxAannXIzy-s7Ts_a-ijBVnA9aU6hYDfLQFzTNfboqc3GJbOstTL2MD-TffbIssr7W4L6vjd4BXArQUUrZeag6jrVtSJ1OsL3anRE7rV8EgWOR4zs-Uh9M2bdblCzrs5157LmRb3admz4kK-Onug7MZpaF2vaF3--SntiiysLD40MO-jahVNoxo-CWJcCtt9r3FzcJDRvQld-cqO31muP7dpaIFOLSG4W0bxNJfCpMYEl1FDZMloo2nRg67VX0CFYxAnW9oABDVzZAy7sAVf2sIpuW-c3ZxeObZLhCD-gQ4cqyJAlEdxLOAk9j1P4e7miGTGITF0VcQ4Je5golzMuA5cnIYdohYiYxCqUMHENTWfPmVpHmEN0GNKYKjeEpJwSLgVjkkOMmsjIDekG2i--cVfYG-R1I5O0O_GzbiBcTnwxl6ZMTtn8ecoWmqsMbBtND_uvagfNitGwN-jv5oh9ANtlXfU |
| linkProvider | ISSN International Centre |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=egg%3A+Fast+and+extensible+equality+saturation&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Willsey%2C+Max&rft.au=Nandi%2C+Chandrakana&rft.au=Wang%2C+Yisu+Remy&rft.au=Flatt%2C+Oliver&rft.date=2021-01-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=5&rft.issue=POPL&rft.spage=1&rft.epage=29&rft_id=info:doi/10.1145%2F3434304&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3434304 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon |