# Morphisms of Root Data

Morphisms are currently only defined for split root data. Let $R_i=(X_i,\Phi_i,Y_i,\Phi_i^\star)$ be a root datum for $i=1,2$. A *morphism* of root data $\phi:R_1\to R_2$ consists of a pair of ${\mathbb{Z}}$-linear maps $\phi_X:X_1\to X_2$ and $\Phi_Y:Y_1\to Y_2$ satisfying

1. $\phi_X(\Phi_1)\subseteq\Phi_2\cup\{0\}$; and

2. $\phi_Y(\alpha^\star)=\phi_X(\alpha)^\star$ (with the convention that $0^\star=0$).

A *fractional morphism* is similar, except that it consists of ${\mathbb{Q}}$-linear maps on the (co)root spaces $X_1\otimes{\mathbb{Q}}\to X_2\otimes{\mathbb{Q}}$ and $Y_1\otimes{\mathbb{Q}}\to Y_2\otimes{\mathbb{Q}}$. The main examples of fractional morphisms are isogeny maps (Section [Isogeny of Split Reduced Root Data](introduction.md#subsectrdisogeny)). A *dual morphism* is similar, except that the maps are $X_1\to Y_2$ and $Y_1\to X_2$. This is clearly equivalent to a morphism from $R_1$ to the dual of $R_2$. Finally we define a *dual fractional morphism* in the obvious way.

A (fractional) morphism $\phi:R_1\to R_2$ also stores a sign corresponding to each simple root of $R_1$. This has no effect on the action of $\phi$ on roots or coroots, but does effect the definition of the corresponding homomorphisms of Lie algebras and groups of Lie type.

## `hom<R -\>S | phiX, phiY>: RootDtm, RootDtm, Map, Map -> Map`

## `hom<R -\>S | phiX, phiY>: RootDtm, RootDtm, Mtrx, Mtrx -> Map`

Construct a (fractional) morphism $\phi : R\to S$ of root data with the given linear maps or matrices `phiX` and `phiY` for the action of $\phi$ on $X_1$ and $Y_1$.

## `hom<R -\>S | Q>: RootDtm, RootDtm, [RngIntElt] -> Map`

Construct a (fractional) morphism of root data $R\to S$ with the given sequence of root images. The sequence $Q$ must have length $2N$ and consist of elements in the range $[0,\dots,2M]$, where $N$ is the number of positive roots of $R$ and $M$ is the number of positive roots of $S$. The domain $R$ must be semisimple.

## `Morphism(R, S, phiX, phiY): RootDtm, RootDtm, Map, Map -> Map`

## `Morphism(R, S, phiX, phiY): RootDtm, RootDtm, Mtrx, Mtrx -> Map`

```magma
Check: BoolElt                    Default: true
```

Construct a (fractional) morphism $\phi : R\to S$ of root data with the given linear maps or matrices `phiX` and `phiY` for the action of $\phi$ on $X_1$ and $Y_1$. The domain $R$ must be semisimple.

If `Check` is set to `false`, the function does not check that the maps send (co)roots to (co)roots. This function is the same as the constructor `hom`, except for the optional parameter.

## `Morphism(R, S, Q): RootDtm, RootDtm, [RngIntElt] -> Map`

```magma
Check: BoolElt                    Default: true
```

Construct a (fractional) morphism of root data $R\to S$ with the given sequence of root images. The sequence $Q$ must have length $2N$ and consist of elements in the range $[0,\dots,2M]$, where $N$ is the number of positive roots of $R$ and $M$ is the number of positive roots of $S$. The domain $R$ must be semisimple.

If `Check` is set to `false`, the function does not check that the maps send (co)roots to (co)roots. This function is the same as the constructor `hom`, except for the optional parameter.

## `DualMorphism(R, S, phiX, phiY): RootDtm, RootDtm, Map, Map -> Map`

## `DualMorphism(R, S, phiX, phiY): RootDtm, RootDtm, Mtrx, Mtrx -> Map`

```magma
Check: BoolElt                    Default: true
```

Construct a (fractional) dual morphism of root data $R\to S$ with the given linear maps or matrices of linear maps. If `Check` is set to `false`, the function does not check that the maps send (co)roots to (co)roots.

## `DualMorphism(R, S, Q): RootDtm, RootDtm, [RngIntElt] -> Map`

```magma
Check: BoolElt                    Default: true
```

Construct a (fractional) dual morphism of root data $R\to S$ with the given sequence of root images. The sequence $Q$ must have length $2N$ and consist of elements in the range $[0,\dots,2M]$, where $N$ is the number of positive roots of $R$ and $M$ is the number of positive roots of $S$. The domain $R$ must be semisimple. If `Check` is set to `false`, the function does not check that the maps send (co)roots to (co)roots.

## `RootImages(phi): Map -> [RngIntElt]`

The indices of the root images of the (dual) (fractional) morphism $\phi$.

## `RootPermutation(phi): Map -> GrpPermElt`

The indices of the root images of the automorphism $\phi$.

## `IdentityMap(R): RootDtm -> Map`

## `IdentityAutomorphism(R): RootDtm -> Map`

The identity morphism $R\to R$.

## `Example: Creating Root Data Homomorphisms (ex-b874c1)`

We construct the fractional morphism from the standard root datum of type $A_3$ onto the adjoint root datum of type $A_3$. This will allow us to construct the algebraic projection ${GL}_4\to{PGL}_4$ in Section [Algebraic Homomorphisms](../ChevalleyGroups/homomorphism.md#sectgrpliehom).

```magma
> RGL := StandardRootDatum( "A", 3 );
> RPGL := RootDatum( "A3" );
> A := VerticalJoin( SimpleRoots(RGL), Vector([Rationals()|1,1,1,1]) )^-1 *
>   VerticalJoin( SimpleRoots(RPGL), Vector([Rationals()|0,0,0]) );
> B := VerticalJoin( SimpleCoroots(RGL), Vector([Rationals()|1,1,1,1]) )^-1 *
>   VerticalJoin( SimpleCoroots(RPGL), Vector([Rationals()|0,0,0]) );
> phi := hom< RGL -> RPGL | A, B >;
> v := Coroot(RGL,1);
> v; phi(v);
( 1 -1  0  0)
( 2 -1  0 )

```
