#### 6.58 arrays in group/transgroup (14.4.00)

##### 6.58.1 Mike May, S.J.

Using Maple 6 I have parallel constructions that are being treated diﬀerently. Can anyone tell me why?

Motivational background:

I am updating worksheets I use in teaching abstract algebra so that they will run under Maple 6. The worksheets on computing Galois groups need the most revision since the galois function was rewritten between versions V4 and V5 and again with version 6.

The worksheet walks the students throught he computation focusing on the technique rather than just on the answer. (By the way, I think it is a nice feature of Maple that you can gain access to the code used for a computation.)

In the revision to version 6, information that was stored in the table group/transgrp is now scattered across a collection of tables group/transgroup/InfoDeg where Info is one of {name, order, parity, generators, SnConjugates} and Deg is an integer from 1 to 11.

At the same time the table galois/groups no longer contains group names that my students will recognize. I was able to rewrite the worksheets, but ran into the following interesting behavior:

Maple question:

Why is Maple treating the list of SnConjugates diﬀerent from the other 4 lists in the code below?

> deg := 5:
> numb := 3:
> [group/transgroup/names||deg[numb],
>  group/transgroup/order||deg[numb],
>  group/transgroup/parity||deg[numb],
>  group/transgroup/generators||deg[numb],
>  group/transgroup/SnConjugates||deg[numb]];

[{"F(5)", "5:4"}, 20, -1, {[[1, 2, 3, 4, 5]], [[1, 2, 4, 3]]},
group/transgroup/SnConjugates5[3]]

> [eval(group/transgroup/names||deg[numb]),
>  eval(group/transgroup/order||deg[numb]),
>  eval(group/transgroup/parity||deg[numb]),
>  eval(group/transgroup/generators||deg[numb]),
>  eval(group/transgroup/SnConjugates||deg[numb])];

[{"F(5)", "5:4"}, 20, -1, {[[1, 2, 3, 4, 5]], [[1, 2, 4, 3]]},
[1, 0, 5, 0, 0, 10, 4]]



As the second block of code shows I can make Maple behave in the desired fashion. I am curious as to why parallel constructions seem to be treated diﬀerently.

##### 6.58.2 Robert Israel (20.4.00)

group/transgroup/names5 and group/transgroup/generators5 are arrays of sets, while group/transgroup/order5 and group/transgroup/parity5 are arrays of integers.

So e.g. group/transgroup/names5[3] is a set, and this is subject to normal evaluation rules. However group/transgroup/SnConjugates5 is an array of arrays, and arrays have last-name evaluation. Therefore

> group/transgroup/SnConjugates5[3];

does not fully evaluate the array group/transgroup/SnConjugates5[3] unless you use "eval".