Skip to content

Add Cartan matrix computation for monoids#1048

Merged
james-d-mitchell merged 22 commits into
semigroups:mainfrom
JosephDayngerRuiz:AddingCartan
Oct 1, 2025
Merged

Add Cartan matrix computation for monoids#1048
james-d-mitchell merged 22 commits into
semigroups:mainfrom
JosephDayngerRuiz:AddingCartan

Conversation

@JosephDayngerRuiz

@JosephDayngerRuiz JosephDayngerRuiz commented Feb 12, 2025

Copy link
Copy Markdown
Collaborator

This PR add several functions which allow for the computation of the character table of a monoid and the Cartan matraix of a monoid which satisfy IsActingSemigroups. The current implementation is close to the original implementation of Balthazar Charles.

@james-d-mitchell

Copy link
Copy Markdown
Collaborator

To update your branch to the latest main branch:

  1. git checkout main
  2. git pull origin main
  3. git checkout AddingCartan
  4. git rebase main

@james-d-mitchell

Copy link
Copy Markdown
Collaborator

Try doing:

gap> SEMIGROUPS.OptionsRec.acting := false;

Comment thread doc/z-chap11.xml Outdated
Comment thread doc/cartan.xml Outdated

@james-d-mitchell james-d-mitchell left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @JosephDayngerRuiz, this looks really great, there are a number of pretty minor things to fix, and then I'll be happy to merge.

Comment thread doc/cartan.xml Outdated
Comment thread doc/cartan.xml Outdated
Comment thread doc/cartan.xml Outdated
Comment thread doc/cartan.xml Outdated
Comment thread doc/cartan.xml Outdated
Comment thread gap/attributes/cartan.gi Outdated
Comment thread gap/attributes/cartan.gi Outdated
Comment thread gap/attributes/cartan.gi Outdated
Comment thread gap/attributes/cartan.gi
Comment thread gap/attributes/cartan.gi Outdated
@james-d-mitchell james-d-mitchell added the waiting-for-creator-input A label for issues or PR that are waiting for input from their creator label Apr 11, 2025
Comment thread doc/cartan.xml Outdated
Comment thread doc/cartan.xml Outdated

@reiniscirpons reiniscirpons left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Joey, thanks for the contribution! The code looks good, tests pass and doc renders well. I had some minor suggestions to improve the look of the docs and fix a dependency issue.

One other thing I would like to see before we merge would be some more tests for the functions you wrote. In particular, after running code coverage the following functions seem to lack tests:

  • GeneralizedConjugacyClass
  • GeneralizedConjugacyClasses
  • DClassBicharacter
  • The ViewString methods for IsGeneralizedConjugacyClass and IsMonoidCharacter
  • The DisplayString methods for IsMonoidCharacterTable and IsMonoidCartanMatrix
  • LeftGreensMultiplierNC and RightGreensMultiplierNC with filters [IsGroupAsSemigroup, IsMultiplicativeElement, IsMultiplicativeElement]

I see for some of these, like GeneralizedConjugacyClasses and DClassBicharacter you have tests in the docs, but for completeness I would also include them in the cartan.tst file as well. And the DisplayString methods should be tested too, since they seem to contain quite a bit of code.

If you want to run code coverage yourself, you should be able to do so by calling

./etc/code-coverage-test-gap.py --open --gap-root=../../ ./tst/standard/**/*.tst

from the semigroups package directory. You may need to change your gap root depending on where that is. After running the tests the script should give output like

SUCCESS!
 See /tmp/tmpoa_xczdw/index.html

and open an html overview of the code coverage in your browser. If it does not automatically open the file in your browser, then you can open the specified html file from the script manually. The initial html page is an overview of coverage of all gap files, and navigating to the cartan.gi file will give a more detailed line-by-line coverage.

Once more tests are added, I think this looks good to merge. Thanks again :)

Comment thread gap/attributes/cartan.gi Outdated
Comment thread gap/attributes/cartan.gi Outdated
Comment thread gap/attributes/cartan.gd
Comment thread doc/cartan.xml Outdated
Comment thread doc/cartan.xml Outdated
Comment thread doc/cartan.xml Outdated

@james-d-mitchell james-d-mitchell left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @JosephDayngerRuiz, and apologies again for being slow to review this. Please make the changes indicated by @reiniscirpons and me, and then I'll be happy to merge. Also feel free to ping me if anything is unclear.

Comment thread doc/cartan.xml Outdated
Comment thread doc/cartan.xml Outdated
Comment thread doc/cartan.xml Outdated
Comment thread doc/cartan.xml Outdated
Comment thread doc/cartan.xml Outdated
Comment thread gap/attributes/cartan.gi Outdated
Comment thread gap/attributes/cartan.gi Outdated
Comment thread gap/attributes/cartan.gi Outdated
Comment thread gap/attributes/cartan.gi Outdated
Comment thread gap/attributes/cartan.gi Outdated
JosephDayngerRuiz added a commit to JosephDayngerRuiz/Semigroups that referenced this pull request Jul 7, 2025
Typo correction related to
semigroups#1048 (comment)
JosephDayngerRuiz added a commit to JosephDayngerRuiz/Semigroups that referenced this pull request Sep 12, 2025
Typo correction related to
semigroups#1048 (comment)
Introduces new attributes and methods for computing character tables and
Cartan matrices of finite monoids, including documentation and tests.
Adds GAPDoc documentation for new operations, updates bibliography, and
integrates new attribute files into the package initialization and
loading process.
Added tests for the display strings for the MonoidCharacterTable and MonoidCartanMatrix.
Missing new line in the test.
Describing a splitting field of a monoid.
Log to example test
Updated logs to examples try 2
Trying a different monoid
JosephDayngerRuiz and others added 13 commits September 23, 2025 09:47
This reverts commit dc61b9e.
This reverts commit 271512c.
This reverts commit 70de81e.
Explanation for the log.
Testing an attribute reference.
Testing parentattr as a book reference.
Removing Attr
<Ref Attr="Parent" BookName = "ref"/> is the correct way to reference a parent attribute
Reworded for clarity
code spell issue
Put the gth roots into math mode.
gth roots are put into math mode
@james-d-mitchell
james-d-mitchell merged commit aff84e3 into semigroups:main Oct 1, 2025
16 of 17 checks passed
@james-d-mitchell

Copy link
Copy Markdown
Collaborator

Thanks @JosephDayngerRuiz !

@JosephDayngerRuiz
JosephDayngerRuiz deleted the AddingCartan branch October 1, 2025 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-feature A label for PRs that contain new features waiting-for-creator-input A label for issues or PR that are waiting for input from their creator

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants