On Sunday, January 17, 2016 at 10:37:14 AM UTC-8, William wrote:
>
> Hi, 
>
> Does anybody understand number field embeddings 
>    
> http://doc.sagemath.org/html/en/reference/number_fields/sage/rings/number_field/number_field_morphisms.html
>  
>
> and whether the default I in SR (i.e., NumberField(x^2+1)) is equipped 
> with any embeddings.


I wouldn't claim I understand exactly what sage does there. I do know that 
in the coercion model, there is a slot available for pretty much any parent 
to have a coercion *to* some other structure (for the most part, coercions 
are stored on the target rather than on the domain). This is mainly to 
accommodate, e.g., numberfields to act as "subfields" of CC while still 
being able to have a shorter lifetime than CC.

The parent of I.pyobject() has one of those registered:

sage: CC.coerce_map_from(parent(I.pyobject()))
Composite map:
  From: Number Field in I with defining polynomial x^2 + 1
  To:   Complex Field with 53 bits of precision
  Defn:   Generic morphism:
          From: Number Field in I with defining polynomial x^2 + 1
          To:   Complex Lazy Field
          Defn: I -> 1*I
        then
          Conversion map:
          From: Complex Lazy Field
          To:   Complex Field with 53 bits of precision

whereas a "normal" imaginary quadratic field does not:

sage: CC.coerce_map_from(NumberField(x^2+1,"ii")) is None
True

This doesn't seem to be what triggers the path to SR, though:

sage: SR.coerce_map_from(parent(I.pyobject()))
Conversion via _symbolic_ method map:
  From: Number Field in I with defining polynomial x^2 + 1
  To:   Symbolic Ring

sage: SR.coerce_map_from(NumberField(x^2+1,"ii")) is None
True

so it seems the coercion for I.pyobject() is in fact registered on SR 
(hence nailing I.pyobject().parent() in memory, which isn't an issue)

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to