-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add code to brute force all 4x4 tables, and a minimal covering set #111
Conversation
Nice work! I'm trying to parse the
This corresponds to the rendered table:
… with, for example, I understand that the numbers in the "Proves" line correspond to the equations below, but could you clarify how to parse the line:
|
Err, I think I might have messed something up in converting these tables to something human readable. IN THEORY, each of these equations should be true under this table, if you let the \circ operator be a lookup into the table. For example, let's consider the first equation x = x ∘ (x ∘ x). If x = 0, then we're evaluation 0 ∘ (0 ∘ 0) = 0 ∘ 3 = 0 I'll look into this to see what I did wrong in a bit. |
Yeah, it was exactly that equation (number 8) that made me a bit confused when checking against the table:
Setting aside this potential calculation error (which I'm sure can be resolved), the table is meant as a proof of existence that the set of equations on the So, the hypothetical case …
… proves that |
Okay thanks for catching this. 39 of the tables here are incorrect because of an integer overflow in my parallelized version of the algorithm. Pushing a correction now. Should have the corrected results in an hour or so. |
The correct interpretation is that, if you use this table, then every equation that is "proven" is true on this magma, and and every equation not mentioned is false for at least one input on this magma. Here's a few corrected rows if you want to look at some data Table [[2, 2, 3, 1], [1, 2, 3, 1], [3, 2, 3, 1], [0, 2, 3, 1]] Table [[0, 0, 2, 3], [2, 2, 0, 3], [2, 2, 0, 3], [0, 0, 2, 3]] Table [[2, 1, 0, 0], [0, 1, 2, 3], [3, 2, 3, 2], [0, 1, 2, 1]] Table [[2, 2, 3, 3], [0, 0, 1, 0], [2, 2, 3, 3], [0, 0, 1, 1]] Table [[3, 3, 2, 1], [3, 3, 2, 0], [3, 3, 0, 0], [1, 2, 2, 1]] Table [[3, 0, 2, 3], [0, 3, 2, 2], [3, 0, 0, 2], [0, 2, 0, 3]] |
I've also pushed a script that will validate every generated refutation, which fails currently but should pass once the generations wrap up. |
Okay this new code fully checks out. |
Would it be possible to add an entry to README.md describing your contribution (under the "automatically generated progress" list), and maybe also add a chapter to the blueprint (similar to e.g., https://teorth.github.io/equational_theories/blueprint/sect0005.html )? Alternatively, I can try to create a stub for that chapter once I see a summary of your results on README.md. |
Yeah. I was going to hold off on this until someone had a chance to make Lean proofs using these tables, but I can add it now. |
Ah I've royally messed something up in git and added way too many files in a rush to get this done before I sleep. Do not merge this PR; I'll rebase and remove the files I added incorrectly tomorrow morning. |
Am I parsing the table correctly in the context of equation 47 ( Table:
Testing equation
|
#19 is soon to be merged. I implemented pruning based on known implications and covering by earlier examples there. Once your raw data is merged, I plan to use a single script to process both of your data sets (exhaustive search and random polynoials) and produce the lean files from those in one go, as they differ only in how the |
This branch makes partial progress towards refuting anything that can be done with a 4x4 magma. There are 4^(4*4) = 2^32 of them, and each needs to be checked on all 4696 equations. This C code can brute force this in a few hundred CPU hours. It could be made much more efficient if needed (likely at least 10-100x) by keeping everything in memory and not using the disk so much. Also, it is not thread safe and has race conditions. But I've run it several times and got the same output each time so I'm confident in these results being complete.