# Properties of a Module

The following intrinsics have differing conditions on their application so the user should check before using a given intrinsic.

## `IsIrreducible(M): ModRng -> BoolElt, ModRng, ModRng`

Given an $A$-module $M$, defined over a finite field or a number field, the intrinsic returns `true` if and only if $M$ is irreducible. If $M$ is reducible, a proper submodule $N$ of $M$ together with the corresponding quotient module $Q = M/N$, are also returned.

## `IsAbsolutelyIrreducible(M): ModRng -> BoolElt, AlgMatElt, RngIntElt`

Given an $K[G]$-module $M$ where $K$ is a finite field, the intrinsic return `true` if and only if $M$ is absolutely irreducible. If $M$ is reducible, a matrix algebra generator for the endomorphism algebra $E$ of $M$ (a field), as well as the dimension of $E$, are also returned.

## `IsDecomposable(M): ModRng -> BoolElt, ModRng, ModRng`

Given an $A$-module $M$ defined over a finite field or a number field, the intrinsic returns `true` if and only if $M$ is decomposable. If $M$ is decomposable and defined over a finite field, the function also returns proper submodules $S$ and $T$ of $M$ such that $M = S\oplus T$.

## `IsSemisimple(M): ModGrp -> BoolElt`

Given a $K[G]$-module $M$ defined over a finite field or a number field, return `true` if $M$ is semisimple and `false` otherwise. The function returns a second value listing the ranks of the primitive idempotents of the algebra. This is also a list of the multiplicities of composition factors in a composition series for $M$.

## `IsProjective(M): ModGrp -> BoolElt`

Given an $K[G]$-module $M$, where $K$ is a field, the intrinsic returns `true` if and only $M$ is a projective $K[G]$-module.

## `IsFree(M): ModGrp -> BoolElt`

Given an $K[G]$-module $M$, where $K$ is a field, the intrinsic returns `true` if and only $M$ is a free $K[G]$-module.

## `IsSelfDual(M): ModGrp -> BoolElt`

Given an $A$-module $M$, return whether $M$ is self-dual, that is, whether $M$ is isomorphic to the dual of $M$.

## `IsPermutationModule(M): ModRng -> BoolElt`

Given an $K[G]$-module $M$, the intrinsic returns `true` if and only if the generators of the matrix algebra giving the action of $G$ are permutation matrices.
