t=x^4+24*x^2+585*x+1791;nf=initalg(t);A=nf[1]
%1 = x^4 - x^3 - 21*x^2 + 17*x + 133
\precision=18
   precision = 18 significant digits
gc=galoisconj(A)
%2 = [x, 0, 0, -1/7*x^3 + 5/7*x^2 + 1/7*x - 7]
\precision=28
   precision = 28 significant digits
aut=gc[4]
%3 = -1/7*x^3 + 5/7*x^2 + 1/7*x - 7
pd=primedec(nf,7)
%4 = [[7, [16, 9, 9, 6]~, 1, 1, [4, 5, 6, 6]~], [7, [22, 9, 9, 8]~, 1, 1, [6, 2, 3, 2]~], [7, [7, 8, 8, 7]~, 1, 1, [5, 4, 2, 0]~], [7, [16, 9, 9, 7]~, 1, 1, [7, 6, 5, 0]~]]
pr1=pd[1]
%5 = [7, [16, 9, 9, 6]~, 1, 1, [4, 5, 6, 6]~]
hp=idealmul(nf,idmat(4),pr1)
%6 = 
[7 4 5 2]

[0 1 0 0]

[0 0 1 0]

[0 0 0 1]

hp3=idealmul(nf,hp,idealmul(nf,hp,hp))
%7 = 
[343 333 243 212]

[0 1 0 0]

[0 0 1 0]

[0 0 0 1]

\\ or hp3=idealpow(nf,hp,3)
hpi3=[hp3,[0.,0.]];hr1=ideallllred(nf,hpi3,0)
%8 = [[7, 0, 0, 0; 0, 7, 4, 0; 0, 0, 1, 0; 0, 0, 0, 7], [-3.697938210704455638313629547 + 0.9243603728874249447769451135*i, -4.085702385516797582107781426 - 6.119327347678028563112407553*i]]
hr=hr1;for(j=1,3,hr=ideallllred(nf,hr,[1,5]);print(hr))
[[7, 0, 0, 3; 0, 7, 0, 2; 0, 0, 7, 1; 0, 0, 0, 1], [-9.715028692179768106836148748 + 6.798194746820829743793948618*i, -5.852252500262738334006673200 - 11.47797089909646825660161456*i]]
[[13, 0, 0, 9; 0, 13, 0, 6; 0, 0, 13, 10; 0, 0, 0, 1], [-16.58619806215247791794888080 + 2.694042513398309812747683043*i, -7.383762934917505174263486812 - 10.45101191803403649210895944*i]]
[[7, 0, 0, 0; 0, 7, 4, 0; 0, 0, 1, 0; 0, 0, 0, 7], [-24.19973145949210019912367024 + 3.611020561329781746363099598*i, -9.410987759017806406354512439 - 11.81024756880845373075996875*i]]
arch=hr[2]-hr1[2];l1=arch[1];l2=arch[2];
s=real(l1+l2)/4;v1=[l1,l2,conj(l1),conj(l2)]~/2-[s,s,s,s]~
%10 = [-3.794126968821658934140827421 + 1.343330094221178400793077242*i, 3.794126968821658934140827421 - 2.845460110565212583823780601*i, -3.794126968821658934140827421 - 1.343330094221178400793077242*i, 3.794126968821658934140827421 + 2.845460110565212583823780601*i]~
m1=nf[5][1];m=matrix(4,4,j,k,if(j<=2,m1[j,k],conj(m1[j-2,k])));
v=exp(v1);au=gauss(m,v)
%12 = [78.99999999999999999999999997 - 3.231174266897141933000000000 E-27*i, -23.99999999999999999999999999 + 2.274377438239753246000000000 E-27*i, -13.99999999999999999999999999 + 8.729688402265310287000000000 E-28*i, 14.99999999999999999999999999 - 6.874830489978194236000000000 E-28*i]~
vu=round(real(au))
%13 = [79, -24, -14, 15]~
u=mod(nf[7]*vu,A)
%14 = mod(15/7*x^3 - 68/7*x^2 - 78/7*x + 79, x^4 - x^3 - 21*x^2 + 17*x + 133)
norm(u)
%15 = 1
f1=factor(subst(char(u,x),x,x^2))
%16 = 
[x^8 + 85*x^6 + 1974*x^4 - 20*x^2 + 1 1]

