Processing math: 100%

First time here? Check out the FAQ!

Ask Your Question
0

How to find nilpotent elements of group algebra F2[Q8] with index of nilpotency? Also if the answer is coming in permutation form, how to convert that into elements of F2[Q8] like in the form i,j,k

asked 0 years ago

Let F2 be the ring of integers modulo 2 and Q8 be the group of quaternions such that Q8=e,ˉe,i,ˉi,j,ˉj,k,ˉk. Then F2[Q8] is the groupring. How can I find its nilpotent elements with index of nilpotency?

Preview: (hide)

Comments

Please always give all information you have on a specific issue, here and elsewhere. If there is already a piece of code or a structural insight, then provide the code, the adjacent mathematical results and/or the links.

dan_fulea gravatar imagedan_fulea ( 0 years ago )

1 Answer

Sort by » oldest newest most voted
1

answered 0 years ago

dan_fulea gravatar image

There is a related question with an answer providing code on MSE.

I'll use my code posted there also here:

F = GF(2)
Q8 = QuaternionGroup()
A = GroupAlgebra(Q8, F)

elements = [sum(f*A(q) for f, q in zip(f8, list(Q8)))
            for f8 in cartesian_product([F, F, F, F, F, F, F, F])] 

nilpotents = [a for a in elements if a^1024 == A(0)]
nilpotents_with_their_index = []    # and we append
for a in nilpotents:
    for power in [1..1024]:
        if a^power == A(0):
            nilpotents_with_their_index.append((a, power))
            break    # the last loop on power and consider next a, if any more

The code is not optimal, but written so that it can be digested, and the few seconds do not make any difference. We have (after a copy+paste into the sage-ipython-interpreter, followed by a dialog with this code consumer):

sage: len(nilpotents)
128
sage: len(nilpotents_with_their_index)
128
sage: len(elements)
256

We can sort w.r.t. the index, and ask for the maximal index, and how many elements have each index:

sage: nilpotents_with_their_index.sort(key=lambda tup: tup[1])
sage: powers = list(set(tup[1] for tup in nilpotents_with_their_index))
sage: powers
[1, 2, 3, 4]
sage: for power in powers:
....:     print(f"Nilpotency Index = {power} :: "
....:           f"{len([tup for tup in nilpotents_with_their_index if tup[1] == power])}"
....:           f" element(s)")
....: 
Nilpotency Index = 1 :: 1 element(s)
Nilpotency Index = 2 :: 15 element(s)
Nilpotency Index = 3 :: 16 element(s)
Nilpotency Index = 4 :: 96 element(s)

Note that the nilpotent elements are exactly the elements with augmentation zero:

sage: def aug(a):    return sum(a.coefficients() + [A(0)])
sage: set(aug(a) for a in nilpotents)
{0}
sage: set(aug(a) for a in elements if a not in nilpotents)
{()}
sage: # is this last result the set { A(1) }?
sage: _ == set([ A(1) ])
True
Preview: (hide)
link

Comments

Realizing the representation w.r.t. the basis ±1,±i,±j,±k is left as an exercise. Just put the hand on some elements that "match" 1,i,j,k, and make a dictionary string to A-element, by using eval. Here A is our group ring. To get the wanted representation, invert the dictionary, or use a function doing this when it is needed, or make a class and define the __str__ method to fit this wanted representation. I am not doing this here.

dan_fulea gravatar imagedan_fulea ( 0 years ago )

F = GF(2) Q8 = QuaternionGroup() A = GroupAlgebra(Q8, F)

elements = [sum(f*A(q) for f, q in zip(f8, list(Q8))) for f8 in cartesian_product([F, F, F, F, F, F, F, F])]

nilpotents = [a for a in elements if a^1024 == A(0)] nilpotents_with_their_index = [] # and we append for a in elements: for b in elements: for c in elements: for d in elements: if ac==0 and ad+bc==0 and bd==0 and a!=0: print(f'{a,b,c,d}')

Maths is everywhere gravatar imageMaths is everywhere ( 0 years ago )

The above code gives no solution while there is clearly a solution, if we take a nonzero and all others are zero.

Maths is everywhere gravatar imageMaths is everywhere ( 0 years ago )

This comment is at the wrong place. It comes with no relation to the stated question. Is it so? On the other side, there are a lot of four-tuples (a,b,c,d) that fulfill a0, ac=bd=ad+bc=0. And there are a lot of solutions.

dan_fulea gravatar imagedan_fulea ( 0 years ago )

For instance:

sage: found = False
sage: for a in elements:
....:     if a == 0 or found:   continue
....:     for c in elements:
....:         if a*c == 0 and not found:
....:             for b in elements:
....:                 if found:    continue
....:                 for d in elements:
....:                     if a*d + b*c == 0 and b*d == 0 and not found:
....:                         print(f'a={a} b={b} c={c} d={d}')
....:                         found = True
....:                         break
....: 
a=(1,6,3,8)(2,5,4,7) b=0 c=0 d=0
dan_fulea gravatar imagedan_fulea ( 0 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 0 years ago

Seen: 142 times

Last updated: Feb 14