\\ Q(x)/x^2 mt1 = [matid(2), [0,0; 1,0]]; alisassociative(mt1) al1 = altableinit(mt1); \\Matrices [*,*;0,*] in F2 mt2 = [[1,0,0;0,1,0;0,0,1],[0,0,0;1,0,1;0,0,0],[0,0,0;0,0,0;1,0,1]]; alisassociative(mt2,2) al2 = altableinit(mt2,2); aliscommutative(al1) aliscommutative(al2) alcenter(al2) algetdim(al1) algetdim(al2) algetchar(al1) algetchar(al2) algetmultable(al1) algetmultable(al2) x1 = [1,2]~; y1 = [-1,3]~; x2 = [1,1,0]~; y2 = [0,0,1]~; alneg(al1, x1) aladd(al1, x1, y1) alsub(al2, x2, y2) almul(al2, x2, y2) alsqr(al1, x1) alpow(al1, x1, 7) alinv(al2, x2) alisinv(al2, y2) alisinv(al1, x1, &ix1) ix1 almultable(al2, y2) altrace(al2, x2) alnorm(al2, x2) alcharpoly(al2, x2) alissemisimple(al1) alissemisimple(al2) rad1 = alradical(al1) rad2 = alradical(al2) al3 = alquotient(al1, rad1); alissemisimple(al3) al4 = alquotient(al2, rad2); alissemisimple(al4) alissimple(al3) alissimple(al4) dec = alsimpledec(al4); #dec \\quaternion algebra pol = y^2-5; nf = nfinit(pol); al5 = alinit(nf, [-1,y]); pol2 = algetsplitting(al5).pol; x5 = [x+y, 2*x]~*Mod(1,pol)*Mod(1,pol2); y5 = alalgtobasis(al5, x5) albasistoalg(al5, y5) altrace(al5, x5) alnorm(al5, x5) alcharpoly(al5, x5, t) \\cyclic algebra Q = nfinit(y); pol = polcyclo(5,'x) rnf = rnfinit(Q, pol); al6 = alinit(rnf, [Mod(x^2,pol), 3]); algetcenter(al6) algetdegree(al5) algetdegree(al6) algetdim(al6) algetabsdim(al6) algethassef(al5) algethassei(al5) algethassef(al6) algethassei(al6) \\algebra given by Hasse invariants pr3 = idealprimedec(nf, 3)[1]; pr11 = idealprimedec(nf, 11)[1]; hi = [0,0]; hf = [[pr3,pr11], [1/3, 2/3]]; al7 = alinit(nf, [3, hf, hi]); algethassef(al7) algethassei(al7)