{"id":19687385,"url":"https://github.com/nthiery/sage-semigroups","last_synced_at":"2026-06-09T13:31:23.973Z","repository":{"id":30770677,"uuid":"34327420","full_name":"nthiery/sage-semigroups","owner":"nthiery","description":null,"archived":false,"fork":false,"pushed_at":"2021-07-03T11:45:20.000Z","size":215,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-27T09:13:22.095Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nthiery.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-21T13:05:42.000Z","updated_at":"2021-06-30T21:58:11.000Z","dependencies_parsed_at":"2022-08-26T15:42:26.306Z","dependency_job_id":null,"html_url":"https://github.com/nthiery/sage-semigroups","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nthiery/sage-semigroups","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nthiery%2Fsage-semigroups","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nthiery%2Fsage-semigroups/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nthiery%2Fsage-semigroups/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nthiery%2Fsage-semigroups/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nthiery","download_url":"https://codeload.github.com/nthiery/sage-semigroups/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nthiery%2Fsage-semigroups/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34110011,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-11T18:34:01.476Z","updated_at":"2026-06-09T13:31:23.954Z","avatar_url":"https://github.com/nthiery.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"sage-semigroups: A semigroup (representation) theory library for SageMath\n=========================================================================\n\n.. image:: https://mybinder.org/badge.svg\n   :target: https://mybinder.org/v2/gh/nthiery/sage-semigroups/master?filepath=demo.ipynb\n   :alt: Run on binder\n\nsage-semigroups is a library for computational semigroup\n(representation) theory, for the open source mathematical system\n`SageMath \u003chttp://sagemath.org\u003e`_. Its intention is to serve as a\nrepository where experimental features can be shared among researchers\nand mature until they get integrated into the main SageMath library or\ndiscarded.\n\nNews\n----\n\n- June 2017: up to now, that repository had been a mostly empty shell.\n  At the occasion of a sprint with Franco Saliola, most of the\n  semigroup code from the Sage-Combinat queue was imported in\n  sage-semigroups, together with private code from Franco. As a\n  result, a dozen semigroups are available in the ``semigroups.*``\n  catalog. In principle, the code to compute the representation theory\n  of j-trivial / aperiodic monoids is there too. However the latter\n  code has been imported as is, and still remains to be updated w.r.t.\n  the new environment.\n\n  **Most tests don't pass at this stage**\n\n  Use at your own risk, and expect many failures!\n\nFuture plans\n------------\n\n- Clean up to get all tests to pass;\n- As much as possible, use `libsemigroups \u003chttps://github.com/james-d-mitchell/libsemigroups/\u003e`_\n  and GAP's `Semigroups package \u003chttps://gap-packages.github.io/Semigroups/\u003e`_ for\n  the semigroups;\n- Focus on the representation theory aspects (e.g. representation\n  theory of general semigroups) and on providing special families of\n  monoids whose definition use other features of Sage (e.g. root\n  systems).\n\nInstallation\n------------\n\nStable version (not much there yet)::\n\n    sage -pip install sage-semigroups\n\nFor the bleeding edge version::\n\n    git clone https://github.com/nthiery/sage-semigroups.git\n    cd sage-semigroups\n    sage -pip install .\n\nIn both cases, this installs the library in the Sage tree. You may\ninstead want to install sage-semigroup in your user directory::\n\n    sage -pip install --user ...\n\nOr to install it in editable mode for development::\n\n    sage -pip install --user -e ...\n\nSee the help of the corresponding pip options for details\n\nUsage\n-----\n\nSee the brief `demo notebook \u003cdemo.ipynb\u003e`_, or try it live on\n`Binder \u003chttps://mybinder.org/v2/gh/nthiery/sage-semigroups/master?filepath=demo.ipynb\u003e`_.\n\nIn short:\n\n    sage: import sage_semigroups\n\nThe features are then available as if they were native Sage features::\n\n    sage: semigroups.\u003ctab\u003e\n    sage: H = semigroups.HeckeMonoid([\"A\",3])\n    sage: H.is_l_trivial()\n    True\n    sage: H.quiver()\n    Digraph on 8 vertices\n    sage: H.cartan_matrix()\n    [1 0 0 0 0 0 0 0]\n    [0 1 1 1 0 0 0 0]\n    [0 1 2 1 1 0 0 0]\n    [0 1 1 1 0 0 0 0]\n    [0 0 1 0 2 1 1 0]\n    [0 0 0 0 1 1 1 0]\n    [0 0 0 0 1 1 1 0]\n    [0 0 0 0 0 0 0 1]\n\nThe intention is to make the later integration of those features into\nSage as transparent as possible. To enable this, the code is\nstructured as in the SageMath library; for example the features\nimplemented in::\n\n    sage_semigroups.categories.j_trivial_monoids.JTrivialMonoids\n\nget merged into the corresponding native Sage category::\n\n    sage.categories.j_trivial_monoids.JTrivialMonoids\n\nThis is achieved using the `Recursive Monkey Patching\n\u003chttps://github.com/nthiery/recursive-monkey-patch\u003e`_ package, which see\nfor details.\n\n\nAcknowledgements\n----------------\n\nA lot of the code was authored by Florent Hivert, Franco Saliola,\nNicolas M. Thiéry, ... and resurrected from the former Sage-Combinat\npatch queue.\n\nYou can use\n`this bib file\n\u003chttps://raw.githubusercontent.com/nthiery/sage-semigroups/master/sage-semigroups.bib\u003e`_\nto cite this work.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnthiery%2Fsage-semigroups","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnthiery%2Fsage-semigroups","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnthiery%2Fsage-semigroups/lists"}