Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # save this as loopassoc.g
- # to use this in gap, type Read("loopassoc.g");
- # load the loops package:
- LoadPackage("Loops");
- # The octonion loop is MoufangLoop(16,3)
- # Here is a list of the numbers we can use to get Moufang loops out of the library:
- moufangloopnums := Immutable([[12,1],[16,5],[20,1],[24,5],[28,1],[32,71],[36,4],[40,5],[42,1],[44,1],[48,51],[52,1],[54,2],[56,4],[60,5],[64,4262],[81,5],[243,72]]);
- # LeftBolLoop(n,m) is the mth Bol loop of order n
- bolloopnums := Immutable([[8,1],[12,1],[15,1],[16,2038]]);
- AssocProb := function(loop)
- local total,i,j,k;
- total := 0;
- for i in Elements(loop) do
- for j in Elements(loop) do
- for k in Elements(loop) do
- if Associator(i,j,k) = One(loop) then
- total := total + 1;
- fi;
- od;
- od;
- od;
- return total / (Length(Elements(loop))^3);
- end;
- TryMoufangLoops := function()
- local loopType, i, probNotExceeded, currentProb;
- probNotExceeded := true;
- for loopType in moufangloopnums do
- for i in [1..loopType[2]] do
- currentProb := AssocProb(MoufangLoop(loopType[1],i));
- if currentProb > 43/64 then
- Print("Moufang loop ", loopType[1], ", ", i, " has association probability ", currentProb, "\n");
- probNotExceeded := false;
- fi;
- od;
- od;
- if probNotExceeded then
- Print("Octonion probability not exceeded in Moufang loops.");
- fi;
- end;
- TryLeftBolLoops := function()
- local loopType, i, probNotExceeded, currentProb;
- probNotExceeded := true;
- for loopType in bolloopnums do
- for i in [1..loopType[2]] do
- currentProb := AssocProb(LeftBolLoop(loopType[1],i));
- if currentProb > 43/64 then
- Print("Left Bol loop ", loopType[1], ", ", i, " has association probability ", currentProb, "\n");
- probNotExceeded := false;
- fi;
- od;
- od;
- if probNotExceeded then
- Print("Octonion probability not exceeded in left Bol loops.");
- fi;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement