[Up] [Previous] [Next] [Index]
# 6 Automorphism groups and isomorphism testing for block designs

### Sections

- Computing automorphism groups
- Testing isomorphism

The functions in this chapter depend on nauty Nau90, MP14
or bliss JK07 via the GRAPE package, which must be fully
installed in order for these functions to work.

`AutGroupBlockDesign( `

`D`` )`

This function returns the automorphism group of the block design `D`.
The **automorphism group** \Aut(*D* ) of `D` is the group consisting of
all the permutations of the points {1,…,*D* `.``v`} which preserve
the block-multiset of `D`.

This function is not yet implemented for non-binary block designs.

This function can also be called via `AutomorphismGroup(`

`D``)`

.

gap> D:=PGPointFlatBlockDesign(2,3,1);; # projective plane of order 3
gap> Size(AutGroupBlockDesign(D));
5616

`IsIsomorphicBlockDesign( `

`D1``, `

`D2`` )`

This boolean function returns `true`

if and only if block designs
`D1` and `D2` are **isomorphic**, that is, there is a bijection from the
point-set of `D1` to that of `D2` which maps the block-multiset of `D1`
to that of `D2`.

This function is not yet implemented for non-binary block designs.

For pairwise isomorphism testing for three or more binary block designs,
see BlockDesignIsomorphismClassRepresentatives.

gap> D1:=BlockDesign(3,[[1],[1,2,3],[2]]);;
gap> D2:=BlockDesign(3,[[1],[1,2,3],[3]]);;
gap> IsIsomorphicBlockDesign(D1,D2);
true
gap> D3:=BlockDesign(4,[[1],[1,2,3],[3]]);;
gap> IsIsomorphicBlockDesign(D2,D3);
false
gap> # block designs with different numbers of points are not isomorphic

`BlockDesignIsomorphismClassRepresentatives( `

`L`` )`

Given a list `L` of binary block designs, this function returns a list
consisting of pairwise non-isomorphic elements of `L`, representing all
the isomorphism classes of elements of `L`. The order of the elements
in the returned list may differ from their order in `L`.

gap> D1:=BlockDesign(3,[[1],[1,2,3],[2]]);;
gap> D2:=BlockDesign(3,[[1],[1,2,3],[3]]);;
gap> D3:=BlockDesign(4,[[1],[1,2,3],[3]]);;
gap> BlockDesignIsomorphismClassRepresentatives([D1,D2,D3]);
[ rec( isBlockDesign := true, v := 4, blocks := [ [ 1 ], [ 1, 2, 3 ], [ 3 ] ],
isBinary := true ),
rec( isBlockDesign := true, v := 3, blocks := [ [ 1 ], [ 1, 2, 3 ], [ 2 ] ],
isBinary := true ) ]

[Up] [Previous] [Next] [Index]

design manual

March 2019