Hi there,

> > Is there any real reason to use "Modules(R)" as "Bimodules(R,R)"
> > beyond the comfort of not changing the names? If not, I'd strongly
> > suggest forgetting the name "Modules" for noncommutative rings or
> > default it to left modules.
> 
> Oh, interesting that you say that. That is exactly what PanAxiom is doing:
> 
> Module(R:CommutativeRing): Category == BiModule(R,R)
>    add
>      if not(R is %) then x:%*r:R == r*x
> 
> Module(R) can only be instatiated if R is a commutative ring.
> To make it more clear:
> 
> (1) -> S2:=SquareMatrix(2, Integer)
> 
>     (1)  SquareMatrix(2,Integer)
>                                                        Type: Domain
> (2) -> SparseUnivariatePolynomial(S2) has Module(S2)
> 
>     Module(S2) is not a valid type.
> 
> Isn't that what you want? Maybe you should use FriCAS. ;-)

So that you certainly have two other categories RightModule and LeftModule.

Here I see two possibilities:

 1 - Restrict Module to the commutative case and create RightModule and
     LeftModule and define

     Module(R)   := Bimodule(R,R)
     Module(L,R) := Join(LeftModule(L), RightModule(R))

 2 - Define Module as an alias for LeftModule.
     Module(L,R) := Join(LeftModule(L), RightModule(R))

In my experience, in the commutative case, we never use the two sided case. EG
if v is in a R-vector space, I always write 3*v and never v*3...

What's your preferred choice ?

Cheers,

Florent


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to