#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.


Reply via email to