Introduction#
An étale algebra \(A\) over a field \(K\) is a finite product of finite separable extensions \(K_1,\ldots,K_n\) of \(K\). Typical examples are:
- (a)
\(A = K\times K\) where \(K\) is a number field.
- (b)
\(A = {K[x] / f(x)}\) where \(f(x)\) is a polynomial in \(K[x]\) and no repeated roots over \(\overline{K}\).
We will refer to the field \(K\) as the prime field of \(A\) and to the fields \(K_1,\ldots,K_n\) as the components of \(A\). If \(F\) is a finite extension of \(K\) such that \(K_1,\ldots,K_n\) are all defined as relative extensions of \(F\), we call \(F\) the base field of \(A\). If the components \(K_1,\ldots,K_n\) of \(A\) have distinct defining polynomials, say \(f_1(x),\ldots,f_n(x) \in F[x]\) then \(A\) is isomorphic to the étale algebra \(F[x]/(f(x))\) where \(f(x) = f_1(x)\cdot \cdots \cdot f_n(x)\). The polynomial \(f(x)\) is then referred to as the defining polynomial of \(A\).
This section describes functions to work with these algebras, orders inside the algebra and ideals of the orders.
Currently all number fields have to be absolute number fields.
An étale algebra has type AlgEtQ, an order has type AlgEtQOrd, an ideal has type AlgEtQIdl, and the elements have type AlgEtQElt.
This was released in version 2.29 and the original code was written by Stefano Marseglia. Furthermore, his papers, [Marseglia, 2020, Marseglia, 2024, Marseglia, 2025], are a good reference for many of the algorithms implemented in this package.