Hi again,

Note also that GAP handles permutations identically to SymPy, and the
manual states unambiguously that "GAP multiplies permutations from left to
right!":

https://college.cengage.com/mathematics/gallian/abstract_algebra/5e/shared/gap/gap_manual.pdf?URL=www.kau.edu.sa

(p. 25).

Again, this follows the conventional element interpretation, rather than
the position interpretation.  I understand the arguments in favor of the
position interpretation, but I would encourage you to adopt the convention
that, as far as I can tell, is in wider use.

Thanks,
Alex

On Fri, Mar 12, 2021 at 1:34 PM Chris Smith <[email protected]> wrote:

> ...but then I see in the notes "decomposing a cycle" where the author is
> definitely referring to elements being switched. But it makes sense to me
> to make the references refer to position so they can be applied regardless
> of the identity of the elements (as in Aaron's example using a string).
> This might be something to make clear at the outset of the Permutation
> documentation.
>
> If you are more comfortable working with swaps in the order given you can
> write a utility function something like this:
>
> ```
> def eswap(*p):
>  assert len(p)%2==0
>  big = max(p)
>  rv = list(range(big+1))
>  for i,j in zip(p[::2],p[1::2]):
>      k,l = [rv.index(w) for w in (i,j)]
>      rv[k], rv[l] = rv[l],rv[k]
>  return Permutation(rv)
>
> >>> eswap(1,3,1,2)
> (132)
> >>> eswap(1,2,1,3)
> (123)
> ```
> /c
>
> On Friday, March 12, 2021 at 3:17:34 PM UTC-6 Chris Smith wrote:
>
>> From page two of the notes I reconstruct the same output
>>
>> `
>> >>> (Permutation(1,5)(2,6,4)).list()
>> [0, 5, 6, 3, 2, 1, 4]
>> `
>> Could it be that the semantics (which are the same when you start with an
>> ordered list and do only one cycle) are the confusing issue in that you
>> thought it meant elements but it really refers to position?
>>
>> /c
>>
>> On Friday, March 12, 2021 at 12:15:35 PM UTC-6 [email protected] wrote:
>>
>>> Hi Chris,
>>>
>>> The convention that I'm familiar with is that the notation (both cycle
>>> notation and the two-line notation) represents the exchange of
>>> *elements*, not positions.  See for example
>>>
>>>
>>> http://www.math.caltech.edu/~2015-16/1term/ma006a/17.%20More%20permutations.pdf
>>>
>>> pp. 4--5.
>>>
>>> So my interpretation of t*s where t=(1,2) and s=(2,3) (multiplying from
>>> R to L) would be:
>>>
>>> 1 -s-> 1 -t-> 2
>>> 2 -s-> 3 -t-> 3
>>> 3 -s-> 2 -t-> 1,
>>>
>>> hence (1,2,3) ("1 goes to 2, 2 goes to 3, 3 goes to 1"), or (in list
>>> form) [0, 2, 3, 1].
>>>
>>> Is transposition of elements from right to left (my interpretation)
>>> equivalent to transposition of positions from left to right (your
>>> interpretation)?  I can't think of any counterexamples, but I'll chew on it.
>>>
>>> At the very least, I think that just specifying a multiplication
>>> direction without specifying what's being permuted (elements or positions)
>>> is ambiguous.
>>>
>>> Thanks again,
>>> Alex
>>>
>>> On Fri, Mar 12, 2021 at 8:29 AM Chris Smith <[email protected]> wrote:
>>>
>>>> My thinking is expression in the transformations of the original list
>>>> of items, [0,1,2,3]. If you first transpose the 2nd and third position you
>>>> get [0,1,3,2] and then if you transpose 1st and 2nd position you get
>>>> [0,3,1,2]. You'll see my name all over the docs for that module so if you
>>>> can find the error in my thinking here, you are close to the source ;-)
>>>>
>>>> /c
>>>>
>>>> On Thursday, March 11, 2021 at 9:47:05 PM UTC-6 [email protected] wrote:
>>>>
>>>>> Hi Chris,
>>>>>
>>>>> Thanks for your response.  When you write,
>>>>>
>>>>> > If you let `p = Permutation(1,2)(2,3)` then `p.list()` gives `[0, 3,
>>>>> 1, 2]` which is consistent with R to L interpretation
>>>>>
>>>>> I think this is incorrect (and I contend that the docs are incorrect
>>>>> on this point as well).
>>>>> Multiplying the transpositions (1,2)(2,3) from R to L, we end up with
>>>>> the cycle (1,2,3),
>>>>> which in list form is [0, 2, 3, 1] (if `p.list()` is the second line
>>>>> of 2-line permutation notation).
>>>>>
>>>>> What do you think?
>>>>>
>>>>> On Thu, Mar 11, 2021 at 7:33 PM Chris Smith <[email protected]> wrote:
>>>>>
>>>>>> So documentation here, "The composite of two permutations p*q means
>>>>>> first apply p, then q" should read "...apply q, then p", right? This 
>>>>>> would
>>>>>> be an easy issue to open and fix if there is consensus that it is wrong 
>>>>>> as
>>>>>> written. But note that using the composition of function syntax reverses
>>>>>> the order, "One can use also the notation p(i) = i^p, but then the
>>>>>> composition rule is (p*q)(i) = q(p(i)), not p(q(i)):"
>>>>>>
>>>>>> /c
>>>>>>
>>>>>> On Thursday, March 11, 2021 at 8:37:25 PM UTC-6 Chris Smith wrote:
>>>>>>
>>>>>>> Given elements `0,1,2,3`, `Permutation(1,2)(2,3)` interpreting R to
>>>>>>> L gives `0123->0132->0312`; interpreting L to R gives `0123->0213->0231`
>>>>>>>
>>>>>>> If you let `p = Permutation(1,2)(2,3)` then `p.list()` gives `[0, 3,
>>>>>>> 1, 2]` which is consistent with R to L interpretation. So the assumption
>>>>>>> that spelling it `Permutation(1,2)*Permutation(2,3)` means left to right
>>>>>>> must be wrong?
>>>>>>>
>>>>>>> /c
>>>>>>>
>>>>>>> On Monday, February 22, 2021 at 3:51:02 PM UTC-6 [email protected]
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi everyone,
>>>>>>>>
>>>>>>>> I've been experimenting with the "Permutations" module, trying to
>>>>>>>> follow the examples in the documentation here:
>>>>>>>>
>>>>>>>>
>>>>>>>> https://docs.sympy.org/latest/modules/combinatorics/permutations.html
>>>>>>>>
>>>>>>>> As expected,
>>>>>>>>
>>>>>>>> Permutation(1, 2)(2, 3) == Permutation(1, 2) * Permutation(2, 3)
>>>>>>>>
>>>>>>>> But doesn't this mean that the permutations are applied from left
>>>>>>>> to right, since (as described in the docs) left-to-right permutation
>>>>>>>> multiplication p*q is equivalent to composition q o p?
>>>>>>>>
>>>>>>>> If so, this contradicts the documentation's claim that "The
>>>>>>>> convention is that the permutations are applied from *right to
>>>>>>>> left*".
>>>>>>>>
>>>>>>>> If not, I must be confused about something, and would appreciate
>>>>>>>> any corrections.
>>>>>>>>
>>>>>>>> Thanks for your help,
>>>>>>>> Alex
>>>>>>>>
>>>>>>>> --
>>>>>> You received this message because you are subscribed to a topic in
>>>>>> the Google Groups "sympy" group.
>>>>>> To unsubscribe from this topic, visit
>>>>>> https://groups.google.com/d/topic/sympy/5MTQFwB7xIo/unsubscribe.
>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>> [email protected].
>>>>>> To view this discussion on the web visit
>>>>>> https://groups.google.com/d/msgid/sympy/7556df78-eb14-408c-bf38-326dafaa1318n%40googlegroups.com
>>>>>> <https://groups.google.com/d/msgid/sympy/7556df78-eb14-408c-bf38-326dafaa1318n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> --
>>>> You received this message because you are subscribed to a topic in the
>>>> Google Groups "sympy" group.
>>>> To unsubscribe from this topic, visit
>>>> https://groups.google.com/d/topic/sympy/5MTQFwB7xIo/unsubscribe.
>>>> To unsubscribe from this group and all its topics, send an email to
>>>> [email protected].
>>>>
>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/sympy/b0302a20-7afa-48e7-ac63-2f467c0b164cn%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/sympy/b0302a20-7afa-48e7-ac63-2f467c0b164cn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> --
> You received this message because you are subscribed to a topic in the
> Google Groups "sympy" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sympy/5MTQFwB7xIo/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/05b31174-bc37-45ed-8a34-bc69b636cc10n%40googlegroups.com
> <https://groups.google.com/d/msgid/sympy/05b31174-bc37-45ed-8a34-bc69b636cc10n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CABL__EuMSdO%2BPciLo_GNPGATgvd9RKE3mavdk8gtu-a_ZE_MPA%40mail.gmail.com.

Reply via email to