Hi,

I also strongly support both left and right actions, with the syntax

Left action:
s1(s2(x)) == (s1*s2)(x)   

Right action:
(x^s1)^s2 == x^(s1*s2)

Currently the left (functional) notation is implemented in Sage with 
the right order of application: s1(s2(x)) == (s2*s1)(x) is True. 
This needs to be either accepted or deprecated in preference to 
a new right operator. 

Magma implements only the right action with ^ notation, and GAP 
also (only?) implements the same.  

Attention: Unless I'm mistaken, Magma does something bad with 
operator precedence in order to have x^s1^s2 evaluate to (x^s1)^s2 
rather than x^(s1^s2) -- the latter is defined but not equal. 


The significant change is that a left acting symmetric group 
will have its multiplication reversed. 

Implementing the right action involves some thought, since it 
must be a method on the domain class.  Either the domain 
must be a designated class of G-sets, which knows about its 
acting group G, or for each object with a "natural" permutation 
action, one needs to implement or overload ^ on a case-by-case 
basis (e.g. integers, free modules, polynomial rings and other 
free objects [action on the generators], etc.).  Please correct 
me if there is another way to drop through and pick up an 
action operation on the right-hand argument. 

Defining the (left or right) action by * would probably be a 
nightmare with the coercion model, since it is handled as 
a symmetric operator. 

Some thought needs to be given to the extension from a 
group action to a group algebra action.  The ZZ-module 
structure of an abelian group with left G-action would give 
an argument to admitting * as a possible (left) notation 
for this operation, despite the obvious headaches. 
The ^ notation would give a compatible extension of 
the natural ZZ-module structure acting on the right on 
a multiplicatively represented abelian group.  

As an example, in number theory, when G is a Galois 
group Gal(L/K), it is typical to left K[G] act on the left 
on L by *, and ZZ[G] act on the right on multiplicative 
group L^*.  Although G is not a permutation group in 
this example, we want to set up the framework for 
G-sets to admit these natural actions.  The left action 
is problematic, since the coercion model is susceptible
to building L[G] and carry out * with the trivial G-action 
on L.  To avoid this, L needs to be identified as an 
object in the category of K-modules (with G-action) 
rather than a K-algebra.  Until someone comes up 
with a well-developed and coherent model for treating 
the operator * in general G-actions, I would avoid any 
implementations using this operator with permutation 
actions. 

--David

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to