# 7.33 FactorGroup

`FactorGroup( G, N )`

`FactorGroup` returns the factor group <G> / <N> where N must be a normal subgroup of G (see IsNormal). This is the same as `G / N` (see Operations for Groups).

`NaturalHomomorphism` returns the natural homomorphism from G (or a subgroup thereof) onto the factor group (see NaturalHomomorphism).

It is not specified how the factor group N is represented.

```    gap> a4 := Group( (1,2,3), (2,3,4) );;  a4.name := "a4";
"a4"
gap> v4 := Subgroup(a4,[(1,2)(3,4),(1,3)(2,4)]);;  v4.name := "v4";
"v4"
gap> f := FactorGroup( a4, v4 );
(a4 / v4)
gap> Size( f );
3
gap> Elements( f );
[ FactorGroupElement( v4, () ), FactorGroupElement( v4, (2,3,4) ),
FactorGroupElement( v4, (2,4,3) ) ] ```

If G is the parent group of N, `FactorGroup` first checks for the knowledge component `N.factorGroup`. If this component is bound, `FactorGroup` returns its value. Otherwise, `FactorGroup` calls `G.operations.FactorGroup( G, N )`, remembers the returned value in `N.factorGroup`, and returns it. If G is not the parent group of N, `FactorGroup` calls `G.operations.FactorGroup( G, N )` and returns this value.

The default function called this way is `GroupOps.FactorGroup`. It returns the factor group as a group of factor group elements (see FactorGroupElement). Look under FactorGroup in the index to see for which groups this function is overlaid.

GAP 3.4.4
April 1997