home.social

#egraph — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #egraph, aggregated by home.social.

fetched live
  1. I have been thinking a lot about e-graph lately, mainly to understand what "really is" an #egraph and give precise mathematical meaning to its expressions, which would facilitate reasoning about more complex structure with in e-graph without resorting to implementation details.

    My proposal is that e-graph is a generative system, that is a coalgebra with the form 𝑋→𝑃₊(𝐹(𝑋)) where the states 𝑋 are e-classes, and the signature is a composition of two distinct component: the non-empty power set monad 𝑃₊ because each e-class contains multiple e-nodes, and the polynomial functor 𝐹 which is the standard functor that generates expressions over function symbols: 𝐹(𝑋)=Σ₀+Σ₁×𝑋+Σ₂×𝑋×𝑋 + …

    This is similar to the modified tree automata definition given by Suciu, Wang, and Zhang in 2025: drops.dagstuhl.de/entities/doc

    (Note: depends on your use case, this coalgebraic definition can be too premisive, as it do not guarantee an e-class to have an extraction.
    To require e-class to have expression, we can restrict it to be a subcoalgebra to its initial algebra, which is also its final colagebra, in the Keisli category.)

    Except, coalgebra of this form, or more generally 𝑋−>𝑀(𝐹(𝑋)) where 𝑀 is a monad, and 𝐹 is a polynomial functor is extensively studied under the name "generative system", originally intended to give trace semantics to general transition systems:
    - arxiv.org/abs/0710.2505v1
    - academic.oup.com/logcom/articl
    - sciencedirect.com/science/arti

    Many of the e-graph operations: merging (coequalizer), rebuilding (not entirely sure, but feels doable), extraction (lax coalgebra hom into expressions), and semantic interpretation, seems to all correspond to standard categorical objects.

  2. I will be giving a talk at the #egraph workshop at @pldi on my collaborative work with Sam Coward, Philip Zucker (@sandmouth), and Alexandra Silva (@xanovsky) on incorporating fixpoint equation into e-graph.

    This is a very interesting topic:
    - Practically, we turn "recursive program" into a first-class citizen of e-graph, allowing users to reason about control-flow and (potentially infinite) data-flow natively without much encoding.
    - Theoretically, this work has potential connection to exciting fields like iteration theory and bialgebraic semantics. Many of our elementary proof constructions look very similar to standard constructions in these fields.

    The resulting framework, although general and simple on the surface, has a lot of interesting and subtle challenges.
    We are (hopefully) very close to wrapping up this project, so I will be presenting a work in progress that should be reasonably similar to the final result :)

  3. I will be giving a talk at the #egraph workshop at @pldi on my collaborative work with Sam Coward, Philip Zucker (@sandmouth), and Alexandra Silva (@xanovsky) on incorporating fixpoint equation into e-graph.

    This is a very interesting topic:
    - Practically, we turn "recursive program" into a first-class citizen of e-graph, allowing users to reason about control-flow and (potentially infinite) data-flow natively without much encoding.
    - Theoretically, this work has potential connection to exciting fields like iteration theory and bialgebraic semantics. Many of our elementary proof constructions look very similar to standard constructions in these fields.

    The resulting framework, although general and simple on the surface, has a lot of interesting and subtle challenges.
    We are (hopefully) very close to wrapping up this project, so I will be presenting a work in progress that should be reasonably similar to the final result :)

  4. [New Blog Post] Brute E-Graphs Modulo Theories 2: Extraction, Proofs, and Context #egraph #logic philipzucker.com/egraph-mt2/

  5. [New Blog Post] Brute E-Graphs Modulo Theories 2: Extraction, Proofs, and Context #egraph #logic philipzucker.com/egraph-mt2/

  6. [New Blog Post] Towards an AC Egraph: Groebner, Graver and Ground Multiset Rewriting philipzucker.com/multiset_rw/ #egraph

  7. [New Blog Post] Towards an AC Egraph: Groebner, Graver and Ground Multiset Rewriting philipzucker.com/multiset_rw/ #egraph

  8. [New Blog Post] Gauss and Groebner Egraphs: Intrinsic Linear and Polynomial Equations philipzucker.com/linear_grobne #logic #egraph #sympy

  9. [New Blog Post] Gauss and Groebner Egraphs: Intrinsic Linear and Polynomial Equations philipzucker.com/linear_grobne #logic #egraph #sympy

  10. [New Blog Post] EGRAPHS 2024 submission: E-graphs and Automated Reasoning philipzucker.com/egraph2024_ta #egraph #pldi

  11. [New Blog Post] EGRAPHS 2024 submission: E-graphs and Automated Reasoning philipzucker.com/egraph2024_ta #egraph #pldi

  12. Looking forward to the EGRAPHS community call lightning talks tomorrow...

    egraphs.org/meeting/2024-03-21

    Wish me luck trying in explaining this chart of optimizing scikit-learn with numba using egraphs in ten minutes 🫣

    egglog-python.readthedocs.io/l

    #python #opensource #egraph

  13. Looking forward to the EGRAPHS community call lightning talks tomorrow...

    egraphs.org/meeting/2024-03-21

    Wish me luck trying in explaining this chart of optimizing scikit-learn with numba using egraphs in ten minutes 🫣

    egglog-python.readthedocs.io/l

    #python #opensource #egraph

  14. I had fun this weekend re-creating the examples from original congruence closure paper from 1980 in Python using egglog

    egglog-python.readthedocs.io/l

    #egraph #formal_methods

  15. I had fun this weekend re-creating the examples from original congruence closure paper from 1980 in Python using egglog

    egglog-python.readthedocs.io/l

    #egraph #formal_methods

  16. Can you name that algorithm based on this dataflow representation?

    It's Linear Discriminant Analysis as implemented by Scikit Learn!

    I finished up a notebook showing how you can build an Array API compatible library with the egglog e-graph library in Python and use that to optimize a #scikit-learn algorithm with #numba

    egg-smol-python.readthedocs.io

    For more context, I gave a talk on the broader goals this summer:

    egg-smol-python.readthedocs.io

    youtube.com/watch?v=Pbi2uV9vWP

    #pydata #egraph #python