Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
901de60
Reordering declaration and implementation of GeneralizedConjugacyClas…
JosephDayngerRuiz Apr 22, 2026
3dbd1d9
Conjugacy class can now remember the local group they are inside
JosephDayngerRuiz Apr 22, 2026
0de99ca
Implemented AsList for conjugacy classes
JosephDayngerRuiz Apr 22, 2026
18b40a4
I guess the last commit should say declared AsList. This commit imple…
JosephDayngerRuiz Apr 22, 2026
57958d0
Getting ready to add GeneralizedConjugacyClass AsList example
JosephDayngerRuiz May 4, 2026
94b8236
Added a test for AsList
JosephDayngerRuiz May 4, 2026
9cd3962
Change IsGeneralizedConjugacyClass category from IsObject to IsCollec…
JosephDayngerRuiz May 4, 2026
9a73154
Add Enumerator method for generalized conjugacy class
JosephDayngerRuiz May 4, 2026
a9f2236
Do not need to declare another AsList attribute on a category which i…
JosephDayngerRuiz May 5, 2026
7b02b1b
Updated tests
JosephDayngerRuiz May 5, 2026
49b530b
Fix comparison logic for generalized conjugacy classes to return fals…
JosephDayngerRuiz May 5, 2026
7ec5ccb
Adding tests for code
JosephDayngerRuiz May 5, 2026
3ed28c8
Missed a semicolon
JosephDayngerRuiz May 5, 2026
8eedf97
Tests
JosephDayngerRuiz May 5, 2026
162ad73
Update tests for generalized conjugacy classes and clarify method status
JosephDayngerRuiz May 6, 2026
8e2ba89
Tried to add action on conjugacy classes
JosephDayngerRuiz May 6, 2026
fe42eee
Added a paremeterized type to generalized conjugacy classes
JosephDayngerRuiz May 6, 2026
16b8f27
Reran test and the in function works
JosephDayngerRuiz May 6, 2026
5a0cc96
Test to fail and attempt to make function application work
JosephDayngerRuiz May 6, 2026
7a635c2
Linting fix
JosephDayngerRuiz May 6, 2026
5d1969a
The code for doing the evaluation works. Needs to change it to \^ som…
JosephDayngerRuiz May 6, 2026
8feabfc
Test need to be order agnostic of conjugacy classes and characters
JosephDayngerRuiz May 6, 2026
c2392ef
Called wrong value function
JosephDayngerRuiz May 7, 2026
db0497b
Test to check converstion from composition factors to characters
JosephDayngerRuiz May 7, 2026
3b6f919
The in function was made and the change was implemented so the commen…
JosephDayngerRuiz May 7, 2026
5d89923
Test which allows for order of conjugacy classes to change and order …
JosephDayngerRuiz May 7, 2026
18efaff
linting
JosephDayngerRuiz May 7, 2026
eda6c67
Condition to not compute as list for the idenity element. May be a co…
JosephDayngerRuiz May 7, 2026
b186b49
Test specual use case of applying the character to the idenity
JosephDayngerRuiz May 7, 2026
55b2bbb
Exp to ^ thanks to Meike
JosephDayngerRuiz May 7, 2026
7d763a9
Here is where I am going to start changin the name of monoidartanmatr…
JosephDayngerRuiz May 7, 2026
91e8fc9
Refactoring
JosephDayngerRuiz May 7, 2026
659fa2d
Removed the word monoid to vairable levels of success. Removed Instal…
JosephDayngerRuiz May 7, 2026
ac504ab
The documentation really needs to be updated
JosephDayngerRuiz May 7, 2026
929584e
I found the last reference of monoidcharactertable
JosephDayngerRuiz May 8, 2026
2bd7842
Changed copyright year to finalized the this GAP day's project!
JosephDayngerRuiz May 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 16 additions & 24 deletions doc/cartan.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#############################################################################
##
#W cartan.xml
#Y Copyright (C) 2024 Balthazar Charles
#Y Copyright (C) 2024-2026 Balthazar Charles
## Joseph Ruiz
##
## Licensing information can be found in the README file of this package.
Expand Down Expand Up @@ -31,14 +31,6 @@
semigroup <A>S</A>. In a group generalized conjugacy classes coincide
with conjugacy classes.<P/>

Note that each generalized conjugacy class as currently implemented
does not store a list of elements in the conjugacy class, only the representative
with no way to compute all the elements in the conjugacy class.
This means that
<Ref Attr="GeneralizedConjugacyClasses" Label = "for a semigroup"/> as currently
implemented is only as effective as
<Ref Attr="GeneralizedConjugacyClassesRepresentatives" Label = "for a semigroup"/>.

