đ The CoCalc Library - books, templates and other resources
License: OTHER
Important: to view this notebook properly you will need to execute the cell above, which assumes you have an Internet connection. It should already be selected, or place your cursor anywhere above to select. Then press the "Run" button in the menu bar above (the right-pointing arrowhead), or press Shift-Enter on your keyboard.
ParseError: KaTeX parse error: \newcommand{\lt} attempting to redefine \lt; use \renewcommand
Section3.7Sage
¶Many of the groups discussed in this chapter are available for study in Sage. It is important to understand that sets that form algebraic objects (groups in this chapter) are called âparentsâ in Sage, and elements of these objects are called, well, âelements.â So every element belongs to a parent (in other words, is contained in some set). We can ask about properties of parents (finite? order? abelian?), and we can ask about properties of individual elements (identity? inverse?). In the following we will show you how to create some of these common groups and begin to explore their properties with Sage.
SubsectionIntegers mod n
We would like to work with elements of Z8
. If you were to type a 6
into a compute cell right now, what would you mean? The integer the rational number the real number or the complex number Or perhaps you really do want the integer mod Sage really has no idea what you mean or want. To make this clear, you can âcoerceâ 6
into Z8
with the syntax Z8(6)
. Without this, Sage will treat a input number like 6
as an integer, the simplest possible interpretation in some sense. Study the following carefully, where we first work with ânormalâ integers and then with integers mod 8.
Z8
is a bit unusual as a first example, since it has two operations defined, both addition and multiplication, with addition forming a group, and multiplication not forming a group. Still, we can work with the additive portion, here forming the Cayley table for the addition.
When is a prime number, the multipicative structure (excluding zero), will also form a group.
The integers mod are very important, so Sage implements both addition and multiplication together. Groups of symmetries are a better example of how Sage implements groups, since there is just one operation present.
SubsectionGroups of symmetries
¶The symmetries of some geometric shapes are already defined in Sage, albeit with different names. They are implemented as âpermutation groupsâ which we will begin to study carefully in Chapter 5.
Sage uses integers to label vertices, starting the count at 1
, instead of letters. Elements by default are printed using âcycle notationâ which we will see described carefully in Chapter 5. Here is an example, with both the mathematics and Sage. For the Sage part, we create the group of symmetries and then create the symmetry with coercion, followed by outputting the element in cycle notation. Then we create just the bottom row of the notation we are using for permutations.
The final list comprehension deserves comment. The .domain()
method gives a lait of the symbols used for the permutation group triangle
and then rho2
is employed with syntax like it is a function (it is a function) to create the images that would occupy the bottom row.
With a double list comprehension we can list all six elements of the group in the âbottom rowâ format. A good exercise would be to pair up each element with its name as given in Figure 3.6.
Different books, different authors, different software all have different ideas about the order in which to write multiplication of functions. This textbook builds on the idea of composition of functions, so that is the composition and it is natural to apply first. Sage takes the opposite view and since we write Sage will understand that we want to do first. Neither approach is wrong, and neither is necessarily superior, they are just different and there are good arguments for either one. When you consult other books that work with permutation groups, you want to first determine which approach it takes. (Be aware that this discussion of Sage function composition is limited to permutations onlyââregularâ functions in Sage compose in the order you might be familiar with from a calculus course.)
The translation here between the text and Sage will be worthwhile practice. Here we will reprise the discussion at the end of Section 3.1, but reverse the order on each product to compute Sage-style and exactly mirror what the text does.
Now that we understand that Sage does multiplication in reverse, we can compute the Cayley table for this group. Default behavior is to just name elements of a group as letters, a, b, c
, \dots{} in the same order that the .list()
command would produce the elements of the group. But you can also print the elements in the table as themselves (that uses cycle notation here), or you can give the elements names. We will use u
as shorthand for and r
as shorthand for
You should verify that the table above is correct, just like Table 3.2 is correct. Remember that the convention is to multiply a row label times a column label, in that order. However, to do a check across the two tables, you will need to recall the difference in ordering between your textbook and Sage.
SubsectionQuaternions
Sage implements the quaternions, but the elements are not matrices, but rather are permutations. Despite appearances the structure is identical. It should not matter which version you have in mind (matrices or permutations) if you build the Cayley table and use the default behavior of using letters to name the elements. As permutations, or as letters, can you identify and
It should be fairly obvious that a
is the identity element of the group (), either from its behavior in the table, or from its âbottom rowâ representation as the first element of the list above. And if you prefer, you can ask Sage for a list of its outputs when viewed as a function.
Now should have the property that We see that the identity element a
is on the diagonal of the Cayley table only when we compute d*d
. We can verify this easily, borrowing the fourth âbottom rowâ element from the list above. With this information, once we locate we can easily compute and so on.
See if you can pair up the letters with all eight elements of the quaternions. Be a bit careful with your names, the symbol I
is used by Sage for the imaginary number (which we will use below), but Sage will silently let you redefine it to be anything you like. Same goes for using lower-case i
in Sage. So call your elements of the quaternions something like QI, QJ, QK
to avoid confusion.
As we begin to work with groups it is instructive to work with the actual elements. But many properties of groups are totally independent of the order we use for multiplication, or the names or representations we use for the elements. Here are facts about the quaternions we can compute without any knowledge of just how the elements are written or multiplied.
SubsectionSubgroups
The best techniques for creating subgroups will come in future chapters, but we can create some groups that are naturally subgroups of other groups.
Elements of the quaternions were represented by certain permutations of the integers 1 through 8. We can also build the group of all permutations of these eight integers. It gets pretty big, so do not list it unless you want a lot of output! (I dare you.)
The quaternions, Q
, is a subgroup of the full group of all permutations, the symmetric group or S8
, and Sage regards this as a property of Q
.
In Sage the complex numbers are known by the name CC
. We can create a list of the elements in the subgroup described in Example 3.16. Then we can verify that this set is a subgroup by examining the Cayley table, using multiplication as the operation.