A few days ago, Nicola Sottocornola asked about a problem with field extensions:
> how can I define the prime sub-field of e in my example?
> gap> Indeterminate(Rationals,"x");;
> gap> p:=UnivariatePolynomial(Rationals,[5,0,-20,0,16],1);;
> gap> e:=FieldExtension(Rationals,p);
> gap> f:=PrimeField(e);
First, I have to apologize for this bug here. The code for algebraic
extensions is comparatively old (it was implemented to check some of the
new concepts of the type system in GAP 4) and provided a method for `Field'
which was not compatible with the (newer) formal definition, namely for
`Field' to return the smallest subfield containing the elements. This is
clearly a bug and will be corrected in the next bugfix. Thank you very much
for reporting it.
For the concrete problem, however, this might be of little help: At the
moment there is no functionality in GAP to construct subfields of algebraic
extensions as objects. (Your example will create an object with which nothing
can be done.)
To my knowledge there also are no plans to provide such functionality in the
Unless you are satisfied with a pure element arithmetic, you therefore might
be better off with a purely number theory system, such as PARI or KANT, both
of which are available on the web.
I'm sorry for not being able to provide more help.