# Automorphisms of Fields

Magma now (from V2.29) contains a new structure for field automorphisms. A field automorphism is of type `FldAut`. Also supports the swap automorphism of $F \times F$, when constructed as an associative algebra. `DirectSum(Algebra(F,F), Algebra(F,F));`

## Creation of Field Automorphisms

### `FieldAutomorphism(F, g): Fld, GrpPermElt -> FldAut`

### `FieldAutomorphism(F, g): AlgAss[Fld], GrpPermElt -> FldAut`

Given an element $g$ of a permutation group $G$, satisfying $G \simeq {\operatorname{Aut}}(F)$, returns an element $\alpha \in {\operatorname{Aut}}(F)$ corresponding to $g$.

### `FieldAutomorphism(F, a): Fld, Map[Fld,Fld] -> FldAut`

### `FieldAutomorphism(F, a): Fld, Intrinsic -> FldAut`

### `FieldAutomorphism(F, a): Fld, UserProgram -> FldAut`

### `FieldAutomorphism(F, a): AlgAss[Fld], Map[AlgAss[Fld],AlgAss[Fld]] -> FldAut`

Given a function, an intrinsic, or a map between fields $a$ describing an automorphism $a : F \to F$, returns the corresponding field automorphism.

### `IdentityAutomorphism(F): Fld -> FldAut`

The identity automorphism of the field $F$.

### `FieldAutomorphism(K): AlgAss[Fld] -> FldAut`

If $K = F \times F$, return the swap involution.

### `ChangeRing(a, K): FldAut, Fld -> FldAut`

### `ChangeRing(a, K): FldAut, AlgAss[Fld] -> FldAut`

If $F \simeq K$, return the element of ${\operatorname{Aut}}(K)$ corresponding to $a \in {\operatorname{Aut}}(F)$.

## Properties of Field Automorphisms

### `BaseField(a): FldAut -> Fld`

The field $F$ for which $a \in {\operatorname{Aut}}(F)$.

### `Order(a): FldAut -> RngIntElt`

The order of $a$.

### `FixedField(a): FldAut -> Fld`

The fixed field of $a$.

### `Automorphism(a): FldAut -> Map[Fld, Fld]`

The map defined by $a : F \to F$.

### `FixedFieldSymbol(a, P): FldAut, RngOrdIdl -> RngIntElt`

### `FixedFieldSymbol(a, P): FldAut, RngInt -> RngIntElt`

Returns $-1,0$ or $1$ if $P$ is inert, ramified, or split, respectively in the fixed field of $a$.

## Predicates on Field Automorphisms

### `IsIdentity(a): FldAut -> BoolElt`

Returns `true` iff $a$ is the identity automorphism.

## Arithmetic of Field Automorphisms

### `a * b: FldAut, FldAut -> FldAut`

The automorphism given by $a \circ b$, namely $x \mapsto a(b(x))$.

### `a ^ n: FldAut, RngIntElt -> FldAut`

The automorphism $a^n$.

### `Inverse(a): FldAut -> FldAut`

The automorphism $a^{-1}$.

### `a eq b: FldAut, FldAut -> BoolElt`

Returns `true` iff $a$ and $b$ are automorphisms of the same field $F$, and $a = b$.

### `x @ a: FldElt, FldAut -> FldElt`

### `x @ a: RngOrdElt, FldAut -> RngOrdElt`

### `x @ a: RngIntElt, FldAut -> RngIntElt`

### `x @ a: AlgAssElt[Fld], FldAut -> AlgAssElt[Fld]`

Evaluate $a(x)$.

### `v @ a: ModTupFldElt[Fld], FldAut -> ModTupFldElt[Fld]`

Given a vector $v = (x_1, ...., x_n)$ in an $F$-vector space $V$, apply $a$ to each coordinate, to get $a(v) = (a(x_1), \ldots, a(x_n))$.

### `M @ a: ModMatFldElt[Fld], FldAut -> ModMatFldElt[Fld]`

### `M @ a: AlgMatElt[Fld], FldAut -> AlgMatElt[Fld]`

### `M @ a: GrpMatElt[Fld], FldAut -> GrpMatElt[Fld]`

### `M @ a: AlgMatElt[AlgAss[Fld]], FldAut -> AlgMatElt[AlgAss[Fld]]`

Given a matrix $M = (x_{ij})$ with entries in $F$, apply $a$ to each coordinate, to get $a(M) = (a(x_{ij}))$.

### `I @ a: RngOrdFracIdl[FldOrd], FldAut -> RngOrdFracIdl[FldOrd]`

### `I @ a: RngInt, FldAut -> RngInt`

### `I @ a: RngIntFracIdl, FldAut -> RngIntFracIdl`

Given a fraction ideal $I$ of an order $R$, and an automorphism $a$ of the fraction field of $R$, return the fractional ideal $a(I)$.

### `Trace(P, a): RngOrdFracIdl, FldAut -> RngOrdFracIdl`

### `Trace(P, a): RngIntFracIdl, FldAut -> RngIntFracIdl`

```magma
Mult: RngIntElt                    Default: Order(a)
```

The image of the map $x \mapsto \sum_{j=0}^{m-1} \sum a^j(x)$ on $P$, where $m$ is determined by `Mult`.

### `Norm(P, a): RngOrdFracIdl, FldAut -> RngOrdFracIdl`

### `Norm(P, a): RngIntFracIdl, FldAut -> RngIntFracIdl`

```magma
Mult: RngIntElt                    Default: Order(a)
```

The image of the map $x \mapsto \prod_{j=0}^{m-1} \sum a^j(x)$ on $P$, where $m$ is determined by `Mult`.
