#20826: AlgebraicExtensionFunctor should include number field structure
-------------------------------------+-------------------------------------
Reporter: pbruin | Owner:
Type: defect | Status: needs_review
Priority: major | Milestone: sage-7.3
Component: number fields | Resolution:
Keywords: | Merged in:
Authors: Peter Bruin | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
u/pbruin/20826-AlgebraicExtensionFunctor_structure|
756f02a03a08b50d804cf61b3aa91533e8a8e9d8
Dependencies: | Stopgaps:
-------------------------------------+-------------------------------------
Description changed by pbruin:
Old description:
> If a number field is equipped with structural morphisms, these are lost
> when applying the functorial construction of the number field (via
> `NumberField.construction()` and `AlgebraicExtensionFunctor`), which
> happens for example in the construction of push-outs:
> {{{
> sage: R.<x> = ZZ[]
> sage: K.<a> = NumberField(x^2 - 3)
> sage: L0.<b> = K.change_names()
> sage: L0.structure()
> (Isomorphism given by variable name change map:
> From: Number Field in b with defining polynomial x^2 - 3
> To: Number Field in a with defining polynomial x^2 - 3,
> Isomorphism given by variable name change map:
> From: Number Field in a with defining polynomial x^2 - 3
> To: Number Field in b with defining polynomial x^2 - 3)
> sage: L1 = (b*x).parent().base_ring()
> sage: L1.structure()
> (Ring Coercion endomorphism of Number Field in b with defining polynomial
> x^2 - 3,
> Ring Coercion endomorphism of Number Field in b with defining polynomial
> x^2 - 3)
> }}}
> This currently does not cause too much trouble because the two fields
> (with and without the structural morphisms) are considered equal,
> although they are not identical:
> {{{
> sage: L1 is L0
> False
> sage: L1 == L0
> True
> }}}
> However, this becomes a nuisance when trying to implement "equality is
> identity" for number fields (to be done on a future ticket).
New description:
If a number field is equipped with structural morphisms, these are lost
when applying the functorial construction of the number field (via
`NumberField.construction()` and `AlgebraicExtensionFunctor`), which
happens for example in the construction of push-outs:
{{{
sage: R.<x> = ZZ[]
sage: K.<a> = NumberField(x^2 - 3)
sage: L0.<b> = K.change_names()
sage: L0.structure()
(Isomorphism given by variable name change map:
From: Number Field in b with defining polynomial x^2 - 3
To: Number Field in a with defining polynomial x^2 - 3,
Isomorphism given by variable name change map:
From: Number Field in a with defining polynomial x^2 - 3
To: Number Field in b with defining polynomial x^2 - 3)
sage: L1 = (b*x).parent().base_ring()
sage: L1.structure()
(Ring Coercion endomorphism of Number Field in b with defining polynomial
x^2 - 3,
Ring Coercion endomorphism of Number Field in b with defining polynomial
x^2 - 3)
}}}
This currently does not cause too much trouble because the two fields
(with and without the structural morphisms) are considered equal, although
they are not identical:
{{{
sage: L1 is L0
False
sage: L1 == L0
True
}}}
However, this becomes a nuisance when implementing "equality is identity"
for number fields on ticket #20827.
--
--
Ticket URL: <http://trac.sagemath.org/ticket/20826#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 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 https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.