gap-packages / wedderga

Wedderburn Decomposition of Group Algebras
https://gap-packages.github.io/wedderga/
GNU General Public License v2.0
3 stars 6 forks source link

Diffs in example for LocalIndexAtPByBrauerCharacter #93

Closed olexandr-konovalov closed 2 years ago

olexandr-konovalov commented 2 years ago

This example from https://github.com/gap-packages/wedderga/blob/b6436325dec790bba1699682501f2f79c302bdfa/doc/div-alg.xml#L878 fails in the master branch (see e.g. https://github.com/gap-packages/wedderga/runs/6164760760?check_suite_focus=true):

########> Diff in /tmp/gaproot/pkg/wedderga/tst/wedderga07.tst:293
# Input is:
BlocksInfo(S);
# Expected output:
[ rec( defect := 1, modchars := [ 1, 3, 7, 8 ],
      ordchars := [ 1, 3, 7, 8, 18 ] ),
  rec( defect := 1, modchars := [ 2, 4, 5, 6 ],
      ordchars := [ 2, 4, 5, 6, 17 ] ),
  rec( defect := 1, modchars := [ 9, 12, 14, 15 ],
      ordchars := [ 9, 12, 14, 15, 19 ] ),
  rec( defect := 1, modchars := [ 10, 11, 13, 16 ],
      ordchars := [ 10, 11, 13, 16, 20 ] ) ]
# But found:
[ rec( defect := 1, modchars := [ 1, 3, 7, 8 ], 
      ordchars := [ 1, 3, 7, 8, 18 ] ), 
  rec( defect := 1, modchars := [ 2, 4, 5, 6 ], 
      ordchars := [ 2, 4, 5, 6, 17 ] ), 
  rec( defect := 1, modchars := [ 9, 12, 14, 15 ], 
      ordchars := [ 9, 12, 14, 15, 20 ] ), 
  rec( defect := 1, modchars := [ 10, 11, 13, 16 ], 
      ordchars := [ 10, 11, 13, 16, 19 ] ) ]
########

There are two faithful representations of G, so perhaps GAP just picks up the other one in master. @drallenherman do we need this command at all for this example, or can we modify it to hide differences between GAP 4.11 and GAP master branch?

olexandr-konovalov commented 2 years ago

Haven't seen #92 - this is the same issue.

drallenherman commented 2 years ago

It is used to illustrate what LocalIndexAtPByBrauerCharacter does in the manual. Modifying it by switching the 19 and 20 should fix it for now.

olexandr-konovalov commented 2 years ago

Thanks - but then it will fail in the oder versions of GAP, we need some way of making an example that passes everywhere...

drallenherman commented 2 years ago

Yes. Is it possible to set it up to accept both outputs? (short of making a separate wedderga version for every version of GAP...)

olexandr-konovalov commented 2 years ago

Yes, but by rewriting the example in the form that hides things that differ. For example, we have

gap> G:=SmallGroup(80,28);
<pc group of size 80 with 5 generators>
gap> T:=CharacterTable(G);;
gap> i:=First([1..Length(Irr(G))],i->Size(KernelOfCharacter(Irr(G)[i]))=1);;
gap> S:=T mod 5;
BrauerTable( <pc group of size 80 with 5 generators>, 5 )
gap> BlocksInfo(S);
[ rec( defect := 1, modchars := [ 1, 3, 7, 8 ],
      ordchars := [ 1, 3, 7, 8, 18 ] ),
  rec( defect := 1, modchars := [ 2, 4, 5, 6 ],
      ordchars := [ 2, 4, 5, 6, 17 ] ),
  rec( defect := 1, modchars := [ 9, 12, 14, 15 ],
      ordchars := [ 9, 12, 14, 15, 19 ] ),
  rec( defect := 1, modchars := [ 10, 11, 13, 16 ],
      ordchars := [ 10, 11, 13, 16, 20 ] ) ]
gap> LocalIndexAtPByBrauerCharacter(Rationals,G,i,5);
2
gap> FinFieldExt(Rationals,G,5,i,9);
2

but the output of BlocksInfo(S); is not used later, so we can just remove it. Other options include double semicolon to suppress the output - to show that something should just run without an error and/or to construct some object to use later. If you want to show some properties of BlocksInfo(S) later, you can inspect them - e.g. ask LengthBlocksInfo(S) and it will return 4 in any GAP version. I don't know what exactly is the purpose of showing BlocksInfo(S); here - hope you can give some more light @drallenherman!

drallenherman commented 2 years ago

Okay, perhaps you are right, we can just remove the BlocksInfo(S) command altogether here. I think the point of including it was to illustrate the big picture of what the blocks are for this group. But the local index command is just calculating the 5-local index of ordchar[i], by Benard's results on blocks with cyclic defect it has to be the same output as the FinFieldExt command gives. So the last two lines have to give the same output. I believe these last two commands should run correctly after the i and the S are calculated.