On Fri, 2 Nov 2007, William Stein wrote:
>
> On Fri, 02 Nov 2007 00:08:40 -0700, <[EMAIL PROTECTED]> wrote:
>> On Thu, 1 Nov 2007, William Stein wrote:
>>> On 11/1/07, [EMAIL PROTECTED]
>>>> Under the way I've implemented this, the
>>>> action on the list [1,...,n] is trivially
>>>> isomorphic to the group structure. You
>>>> seem to be using a left-action which
>>> ^^^^^^^^^^^^^^^^^^^
>>>
>>> I am using a left action.
>>
>> ... failure to type ... I meant right action.
>>
>
> Now we are getting somewhere, maybe. I'm thinking of the
> natural (to me!) right action and you're thinking
> of the left action got by inverting the permutation and acting
> in the natural way :-).
I really don't see why you think I'm inverting the permutation. I'm still
convinced that what I've done is consistent (and *not* inverted):
sage: G = PermutationGroup([(1,2),(1,2,3,4)])
sage: g = G((1,2,3,4))
sage: g([1,2,3,4])
[2, 3, 4, 1]
sage: [g(i) for i in range(1,5)]
[2, 3, 4, 1]
I realize that this is potentially weird from the standpoint that "I don't care
what's in the list", but I think that this should be naturally consistent.
> I guess I just don't think permutation (which are functions) should
> act on the left. It's repulsive to me. I guess there's just
> not much more to say than that.
Ok. I don't think that's a very good attitude to enforce, since a lot of
people do use left action. So here's an idea: we can support left- and
right-actions. Use __call__ for left, and __pow__ for the right.
--tom
>
> -- William
>
>>>
>>>> doesn't really go well with the notation g(l).
>>>
>>> If g and h are in a group and you use the
>>> notation g(x) to denote the action of g on
>>> x then you had better be talking about a left
>>> action, since
>>>
>>> g(h(x)) = (g*h)(x)
>>
>> ... yeah, that's what I was getting at.
>>
>> My way:
>>
>> sage: a = G([(1,2,3),(4,5)])
>> sage: b = G([(1,2,3,4,5)])
>> sage: a('abcde')
>> 'bcaed'
>> sage: b(a('abcde'))
>> 'caedb'
>> sage: (b*a)('abcde')
>> 'caedb'
>>
>>
>> Your way: (note -- I'm doing this part by hand, so it might be wrong -- the
>> above is output from Sage)
>>
>> sage: a = G([(1,2,3),(4,5)])
>> sage: b = G([(1,2,3,4,5)])
>> sage: c = b*a; c
>> (1,3,5,2)
>> sage: a('abcde')
>> 'cabed'
>
>
>
>> sage: b(a('abcde'))
>> 'dcabe'
>> sage: c('abcde')
>> 'beadc'
>>
>>
>>
>>
>>>
>>>> If you still disagree, I suggest backing out the patch and > waiting for
>>>> Jason Grout, who requested the feature, to
>>>> clarify his intent.
>>>
>>> That would be good. His intent is inclear, since
>>> he gives no unambiguous example.
>>>
>>>> (OTOH, backing it out isn't really
>>>> necessary -- the patch only adds functionality)
>>>
>>> Adding incorrect functionality isn't good.
>>> (Again, I'm not sure I'm right here -- I'm just
>>> very uncomfortable by instinct.)
>>>
>>> -- William
>>>
>>>>
>>>
>>
>>
>>
>>>
>>
>
>
>
> --
> William Stein
> Associate Professor of Mathematics
> University of Washington
> http://wstein.org
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---