Changes between Version 1 and Version 2 of Ticket #11239


Ignore:
Timestamp:
04/23/11 08:11:14 (8 years ago)
Author:
fwclarke
Comment:

If we coerce directly from Fq to Fqq, we get a NotImplementedError, which is unfortunate ...

It is, however, difficult to see how this could be done, because there are, in this case, two embeddings of the smaller field in the larger, neither of which can be distinguished from the other:

sage: Fq.<a> = GF(5^2); Fqq.<b> = GF(5^4)
sage: Hom(Fq, Fqq).list()
[
Ring morphism:
  From: Finite Field in a of size 5^2
  To:   Finite Field in b of size 5^4
  Defn: a |--> 4*b^3 + 4*b^2 + 4*b + 3,
Ring morphism:
  From: Finite Field in a of size 5^2
  To:   Finite Field in b of size 5^4
  Defn: a |--> b^3 + b^2 + b + 3
]

since

sage: a.minimal_polynomial().roots(ring=F625, multiplicities=False)
[4*b^3 + 4*b^2 + 4*b + 3, b^3 + b^2 + b + 3]

As for the polynomial coercion, this is seriously damaged. Bogus results are produced even when the characteristics are different. I have tracked the problem down to the following, but haven't been able to get further.

sage: Fq.<a> = GF(2^4); Fqq.<b> = GF(3^7)
sage: PFq.<x> = Fq[]; PFqq.<y> = Fqq[]
sage: f = x^3 + (a^3 + 1)*x
sage: sage.rings.polynomial.polynomial_zz_pex.Polynomial_ZZ_pEX(PFqq, f)
y^3 + (b^3 + 1)*y

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #11239 – Description

    v1 v2  
    11Trying to coerce a polynomial over a finite field into a polynomial ring over a bigger field gives a bogus result:
     2
    23{{{
    34sage: Fq.<a> = GF(5^2)
     
    893*y^2 + (b + 4)*y + 2*b + 4
    910}}}
    10 In this example, Sage simply replaces every ‘a’ with ‘b’, but a is not b.  If we coerce directly from Fq to Fqq, we get a NotImplementedError, which is unfortunate but in any case not incorrect. ;).
     11In this example, Sage simply replaces every ‘a’ with ‘b’, but a is not b.  If we coerce directly from Fq to Fqq, we get a `NotImplementedError`, which is unfortunate but in any case not incorrect. ;).
     12
    1113{{{
    1214sage: Fqq(a)