Skip to content

Comments

Ring reasoning#2765

Draft
JacquesCarette wants to merge 50 commits intomasterfrom
ring-reasoning
Draft

Ring reasoning#2765
JacquesCarette wants to merge 50 commits intomasterfrom
ring-reasoning

Conversation

@JacquesCarette
Copy link
Collaborator

Reasoning combinators for monoid, renamed and adapted for Ring. Builds on #2692 .

@Taneb
Copy link
Member

Taneb commented Jul 12, 2025

  1. I'd like to see the new semigroup properties here as well
  2. The semigroup properties on * and the monoid properties on + work for RingWithoutOne
  3. In fact, they work on Semiring and SemiringWithoutOne, but we don't have a Properties module for those

@jamesmckinna
Copy link
Collaborator

@Taneb 's 1,2,3 above echo my thoughts on looking at these, but maybe, given our ongoing issues regarding naming in #2688 that it isn't so straightforward to back-fill the Properties for weaker structures... yet?

JacquesCarette and others added 2 commits July 21, 2025 17:11
Co-authored-by: jamesmckinna <31931406+jamesmckinna@users.noreply.github.com>
Co-authored-by: jamesmckinna <31931406+jamesmckinna@users.noreply.github.com>
@JacquesCarette JacquesCarette marked this pull request as draft July 21, 2025 21:12
@JacquesCarette JacquesCarette added this to the v2.4 milestone Jul 21, 2025
Copy link
Collaborator

@jamesmckinna jamesmckinna left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for incorporating my nitpick suggestions.

@jamesmckinna
Copy link
Collaborator

Guessing that this PR hints that we should perhaps also have/need the intermediate extension to Algebra.Properties.(Abelian)Group to incorporate inverse equational simplification for the +-abelianGroup sub-structure/-bundle... as a downstream PR.

@JacquesCarette
Copy link
Collaborator Author

Yes, there is quite a lot that can be done in this vein.

We should be careful not to have perfect be the enemy of definite-improvement...

@jamesmckinna
Copy link
Collaborator

Yes, there is quite a lot that can be done in this vein.

We should be careful not to have perfect be the enemy of definite-improvement...

Yeah, not my intention at all to obstruct this PR with demands for more here... but elsewhere, in due course, definitely!

@JacquesCarette
Copy link
Collaborator Author

I guess, strictly speaking, neither you nor @Taneb are blocking this on requiring more features...

@jamesmckinna
Copy link
Collaborator

Absolutely not blocking from me!

but... maybe a rebase against the new master to sort out the CHANGELOG conflict, and to catch the already-merged Semigroup commits (I think the Monoid PR I still open though...?)?

@JacquesCarette
Copy link
Collaborator Author

That's why it's Draft, I need to do at least those changes.

@jamesmckinna
Copy link
Collaborator

jamesmckinna commented Oct 11, 2025

Suggest a rebase to bring this up-to-date with everything that has happened so far, esp. if you want this for v2.4
Otherwise looks fine (though I personally don't like 'short' qualified module names such as PM, rather than eg MonoidProperties), as I don't really see that saving characters is the win worth having, compared to not having to chase at least one level of indirection to figure out what is going on... but then I'm on the 'verbose' end of the spectrum ;-)

@jamesmckinna
Copy link
Collaborator

@JacquesCarette If you fix up the merge conflicts, happy to merge this in.
Happy to fix the merge conflicts, if you prefer, or don't currently have time!


open PM +-monoid public
using ()
renaming ( ε-unique to 0#-unique; ε-comm to 0#-comm
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After rebasing against current master versions of Algebra.Properties.Monoid, this should better be:

Suggested change
renaming ( ε-unique to 0#-unique; ε-comm to 0#-comm
renaming ( ε-unique to 0#-unique; ε-central to 0#-central


open PM *-monoid public
using ()
renaming ( ε-unique to 1#-unique; ε-comm to 1#-comm
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto

Suggested change
renaming ( ε-unique to 1#-unique; ε-comm to 1#-comm
renaming ( ε-unique to 1#-unique; ε-central to 1#-central

@jamesmckinna
Copy link
Collaborator

As with #2851 could we aim to finish this for v2.4, and then take stock/rationalise/refactor as part of the larger-scale breaking changes planned for v3.)

@JacquesCarette JacquesCarette self-assigned this Jan 30, 2026
@JacquesCarette
Copy link
Collaborator Author

Yes, I'll try to deal with the conflicts soon. First, I need to catch up on what's been going on in stdlib!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants