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

# 6 Automorphism groups and isomorphism testing for block designs

### Sections

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.

## 6.1 Computing automorphism groups

• `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
```

## 6.2 Testing isomorphism

• `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,2,3],]);;
gap> D2:=BlockDesign(3,[,[1,2,3],]);;
gap> IsIsomorphicBlockDesign(D1,D2);
true
gap> D3:=BlockDesign(4,[,[1,2,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,2,3],]);;
gap> D2:=BlockDesign(3,[,[1,2,3],]);;
gap> D3:=BlockDesign(4,[,[1,2,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