#8335: Finite Field lattices for (pseudo-)Conway polynomials
------------------------------------------------+---------------------------
Reporter: roed | Owner: AlexGhitza
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-5.11
Component: algebra | Resolution:
Keywords: days49 | Work issues:
Report Upstream: N/A | Reviewers: Jean-Pierre
Flori, Luca De Feo
Authors: David Roe, Jean-Pierre Flori | Merged in:
Dependencies: #13894 | Stopgaps:
------------------------------------------------+---------------------------
Comment (by pbruin):
Replying to [comment:82 jpflori]:
> As far as functionalities are concerned, remember that Sage currently
does not support
> {{{
> K = GF(p^n)
> }}}
> So pseudo Conway polynomials never appear where they did not use to.
> If you issue the command line which is currently supported:
> {{{
> K.<a> = GF(p^n)
> }}}
> you will get the exact same behavior as before, unless he specifies
modulus="conway" and wants an extension of too large cardinality; maybe
that should be changed back.
Deciding what exactly `GF(p^n)` should mean (if it should mean anything at
all) is an important design decision, and it is not at all obvious that
Sage should make the same choice as Magma. Probably it is better not to
make this decision in this ticket, which already adds a lot of code.
Besides, letting an important change of behaviour depend whether the user
specify a variable name or not sounds like a risky idea.
> But what about plain Conway polynomials? Shouldn't that be moved as
well?
> Or do we consider they are standard enough to belong in the
FiniteFields() category?
They certainly belong to the general finite fields code, but not in any
specific implementation, in my opinion. In fact, the goal of the (by now
2) patches that I'm about to post is as follows:
- write a method `PolynomialRing_dense_finite_field.irreducible_element`
(somewhat surprisingly the class did not exist yet) to generate an
irreducible polynomial in that polynomial ring, allowing the user to
optionally specify an algorithm (Adleman-Lenstra, Conway, random,
lexicographically first, sparse);
- modify the `FiniteField` constructor to call this algorithm if the
`modulus` argument is a string or `None`, and always pass an actual
polynomial to the implementation class.
For backward compatibility (unpickling), the existing implementations will
continue to accept string values for the parameter `modulus`, but new ones
(such as the new PARI interface, see #12142) won't have to. The idea is
that the specific implementations should "concentrate on doing their job",
and things related to magic values of `modulus` should be in only one
place.
> But if they do it would be a waste not to use automagically the fact
that they provide simple embeddings into each other, wouldn't it?
As I see it, that should depend on whether you are in the category of all
finite fields or in the category of subfields of an algebraic closure of
'''F''',,''p'',,.
> (As you can guess, I'd prefer to get this merged first especially
because I hate seeing functional code bitrotting for years on trac, but I
get your point :))
Of course I understand that you want to see this finally appear in Sage,
and I agree that it is a shame that Sage could have had something like
this for years and still doesn't. I guess it will be easier if this big
ticket is split into smaller pieces. It tries to do many rather different
things at once: implement pseudo-Conway polynomials, adapt the
construction of finite fields to use these, implement automatic coercion
between the resulting fields, give a meaning to `GF(p^n)`, and in the
process add some new methods to polynomial elements. This makes it harder
than necessary to understand and to review.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8335#comment:83>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.