# Homomorphisms of Group Representations

## Creation of Homomorphisms between Group Representations

### `Homomorphism(V, W, f): ModRed, ModRed, UserProgram -> ModRedHom`

### `Homomorphism(V, W, f): ModRed, ModRed, Map -> ModRedHom`

### `Homomorphism(V, W, f): ModRed, ModRed, CombFreeModHom -> ModRedHom`

Construct a homomorphism of group representations described by $f : V \to W$. Does not verify that the map indeed describes a homomorphism of group representations.

### `Homomorphism(V, W, S): ModRed, ModRed, SeqEnum -> ModRedHom`

```magma
BaseChangeCodomain: BoolElt                    Default: false
```

Construct a homomorphism of group representations $f : V \to W$, mapping the basis of $V$ to $S$. If `BaseChangeCodomain` is `true`, returns a homomorphism $f : V \to W \otimes R$, where $R$ is the base ring of $V$. Does not verify that the map indeed describes a homomorphism of group representations.

### `Homomorphism(M, N, f): CombFreeMod, CombFreeMod, UserProgram -> CombFreeModHom`

### `Homomorphism(M, N, f): CombFreeMod, CombFreeMod, Map -> CombFreeModHom`

Construct a homomorphism of $R$-modules described by $f : M \to N$.

### `Homomorphism(M, N, S): CombFreeMod, CombFreeMod, SeqEnum -> CombFreeModHom`

```magma
BaseChangeCodomain: BoolElt                    Default: false
```

Construct a homomorphism of $R$-modules $f : M \to N$, mapping the basis of $M$ to $S$. If `BaseChangeCodomain` is `true`, returns a homomorphism $f : M \to N \otimes R$, where $R$ is the base ring of $V$.

## Properties of Homomorphisms of Group Representations

### `Domain(f): ModRedHom -> ModRed`

### `Domain(f): CombFreeModHom -> CombFreeMod`

The domain of $f$.

### `Codomain(f): ModRedHom -> ModRed`

### `Codomain(f): CombFreeModHom -> CombFreeMod`

The codomain of $f$.

### `Kernel(f): ModRedHom -> ModRed`

The kernel of $f$, as a representation of $G$.

## Operations on Homomorphisms of Group Representations

### `Evaluate(f, v): ModRedHom, ModRedElt -> ModRedElt`

### `Evaluate(f, v): CombFreeModHom, CombFreeModElt -> CombFreeModElt`

### `v @ f: ModRedElt, ModRedHom -> ModRedElt`

### `v @ f: CombFreeModElt, CombFreeModHom -> CombFreeModElt`

Returns $f(v)$.

### `w @@ f: ModRedElt, ModRedHom -> ModRedElt`

### `w @@ f: CombFreeModElt, CombFreeModHom -> CombFreeModElt`

Given a homomorphism $f : V \to W$, and an element $w \in W$, returns an element $v \in V$ such that $f(v) = w$.
