11.07.2015 Views

Advanced Programming Guide

Advanced Programming Guide

Advanced Programming Guide

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

152 • Chapter 3: <strong>Programming</strong> with Moduleshomomorphism, it is enough to specify the images of each among a set ofgenerators for the domain.Use the following interface for homomorphisms.domaincodomaingenmapthe domain of the homomorphismthe codomain of the homomorphismthe mapping of the generators of the domain into the codomainThis leads directly to a simple constructor for homomorphism objects.> ‘type/Homomorphism‘ := ’‘module‘( domain, codomain, genmap )’:> Homomorphism := proc( A::Group, B::Group, p::procedure )> description "homomorphism constructor";> Record( ’domain’ = A, ’codomain’ = B, ’genmap’ = p )> end proc:The image of a group homomorphism ϕ : A −→ B is the subset ϕ(A) ofB consisting of all elements of B having the form ϕ(a), for some elementa in A. It is a subgroup of B. These various design choices lead to a simpleformulation for computing or representing images of homomorphisms.> HomImage := proc( hom::Homomorphism )> description "compute the image of a homomorphism";> SubGroup( hom:-codomain,> map( hom:-genmap, hom:-domain:-gens ) )> end proc:As an example computation, compute the image of a homomorphism fromthe symmetric group S 4 onto a two-element matrix group generated bythe reflection> Matrix( [ [ 0, 1 ], [ 1, 0 ] ] );[ ] 0 11 0First, define the groups.> A := Symmetric( 4 ):> B := MatrixGroup( 2, Matrix( [[0,1],[1,0]] ) ):Define a mapping from the generators of A to the group B by inserting theimages of the generators into a procedure’s remember table.> h( [2,1,3,4] ) := Matrix( [[0,1],[1,0]] ):> h( [2,3,4,1] ) := Matrix( [[1,0],[0,1]] ):This defines a Maple procedure h that performs the indicated mappingand returns unevaluated for any other arguments.> eval( h );

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!