Mapping out the relations between different equational theories of Magmas

binyu1 pts0 comments

Equational Theories Project | Mapping out the relations between different equational theories of Magmas

Skip to the content.

The purpose of this project, launched on Sep 25, 2024, is to explore the space of equational theories of magmas, ordered by implication. To begin with we shall focus only on theories of a single equation, and specifically on the 4694 equational laws<br>involving at most four magma operations, up to symmetry and relabeling (here is the list in Lean and in plain text). This creates 4694*(4694-1) = 22,028,942 implications that need to be proven or disproven, creating both “implications” and “anti-implications”.

We will accumulate both “proven” and “conjectured” implications and anti-implications: proven assertions will be verified in the proof assistant language Lean, and “conjectured” assertions represent all claims (either human-generated or computer-generated) that have not yet been verified in Lean. The current status of the project can be found on the dashboard.

Some selected equations of interest are listed here (in Lean form) and here (in a human readable blueprint). Examples include

Equation 1: x = x. The trivial law.

Equation 2: x = y. The singleton law.

Equation 43: x ◇ y = y ◇ x. The commutative law.

Equation 46: x ◇ y = z ◇ w. The constant law.

Equation 4512: x ◇ (y ◇ z) = (x ◇ y) ◇ z. The associative law.

Here is a tour of several selected equations, including the ones above.

Current statistics and data files, updated automatically:

dashboard

Current visualizations, updated automatically:

Equation Explorer is a tool for exploring the graph of equation implications.

Finite Magma Explorer is a tool for exploring finite magmas and the equations they satisfy.

Graphiti is a tool for visualizing the implication graph.

For guidelines on how to contribute, see the CONTRIBUTING.md file. Participants are requested to abide by our code of conduct.

Building the project

To build this project after installing Lean and cloning this repository, follow these steps:

% cd equational_theories/<br>% lake exe cache get<br>% lake build

Links

Main web page

Blueprint

Documentation

The Lean Zulip stream for the project

Instructions on how to contribute

Code of conduct

Wiki

Older progress

A blog post describing the project., Sep 25, 2024.

The equational theories project: a brief tour, Oct 12, 2024 - a followup to the previous post.

Initial discussion on Zulip, Sep 26, 2024.

Initial discussion on Mastodon, Jul 18, 2023.

Followup discussion on Mastodon, Sep 25, 2024.

The MathOverflow post that inspired the project, Jul 17, 2023.

A related MathOverflow post, Jul 16, 2023.

Data

Text list of equations. Larger list with equations of up to five operations

List of duals of equations (JSON)

The smallest magma satisfying a given equation (up to N=5), if it exists (and the magmas themselves)

To download the current state of the implication graph, see this thread.

Scripts

Shell

run_before_push - performs some of the CI checks, suitable for running just before pushing a new PR

Lean

extract_implications - extracts implications from one or more Lean files. This outputs the “ground truth” of implication data, for use by other scripts

Python

explore_magma - test a given magma table against all or a subset of the equations in Equations/All.lean

find_dual - finds the dual of an equation

find_equation_id - finds the equation number of an equation string

find_powerful_theorems.py - finds theorems that, if proved, would imply many others

generate_eqs_list - generates a list of equations

generate_image - generates an image of implications

generate_most_wanted_list - generates the “most wanted” implications

generate_z3_counterexample - given an implication statement between two equations, calls Z3 to try to generate a counterexample

process_implications - processes implications from one or more Lean files

Ruby

generate_graphviz_graph - creates a graphviz graph

transitive_closure - computes the transitive closure of a set of implications

transitive_reduction - finds a transitive reduction of a set of implications

graph - graph library

Automated provers for equational theories

Prover9 and Mace4

aa - a project to use Prover9/Mace4 to brute force axioms for finite mathematical domains

Vampire

eprover

twee

zipperposition

Z3

Knuckledragger

A blog post by Philip Zucker testing many of the above provers on a sample implication of this project.

“Guided Equality Saturation”, Thomas Kœhler, Andrés Goens, Siddharth Bhat, Tobias Grosser, Phil Trinder, Michel Steuwer, Jan 5, 2024.

“Rewrite Rule Inference Using Equality Saturation”, Chandrakana Nandi, Max Willsey, Amy Zhu, Yisu Remy Wang, Brett Saiki, Adam Anderson, Adriana Schulz, Dan Grossman, Zachary Tatlock, 23 Aug, 2021.

Other tools

egg - e-graphs good

MiniZinc - high-level constraint modeling language

nauty - graph automorphism tool

KBCV - Knuth-Bendix completion visualizer

Instagraph - knowledge graph...

equation implications project lean equations graph

Related Articles