Macaulay2 » Documentation
Packages » BettiCharacters > action > Sub
next | previous | forward | backward | up | index | toc

Sub -- format ring actors as one-row substitution matrices

Description

By default, the group elements acting on a ring are passed as one-row substitution matrices as those accepted by substitute. Setting Sub=>false allows the user to pass these elements as square matrices.

The example below sets up the action of a symmetric group on the resolution of a monomial ideal. The symmetric group acts by permuting the four variables of the ring. The conjugacy classes of permutations are determined by their cycle types, which are in bijection with partitions. In this case, we consider five permutations with cycle types, in order: 4, 31, 22, 211, 1111. For simplicity, we construct these matrices by permuting columns of the identity.

i1 : R = QQ[x_1..x_4]

o1 = R

o1 : PolynomialRing
i2 : I = ideal apply(subsets(gens R,2),product)

o2 = ideal (x x , x x , x x , x x , x x , x x )
             1 2   1 3   2 3   1 4   2 4   3 4

o2 : Ideal of R
i3 : RI = res I

      1      6      8      3
o3 = R  <-- R  <-- R  <-- R  <-- 0
                                  
     0      1      2      3      4

o3 : ChainComplex
i4 : G = { (id_(R^4))_{1,2,3,0},
           (id_(R^4))_{1,2,0,3},
           (id_(R^4))_{1,0,3,2},
           (id_(R^4))_{1,0,2,3},
            id_(R^4) }

o4 = {| 0 0 0 1 |, | 0 0 1 0 |, | 0 1 0 0 |, | 0 1 0 0 |, | 1 0 0 0 |}
      | 1 0 0 0 |  | 1 0 0 0 |  | 1 0 0 0 |  | 1 0 0 0 |  | 0 1 0 0 |
      | 0 1 0 0 |  | 0 1 0 0 |  | 0 0 0 1 |  | 0 0 1 0 |  | 0 0 1 0 |
      | 0 0 1 0 |  | 0 0 0 1 |  | 0 0 1 0 |  | 0 0 0 1 |  | 0 0 0 1 |

o4 : List
i5 : A = action(RI,G,Sub=>false)

o5 = ChainComplex with 5 actors

o5 : ActionOnComplex

Similarly, setting Sub=>false causes ringActors and inverseRingActors to return the group elements acting on the ring as square matrices. With the default setting Sub=>true, the same elements are returned as one-row substitution matrices.

i6 : ringActors(A,Sub=>false)

o6 = {| 0 0 0 1 |, | 0 0 1 0 |, | 0 1 0 0 |, | 0 1 0 0 |, | 1 0 0 0 |}
      | 1 0 0 0 |  | 1 0 0 0 |  | 1 0 0 0 |  | 1 0 0 0 |  | 0 1 0 0 |
      | 0 1 0 0 |  | 0 1 0 0 |  | 0 0 0 1 |  | 0 0 1 0 |  | 0 0 1 0 |
      | 0 0 1 0 |  | 0 0 0 1 |  | 0 0 1 0 |  | 0 0 0 1 |  | 0 0 0 1 |

o6 : List
i7 : inverseRingActors(A,Sub=>false)

o7 = {| 0 1 0 0 |, | 0 1 0 0 |, | 0 1 0 0 |, | 0 1 0 0 |, | 1 0 0 0 |}
      | 0 0 1 0 |  | 0 0 1 0 |  | 1 0 0 0 |  | 1 0 0 0 |  | 0 1 0 0 |
      | 0 0 0 1 |  | 1 0 0 0 |  | 0 0 0 1 |  | 0 0 1 0 |  | 0 0 1 0 |
      | 1 0 0 0 |  | 0 0 0 1 |  | 0 0 1 0 |  | 0 0 0 1 |  | 0 0 0 1 |

o7 : List
i8 : ringActors(A)

o8 = {| x_2 x_3 x_4 x_1 |, | x_2 x_3 x_1 x_4 |, | x_2 x_1 x_4 x_3 |, | x_2
     ------------------------------------------------------------------------
     x_1 x_3 x_4 |, | x_1 x_2 x_3 x_4 |}

o8 : List
i9 : inverseRingActors(A)

o9 = {| x_4 x_1 x_2 x_3 |, | x_3 x_1 x_2 x_4 |, | x_2 x_1 x_4 x_3 |, | x_2
     ------------------------------------------------------------------------
     x_1 x_3 x_4 |, | x_1 x_2 x_3 x_4 |}

o9 : List

Functions with optional argument named Sub :

For the programmer

The object Sub is a symbol.