You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Consolidate documentation and add SessionStart hook for AI assistants
- Add SessionStart hook (.claude/hooks/SessionStart.sh) to auto-verify environment setup
- Consolidate AGENTS.md content into docs/reference/contributing.md (single source of truth)
- Enhance README.md with better examples, features, use cases, and community links
- Update docs/index.md to include README content (eliminates duplication)
- Remove .github/AGENTS.md (no longer needed)
Benefits:
- No duplication between files - easier maintenance
- SessionStart hook ensures proper setup for Claude Code sessions
- Contributing.md is now comprehensive guide for both humans and AI
- README provides rich landing page while feeding docs homepage
- Tool-agnostic approach works for all AI assistants
`egglog` is a Python package that provides bindings to the Rust library [`egglog`](https://github.com/egraphs-good/egglog/),
6
-
allowing you to use e-graphs in Python for optimization, symbolic computation, and analysis.
5
+
**egglog** is a Python package that provides bindings to the Rust library [`egglog`](https://github.com/egraphs-good/egglog/), allowing you to use **e-graphs** in Python for optimization, symbolic computation, and program analysis.
7
6
8
-
Please see the [documentation](https://egglog-python.readthedocs.io/) for more information.
7
+
## What are e-graphs?
9
8
10
-
Come say hello [on the e-graphs Zulip](https://egraphs.zulipchat.com/#narrow/stream/375765-egglog/) or [open an issue](https://github.com/egraphs-good/egglog-python/issues/new/choose)!
9
+
E-graphs (equality graphs) are data structures that efficiently represent equivalence classes of expressions. They enable powerful program optimizations through **equality saturation** - a technique that finds optimal expressions by exploring many equivalent representations simultaneously.
11
10
12
-
## How to cite
11
+
The underlying [`egglog`](https://github.com/egraphs-good/egglog) Rust library combines:
12
+
-**Datalog**: Efficient incremental reasoning and queries
13
+
-**Equality Saturation**: Term rewriting and optimization
14
+
-**E-graphs**: Compact representation of equivalent expressions
13
15
14
-
If you use **egglog-python** in academic work, please cite the paper:
16
+
See the paper ["Better Together: Unifying Datalog and Equality Saturation"](https://arxiv.org/abs/2304.04332) for details.
17
+
18
+
## Installation
19
+
20
+
```shell
21
+
pip install egglog
22
+
```
23
+
24
+
Requires Python 3.11+ and works on Linux, macOS, and Windows.
25
+
26
+
## Quick Example
27
+
28
+
Here's how to use egglog to prove that `2 * (x + 3)` is equivalent to `6 + 2 * x` through algebraic rewriting:
0 commit comments