hegg: Fast equality saturation in Haskell

[ bsd3, data, library ] [ Propose Tags ]

Fast equality saturation and equality graphs based on "egg: Fast and Extensible Equality Saturation" and "Relational E-matching".

This package provides e-graphs (see Data.Equality.Graph), a data structure which efficiently represents a congruence relation over many expressions

Secondly, it provides functions for doing equality saturation (see Data.Equality.Saturation), an optimization/term-rewriting technique that applies rewrite rules non-destructively to an expression represented in an e-graph until saturation, and then extracts the best representation.

Equality matching (see Data.Equality.Matching) is done as described in "Relational E-Matching"

For a walkthrough of writing a simple symbolic simplification program see the hegg symbolic tutorial.

Additional information can be found in the README.


Manual Flags


Compile Data.Equality.Graph.Dot module to visualize e-graphs


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees


Versions [RSS],
Change log CHANGELOG.md
Dependencies base (>=4.4 && <5), containers (>=0.4 && <0.7), transformers (>=0.4 && <0.7) [details]
License BSD-3-Clause
Copyright Copyright (C) 2022 Rodrigo Mesquita
Author Rodrigo Mesquita <romes>
Maintainer Rodrigo Mesquita <rodrigo.m.mesquita@gmail.com>
Category Data
Home page https://github.com/alt-romes/hegg
Bug tracker https://github.com/alt-romes/hegg/issues
Source repo head: git clone https://github.com/alt-romes/hegg
Uploaded by romes at 2022-08-25T22:23:31Z
Distributions NixOS:
Downloads 45 total (1 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]