# Automorphisms of Local Rings and Fields

The automorphisms of a local ring or field are determined by their images on the generators of the ring. All computations necessary to determine the automorphism group can be performed in the local ring.

## `Automorphisms(L): RngPad -> [Map]`

## `Automorphisms(L): FldPad -> [Map]`

Given a local ring or field $L$, returns the automorphisms of $L$ over its $p$-adic sub-field ${\mathbb{Q}}_p$ as a sequence of maps of $L$ into $L$.

## `Automorphisms(K, k): FldPad, FldPad -> [Map]`

## `Automorphisms(K, k): RngPad, RngPad -> [Map]`

Given a local ring or field $K$ over $k$, returns the $k$-automorphisms of $K$ as a sequence of maps of $K$ into $K$.

## `AutomorphismGroup(L): RngPad -> GrpPerm, Map`

## `AutomorphismGroup(L): FldPad -> GrpPerm, Map`

Return the automorphism group acting on $L$ over its $p$-adic sub-field ${\mathbb{Q}}_p$ as a permutation group (representing the regular action). Also return the map from the permutation group to the group of automorphisms represented explicitly (i.e. like returned from the function above).

## `AutomorphismGroup(K, k): RngPad, RngPad -> GrpPerm, Map`

## `AutomorphismGroup(K, k): FldPad, FldPad -> GrpPerm, Map`

Return the automorphism group acting on $K$ over its $p$-adic $k$ as a permutation group (representing the regular action). Also return the map from the permutation group to the group of automorphisms represented explicitly (i.e. like returned from the function above).

## `IsNormal(K): RngPad -> BoolElt`

## `IsNormal(K): FldPad -> BoolElt`

Given a $p$-adic ring or field $K$, test if $K$ is normal over it’s prime field ${\mathbb{Q}}_p$, ie. if $K$ admits exactly $n$ automorphisms where $n$ is the degree of $K$.

## `IsNormal(K, k): RngPad, RngPad -> BoolElt`

## `IsNormal(K, k): FldPad, FldPad -> BoolElt`

Given a $p$-adic ring or field $K$, test if $K$ is normal over the subfield $k$.

## `IsAbelian(K, k): FldPad, FldPad -> BoolElt`

Given $p$-adic fields $K/k$, test if the automorphism group of $K$ over $k$ is abelian.

## `Continuations(m, L): Map, RngPad -> [Map]`

For an automorphism $m$ of the $p$-adic ring $L$, compute all possible extensions of $m$ to $L$.

## `IsIsomorphic(E, K): RngPad, RngPad -> BooElt`

## `IsIsomorphic(E, K): FldPad, FldPad -> BooElt`

For two $p$-adic rings or fields, test if they are isomorphic over ${\mathbb{Q}}_p$.

## `Example: Units Autos (ex-b62260)`

We define an extension of ${\mathbb{Z}}_2$ with ramification degree 2 and inertia degree 2 and compute automorphisms.

```magma
> I<a> := ext<pAdicRing(2, 10) | 2>;
> R<x> := PolynomialRing(I);
> L<b> := ext<I | x^2 + 2*a*x + 2*a^2>;
> L;
Totally ramified extension defined by the polynomial
x^2 + (2*a)*x + -2*a - 2 over Unramified extension
defined by the polynomial x^2 + x + 1 over 2-adic ring
mod 2^10
> A := Automorphisms(L);
> [<A[i](a), A[i](b)> : i in [1 .. #A]];
[ <a, b + O(b^18)>, <a, -b + -2*a + O(b^18)>, <-a - 1,
a*b + O(b^18)>, <-a - 1, -a*b + 2*a + 2 + O(b^18)> ]
> AutomorphismGroup(L);
Permutation group acting on a set of cardinality 4
    Id($)
    (1, 2)(3, 4)
    (1, 3)(2, 4)
Mapping from: GrpPerm: $, Degree 4 to Power Structure
of Map given by a rule

```

## `GaloisGroup(f): RngUPolElt[FldPad] -> GrpPerm, SeqEnum, UserProgram`

## `GaloisGroup(f): RngUPolElt[RngPad] -> GrpPerm, SeqEnum, UserProgram`

Computes the Galois group $G$ of a squarefree polynomial $f$ over a $p$-adic ring or field $K$. Returns $G$ as a permutation group on the roots of $f$ in its splitting field $F$, the roots themselves, and a map $G\to{\operatorname{Aut}}(F/K)$.

## `Example: Rngloc Galoisgroup (ex-286b99)`

```magma
> K:=pAdicField(2,20);
> R<x>:=PolynomialRing(K);
> G,r,act:=GaloisGroup(x^4-2);
> G;                                     // permutation group on roots in r
Permutation group G acting on a set of cardinality 4
(1, 4, 2, 3)
(1, 2)
> GroupName(G);
D4
> F<pi>:=Universe(r); F;                          // splitting field F of f
Totally ramified extension defined by the polynomial x^8 + 8*x^7 + 24*x^6 +
   32*x^5 + 18*x^4 + 8*x^3 + 12*x^2 + 8*x + 2
 over 2-adic field mod 2^20
> sigma:=act(G.1);                                // an automorphism of F/K
> sigma;
Mapping from: FldPad: F to FldPad: F given by a rule [no inverse]
> sigma(F.1);
(43690*pi^7 - 5*pi^6 + 43677*pi^5 - 15*pi^4 + 43687*pi^3 + 43684*pi - 3)*pi +
   O(pi^136)

```