f1=factor(subst(char(-u,x),x,x^2))
%17 = 
[x^4 + 13*x^3 + 42*x^2 - 8*x + 1 1]

[x^4 - 13*x^3 + 42*x^2 + 8*x + 1 1]

v=sqrt(-v)
%18 = [0.09334880794728281557422432616 - 0.1174246256960511585313775710*i, 6.593348807947282815574224325 + 0.9834500294804898052951007417*i, 0.09334880794728281557422432616 + 0.1174246256960511585313775710*i, 6.593348807947282815574224325 - 0.9834500294804898052951007417*i]~
au=gauss(m,v)
%19 = [-4.079490831526613599392561946 - 1.009741958230733871000000000 E-28*i, 0.9623261373956720055191059508 - 1.066114423796534538000000000 E-28*i, 1.007652680516380682499122746 - 3.637370167300105094000000000 E-29*i, -0.9733355227802970462076159307 + 4.296769056469202041000000000 E-29*i]~
v[1]=-v[1];v[3]=-v[3];au=gauss(m,v)
%20 = [-3.999999999999999999999999999 - 6.058451751247048377000000000 E-28*i, 1.000000000000000000000000000 - 5.330572120845317840000000000 E-29*i, 0.9999999999999999999999999999 + 5.456055251881480216000000000 E-29*i, -1.000000000000000000000000000 - 4.296769056469202041000000000 E-29*i]~
vu2=round(real(au))
%21 = [-4, 1, 1, -1]~
u2=mod(nf[7]*vu2,A)
%22 = mod(-1/7*x^3 + 5/7*x^2 + 1/7*x - 4, x^4 - x^3 - 21*x^2 + 17*x + 133)
q=polred2(f1[1,1])
%23 = 
[1 x - 1]

[1/7*x^3 + 2*x^2 + 7*x - 1/7 x^2 - x + 1]

[-x - 3 x^4 - x^3 - 21*x^2 + 17*x + 133]

[-4/7*x^3 - 7*x^2 - 21*x + 32/7 x^4 - 2*x^3 + 6*x^2 - 5*x + 133]

up2=modreverse(mod(q[3,1],f1[1,1]))
%24 = mod(-x - 3, x^4 - x^3 - 21*x^2 + 17*x + 133)
mod(subst(lift(up2),x,aut),A)
%25 = mod(1/7*x^3 - 5/7*x^2 - 1/7*x + 4, x^4 - x^3 - 21*x^2 + 17*x + 133)
r=f1[1,1]%(x^2+u);-coeff(r,0)/coeff(r,1)
%26 = mod(1/7*x^3 - 5/7*x^2 - 1/7*x + 4, x^4 - x^3 - 21*x^2 + 17*x + 133)
al=mod(x^2-9,A)
%27 = mod(x^2 - 9, x^4 - x^3 - 21*x^2 + 17*x + 133)
principalidele(nf,al)
%28 = [[-9; 0; 1; 0], [4.071180332419999163417166456 - 2.351990513650678045072327170*i, -0.1793600343093725532064609704 + 1.836799691135712939544530673*i]~]
for(j=1,4,print(j,": ",idealval(nf,al,pd[j])))
1: 1
2: 1
3: 0
4: 0
norm(al)
%29 = 49
pd12=idealmul(nf,pd[1],pd[2])
%30 = 
[7 4 5 0]

[0 1 0 0]

[0 0 1 0]

[0 0 0 7]

idealmul(nf,al,idmat(4))
%31 = 
[7 4 5 0]

[0 1 0 0]

[0 0 1 0]

[0 0 0 7]

