- isTransitive :: Ord t => [Permutation t] -> Bool
- transitiveConstituentHomomorphism :: (Ord a, Show a) => [Permutation a] -> [a] -> ([Permutation a], [Permutation a])
- blockSystems :: Ord t => [Permutation t] -> [[[t]]]
- blockSystemsSGS :: Ord a => [Permutation a] -> [[[a]]]
- isPrimitive :: Ord t => [Permutation t] -> Bool
- isPrimitiveSGS :: Ord a => [Permutation a] -> Bool
- blockHomomorphism :: (Ord t, Show t) => [Permutation t] -> [[t]] -> ([Permutation t], [Permutation [t]])

# Documentation

isTransitive :: Ord t => [Permutation t] -> BoolSource

transitiveConstituentHomomorphism :: (Ord a, Show a) => [Permutation a] -> [a] -> ([Permutation a], [Permutation a])Source

Given a group gs and a transitive constituent ys, return the kernel and image of the transitive constituent homomorphism. That is, suppose that gs acts on a set xs, and ys is a subset of xs on which gs acts transitively. Then the transitive constituent homomorphism is the restriction of the action of gs to an action on the ys.

blockSystems :: Ord t => [Permutation t] -> [[[t]]]Source

Given a transitive group gs, find all non-trivial block systems. That is, if gs act on xs, find all the ways that the xs can be divided into blocks, such that the gs also have a permutation action on the blocks

blockSystemsSGS :: Ord a => [Permutation a] -> [[[a]]]Source

A more efficient version of blockSystems, if we have an sgs

isPrimitive :: Ord t => [Permutation t] -> BoolSource

A permutation group is primitive if it has no non-trivial block systems

isPrimitiveSGS :: Ord a => [Permutation a] -> BoolSource

blockHomomorphism :: (Ord t, Show t) => [Permutation t] -> [[t]] -> ([Permutation t], [Permutation [t]])Source

Given a transitive group gs, and a block system for gs, return the kernel and image of the block homomorphism (the homomorphism onto the action of gs on the blocks)