{"id":19664995,"url":"https://github.com/jonghough/permuj","last_synced_at":"2026-02-08T23:01:36.688Z","repository":{"id":18501946,"uuid":"21698166","full_name":"jonghough/PermuJ","owner":"jonghough","description":"J scripts for calculating permutation groups","archived":false,"fork":false,"pushed_at":"2016-03-09T14:19:09.000Z","size":86,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-31T10:18:19.458Z","etag":null,"topics":["group-theory","j","jlang","permutation","permutation-groups","permutations","subgroups"],"latest_commit_sha":null,"homepage":null,"language":"J","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonghough.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-10T14:56:51.000Z","updated_at":"2025-02-15T03:40:36.000Z","dependencies_parsed_at":"2022-07-30T13:49:30.846Z","dependency_job_id":null,"html_url":"https://github.com/jonghough/PermuJ","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jonghough/PermuJ","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonghough%2FPermuJ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonghough%2FPermuJ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonghough%2FPermuJ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonghough%2FPermuJ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonghough","download_url":"https://codeload.github.com/jonghough/PermuJ/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonghough%2FPermuJ/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29248487,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T22:49:53.206Z","status":"ssl_error","status_checked_at":"2026-02-08T22:49:51.384Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["group-theory","j","jlang","permutation","permutation-groups","permutations","subgroups"],"created_at":"2024-11-11T16:19:59.786Z","updated_at":"2026-02-08T23:01:36.672Z","avatar_url":"https://github.com/jonghough.png","language":"J","readme":"# PermuJ #\n\n*Collection of J scripts for doing calculations with permutation groups.*\n\nIncludes, or will hopefully include:\n\nCreating permutation presentations of symmetric, alternating, dihedral, cyclic\ngroups.\n\nFunctionality includes:\n* finding conjugacy classes and cosets\n* enumerating conjugacy classes\n* finding subgroups\n* commutators and derived subgroups\n* involutions and centers\n* quotients\n* automorphisms\n* constructing modulo-multiplication groups for given positive integer\n* direct products\n\nFinding normal subgroups and group structure, and finding quotient groups, and automorphisms.\n\nWhy J?\n\nThe J programming language is ideal for doing any kind of mathematics, and is ideal\nfor looking into permutations and groups.\n\n## Usage ##\n\nNeed to have J installed. Best to install J 8.X ( http://www.jsoftware.com/stable.htm )\n\n\n### Example ###\n\nNB. Create the symmetric group on 4 letters:\n\n`s4 =: Sym 4`\n\nNB. Create the dihedral group of order 8\n\n`d4 =. Dih 4`\n\nNB. Create direct product of S4 and D4:\n\n`s4d4 =: s4 dir_prod d4`\n\nNB. get the center of s4d4\n\n`cent =. center s4d4`\n\nIncidentally, the size of the center is 192 (i.e. 192 permutations make up the center of S4xD4). This can be seen by\n`#cent`\n\n192\n\nNB. Get the derived subgroup of s4d4\n\n`derived_subgroup s4d4`\n\nwhich gives\n\n```\n0 1 2 3 4 5 6 7\n\n0 3 1 2 4 5 6 7\n\n0 2 3 1 4 5 6 7\n\n3 1 0 2 4 5 6 7\n\n2 1 3 0 4 5 6 7\n\n1 0 3 2 4 5 6 7\n\n2 0 1 3 4 5 6 7\n\n3 2 1 0 4 5 6 7\n\n1 2 0 3 4 5 6 7\n\n1 3 2 0 4 5 6 7\n\n2 3 0 1 4 5 6 7\n\n3 0 2 1 4 5 6 7\n\n0 1 2 3 6 7 4 5\n\n0 3 1 2 6 7 4 5\n\n0 2 3 1 6 7 4 5\n\n3 1 0 2 6 7 4 5\n\n2 1 3 0 6 7 4 5\n\n1 0 3 2 6 7 4 5\n\n2 0 1 3 6 7 4 5\n\n3 2 1 0 6 7 4 5\n\n1 2 0 3 6 7 4 5\n\n1 3 2 0 6 7 4 5\n\n2 3 0 1 6 7 4 5\n\n3 0 2 1 6 7 4 5\n```\n\nWe might want to inspect the contents of the derived group:\n\n```dg =: derived_subgroup s4d4```\n\n```conjugacy_classes dg```\n\n\n```\n┌───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────┐\n│0 1 2 3 4 5 6 7│0 3 1 2 4 5 6 7│0 2 3 1 4 5 6 7│1 0 3 2 4 5 6 7│0 1 2 3 6 7 4 5│0 3 1 2 6 7 4 5│0 2 3 1 6 7 4 5│1 0 3 2 6 7 4 5│\n│               │1 2 0 3 4 5 6 7│1 3 2 0 4 5 6 7│2 3 0 1 4 5 6 7│               │1 2 0 3 6 7 4 5│1 3 2 0 6 7 4 5│2 3 0 1 6 7 4 5│\n│               │2 1 3 0 4 5 6 7│2 0 1 3 4 5 6 7│3 2 1 0 4 5 6 7│               │2 1 3 0 6 7 4 5│2 0 1 3 6 7 4 5│3 2 1 0 6 7 4 5│\n│               │3 0 2 1 4 5 6 7│3 1 0 2 4 5 6 7│               │               │3 0 2 1 6 7 4 5│3 1 0 2 6 7 4 5│               │\n└───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┴───────────────┘\n```\n\n\nThe above gives a list of the conjugacy classes of dg.\n\n\nWe can also attempt to decompose dg into direct products.\n\n```decompose_directproduct dg```\n\n```\n┌─────┬─────┬─────┐\n\n│Alt 4│Sym 2│Sym 2│\n\n└─────┴─────┴─────┘\n```\n   \n   Example: Calculate module multiplication group for the number 45:\n   \n   `mmg_groupnames 45`\n   \n   Example: Calculate possible sylow subgroups of S(5) (symmetirc group on 5 elements):\n\n   `sylow3 Sym 5`\n\n\n## Visualization ##\n  \n### Visualizing the orbits of the elements of a group by way of the *cayley table*. ###\n  \nBelow are visualizations of the cayley tables of *Sym(5)*, *Alt(5)* and *Dih(12)*, repsectively.\n  \n![Sym 5](/sym5.png?raw=true \"Sym 5 visualization\") ![Alt 5](/alt5.png?raw=true \"Alt 5 visualization\") ![Dih 12](/dih12.png?raw=true \"Dih 12 visualization\")\n  \n  These are created by \n  ```\n   view_table Sym 5\n   view_table Alt 5\n   view_table Dih 12\n   ```\n  \n  It is also possible to view the orbit of a single element of the group. e.g. below is the orbit of a single element in \n  the group *Sym(3) x Cyc(5)*:\n  \n   ![Sym 5](/orbitSym3xCyc5.png?raw=true \"Sym 5 visualization\")\n\nThis is created by\n```\n1 view_orbit (Sym 3) dir_prod (Cyc 5) NB. left arg, 1, is the index of the permutation in Sym3xCyc5 \n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonghough%2Fpermuj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonghough%2Fpermuj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonghough%2Fpermuj/lists"}