A **formation** is a class `F` of groups closed under taking epimorphic
images and subdirect products. Closure under subdirect products is equivalent to the property that each finite group `G` has a unique
smallest normal subgroup `G ^{F}` with factor group

In FORMAT a formation is described by a function that computes `G ^{F}`
for each (finite solvable) group

Some of the most interesting formations can also be described by ``local definition.'' For each prime `p`
let `F(p)` be a formation or the empty class, and let `F` be the class
of all finite solvable groups `G` such that for each prime `p` and each `p`-chief factor `H/K` of `G` the group of automorphisms that `G`
induces on `H/K` by conjugation belongs to `F(p)`. Then `F` is a
formation, with **local definition** the set of ` F(p)`s.
The set of primes `p` for which `F(p)` is not empty is called the
**support** of `F`. A `p`-chief factor is ** F-central** in case

`Formation( `

` ) O`

`Formation( `

` [, `

` ] ) O`

The definition of a formation in FORMAT begins with the creation of a
record `rec`

, which must contain a `name`

component and at least one of
the components `fResidual`

or `fScreen`

. The component `name`

is a string,
`fResidual`

is a function that computes a normal subgroup of each group,
and `fScreen`

is a function of two variables, a group and a prime, that
returns a normal subgroup of the input group.

In the second form the function `Formation`

can be used to obtain a
formation from the supplied library of formations. The formations
provided are:

`Formation( "Nilpotent" )`

- The formation of nilpotent groups,
`Formation( "Supersolvable" )`

- The formation of supersolvable groups,
`Formation( "Abelian" )`

- The formation of abelian groups,
`Formation( "ElementaryAbelianProduct" )`

- The formation of direct products of elementary abelian groups,
`Formation( "PNilpotent", prime )`

- The formation of
`p`-nilpotent groups for`p =``prime`

, `Formation( "PiGroups", primes )`

- The formation of
`pi`-groups for`pi=`the set`primes`

, `Formation( "PLengthOne", prime )`

- The formation of groups of
`p`-length 1 for`p =``prime`

.

`IsFormation( `

` ) C`

`NameOfFormation( `

` ) A`

`ResidualFunctionOfFormation( `

` ) A`

`IsFormation`

returns `true`

if and only if `F` is a GAP formation.
`NameOfFormation`

returns the name of a formation and `ResidualFunctionOfFormation`

returns the residual function of a formation.

`ScreenOfFormation( `

` ) A`

If `F` is locally defined by some screen of `F(p)`s,
then `HasScreenOfFormation( `

`F`` )`

is `true`

, `ScreenOfFormation( `

`F`` )`

is a function of two variables, `group` and `prime`, and
`ScreenOfFormation( `

`F`` )( `

`G``, `

`p`` )`

returns `G ^{F(p)}` if

`SupportOfFormation( `

` ) A`

The attribute `SupportOfFormation`

is optional. It may be bound by
`SetSupportOfFormation`

. If `SupportOfFormation`

is not bound, then the support
of the formation is taken to be the set of all primes. In case the support of
`F` is a finite set of primes, then `SupportOfFormation( `

`F`` )`

is a list of
those primes, and `HasSupportOfFormation( `

`F`` )`

returns true. In case the
support of `F` is an infinite set but not the set of all primes, then the user
will need to make sure, perhaps with `ChangedSupport`

or
`SetSupportOfFormation`

, that all primes dividing the orders of relevant groups
are considered.

`ChangedSupport( `

`, `

` ) O`

This function may be used to change the support of a formation. Let `F`
be a formation and `primes` a list of primes. Then `ChangedSupport`

returns a formation with a new name whose support is the intersection
of the support of `F` and `primes`.

`IsIntegrated( `

` ) P`

The local definition is called **integrated** in case `F(p)` is contained in
`F` for each prime `p`. The optional property `IsIntegrated`

makes sense only if `HasScreenOfFormation( `

`F`` )`

is `true`

. Notice that
some of the functions described below will require that all of the attributes ```
HasScreenOfFormation(
```

`F`` )`

, `HasIsIntegrated( `

`F`` )`

and `IsIntegrated( `

`F`` )`

are `true`

. If
unbound, this property can be bound with `SetIsIntegrated`

, but it is up to the
user to determine whether such a setting is appropriate.
Section Formation Examples contains an example of such usage.

`Integrated( `

` ) O`

A local definition of a formation may always be replaced by an
integrated one without changing the formation itself, though the meaning
of `F`-central may change. Let `F` be a locally defined GAP formation with
name `name``. If `

`F` is already integrated, then `Integrated( `

`F`` )`

yields `F` itself. Otherwise, it yields a formation `name``Int`

that is
abstractly the same as `F` but has integrated local definition.

` = `

` < `

Two GAP formations `F1` and `F2` are considered to be equal in case they
have the same name. The natural ordering on strings gives an ordering
on formations. This ordering is useful for organizing key-dependent
lists but has no mathematical significance.

`Intersection( `

`, `

` ) O`

The intersection of two GAP formations `F1` and
`F2` is again a formation. `Intersection`

produces the new formation
`(`

`name1``And`

`name2``)`

, which has attribute `ResidualFunctionOfFormation`

if
either `F1` or `F2` does, has `FScreen`

whenever both formations have `FScreen`

, and is
integrated if both are.

`ProductOfFormations( `

`, `

` ) O`

The product of two formations `F1` and `F2` is the formation `F`
such that a finite group `G` is a member of `F` if and only if
`G ^{F2}` is in

`ProductOfFormations( `

`, `

` )`

yields the product `(`

`By`

`)`

of the two
formations. The product has the attribute `ResidualFunctionOfFormation`

and has
the attribute `ScreenOfFormation`

whenever both `HasScreenOfFormation( `

` )`

and ```
not HasSupportOfFormation(
```

` )`

are `true`

. In these cases the property `IsIntegrated`

will be inherited
if possible.
[Up] [Previous] [Next] [Index]

format manual

November 2011