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