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 -~----------~----~----~----~------~----~------~--~---