Algebra homomorphisms are vector space homomorphisms that preserve the multiplication. So the default methods for vector space homomorphisms work, and in fact there is not much use of the fact that source and range are algebras, except that preimages and images are algebras (or even ideals) in certain cases.
AlgebraGeneralMappingByImages( A, B, gens, imgs ) O
is a general mapping from the F-algebra A to the F-algebra B. This general mapping is defined by mapping the entries in the list gens (elements of A) to the entries in the list imgs (elements of B), and taking the F-linear and multiplicative closure.
gens need not generate A as an F-algebra, and if the
specification does not define a linear and multiplicative mapping then
the result will be multivalued.
Hence, in general it is not a mapping.
For constructing a linear map that is not
necessarily multiplicative, we refer to LeftModuleHomomorphismByImages
(leftmodulehomomorphismbyimages).
gap> A:= QuaternionAlgebra( Rationals );; gap> B:= FullMatrixAlgebra( Rationals, 2 );; gap> bA:= BasisVectors( Basis( A ) );; bB:= BasisVectors( Basis( B ) );; gap> f:= AlgebraGeneralMappingByImages( A, B, bA, bB ); [ e, i, j, k ] -> [ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 0, 1 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 1, 0 ] ], [ [ 0, 0 ], [ 0, 1 ] ] ] gap> Images( f, bA[1] ); <add. coset of <algebra over Rationals, with 60 generators>>
AlgebraHomomorphismByImages( A, B, gens, imgs ) F
AlgebraHomomorphismByImages returns the algebra homomorphism with
source A and range B that is defined by mapping the list gens of
generators of A to the list imgs of images in B.
If gens does not generate A or if the homomorphism does not exist
(i.e., if mapping the generators describes only a multi-valued mapping)
then fail is returned.
One can avoid the checks by calling AlgebraHomomorphismByImagesNC,
and one can construct multi-valued mappings with
AlgebraGeneralMappingByImages.
gap> T:= EmptySCTable( 2, 0 );; gap> SetEntrySCTable( T, 1, 1, [1,1] ); SetEntrySCTable( T, 2, 2, [1,2] ); gap> A:= AlgebraByStructureConstants( Rationals, T );; gap> m1:= NullMat( 2, 2 );; m1[1][1]:= 1;; gap> m2:= NullMat( 2, 2 );; m2[2][2]:= 1;; gap> B:= AlgebraByGenerators( Rationals, [ m1, m2 ] );; gap> bA:= BasisVectors( Basis( A ) );; bB:= BasisVectors( Basis( B ) );; gap> f:= AlgebraHomomorphismByImages( A, B, bA, bB ); [ v.1, v.2 ] -> [ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 0, 1 ] ] ] gap> Image( f, bA[1]+bA[2] ); [ [ 1, 0 ], [ 0, 1 ] ]
AlgebraHomomorphismByImagesNC( A, B, gens, imgs ) O
AlgebraHomomorphismByImagesNC is the operation that is called by the
function AlgebraHomomorphismByImages.
Its methods may assume that gens generates A and that the mapping of
gens to imgs defines an algebra homomorphism.
Results are unpredictable if these conditions do not hold.
For creating a possibly multi-valued mapping from A to B that
respects addition, multiplication, and scalar multiplication,
AlgebraGeneralMappingByImages can be used.
For the definitions of the algebras A and B in the next example we refer
to the previous example.
gap> f:= AlgebraHomomorphismByImagesNC( A, B, bA, bB ); [ v.1, v.2 ] -> [ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 0, 1 ] ] ]
AlgebraWithOneGeneralMappingByImages( A, B, gens, imgs ) O
This function is analogous to AlgebraGeneralMappingByImages; the only difference being that the identity of A is automatically mapped to the identity of B.
gap> A:= QuaternionAlgebra( Rationals );;
gap> B:= FullMatrixAlgebra( Rationals, 2 );;
gap> bA:= BasisVectors( Basis( A ) );; bB:= BasisVectors( Basis( B ) );;
gap> f:= AlgebraWithOneGeneralMappingByImages(A,B,bA{[2,3,4]},bB{[1,2,3]});
[ i, j, k, e ] -> [ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 0, 1 ], [ 0, 0 ] ],
[ [ 0, 0 ], [ 1, 0 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ]
AlgebraWithOneHomomorphismByImages( A, B, gens, imgs ) F
AlgebraWithOneHomomorphismByImages returns the algebra-with-one
homomorphism with source A and range B that is defined by mapping the
list gens of generators of A to the list imgs of images in B.
The difference between an algebra homomorphism and an algebra-with-one homomorphism is that in the latter case, it is assumed that the identity of A is mapped to the identity of B, and therefore gens needs to generate A only as an algebra-with-one.
If gens does not generate A or if the homomorphism does not exist
(i.e., if mapping the generators describes only a multi-valued mapping)
then fail is returned.
One can avoid the checks by calling
AlgebraWithOneHomomorphismByImagesNC,
and one can construct multi-valued mappings with
AlgebraWithOneGeneralMappingByImages.
gap> m1:= NullMat( 2, 2 );; m1[1][1]:=1;;
gap> m2:= NullMat( 2, 2 );; m2[2][2]:=1;;
gap> A:= AlgebraByGenerators( Rationals, [m1,m2] );;
gap> T:= EmptySCTable( 2, 0 );;
gap> SetEntrySCTable( T, 1, 1, [1,1] );
gap> SetEntrySCTable( T, 2, 2, [1,2] );
gap> B:= AlgebraByStructureConstants(Rationals, T);;
gap> bA:= BasisVectors( Basis( A ) );; bB:= BasisVectors( Basis( B ) );;
gap> f:= AlgebraWithOneHomomorphismByImages( A, B, bA{[1]}, bB{[1]} );
[ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ] -> [ v.1, v.1+v.2 ]
AlgebraWithOneHomomorphismByImagesNC( A, B, gens, imgs ) O
AlgebraWithOneHomomorphismByImagesNC is the operation that is called by
the function AlgebraWithOneHomomorphismByImages.
Its methods may assume that gens generates A and that the mapping of
gens to imgs defines an algebra-with-one homomorphism.
Results are unpredictable if these conditions do not hold.
For creating a possibly multi-valued mapping from A to B that
respects addition, multiplication, identity, and scalar multiplication,
AlgebraWithOneGeneralMappingByImages can be used.
gap> m1:= NullMat( 2, 2 );; m1[1][1]:=1;;
gap> m2:= NullMat( 2, 2 );; m2[2][2]:=1;;
gap> A:= AlgebraByGenerators( Rationals, [m1,m2] );;
gap> T:= EmptySCTable( 2, 0 );;
gap> SetEntrySCTable( T, 1, 1, [1,1] );
gap> SetEntrySCTable( T, 2, 2, [1,2] );
gap> B:= AlgebraByStructureConstants( Rationals, T);;
gap> bA:= BasisVectors( Basis( A ) );; bB:= BasisVectors( Basis( B ) );;
gap> f:= AlgebraWithOneHomomorphismByImagesNC( A, B, bA{[1]}, bB{[1]} );
[ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ] -> [ v.1, v.1+v.2 ]
NaturalHomomorphismByIdeal( A, I ) O
is the homomorphism of algebras provided by the natural projection map of A onto the quotient algebra A/I. This map can be used to take pre-images in the original algebra from elements in the quotient.
gap> L:= FullMatrixLieAlgebra( Rationals, 3 );; gap> C:= LieCentre( L ); <two-sided ideal in <Lie algebra of dimension 9 over Rationals>, (dimension 1)> gap> hom:= NaturalHomomorphismByIdeal( L, C ); <linear mapping by matrix, Algebra( Rationals, [ LieObject( [ [ 1, 0, 0 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ] ), LieObject( [ [ 0, 1, 0 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ] ), LieObject( [ [ 0, 0, 0 ], [ 1, 0, 0 ], [ 0, 0, 0 ] ] ), LieObject( [ [ 0, 0, 1 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ] ), LieObject( [ [ 0, 0, 0 ], [ 0, 0, 0 ], [ 1, 0, 0 ] ] ) ] ) -> Algebra( Rationals, [ v.1, v.2, v.3, v.4, v.5, v.6, v.7, v.8 ] )> gap> ImagesSource( hom ); <Lie algebra of dimension 8 over Rationals>
OperationAlgebraHomomorphism( A, B[, opr] ) O
OperationAlgebraHomomorphism( A, V[, opr] ) O
OperationAlgebraHomomorphism returns an algebra homomorphism from the
F-algebra A into a matrix algebra over F that describes the
F-linear action of A on the basis B of a free left module
respectively on the free left module V (in which case some basis of V
is chosen), via the operation opr.
The homomorphism need not be surjective.
The default value for opr is OnRight.
If A is an algebra-with-one then the operation homomorphism is an algebra-with-one homomorphism because the identity of A must act as the identity.
gap> m1:= NullMat( 2, 2 );; m1[1][1]:= 1;; gap> m2:= NullMat( 2, 2 );; m2[2][2]:= 1;; gap> B:= AlgebraByGenerators( Rationals, [ m1, m2 ] );; gap> V:= FullRowSpace( Rationals, 2 ); ( Rationals^2 ) gap> f:=OperationAlgebraHomomorphism( B, Basis( V ), OnRight ); <op. hom. Algebra( Rationals, [ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 0, 1 ] ] ] ) -> matrices of dim. 2> gap> Image( f, m1 ); [ [ 1, 0 ], [ 0, 0 ] ]
IsomorphismFpAlgebra( A ) A
isomorphism from the algebra A onto a finitely presented algebra.
gap> A:= QuaternionAlgebra( Rationals ); <algebra-with-one of dimension 4 over Rationals> gap> f:= IsomorphismFpAlgebra( A ); [ e, i, j, k, e ] -> [ [(1)*x.1], [(1)*x.2], [(1)*x.3], [(1)*x.4], [(1)*<identity ...>] ]
IsomorphismMatrixAlgebra( A ) A
isomorphism from the algebra A onto a matrix algebra. Currently this is only implemented for associative algebras with one.
gap> T:= EmptySCTable( 2, 0 );; gap> SetEntrySCTable( T, 1, 1, [1,1] ); SetEntrySCTable( T, 2, 2, [1,2] ); gap> A:= AlgebraByStructureConstants( Rationals, T );; gap> A:= AsAlgebraWithOne( Rationals, A );; gap> f:=IsomorphismMatrixAlgebra( A ); <op. hom. AlgebraWithOne( Rationals, ... ) -> matrices of dim. 2> gap> Image( f, BasisVectors( Basis( A ) )[1] ); [ [ 1, 0 ], [ 0, 0 ] ]
RepresentativeLinearOperation( A, v, w, opr ) O
is an element of the algebra A that maps the vector v
to the vector w under the linear operation described by the function
opr. If no such element exists then fail is returned.
gap> m1:= NullMat( 2, 2 );; m1[1][1]:= 1;; gap> m2:= NullMat( 2, 2 );; m2[2][2]:= 1;; gap> B:= AlgebraByGenerators( Rationals, [ m1, m2 ] );; gap> RepresentativeLinearOperation( B, [1,0], [1,0], OnRight ); [ [ 1, 0 ], [ 0, 0 ] ] gap> RepresentativeLinearOperation( B, [1,0], [0,1], OnRight ); fail
[Top] [Previous] [Up] [Next] [Index]
GAP 4 manual