# Is align the right environment here?

I'd avoid long textual set descriptions. Everybody understands “hom”, in my opinion. The symbol at the left of `\longmapsto`

is understood to be a variable in the set above it and similarly for the symbol at the right of `\longmapsfrom`

.

I propose two different alignments, take your pick.

```
\documentclass[11pt, a4paper, english]{article}
\usepackage[main=english, ngerman]{babel}
\usepackage{amsmath, amssymb, mathtools, amsthm,array}
\usepackage{stmaryrd}
\usepackage{geometry}
\DeclareMathOperator{\GL}{GL}
\begin{document}
\begin{equation*}
\renewcommand{\arraystretch}{1.2}
\setlength{\arraycolsep}{0pt}
\begin{array}{ c >{{}}c<{{}} c }
\hom(G,\GL(K^n)) & \overset{1:1}\longleftrightarrow & \hom(G,\GL_n(K)) \\
\rho & \longmapsto & \mathbf{c}_{B,B}(?)\circ \rho \\
\mathbf{c}_{B,B}(?)^{-1} \circ \rho' & \longmapsfrom & \rho'
\end{array}
\end{equation*}
\begin{equation*}
\renewcommand{\arraystretch}{1.2}
\setlength{\arraycolsep}{0pt}
\begin{array}{ r >{{}}c<{{}} l }
\hom(G,\GL(K^n)) & \overset{1:1}\longleftrightarrow & \hom(G,\GL_n(K)) \\
\rho & \longmapsto & \mathbf{c}_{B,B}(?)\circ \rho \\
\mathbf{c}_{B,B}(?)^{-1} \circ \rho' & \longmapsfrom & \rho'
\end{array}
\end{equation*}
\end{document}
```

The (local) redefinition of `\arraystretch`

is meant to spread out the rows of the array (it's the same as what `amsmath`

does for `cases`

, for instance).

Why `\setlength{\arraycolsep}{0pt}`

? We want to rely on the automatic spacing added by TeX in math formulas, instead of padding the columns. So the middle column is set in a special way by means of

```
>{{}}c<{{}}
```

which means that `array`

will see `{}\longmapsto{}`

or similar in the middle column (see the documentation of the `array`

package for the syntax). Since `array`

typesets each cell in math mode, the two empty groups provide “phantom atoms” around the relation symbol and TeX will duly insert the standard spacing between these atoms and the relation symbol.

Why `equation*`

? Because there is a single object in the display, namely the `array`

. It's best to reserve `align`

for displays with multiple objects in different rows, hence with `\\`

at the “outer level”.