On Nov 28, 2008, at 4:15 AM, John Cremona wrote:
> On Nov 26, 8:31 pm, Robert Bradshaw <[EMAIL PROTECTED]>
> wrote:
>> On Nov 26, 2008, at 3:30 AM, Simon King wrote:
>>
>>
>>
>>
>>
>>> Dear Michael,
>>
>>> On Nov 26, 11:34 am, mabshoff <[EMAIL PROTECTED]
>>> dortmund.de> wrote:
>>>> please open a ticket. I would guess as you did that those two
>>>> related.
>>
>>> Done, it is # 4621.
>>
>>> By the way, the above problem appears even more directly:
>>> sage: F.<a>= NumberField(x^2-2)
>>> sage: 2 in QQbar
>>> True
>>> sage: F(2) in QQbar
>>> False
>>
>>> Although F has no canonical embedding into QQbar, my
>>> understanding is
>>> that there is a hopefully unique maximal subfield of F that does
>>> have
>>> a canonical embedding into QQbar.
>>
>> Into the mathematical \bar{Q}, yet. Sage's QQbar is \bar{Q} with a
>> choice of embedding into \C, and as F does not have a (chosen)
>> embedding into \C it doesn't have a chosen embedding into QQbar.
>>
>>> If this is correct, there could be a
>>> method F.max_subfield_coercing_into(QQbar), and since F(2) is in
>>> that
>>> subfield, one has a reason to expect `F(2) in QQbar` to be True.
>>
>> One *does* expect F(2) to be in QQbar, the same that one expects the
>> rational number 4/2 to be in ZZ, so I agree that the above is a bug.
>>
>
>
> sage: F.<a>=NumberField(x^2-2)
> sage: F.embeddings(QQbar)
>
> [
> Ring morphism:
> From: Number Field in a with defining polynomial x^2 - 2
> To: Algebraic Field
> Defn: a |--> -1.414213562373095?,
> Ring morphism:
> From: Number Field in a with defining polynomial x^2 - 2
> To: Algebraic Field
> Defn: a |--> 1.414213562373095?
> ]
>
> Is the problem that there is more than one embedding of F into QQbar?
Yep. Note that once that number field coercion code gets merged,
QuadraticField(2) will have a preferred embedding into CC, and hence
QQbar.
> Of course, the image of 2 will be the same with each:
>
> sage: twos = [f(2) for f in F.embeddings(QQbar)]
> sage: twos
> [2, 2]
> sage: twos[0] == twos[1]
> True
>
> But note that this crashes horribly:
> sage: twos[1] == 2
> True
> sage: twos[1] == F(2)
> ----------------------------------------------------------------------
> -----
> TypeError (etc)
Yep. One just needs to fix the __call__ method of QQbar.
- Robert
--~--~---------~--~----~------------~-------~--~----~
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-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---