/* TAN.gp */ \\Number fields f = x^4 - 2*x^3 + x^2 - 5; polisirreducible(f) g = polcyclo(30) Mod(x,f)^5 lift(Mod(x,g)^15) polcompositum(x^2-2,x^2-3) polcompositum(x^4-2, x^4-2*x^2-1) L = polcompositum(x^3-2, x^3-2) nfrootsof1(L[2]) nfisisom(x^2-5, x^2-2) nfisisom(x^2-5, x^2-x-1) nfisincl(x^2-5,polcyclo(5)) nfisincl(x^2+5,polcyclo(5)) nfsubfields(x^6 + 40*x^3 + 1372,,1) nfsubfields(x^8 + 3*x^4 + 9, 2, 1) nfsubfieldsmax(x^8-4*x^5+7*x^4-x^2+x+1, 1) {h = x^5 + 7*x^4 + 22550*x^3 - 281686*x^2 - 85911*x + 3821551}; polredbest(h) K = nfinit(f); K.pol K.sign K.disc K.zk w = K.zk[2]; z = varhigher("z"); nffactor(K, subst(K.pol,x,z)) lift(nfroots(K, subst(K.pol,x,z))) \\Elements and ideals nfalgtobasis(K,x^2) nfbasistoalg(K,[1,1,1,1]~) nfeltmul(K,[1,-1,0,0]~,x^2) nfeltnorm(K,x-2) nfelttrace(K,[0,1,2,0]~) charpoly(nfbasistoalg(K,[1,2,0,0]~)) minpoly(nfbasistoalg(K,[1,2,0,0]~)) p11 = idealprimedec(K,11)[1]; p11.f modpr = nfmodprinit(K,p11,v); a = nfmodpr(K,x^2+x+1,modpr) a^11 a^121 nfmodprlift(K,a,modpr) dec = idealprimedec(K,5); #dec [pr1,pr2] = dec; pr1.f pr1.e pr1.gen pr2.f pr2.e idealhnf(K,pr1) a = idealhnf(K,[23, 10, -5, 1]~) idealnorm(K,a) idealpow(K,pr2,3) idealnorm(K,idealadd(K,a,pr2)) [n,b] = idealtwoelt(K,a) idealadd(K,n,b) == a idealval(K,a,pr2) idealismaximal(K,a) idealismaximal(K,idealhnf(K,pr1)) != 0 fa = idealfactor(K,a); #fa[,1] [fa[1,1].p, fa[1,1].f, fa[1,1].e, fa[1,2]] [fa[2,1].p, fa[2,1].f, fa[2,1].e, fa[2,2]] fa[2,1]==pr1 [fa[3,1].p, fa[3,1].f, fa[3,1].e, fa[3,2]] b = idealchinese(K,[pr1,2;pr2,1],[1,-1]); nfeltval(K,b-1,pr1) nfeltval(K,b+1,pr2) nfeltsign(K,b) c = idealchinese(K,[[pr1,2;pr2,1],[1,1]],[1,-1]); nfeltsign(K,c) \\Class groups and units K2 = bnfinit(K); K2.nf == K K2.no K2.reg lift(K2.tu) K2.tu[1]==nfrootsof1(K)[1] lift(K2.fu) L = bnfinit(x^3 - x^2 - 54*x + 169); L.cyc L.gen pr = idealprimedec(L,13)[1]; [dl,g] = bnfisprincipal(L,pr); dl g idealhnf(L,pr) == idealmul(L,g,idealfactorback(L,L.gen,dl)) [dl2,g2] = bnfisprincipal(L,idealpow(L,pr,2)); dl2 g2 idealhnf(L,g2) == idealpow(L,pr,2) u = [0,2,1]~; nfeltnorm(L,u) bnfisunit(L,u) lift(L.fu) lift(L.tu) M = bnfinit(x^2-3019); M.fu M = bnfinit(x^2-3019,1); lift(M.fu) D = 10^9 + 1273; N = bnfinit(x^2-D,1); bnfunits(N) N.fu P = idealprimedec(N,2)[1]; bnfisprincipal(N,P) bnfisprincipal(N,P,4) bnfisprincipal(N,P,3) S = idealprimedec(N,2); U = bnfunits(N,S); #U[1] bnfisunit(N,2) bnfisunit(N,2,U)