       Squares in Q[r], a question about algebraic numbers in mathematica

• To: mathgroup at smc.vnet.net
• Subject: [mg127632] [mg127632] Squares in Q[r], a question about algebraic numbers in mathematica
• From: Kent Holing <KHO at statoil.com>
• Date: Wed, 8 Aug 2012 21:37:00 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• Delivered-to: l-mathgroup@wolfram.com
• Delivered-to: mathgroup-newout@smc.vnet.net
• Delivered-to: mathgroup-newsend@smc.vnet.net

```The code below confuses me:
I thought that it should return for example (r^2+1)^2 when applied to (r^2+1)^2 whatever a is.
The code is supposed to do the following:
Given an element p (say polynomial) in Q[r] for a root r of a given polynomial in Q[x], the code should return p as q^2 for q the square root q of p as an element (polynomial) of Q[r] if q exists.
But, it does not! When applied to (r2+1)^2 it returns in fact (r^2/16+1)^2, using r/4 instead of r?

The code:
SqrtQr[a_,p_]:=Module[{f,q},
f=Check[ToNumberField[Sqrt[p//Expand],a],"non-square"]//Quiet;
q=AlgebraicNumberPolynomial[f,r]//Quiet;
Plus[q]^2];
sq[a_,p_]:=SqrtQr[a,p];

If
a=Root[x^4+5/8x^2+5/8x+205/256,x,1];
then
sq[a,(r^2+1)^2/.r->a] returns (r^2/16+1)^2, not (r^2+1)^2.