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 this list of 4694 equations (all laws involving at most four magma operations, up to symmetry and relabeling). This creates 4694*(4694-1) = 22,028,942 implications that need to be proven or disproven.
Some selected equations of interest are listed here.
Some automatically generated progress:
- Sep 28, 2024: 85 laws have been shown to be equivalent to the constant law
Equation46
, and 815 laws have been shown to be equivalent to the singleton lawEquation2
. - Sep 28, 2024: 18972 implications were established by simple rewrite laws.
- Sep 28, 2024: 4.2m implications proven by a transitive reduction of 15k theorems were proven using simple rewrite proof scripts.
- Sep 29, 2024: 13.7m implications were conjectured to be refused by a collection of 515 magmas, collected by enumerating all 4^(4*4) operators and reducing to a covering set.
- Oct 1, 2024: Another ~250k transitive implications were proven by simple proof generation.
- Oct 1, 2024: ~500k transitive implications were proven by a custom tool that chooses hypotheses and leveraged previously found implications to search by using the implied equations as substitutions.
Some statistics and data files from a given point in time:
- Sep 28, 2024: A repository of unknown implications, including all unknown implications, known equivalence classes, unknown implications modulo known equivalence, and only the strongest unknown implications.
- Sep 29, 2024: Here is a text file of the (21K or so) direct implications proven to date, and here is the transitive closure of these implications (about 4.5m). More precisely, we have 21791 implications explicitly proven true, 4494090 additional relations implicitly proven true, 739207 explicitly proven false, 12764328 implicitly proven false, one additional relations explicitly conjectured true (and 64 more implicitly conjectured true), and 4014155 remaining implications which remain completely open. Quotienting out by known equivalences, there are 3182453 open implications remaining.
Some visualizations from a given point in time:
- Sep 28, 2024: A (manually created) Hasse diagram of the dependencies obtained up to this date for the selected equations of interest can be found here
- Sep 28, 2024: A directed acyclic graph of automatically generated implications is here: circular vertices are for nodes representing multiple equivalent equations and equations in green are from
Subgraph.lean
. - Oct 1, 2024: An image visualizing the graph of proved results can be found here. This was generated by
outcomes_to_image.py
.
Current statistics and data files, updated automatically:
- coming soon!
Current visualizations, updated automatically:
- coming soon!
For guidelines on how to contribute, see the CONTRIBUTING.md file.
To build this project after installing Lean and cloning this repository, follow these steps:
% cd equational_theories/
% lake exe cache get
% lake build
- Main web page
- A blog post describing the project., Sep 25, 2024.
- 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.
- Scripts
- Lean
extract_implications
- extracts implications from one or more Lean files
- Python
find_dual
- finds the dual of an equationfind_equation_id
- finds the equation number of an equation stringgenerate_eqs_list
- generates a list of equationsgenerate_graphviz_graph
- generates a graphviz dot file, that can be used to create an implication graphgenerate_image
- generates an image of implicationsgenerate_most_wanted_list
- generates the "most wanted" implicationsgenerate_z3_counterexample
- given an implication statement between two equations, calls Z3 to try to generate a counterexampleprocess_implications
- processes implications from one or more Lean files
- Ruby
generate_graphviz_graph
- creates a graphviz graphgraph
- graph condensation toolstransitive_closure
- computes the transitive closure of a set of implicationstransitive_reduction
- finds a transitive reduction of a set of implications
- Lean
- 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.
- Prover9 and Mace4
- Other tools