2013/7/15 Peter Bruin <
pjb...@gmail.com>:
> Hi Marco and all,
>
>> I had Darij's problem as well, and many others probably did as well.
>> In a right action, I would prefer p(1) to give a warning. In a right
>> action, I would want some notation where p is on the right, preferably
>> 1^p (1 hat p).
>
>
> That would make sense (except that I don't really see why "^" is better than
Hi Peter,
I was just saying that I prefer "^" personally (reasons below if you
really want to know), but never for left actions, and actually not
even for all right actions. This must be true for more people. So why
not allow multiple notations:
g(x) (but give a warning if it is a right action)
g*x (but give a warning if it is a right action)
x*g (but give a warning if it is a left action)
x^g (but give a warning if it is a right action)
We can even have three types of actions: left, right, and commutative
(for commutative groups acting, where one could let g(x), g*x, x*g,
x^g all give the same result with no warnings).
> "*", see below). In principle one can even allow completely symmetric
> notation:
Yes, but I would discourage writing left actions as right actions or
vice versa. The associative laws become a great source of confusion
and mistakes. For example, x^(g*h) = (x^g)^h makes sense where the
current notation suggests the (in current Sage incorrect) (g*h)(x) =
g(h(x)).
>
> - left action of g on x: g(x) or g^x; think of [left exponent g]x in
> two-dimensional notation
> - right action of g on x: (x)g or x^g
>
> Of course g^x and (x)g look a bit funny and maybe too confusing, but this is
> just because we are used to thinking that g^x means that x is in the
To people who use hats for exponentiation and/or latex superscripts,
"g^x" can only mean that x is in the exponent. The only notation I can
think of where g is in the superscript is the ugly ${}^g x$ (which is
sometimes really used in the literature), but I don't see how to do
that in Python and I don't expect to be very popular in Sage.
> For both left and right actions, whether multiplicative ("*", similar binary
> symbols or the empty notation) or exponential notation ("^", left or right
> exponents) looks more natural depends on whether you are looking at the
> behaviour of the group action with respect to addition or with respect to
> multiplication.
True, but.... (and this debate about * versus ^ is not really
important, so this is the place to stop reading this post if you still
are, it also is not really about permutation groups acting on sets of
integers.)
I'll take Peter's examples, but only for right actions of course,
there is no discussion about notations for left actions.
For actions on rings and additive groups:
(x+y)^g = x^g + y^g violates no rules of arithmetic in itself,
just looks funny
(x+y)*g = x*g + y*g is a very nice distributive law
For actions on commutative rings and multiplicative groups:
(x*y)^g = (x^g) * (y^g) is a very nice distributive law
(x*y)*g violates the associative rule for multiplication, since
(x*y)*g = x*(y*g) is only true if g acts trivially on x.
So in some situations "*" is very bad, while in all situations "^" is ok.
Also, I sometimes choose a right action *because* I want to use
exponential notation, as in e.g. x^(1-g) = x / (x^g).