6.14 IsFieldHomomorphism

IsFieldHomomorphism( map )

IsFieldHomomorphism returns true if the mapping map is a field homomorphism and false otherwise. Signals an error if map is a multi valued mapping.

A mapping map is a field homomorphism if its source F and range G are both fields and if for each pair of elements x, y in F we have (x+y)^{map} = x^{map} + y^{map} and (xy)^{map} = x^{map} y^{map}. We also require that 1_F^{map} = 1_G.

    gap> f := GF( 16 );
    GF(2^4)
    gap> fun := FrobeniusAutomorphism( f );
    FrobeniusAutomorphism( GF(2^4) )
    gap> IsFieldHomomorphism( fun );
    true 

IsFieldHomomorphism first tests if the flag map.isFieldHomomorphism is bound. If the flag is bound, IsFieldHomomorphism returns its value. Otherwise it calls
map.source.operations.IsFieldHomomorphism( map ), remembers the returned value in map.isFieldHomomorphism, and returns it. Note that of course all functions that create field homomorphism set the flag map.isFieldHomomorphism to true, so that no function is called for those field homomorphisms.

The default function called this way is MappingOps.IsFieldHomomorphism. It computes all the elements of the source of map and for each pair of elements x, y tests whether (x+y)^{map} = x^{map} + y^{map} and (xy)^{map} = x^{map} y^{map}. Look under IsHomomorphism in the index to see for which mappings this function is overlaid.

Previous Up Top Next
Index

GAP 3.4.4
April 1997