setrand(1);v=buchgenfu(A,0.2,0.2,10)[,1]
%32 = [x^4 - x^3 - 21*x^2 + 17*x + 133, [0, 2], [18981, 7], [1, x, x^2, 1/7*x^3 + 2/7*x^2 + 6/7*x], [4, [4], [[7, 0, 0, 3; 0, 7, 0, 2; 0, 0, 7, 1; 0, 0, 0, 1]]], 3.794126968821658934140827422, 0.9101078280968849675715943997, [6, 1/7*x^3 - 5/7*x^2 - 8/7*x + 8], [1/7*x^3 + 2/7*x^2 - 8/7*x - 2], 149]
uf=mod(v[9][1],A)
%33 = mod(1/7*x^3 + 2/7*x^2 - 8/7*x - 2, x^4 - x^3 - 21*x^2 + 17*x + 133)
uu=mod(v[8][2],A)
%34 = mod(1/7*x^3 - 5/7*x^2 - 8/7*x + 8, x^4 - x^3 - 21*x^2 + 17*x + 133)
cu2=log(conjvec(u2));cuf=log(conjvec(uf));cuu=log(conjvec(uu));
lindep(real([cu2[1],cuf[1],cuu[1]]))
%36 = [0, 0, 1]
lindep([cu2[1],cuf[1],cuu[1],2*i*pi])
%37 = [1, 1, -1, 0]
u2*uf
%38 = mod(1/7*x^3 - 5/7*x^2 - 8/7*x + 8, x^4 - x^3 - 21*x^2 + 17*x + 133)
ru=nf[8]*vvector(4,j,coeff(v[8][2],j-1))
%39 = [8, -2, -1, 1]~
nf[7]*ru
%40 = 1/7*x^3 - 5/7*x^2 - 8/7*x + 8
setrand(1);bnf=buchinitfu(A,0.2,0.2,10);
bnf[8]
%42 = [[4, [4], [[7, 0, 0, 3; 0, 7, 0, 2; 0, 0, 7, 1; 0, 0, 0, 1]]], 3.794126968821658934140827422, 0.9101078280968849675715943997, [6, 1/7*x^3 - 5/7*x^2 - 8/7*x + 8], [1/7*x^3 + 2/7*x^2 - 8/7*x - 2], 149]
nf=bnf[7];
hp4=idealpow(nf,hp,4)
%44 = 
[2401 1705 586 555]

[0 1 0 0]

[0 0 1 0]

[0 0 0 1]

vis=isprincipal(bnf,hp4)
%45 = [[0]~, [143, -47, -20, 23]~, 140]
alpha=mod(nf[7]*vis[2],A)
%46 = mod(23/7*x^3 - 94/7*x^2 - 191/7*x + 143, x^4 - x^3 - 21*x^2 + 17*x + 133)
norm(alpha)
%47 = 2401
idealmul(nf,idmat(4),mat(vis[2]))
%48 = 
[2401 1705 586 555]

[0 1 0 0]

[0 0 1 0]

[0 0 0 1]

vit=isprincipal(bnf,hp)
%49 = [[3]~, [-143/343, 47/343, 20/343, -23/343]~, 128]
pp=isprincipal(bnf,pd12)
%50 = [[0]~, [3, -1, 0, 0]~, 143]
al2=mod(nf[7]*pp[2],A)
%51 = mod(-x + 3, x^4 - x^3 - 21*x^2 + 17*x + 133)
u3=al2/al
%52 = mod(x^3 - 4*x^2 - 9*x + 44, x^4 - x^3 - 21*x^2 + 17*x + 133)
char(u3,x)
%53 = x^4 - 8*x^3 + 42*x^2 + 13*x + 1
me=concat(bnf[3],[2,2]~)
%54 = 
[3.794126968821658934140827422 - 2.390527645417776146947291703*i 2]

[-3.794126968821658934140827422 - 2.390527645417776146947291703*i 2]

cu3=principalidele(nf,u3)[2]
%55 = [-3.794126968821658934140827422 - 5.987052764155005822286423985*i, 3.794126968821658934140827422 - 1.798262559368614837669566140*i]~
xc=gauss(real(me),real(cu3))
%56 = [-1.000000000000000000000000000,  0.E-48]~
xd=cu3-me*xc
%57 = [-2.736911063082516193000000000 E-48 - 8.377580409572781969233715688*i, 2.736911063082516193000000000 E-48 - 4.188790204786390984616857844*i]~
xu=principalidele(nf,uu)[2]
%58 = [7.646841173435770929738625909 E-57 + 2.094395102393195492308428922*i, -9.558551466794713662173282386 E-58 - 2.094395102393195492308428922*i]~
xd[1]/xu[1]
%59 = -4.000000000000000000000000000 + 1.306778759229928255000000000 E-48*i
isunit(bnf,u3)
%60 = [-1, mod(2, 6)]
uu^2/uf
%61 = mod(x^3 - 4*x^2 - 9*x + 44, x^4 - x^3 - 21*x^2 + 17*x + 133)
