hegg: Fast equality saturation in Haskell

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

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.

Properties

Versions 0.1.0.0, 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.4.0.0, 0.5.0.0
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:22:29Z

Modules

[Index] [Quick Jump]

Flags

Manual Flags

NameDescriptionDefault
vizdot

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

Disabled

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

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees