[Add] Consequences of identity for monoids#2692
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. |
JacquesCarette
left a comment
There was a problem hiding this comment.
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... |
jamesmckinna
left a comment
There was a problem hiding this comment.
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.
Can we name these with ε rather than id?
|
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 |
Taneb
left a comment
There was a problem hiding this comment.
Changelog needs fleshing out but otherwise looks good!
@Taneb 's problems on #2851 suggests that we may indeed have been too hasty in accepting the |
Introduce reasoning combinators for monoids.
This PR is intended to focus on the
Monoid.Reasoningfilr as the discussion regarding theSemigroup.reasonigfile is in the PR : #2688I went with the names from agda-categories since they seemed to make sense.