-
Notifications
You must be signed in to change notification settings - Fork 251
[Add] Consequences of identity for monoids
#2692
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
Conversation
Probably the 'best' thing to do is to mark this as blocked (on #2688 ), otherwise you'll end up with merge conflicts when that PR gets merged, and indeed to start afresh with this PR being on a branch based on |
Suggest corresponding title change for the PR in the spirit of that for #2688 ... |
monoids
5db9ac8
to
ec1030c
Compare
Given that this is not properly rebased, and the naming scheme is different from the semigroup PR and that I need to make a release candidate tomorrow, I'm going to remove this from the v2.3 milestone tomorrow @JacquesCarette. If you would like this to urgently get in then please bring it up to date. |
I will try. |
Co-authored-by: jamesmckinna <31931406+jamesmckinna@users.noreply.github.com>
1ae1e27
to
dab0763
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is in excellent shape now.
@jmougeot pushed through the work (thanks!) Yes, the naming scheme here is quite different. However, I claim that the names in this PR make sense. The ones for original semigroup PR didn't (i.e. the ones based on push and pull which are quite arbitrary). When you read a proof that uses the names here, you get a 'semantic sense' of what the proof does. They've also been used a lot in I'm fine if this doesn't make it in to v2.3 -- but it shouldn't be because of the names! |
I'm (qualified) happy with this, but would like us to revisit the names before v3.0, when we can break/deprecate to improve matters. My concern would be that we choose bad names, use them, extensively even, and then have more knock-on viscosity once we find the 'right' ones... but that is, here, I think outweighed by having them available for experiment, so their utility (and memorability!) can be experimented with... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Happy to merge as is, but indeed I now find I prefer the superscript form, even if only for (internal) consistency of naming...
Co-authored-by: jamesmckinna <31931406+jamesmckinna@users.noreply.github.com>
Co-authored-by: jamesmckinna <31931406+jamesmckinna@users.noreply.github.com>
Although I've previously approved these, I'd like us to reconsider the Fairbairn penalty for having left/right Suggestion: a follow-up PR to prune out the redundancies? (Ideally: before the v2.3 |
In this particular case, I will definitely argue that that Fairbairn cost is worth paying, again largely because of readability. When you seem something being eliminated, it's nice to see the proof say that. When the proof says 'intro' but it reads as the opposite, it takes a while to see that for this one line, the reasoning is backwards. I think that |
src/Algebra/Properties/Monoid.agda
Outdated
variable | ||
a b c d : Carrier | ||
|
||
id-unique : ∀ a → (∀ b → b ∙ a ≈ b) → a ≈ ε |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we name these with ε
rather than id
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense.
Do we want to (can we please) reexport these for rings with suitable renamings? |
I'd be happy to! |
@Taneb I've done the renaming. I'll do the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changelog needs fleshing out but otherwise looks good!
Introduce reasoning combinators for monoids.
This PR is intended to focus on the
Monoid.Reasoning
filr as the discussion regarding theSemigroup.reasonig
file is in the PR : #2688I went with the names from agda-categories since they seemed to make sense.