#12194: Enhancing function field capabilities: collapse a tower of function 
field
extensions to a simple extension and more
-----------------------------------+----------------------------------------
   Reporter:  saraedum             |          Owner:  malb           
       Type:  enhancement          |         Status:  needs_info     
   Priority:  minor                |      Milestone:  sage-4.8       
  Component:  commutative algebra  |       Keywords:  function fields
Work_issues:                       |       Upstream:  N/A            
   Reviewer:                       |         Author:                 
     Merged:                       |   Dependencies:  #9054          
-----------------------------------+----------------------------------------
Changes (by sydahmad):

  * status:  new => needs_info


Comment:

 I know this still incomplete and at least needs more testing and more
 complete documentation besides housekeeping and other stuff. But I
 uploaded it, so I can have some inputs from people before taking further
 steps. The current codes passes all the tests but I had to apply quite few
 changes to it. Many of them, I think were routine but I would like to
 share some other one that I'm not sure was ok:

 1. The check for validity of construction of !FunctionField_polymod has
 been entirely moved to its constructor, as a result one can not check for
 the stuff like this:

 {{{
 sage: kx.<x> = FunctionField(FiniteField(5))
 sage: kz.<z> = FunctionField(FiniteField(7))
 sage: kzY.<Y> = kz[]
 sage: kxy.<y> = kx.extension(Y^2 - z^3 -1)
 sage: kxy.base_field() == kx
 False
 sage: kxy.base_field() == kz
 True
 }}}


 So I had to put the code for preventing above situation in "extension"
 function.

 2. Apparently (polynomial) generator functions do not accept lists of
 variables anymore raising "not hashable" error, so I changed all calls to
 these functions from names=[name] to names=(name). However the functions
 in the patches still accepts the variables in list, but I think we should
 change those as well.

 3. Few test examples were failing due to the strange reason that the
 example line had comments: like this

 {{{
 K.<x> = FunctionField(QQ) #optional x
 }}}


 I couldn't figure out what is the real cause so I just ommited these
 comments to pass the tests.

 4. In some cases the code computes different result from examples
 expectations, but in those cases, I found that the expectaion doesn't make
 much of sense. For example we have:

 {{{
 (Function field in y defined by -y^4 + x, Morphism of function fields
 defined by y^4 |--> x,  y |--> y, Morphism of function fields defined by y
 |--> y,  x |--> y^4)
 }}}


 But, I think a morphisim should take a generator to somewhere, not a power
 of it as in y!^4 |--> x. In these cases, I check the result of the code in
 Magma and it seemed to be correct (the field where isomorphics and the
 computed isomorphism was one of the possible isomorphism).

 5. There was confusion in order of isomorphisms which was stopping the
 code from working at the beginning. All functions were returning the
 From_self_to_simpleField first then its inverse, except for the
 make_simple. So, I changed the order of return vars in make_simple and
 everthing seems to work fine.

 That is for now and happy new year!

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12194#comment:2>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to