[sage-devel] Re: Finite fields coercion bug

```Hello,

Kwankyu Lee wrote:```
```
> On Thursday, October 13, 2016 at 9:59:50 PM UTC+2, David Roe wrote:
>
>   In order to create finite fields with arbitrary variable names that fit
>   into a lattice of fields, one possibility would be able to give an
>   algebraic closure explicitly as an argument to GF.  Is that what you're
>   suggesting?
>   sage: F = GF(3).algebraic_closure('custom')
>   sage: K9 = GF(9,'b',Fpbar=F)
>   sage: K81 = GF(81,'c',Fpbar=F)
>   sage: K81.has_coerce_map_from(K9)
>   True
>
> This currently works
> sage: K9 = GF(9,'b',prefix='custom')
> sage: K81 = GF(81,'c',prefix='custom')
> sage: K81.has_coerce_map_from(K9)
> True
> But the following betrays my expectation..
> sage: K=GF(3).algebraic_closure('custom')
> sage: K81.gen() in K
> False
> sage: K.has_coerce_map_from(K81)
> False

One reason why this doesn't work is that you gave the custom variable
names 'b' and 'c' to K9 and K81.  However, even when you omit this, it
doesn't work, which I think is a bug.

It is also possible to first construct the algebraic closure of F_p and
then construct other finite fields as subfields of this:

sage: K = GF(3).algebraic_closure('custom')
sage: K9, i9 = K.subfield(2)
sage: K.has_coerce_map_from(K9)
True

However, there is a similar problem here:

sage: K81, i81 = K.subfield(4)
sage: K81.has_coerce_map_from(K9)
False

This should return True.

Peter

--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email