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...

Full description

Saved in:
Bibliographic Details
Published in:Proceedings of ACM on programming languages Vol. 5; no. POPL; pp. 1 - 29
Main Authors: Willsey, Max, Nandi, Chandrakana, Wang, Yisu Remy, Flatt, Oliver, Tatlock, Zachary, Panchekha, Pavel
Format: Journal Article
Language:English
Published: 01.01.2021
ISSN:2475-1421, 2475-1421
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
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/eLvHCXMwtV07T8MwELbKY2DhjXjLA2KBQJw4L7aqomKg0AEkmCo7dlBFCKgtVVn47Zxj50FBAgaWqLLsqul9Op8_33eH0EGiqtQxl1iJEKFFBSOKaCKWy2IRUSIABSJvNhFcXYV3d1G30RgXWphxGmRZOJlEL_9qahgDYyvp7B_MXX4pDMBnMDo8wezw_JXh5UOuYG6zoU4ez2luAH4qj6SWUL4dDVU5z8omJjjtlptZnt_RbHXUVYLJ4HpSnELBbpaBuKJrzNVTh01KZllpZcxlfiYG7JFllfc3BPV9f_gKxq0EFe2U6Yuq61TlitTpCIfU6Ijcazk08CxCtez5RH4zZtyuV0NX97p7WfOipLYdaz7kq6OnqiaGq3Sxun3x51LaU1tcmXioZdhezyycQXNO4EUqFbDzXuPmIpeGeRO68pdrvbVae2rW1gKZWkRys4wWzVECNzUEVlBDZqtoqWjTgY3XXkPHgIgzrPCAwRq4wgMu8IArPKyj2_b5TevCMk0yrNjxwpEVSjghCxpzknDqE8LDhHA7dgMGkaktA87hwO4n0uaMC8_mic8hWqFxRCPpC5i4gWaz50xuIizhME1Cn0k_kjSwCReCUkeQIHZdlzlyCx0Wb9yLTQV51cgk7U39rVsIlxNfdNGU6SnbP0_ZQQsVwHbR7GjwKvfQfDwe9YeD_dxiH780XZg
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