Description
Hi Three Two issues arising around (Is)Ring
(and friends):
- Redundant
zero
inIsRing
#2195 do we really want the names
; inverse to -‿inverse
; inverseˡ to -‿inverseˡ
; inverseʳ to -‿inverseʳ
in the +-IsAbelianGroup
instance of IsRing
. Why not more simply +-inverse
etc.?
Originally posted by @jamesmckinna in #2195 (comment)
UPDATED: so far, the use of these things is almost completely confined to 'internal' definitions in Algebra.{Module.}Structures
and Algebra.{Module.}Construct
, so I'll leave well alone for now...
- should we enrich the manifest signature of
IsAbelianGroup
with an explicit subtraction operator?
UPDATED: this already happens inIsGroup
, though I might have expected theGroup
operation to admit two forms, and only collapse to 'subtraction' in theIsAbelianGroup
case... (?):
infixl 6 _-_
_-_ : Op₂ A
x - y = x ∙ (y ⁻¹)
UPDATED though if I were to, I'd define, in IsGroup
see #2251 (and UPDATED to reflect the discussion there):
infixl 6 _//_
infixr 6 _\\_
_//_ : Op₂ A
x // y = x ∙ (y ⁻¹)
_\\_ : Op₂ A
x \\ y = (x ⁻¹) ∙ y
and rename the first into _-_
in IsAbelianGroup
and prove the two operations extensionally equal in Algebra.Properties.AbelianGroup
(or somewhere else?)). Not sure about the infix
/associativity declarations, though!
Tempting instead, perhaps though, to define the Mal'cev operation and specialise it appropriately...
- this is a separate issue; which might also take in the
trans (sym ...) ...
analogous operation (not defined anywhere, AFAIK?) for theIsEquivalence
(Is)Groupoid
operations (with(Is)Groupoid
not defined anywhere, either AFAIK?) cf. Add derived (pre-)groupoid operations toRelation.Binary.Is(Partial)Equivalence
#2249