- 
                Notifications
    You must be signed in to change notification settings 
- Fork 259
Add subgroups and submodules #2852
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
base: master
Are you sure you want to change the base?
Conversation
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.
This all looks great (esp. following our discussion this morning).
My only (cosmetic) hesitation is/would be over the field name Sub in each case, but in truth I don't have an improvement over it.
Cut! Print!
        
          
                src/Algebra/Construct/Sub/Group.agda
              
                Outdated
          
        
      |  | ||
| record Subgroup c′ ℓ′ : Set (c ⊔ ℓ ⊔ suc (c′ ⊔ ℓ′)) where | ||
| field | ||
| Sub : RawGroup c′ ℓ′ | 
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 the name Algebra.Construct.Sub.* is fine, even good. I think the name Sub as a field name is not.
group ? Because it is a group, it has an independent existing as a group, and acquires a new one when inserted into this record.
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'm willing to change the name but I don't like the name group - there's already another group lurking in the background and I'm worried they'll be confused
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.
Fair. I'll try to come up with other suggestions. (I did not propose rawgroup because I dislike that quite a bit myself.)
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.
Looking what I actually wrote, I use group for the embellishment of Sub with laws
|  | ||
| record Submodule cm′ ℓm′ : Set (c ⊔ cm ⊔ ℓm ⊔ suc (cm′ ⊔ ℓm′)) where | ||
| field | ||
| Sub : RawModule R.Carrier cm′ ℓm′ | 
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.
in a similar vein, I would want module, but that can't work. moduleOn, since it is parametrized?
| I agree with @JacquesCarette that  It occurs to me that, in one sense, the name cannot matter, as we could insist that it only ever be accessed as the underlying (computed)  ... I've argued, persuasively or not, for 'canonicalising' the name  
 I realise this is a vexed topic, and I want to stress the last two are not intended vexatiously (nor facetiously); we need a name for a thing which shouldn't really ever be referred to directly outwith the  Avoiding prior convention, Freyd/Sčedrov in their Categories/Allegories book, used prefix and suffix 'box' on (names of arrows) to denote 'domain' and 'codomain' (with moreover the advantage of being minimum-ink), so  Early morning thoughts of a chronic insomniac! | 
| 
 Another suggestion:  | 
| 
 OK, good to maybe achieve some convergence on this? 
 yes, that would be very much in the spirit of old-school typographical convention in mathematics, (sidebar: did we actually get this from mathematicians, or from the extraordinarily gifted typesetters/printers at, particularly, Oxford University Press, Springer, and Van Nostrand Reinhold, who left such a mark on published Anglophone/German mathematics in the pre-digital, pre- frantic M&A consolidation years ie up to about 1980?) but as @JacquesCarette often points out, we need to move past such orthodoxies, and if we're going to keep the same name for the monomorphism, then we need to keep the same name for its domain? (eyes on a generative solution downstream, cf. #2287 etc.) | 
| I've changed the name from  | 
| This may be the sweet spot... the internal module names are  | 
| open import Algebra.Bundles using (CommutativeRing) | ||
| open import Algebra.Module.Bundles using (Module; RawModule) | ||
|  | ||
| module Algebra.Module.Construct.Sub.Module {c ℓ cm ℓm} {R : CommutativeRing c ℓ} (M : Module R cm ℓm) where | 
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've realised that later on in my development of modular arithmetic, I don't want sub modules per se, but sub R-R-bimodules (I don't want to assume that R is commutative). Or possibly sub left (eq. right) modules.
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.
Hmmm... but that could be added downstream, or else (easily?) as part of this one?
| What's the reason for not including the versions also for  | 
Pulled out of work on #2729 that can be merged straight away hopefully