-
Notifications
You must be signed in to change notification settings - Fork 66
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
Codyroux/boolean ring #708
base: main
Are you sure you want to change the base?
Conversation
…into codyroux/boolean-ring
The construction can be simplified to `ℤ`, using floor division and multiplication by 2. Closes teorth#691
Incorporated recent progress on outstanding equations
A correction from Zoltan as noted here teorth#649 (comment)
also update some older commentary with new progress
As discussed in [1], I add support to the @[equational_result] attribute to parse non-implication theorems with Finite typeclasses. I then add support to `extract_implications` to specify `--finite-only` to limit results to finite non-implications. In addition, I also add some additional checking to @[equational_result] as previously it would silently mis-parse theorems with the Finite typeclass. This was tested by generating `extract_implications` closure/unknowns results before and after this change. When I included finite non-implications (not in this change), the results correctly showed them with `--finite-only`, while the results without `--finite-only` did not change and match the results prior to this change. [1] https://leanprover.zulipchat.com/#narrow/channel/458659-Equational/topic/Proposal.3A.20Add.20Finite.20typeclasses.20to.20non-implications/near/477933508
Cuts ~2.5s off the load time for me locally. I verified that the stats line-up by comparing CSVs before/after (this change optimizes stats calculation)
…into codyroux/boolean-ring
…ny inhabited sort.
…into codyroux/boolean-ring
Please use Mathlib's Boolean rings. I don't see why we need to re-invent that wheel |
awaiting-author |
Ugh I could have sworn I checked. However the definition I wrote is "minimal" in the sense that it derives a number of things, including associativity, from a smaller set of equations. This is convenient when one is trying to prove that something is a BooleanRing, in particular a Magma satisfying Sheffer's axioms. Note also that the Mathlib one doesn't ask for commutativity (though it is easily derivable). Worth noting that the join in my definition is just However it's probably less work to show that the thing I defined is actually a Boolean ring proper than do the whole construction with So what next? I could either:
Thoughts? |
Oh wait, I'm not sure that "my" definition is even a ring anymore! That
join isn't a group operation, I think.
…On Tue, Oct 22, 2024, 6:51 AM Shrys ***@***.***> wrote:
awaiting-author
—
Reply to this email directly, view it on GitHub
<#708 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AA772UCRT64QHW2Q2UHG4EDZ4YU35AVCNFSM6AAAAABQLO6LR6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMRYHE2TCMJSGQ>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
I prefer option 3. I know it is tedious, but it minimises duplication. If you did keep the whole booleanring structure as is, you would still have a lot to explain regarding how this definition compares with Mathlib's and why we don't use it. For syntactic meta-theories the answer is clear, we always want to start with a blank slate with the weakest required equalities and implications. For specific models of the theory, this doesn't apply. Take your time. Also @teorth : any thoughts on this? |
I take it "That's what Sheffer's paper and https://en.wikipedia.org/wiki/Boolean_algebra_(structure) do" is not a justification? I do agree that calling it a ring was a mistake, and probably the |
Have we sorted out the issue of mathlib compatibility? |
Thank you @codyroux and @jjtowery for your contributions! I have golfed and formatted I leave the rest of the review to @Shreyas4991. |
Thanks a bunch @pitmonticone! Things are looking nice IMHO, but I'm not sure whether Mathlib has additional criteria I've overlooked. |
Speaking of mathlib compatibility, seems like mathlib decided to replace sup and inf with max and min, so I made a pull request to you @codyroux to fix that. |
Merged, let's see what the CI says. |
@codyroux : you were planning for some part of this to be PR'ed to mathlib right? |
I certainly wasn't originally thinking this, but I guess it'd be nice. I'm looking at the naming conventions right now. |
@codyroux : I will wait for you to ping me here before reviewing/merging the LR |
I've been on vacation, and sick, haven't forgotten about this but will need a bit more time. |
@Shreyas4991 I'm ready! |
Tie the knot from the excellent work from @jjtowery: prove that a certain messy equation is exactly what is needed for a Boolean Algebra. The proof is in 3 steps:
Closes #354