Testing latest pari + WASM + node.js... and it works?! Wow.
License: GPL3
ubuntu2004
Function: alginit Section: algebras C-Name: alginit Prototype: GGDnD1,L, Help: alginit(B, C, {v}, {maxord = 1}): initializes the central simple algebra defined by data B, C. If maxord = 1, compute a maximal order. Doc: initializes the central simple algebra defined by data $B$, $C$ and variable $v$, as follows. \item (multiplication table) $B$ is the base number field $K$ in \tet{nfinit} form, $C$ is a ``multiplication table'' over $K$. As a $K$-vector space, the algebra is generated by a basis $(e_1 = 1,\dots, e_n)$; the table is given as a \typ{VEC} of $n$ matrices in $M_n(K)$, giving the left multiplication by the basis elements~$e_i$, in the given basis. Assumes that $e_1= 1$, that the multiplication table is integral, and that $(\bigoplus_{i=1}^nK e_i,C)$ describes a central simple algebra over $K$. \bprog { mi = [0,-1,0, 0; 1, 0,0, 0; 0, 0,0,-1; 0, 0,1, 0]; mj = [0, 0,-1,0; 0, 0, 0,1; 1, 0, 0,0; 0,-1, 0,0]; mk = [0, 0, 0, 0; 0, 0,-1, 0; 0, 1, 0, 0; 1, 0, 0,-1]; A = alginit(nfinit(y), [matid(4), mi,mj,mk], 0); } @eprog represents (in a complicated way) the quaternion algebra $(-1,-1)_\Q$. See below for a simpler solution. \item (cyclic algebra) $B$ is an \kbd{rnf} structure attached to a cyclic number field extension $L/K$ of degree $d$, $C$ is a \typ{VEC} \kbd{[sigma,b]} with 2 components: \kbd{sigma} is a \typ{POLMOD} representing an automorphism generating $\text{Gal}(L/K)$, $b$ is an element in $K^*$. This represents the cyclic algebra~$(L/K,\sigma,b)$. Currently the element $b$ has to be integral. \bprog ? Q = nfinit(y); T = polcyclo(5, 'x); F = rnfinit(Q, T); ? A = alginit(F, [Mod(x^2,T), 3]); @eprog defines the cyclic algebra $(L/\Q, \sigma, 3)$, where $L = \Q(\zeta_5)$ and $\sigma:\zeta\mapsto\zeta^2$ generates $\text{Gal}(L/\Q)$. \item (quaternion algebra, special case of the above) $B$ is an \kbd{nf} structure attached to a number field $K$, $C = [a,b]$ is a vector containing two elements of $K^*$ with $a$ not a square in $K$, returns the quaternion algebra $(a,b)_K$. The variable $v$ (\kbd{'x} by default) must have higher priority than the variable of $K$\kbd{.pol} and is used to represent elements in the splitting field $L = K[x]/(x^2-a)$. \bprog ? Q = nfinit(y); A = alginit(Q, [-1,-1]); \\@com $(-1,-1)_\Q$ @eprog \item (algebra/$K$ defined by local Hasse invariants) $B$ is an \kbd{nf} structure attached to a number field $K$, $C = [d, [\kbd{PR},h_f], h_i]$ is a triple containing an integer $d > 1$, a pair $[\kbd{PR}, h_f]$ describing the Hasse invariants at finite places, and $h_i$ the Hasse invariants at archimedean (real) places. A local Hasse invariant belongs to $(1/d)\Z/\Z \subset \Q/\Z$, and is given either as a \typ{FRAC} (lift to $(1/d)\Z$), a \typ{INT} or \typ{INTMOD} modulo $d$ (lift to $\Z/d\Z$); a whole vector of local invariants can also be given as a \typ{VECSMALL}, whose entries are handled as \typ{INT}s. \kbd{PR} is a list of prime ideals (\kbd{prid} structures), and $h_f$ is a vector of the same length giving the local invariants at those maximal ideals. The invariants at infinite real places are indexed by the real roots $K$\kbd{.roots}: if the Archimedean place $v$ is attached to the $j$-th root, the value of $h_v$ is given by $h_i[j]$, must be $0$ or $1/2$ (or~$d/2$ modulo~$d$), and can be nonzero only if~$d$ is even. By class field theory, provided the local invariants $h_v$ sum to $0$, up to Brauer equivalence, there is a unique central simple algebra over $K$ with given local invariants and trivial invariant elsewhere. In particular, up to isomorphism, there is a unique such algebra $A$ of degree $d$. We realize $A$ as a cyclic algebra through class field theory. The variable $v$ (\kbd{'x} by default) must have higher priority than the variable of $K$\kbd{.pol} and is used to represent elements in the (cyclic) splitting field extension $L/K$ for $A$. \bprog ? nf = nfinit(y^2+1); ? PR = idealprimedec(nf,5); #PR %2 = 2 ? hi = []; ? hf = [PR, [1/3,-1/3]]; ? A = alginit(nf, [3,hf,hi]); ? algsplittingfield(A).pol %6 = x^3 - 21*x + 7 @eprog \item (matrix algebra, toy example) $B$ is an \kbd{nf} structure attached to a number field $K$, $C = d$ is a positive integer. Returns a cyclic algebra isomorphic to the matrix algebra $M_d(K)$. In all cases, this function computes a maximal order for the algebra by default, which may require a lot of time. Setting $maxord = 0$ prevents this computation. The pari object representing such an algebra $A$ is a \typ{VEC} with the following data: \item A splitting field $L$ of $A$ of the same degree over $K$ as $A$, in \kbd{rnfinit} format, accessed with \kbd{algsplittingfield}. \item The Hasse invariants at the real places of $K$, accessed with \kbd{alghassei}. \item The Hasse invariants of $A$ at the finite primes of $K$ that ramify in the natural order of $A$, accessed with \kbd{alghassef}. \item A basis of an order ${\cal O}_0$ expressed on the basis of the natural order, accessed with \kbd{algbasis}. \item A basis of the natural order expressed on the basis of ${\cal O}_0$, accessed with \kbd{alginvbasis}. \item The left multiplication table of ${\cal O}_0$ on the previous basis, accessed with \kbd{algmultable}. \item The characteristic of $A$ (always $0$), accessed with \kbd{algchar}. \item The absolute traces of the elements of the basis of ${\cal O}_0$. \item If $A$ was constructed as a cyclic algebra~$(L/K,\sigma,b)$ of degree $d$, a \typ{VEC} $[\sigma,\sigma^2,\dots,\sigma^{d-1}]$. The function \kbd{algaut} returns $\sigma$. \item If $A$ was constructed as a cyclic algebra~$(L/K,\sigma,b)$, the element $b$, accessed with \kbd{algb}. \item If $A$ was constructed with its multiplication table $mt$ over $K$, the \typ{VEC} of \typ{MAT} $mt$, accessed with \kbd{algrelmultable}. \item If $A$ was constructed with its multiplication table $mt$ over $K$, a \typ{VEC} with three components: a \typ{COL} representing an element of $A$ generating the splitting field $L$ as a maximal subfield of $A$, a \typ{MAT} representing an $L$-basis ${\cal B}$ of $A$ expressed on the $\Z$-basis of ${\cal O}_0$, and a \typ{MAT} representing the $\Z$-basis of ${\cal O}_0$ expressed on ${\cal B}$. This data is accessed with \kbd{algsplittingdata}.