<Example><![CDATA[
gap> S := FullTransformationMonoid(6);;
gap> GeneralizedConjugacyClassesRepresentatives(S);
Expand Down Expand Up @@ -185,13 +177,13 @@ gap> BlockDiagonalMatrixOfCharacterTables(S);
</ManSection>
<#/GAPDoc>

<#GAPDoc Label="MonoidCharacterTable">
<#GAPDoc Label="CharacterTable">
<ManSection>
<Attr Name="MonoidCharacterTable" Arg='M[, F]'/>
<Oper Name="CharacterTable" Arg='M[, F]'/>
<Returns>The character table object for <A>M</A> over <A>F</A>.</Returns>
<Description>
Called with a finite monoid <A>M</A> and optionally a field <A>F</A>,
<Ref Attr="MonoidCharacterTable"/> returns the character table of the
<Ref Oper="CharacterTable"/> returns the character table of the
monoid which is defined as the matrix <M>Trace(X(m))</M>, where <M>X</M>
runs over the simple <M>FM</M>-modules and <M>m</M> runs over the
generalized conjugacy class representatives of <A>M</A>.<P/>
Expand All @@ -201,7 +193,7 @@ gap> BlockDiagonalMatrixOfCharacterTables(S);
<Ref Attr="Irr" Label="for a monoid character table"/>.<P/>

If <A>F</A> is not given, then
<Ref Attr="MonoidCharacterTable"/> returns the character table of
<Ref Oper="CharacterTable"/> returns the character table of
<M>M</M> over a characteristic zero splitting field of <A>M</A>.<P/>

At the moment, methods are available for the following cases:
Expand All @@ -212,7 +204,7 @@ gap> BlockDiagonalMatrixOfCharacterTables(S);

<Example><![CDATA[
gap> S := FullTransformationMonoid(3);;
gap> ct := MonoidCharacterTable(S);;
gap> ct := CharacterTable(S);;
gap> Irr(ct);;
gap> Display(ct);
c.1 c.2 c.3 c.4 c.5 c.6
Expand Down Expand Up @@ -242,7 +234,7 @@ X.6 1 1 1 1 1 1
the presentation of the monoid display inconsistently -->
<Example><![CDATA[
gap> M := FullBooleanMatMonoid(2);;
gap> ct := MonoidCharacterTable(M);;
gap> ct := CharacterTable(M);;
gap> Irr(ct);
[ MonoidCharacter( MonoidCharacterTable( Monoid( [ Matrix(IsBooleanMat\
, [ [ false, true ], [ true, false ] ]), Matrix(IsBooleanMat, [ [ true\
Expand All @@ -268,23 +260,23 @@ gap> Irr(ct);
</ManSection>
<#/GAPDoc>

<#GAPDoc Label="MonoidCartanMatrix">
<#GAPDoc Label="CartanMatrix">
<ManSection>
<Attr Name="MonoidCartanMatrix" Arg='M[, F]'/>
<Attr Name="CartanMatrix" Arg='M[, F]'/>
<Returns>An object.</Returns>
<Description>
Called with a finite monoid <A>M</A> and a field <A>F</A>,
<Ref Attr="MonoidCartanMatrix"/> returns the Cartan matrix of the monoid
<Ref Attr="CartanMatrix"/> returns the Cartan matrix of the monoid
algebra <M>FM</M> which is defined as the matrix
<M>dim Hom(P,Q)/dim End(P / rad(FM))</M>, where <M>P</M> and <M>Q</M>
run over the right indecomposable projective modules of FM.<P/>

To get the Cartan matrix of a monoid to display like the example below,
the projective indecomposable modules need to be computed first using
<Ref Attr="Pims" Label="for a monoid cartan matrix"/>.<P/>
<Ref Attr="Pims" Label="for a cartan matrix"/>.<P/>

If <A>M</A> is the only argument then
<Ref Attr="MonoidCartanMatrix"/> returns the Cartan matrix of the monoid
<Ref Attr="CartanMatrix"/> returns the Cartan matrix of the monoid
algebra <M>FM</M>, where <A>F</A> is a splitting field of <A>M</A> over
the rationals.<P/>

Expand All @@ -296,7 +288,7 @@ gap> Irr(ct);

<Example><![CDATA[
gap> S := FullTransformationMonoid(3);;
gap> cm := MonoidCartanMatrix(S);;
gap> cm := CartanMatrix(S);;
gap> Pims(cm);;
gap> Display(cm);
X.1 X.2 X.3 X.4 X.5 X.6
Expand All @@ -315,18 +307,18 @@ P.6 . . . 1 . 1
<#GAPDoc Label="Pims">
<ManSection>
<Attr Name ="Pims" Arg="T"
Label = "for a monoid cartan matrix"/>
Label = "for a cartan matrix"/>
<Returns>A list of monoid characters.</Returns>
<Description>
<Ref Attr="Pims" Label="for a monoid cartan matrix"/> returns a
<Ref Attr="Pims" Label="for a cartan matrix"/> returns a
list of the characters of the projective indecomposable
modules of the <Ref Attr="Parent" BookName = "ref"/> monoid of the monoid character table <A>T</A>.

<!-- The following example is a log because the values in the vectors and
the presentation of the monoid display inconsistently -->
<Example><![CDATA[
gap> M := FullBooleanMatMonoid(2);;
gap> cm := MonoidCartanMatrix(M);;
gap> cm := CartanMatrix(M);;
gap> Pims(cm);
[ MonoidCharacter( MonoidCharacterTable( Monoid( [ Matrix(IsBooleanMat\
, [ [ false, true ], [ true, false ] ]), Matrix(IsBooleanMat, [ [ true\
Expand Down
4 changes: 2 additions & 2 deletions doc/z-chap11.xml
Original file line number Diff line number Diff line change
Expand Up @@ -317,9 +317,9 @@
<#Include Label="RegularRepresentationBicharacter">
<#Include Label="RClassBicharacterOfGroupHClass">
<#Include Label="BlockDiagonalMatrixOfCharacterTables">
<#Include Label="MonoidCharacterTable">
<#Include Label="CharacterTable">
<#Include Label="Irr">
<#Include Label="MonoidCartanMatrix">
<#Include Label="CartanMatrix">
<#Include Label="Pims">

</Section>
Expand Down
22 changes: 14 additions & 8 deletions gap/attributes/cartan.gd
Original file line number Diff line number Diff line change
@@ -1,31 +1,37 @@
#############################################################################
##
## cartan.gd
## Copyright (C) 2024 Balthazar Charles
## Copyright (C) 2024-2026 Balthazar Charles
## Joseph Ruiz
##
## Licensing information can be found in the README file of this package.
##
#############################################################################
##

DeclareCategory("IsGeneralizedConjugacyClass", IsObject);
DeclareCategory("IsGeneralizedConjugacyClass", IsCollection);
DeclareAttribute("Representative", IsGeneralizedConjugacyClass);
DeclareAttribute("ParentAttr", IsGeneralizedConjugacyClass);
DeclareAttribute("MapToGroupHClass", IsGeneralizedConjugacyClass);
DeclareOperation("GeneralizedConjugacyClass",
[IsSemigroup, IsMultiplicativeElement]);
DeclareAttribute("GeneralizedConjugacyClassesRepresentatives", IsSemigroup);
DeclareOperation("GeneralizedConjugacyClass",
[IsSemigroup, IsMultiplicativeElement, IsGeneralMapping]);
DeclareAttribute("GeneralizedConjugacyClasses", IsSemigroup);
DeclareAttribute("GeneralizedConjugacyClassesRepresentatives", IsSemigroup);
DeclareCategory("IsMonoidCharacterTable", IsObject);
DeclareAttribute("ParentAttr", IsMonoidCharacterTable);
DeclareAttribute("MonoidCharacterTable", IsSemigroup);
DeclareAttribute("CartanMatrix", IsMonoidCharacterTable);
DeclareAttribute("OrdinaryCharacterTable", IsSemigroup);
DeclareOperation("CharacterTable", [IsSemigroup]);

DeclareCategory("IsMonoidCharacter", IsObject);
DeclareOperation("MonoidCharacter", [IsMonoidCharacterTable, IsList]);
DeclareOperation("PimMonoidCharacter",
DeclareOperation("Character", [IsMonoidCharacterTable, IsList]);
DeclareOperation("Character",
[IsMonoidCharacterTable, IsDenseList, IsMonoidCharacter]);
DeclareOperation("\^", [IsMultiplicativeElement, IsMonoidCharacter]);
DeclareAttribute("ParentAttr", IsMonoidCharacter);
DeclareAttribute("ValuesOfMonoidClassFunction", IsMonoidCharacter);
DeclareAttribute("ValuesOfClassFunction", IsMonoidCharacter);
DeclareAttribute("ProjectiveCoverOf", IsMonoidCharacter);
DeclareAttribute("ValuesOfCompositionFactorsFunction", IsMonoidCharacter);
DeclareAttribute("DClassBicharacter", IsGreensDClass);
Expand All @@ -38,6 +44,6 @@ DeclareAttribute("Irr", IsMonoidCharacterTable);

DeclareCategory("IsMonoidCartanMatrix", IsObject);
DeclareAttribute("ParentAttr", IsMonoidCartanMatrix);
DeclareAttribute("MonoidCartanMatrix", IsSemigroup);
DeclareAttribute("CartanMatrix", IsSemigroup);

DeclareAttribute("Pims", IsMonoidCartanMatrix);
Loading
Loading