#5598: [with patch, needs work] allow post-creation (pre-use) declaration of
coercions
----------------------+-----------------------------------------------------
Reporter: robertwb | Owner: robertwb
Type: defect | Status: new
Priority: major | Milestone: sage-4.0
Component: coercion | Keywords:
----------------------+-----------------------------------------------------
Comment(by ncalexan):
This is all kinds of awesome, and yet totally useless. For example, the
following fails:
{{{
x = GF(3)['x'].0
K.<a> = GF(3^2, 'a', modulus=x^2+1)
L.<b> = GF(3^2, 'b', modulus=x^2 + x - 1)
L_into_K = L.hom([a - 2], K, check=False)
K.register_coercion(L_into_K)
}}}
Why? Because the {{{a-2}}} has used the coercion mechanism for K. It
will be essentially impossible to construct morphisms that are
mathematically interesting without using coercion at some point.
What is to be done? I have no great ideas. Personally I would be happy
with a flag to {{{register_coercion}}} that "broke the links" of the
coercion graph, or even tried to {{{reset_cache()}}} on the
coercion_model. Notice that I tried this, but it doesn't work, because
{{{reset_cache}}} doesn't twiddle the flag on each parent. (That's a bug,
in my opinion.)
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5598#comment:10>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of
Reinventing the Wheel
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---