Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
0c4cb74
Reordering declaration and implementation of GeneralizedConjugacyClas…
JosephDayngerRuiz Apr 22, 2026
46251c7
Conjugacy class can now remember the local group they are inside
JosephDayngerRuiz Apr 22, 2026
0758336
Implemented AsList for conjugacy classes
JosephDayngerRuiz Apr 22, 2026
99f18db
I guess the last commit should say declared AsList. This commit imple…
JosephDayngerRuiz Apr 22, 2026
e26031b
Getting ready to add GeneralizedConjugacyClass AsList example
JosephDayngerRuiz May 4, 2026
fcb18c6
Added a test for AsList
JosephDayngerRuiz May 4, 2026
feed6eb
Change IsGeneralizedConjugacyClass category from IsObject to IsCollec…
JosephDayngerRuiz May 4, 2026
2a70032
Add Enumerator method for generalized conjugacy class
JosephDayngerRuiz May 4, 2026
f96dfe5
Do not need to declare another AsList attribute on a category which i…
JosephDayngerRuiz May 5, 2026
ef1d773
Updated tests
JosephDayngerRuiz May 5, 2026
dc35fb8
Fix comparison logic for generalized conjugacy classes to return fals…
JosephDayngerRuiz May 5, 2026
b160697
Adding tests for code
JosephDayngerRuiz May 5, 2026
1ee7e22
Missed a semicolon
JosephDayngerRuiz May 5, 2026
66edf6b
Tests
JosephDayngerRuiz May 5, 2026
29bbf8c
Update tests for generalized conjugacy classes and clarify method status
JosephDayngerRuiz May 6, 2026
c18c639
Tried to add action on conjugacy classes
JosephDayngerRuiz May 6, 2026
5360472
Added a paremeterized type to generalized conjugacy classes
JosephDayngerRuiz May 6, 2026
9d0f08a
Reran test and the in function works
JosephDayngerRuiz May 6, 2026
3c0d9b1
Test to fail and attempt to make function application work
JosephDayngerRuiz May 6, 2026
d28dac9
Linting fix
JosephDayngerRuiz May 6, 2026
74118fa
The code for doing the evaluation works. Needs to change it to \^ som…
JosephDayngerRuiz May 6, 2026
8646ae7
Test need to be order agnostic of conjugacy classes and characters
JosephDayngerRuiz May 6, 2026
f7a2deb
Called wrong value function
JosephDayngerRuiz May 7, 2026
48416c8
Test to check converstion from composition factors to characters
JosephDayngerRuiz May 7, 2026
8527f93
The in function was made and the change was implemented so the commen…
JosephDayngerRuiz May 7, 2026
06f6897
Test which allows for order of conjugacy classes to change and order …
JosephDayngerRuiz May 7, 2026
847cae7
linting
JosephDayngerRuiz May 7, 2026
81457b5
Condition to not compute as list for the idenity element. May be a co…
JosephDayngerRuiz May 7, 2026
542bf58
Test specual use case of applying the character to the idenity
JosephDayngerRuiz May 7, 2026
3a08679
Exp to ^ thanks to Meike
JosephDayngerRuiz May 7, 2026
4139a58
Here is where I am going to start changin the name of monoidartanmatr…
JosephDayngerRuiz May 7, 2026
2dd4220
Refactoring
JosephDayngerRuiz May 7, 2026
a4f9acf
Removed the word monoid to vairable levels of success. Removed Instal…
JosephDayngerRuiz May 7, 2026
7cde491
The documentation really needs to be updated
JosephDayngerRuiz May 7, 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
38 changes: 15 additions & 23 deletions doc/cartan.xml
Original file line number Diff line number Diff line change
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
20 changes: 13 additions & 7 deletions gap/attributes/cartan.gd
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,29 @@
#############################################################################
##

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