Make morphism from GF(p^2)'s multiplicative group to GF(p)'s multiplicative group

asked 2 years ago

agregatif2022 gravatar image

Hello, I am again blocked in how to access finite fields' multiplicative group. I want to create a group morphism ϕ from GF(p2){0} (which is a group for multiplication) to GF(p){0} defined by ϕ(x)=xp+1.

If I type: GF(p^2).hom([GF(p)(z^(p+1))]) where z is GF(p^2).multiplicative_generator(), it throws an error, because of course, this is not a field morphism, but only a multiplicative group morphism...

I searched the documentation for a method like FiniteFiled.multiplicative_group() but I could not find anything.

Preview: (hide)

Comments

Using

sage: F=GF(11)
sage: F.unit_group()
Multiplicative Abelian group isomorphic to C10
FrédéricC gravatar imageFrédéricC ( 2 years ago )
1

@FrédéricC: This works only for prime fields. E.g., GF(11^2).unit_group()errors out. Relevant bugreport: https://trac.sagemath.org/ticket/7234

Max Alekseyev gravatar imageMax Alekseyev ( 2 years ago )

This may be a replacement for .unit_group():

K = GF(11^2)
from sage.monoids.automatic_semigroup import AutomaticSemigroup
M = AutomaticSemigroup( [K.multiplicative_generator()], one=K.one(), category=Monoids().Finite().Subobjects() & Groups() )
Max Alekseyev gravatar imageMax Alekseyev ( 2 years ago )

Thank you very much for your answer. I managed to build K, but unfortunately, I was not able to build a morphism from it. The hom method seems to work differently from what I know for this class and throws errors I could not comprehend. Even K.hom([K.gens()[0]^2]) which should be the endomorphism x gives x2 does not work...

agregatif2022 gravatar imageagregatif2022 ( 2 years ago )

It is fairly easy to define a pythonic map xxp+1. Yes, we completely ignore the mathematical structure. But to use it, and to be able to get such an involved instance knowing everything about structure - not only the map, but also domain, codomain, their properties... well, the hom and the instances we are starting with are not prepared for this particular usage... I would understand the need for a hom-instance implementing ϕ, if this homomorphism would be (pre)composed with some other one, but also in that case, it is still too much yoga of arranging classes to play the game. If the particular set-theoretical map is enough for the programming purpose, i would go for it.

dan_fulea gravatar imagedan_fulea ( 2 years ago )