-
-
Notifications
You must be signed in to change notification settings - Fork 697
Closed
Description
> Is the following output for b.gens() correct?
> sage: NumberField([x,x^2-3],'a')
> Number Field in a0 with defining polynomial x over its base field
> sage: b=NumberField([x,x^2-3],'a')
> sage: b.gens()
> (0, 0)
> To contrast:
> sage: c=NumberField([x^2-3, x^2-2],'a')
> sage: c.gens()
> (a0, a1)
> Also, this blows up:
> sage: c=NumberField([x^2-3, x],'a')
The problem here is that x is triggering a an error in the
irreducibility test, which is a little bizarre since of course x is
irreducible.
So the real issue is: why is x allowed to determine an absolute number
field (base Q) but not a relative one? My guess is that this is a
side-effect of the differing code being used to test irreducibility in
the two cases,
Personally, I think that trivial extensions should be allowed and
treated just as non-trivial ones. I have recently had to define
extensions of the ring ZZ, and find this awkward:
sage: R=ZZ.extension(x^2+5,'a')
sage: R.gens()
[1, a]
sage: S=ZZ.extension(x+5,'b')
sage: S.gens()
[1]
In the latter case I need S to remember the polynomial used to
generaite it and would expect its gens() to include (in this case) -5.
On the same topic, R and S above have no defining_polynomial() method.
I'll try to fix that if it looks easy.
CC: @ncalexan @craigcitro @orlitzky
Component: number fields
Author: Michael Orlitzky
Reviewer: Colton Pauderis
Merged: sage-4.8.alpha5
Issue created by migration from https://trac.sagemath.org/ticket/2220