{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Sage Tutorial for Permutation Groups\n", "\n", "You can use sage for a lot of group theory tests. The following should give you an idea of how things work in Sage. \n", "\n", "Sage has a *lot* of built-in groups that you can call. The following are a few examples. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "S4 = SymmetricGroup(4) " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "D4 = DihedralGroup(4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These are a few examples of groups. There is a whole lot of other groups that Sage has; you can google for it. \n", "\n", "Even if you find a new group, and you want to understand it more, you can ask for it to print the multiplication table:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "* a b c d e f g h\n", " +----------------\n", "a| a b c d e f g h\n", "b| b a d c f e h g\n", "c| c d b a h g e f\n", "d| d c a b g h f e\n", "e| e f g h a b c d\n", "f| f e h g b a d c\n", "g| g h f e d c a b\n", "h| h g e f c d b a\n" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D4.cayley_table()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or just list the elements:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(), (1,3)(2,4), (1,4,3,2), (1,2,3,4), (2,4), (1,3), (1,4)(2,3), (1,2)(3,4)]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "D4.list()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Or even show the Cayley graph of it:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 32 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "show(D4.cayley_graph())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Whenever you are unsure of what a specific command does, you can always ask for help" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "D4.cayley_graph?" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "() ()\n", "(1,3)(2,4) (1,3)(2,4)\n", "(1,2,3,4) (1,4,3,2)\n", "(1,4,3,2) (1,2,3,4)\n", "(2,4) (2,4)\n", "(1,3) (1,3)\n", "(1,4)(2,3) (1,4)(2,3)\n", "(1,2)(3,4) (1,2)(3,4)\n" ] } ], "source": [ "for g in D4:\n", " print(g.inverse()), #the comma means the print command will not print a newline at the end\n", " print(g)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also use the disjoint cycle notation to refer to a specific element of the group. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "rho = D4([(1,2),(3,4)])\n", "pi = D4([(1,4),(2,3)])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1,4)(2,3)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tau = rho * pi * rho.inverse()\n", "tau" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can also make membership queries (and a LOT more)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "True\n", "False\n" ] } ], "source": [ "print(S4([(1,2,3,4)]) in D4)\n", "print(S4([(1,2)])) in D4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us consider the rotations of the cube:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "24" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S8 = SymmetricGroup(8)\n", "rotX = S8([(1,2,3,4),(5,6,7,8)])\n", "rotY = S8([(1,5,8,4),(2,6,7,3)])\n", "rotZ = S8([(1,2,6,5),(4,3,7,8)])\n", "G = PermutationGroup([rotX,rotY,rotZ])\n", "G.order()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G.is_isomorphic(SymmetricGroup(4))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Some tutorials online" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You have a [pretty good tutorial here](http://doc.sagemath.org/html/en/thematic_tutorials/group_theory.html#permutation-groups).\n", "Play around with sage to get a better hang of things. " ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "SageMath 8.4", "language": "", "name": "sagemath" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.15" } }, "nbformat": 4, "nbformat_minor": 2 }