# Chapter 4: Software and Calculations # # # The package "groups" also allows you to make calculations with linear # groups over a field F(p). After loading the package, you must first # choose a prime with the function ChoosePrime . For example # > ChoosePrime(11); 11 # # All your calculations will then be modulo this prime. You can change # the prime at any time, but if you do not make a choice none of the # functions will evaluate. Matrices are usually defined in Maple with # the function matrix. In this package they are represented as lists of # lists wrapped with L[] in order to give a mechanism to reduce modulo # the chosen prime at each step in the calculations. For example, the # general 2x2 matrix # # # is represented as # # L ( [[a,b], [c,d]] ) # # The result of the input is then # # [[[a,b], [c,d]], p] # For example # > a := L ( [[1,2], [3,4]]); a := [[[1, 2], [3, 4]], 11] # # To see the result in matrix notation just enter # > matrix( 2,2, a[1] ); [1 2] [ ] [3 4] # # The same functions you used with permutation groups are defined for # linear groups. For example # > Inverse(a); [[[9, 1], [7, 5]], 11] # # If # > b := L( [[6,3], [7,5]] ); b := [[[6, 3], [7, 5]], 11] # # then # > a&*b; [[[9, 2], [2, 7]], 11] # # Now suppose # > ChoosePrime(7); 7 # # and # > G := { L([[1, 1], [1, 2]]), L([[2, 3], [4, 1]]), L([[2, 6], [6, 1]]), > L([[1, 0], [0, 1]]), L([[2, 1], [6, 4]]) }; G := {[[[1, 0], [0, 1]], 7], [[[1, 1], [1, 2]], 7], [[[2, 1], [6, 4]], 7], [[[2, 3], [4, 1]], 7], [[[2, 6], [6, 1]], 7]} # # then # > Inverse(G); {[[[1, 0], [0, 1]], 7], [[[1, 1], [1, 2]], 7], [[[2, 1], [6, 4]], 7], [[[2, 3], [4, 1]], 7], [[[2, 6], [6, 1]], 7]} # # So G is closed under taking inverses. Let's check whether it is closed # under products: # > G&*G; {[[[3, 6], [1, 1]], 7], [[[6, 4], [3, 5]], 7], [[[2, 2], [5, 6]], 7], [[[2, 3], [3, 5]], 7], [[[0, 5], [2, 5]], 7], [[[1, 0], [0, 1]], 7], [[[3, 4], [3, 0]], 7], [[[5, 4], [4, 2]], 7], [[[1, 1], [0, 4]], 7], [[[1, 1], [1, 2]], 7], [[[3, 6], [1, 5]], 7], [[[2, 1], [6, 4]], 7], [[[2, 3], [4, 1]], 7], [[[5, 5], [4, 3]], 7], [[[5, 1], [5, 6]], 7], [[[1, 5], [0, 2]], 7], [[[2, 6], [6, 1]], 7]} # # You see immediately that the product of L( [[1,1], [1,2]] ) with # itself is not in G. So G is not a linear group. # # We can verify that GL( 2, F(5) ) is generated by the three matrices # above. First we change the chosen prime to 5. # > ChoosePrime(5); 5 # # Let # > H := Group( L([[2, 0], [0, 1]]), L([[0, 1], [1, 0]]), L([[1, 1], [0, > 1]])): # # Now we check: # > Ord(H); 480 # # This is indeed 4^2· 5 ·6 . Can you find three matrices which generate # GL( 2, F(7) ) ? GL( 2, F(11) ) ?