8.8 IsFixpointFree

IsFixpointFree( G, D )
IsFixpointFree( G, D, operation )

IsFixpointFree returns true if the group G operates without a fixpoint (see IsFixpoint) on the domain D, which must be a list of points of arbitrary type.

We say that G operates fixpoint free on the domain D if each point of D is moved by at least one element of G. This is equivalent to saying that each point of D is moved by at least one generator of G. This definition also applies in the case that D is a proper subset of a domain, i.e., that D is not invariant under the operation of G.

As a special case it is allowed that the first argument is a single group element.

IsFixpointFree accepts a function operation of two arguments d and g as optional third argument, which specifies how the elements of G operate (see Other Operations).

    gap> g := Group( (1,2,3)(6,7), (3,4,5)(7,8) );;
    gap> IsFixpointFree( g, [1..8] );
    true
    gap> sets := Combinations( [1..8], 3 );;  Length( sets );
    56    # a list of all three element subsets of '[1..8]'
    gap> IsFixpointFree( g, sets, OnSets );
    false 

IsFixpointFree calls
G.operations.IsFixpointFree( G, D, operation )
and returns the value. Note that the third argument is not optional for functions called this way.

The default function called this way is GroupOps.IsFixpointFree, which simply loops over the elements of D and applies to each all generators of G, and tests whether each is moved by at least one generator. This function is seldom overlaid, because it is very difficult to improve it.

Previous Up Top Next
Index

GAP 3.4.4
April 1997