Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't make ring homomorphism from ring of integers to a residue field #18865

Open
rharron mannequin opened this issue Jul 8, 2015 · 1 comment
Open

Can't make ring homomorphism from ring of integers to a residue field #18865

rharron mannequin opened this issue Jul 8, 2015 · 1 comment

Comments

@rharron
Copy link
Mannequin

rharron mannequin commented Jul 8, 2015

It doesn't seem possible to create a ring homomorphism from an order in a number field to a residue field of the number field. For instance:

sage: K.<a> = NumberField(x^2-2)
sage: OK = K.ring_of_integers()
sage: P = K.primes_above(3)[0]
sage: kappa = P.residue_field()
sage: abar = kappa.gen()
sage: im = [g.polynomial().change_ring(ZZ)(abar) for g in OK.gens()]
sage: iota = OK.hom(im)

raises "TypeError: images do not define a valid homomorphism".

Now, if instead you pass "check=False" to OK.hom, you of course get an iota, but you are unable to evaluate it:

sage: iota = OK.hom(im, check=False)
sage: iota(K.gen())

This raises "TypeError: unsupported operand parent(s) for '*': 'Rational Field' and 'Residue field in abar of Fractional ideal (3)'". I tried being clever and doing:

sage: iota(OK(K.gen()))

but got the same error. Tracing it back, when sage tries to evaluate iota at an element a, it calls a.im_gens(kappa, im) and this is totally wrong for this homset. Rather it is meant for homomorphisms between number fields. Basically, it looks like we need a function _im_gens_ for OrderElement types. It should take the element a written out in the basis given by OK.gens() and replace the basis elements with the element in im.

Component: number fields

Keywords: Ring of integers, homset, residue field

Issue created by migration from https://trac.sagemath.org/ticket/18865

@rharron rharron mannequin added this to the sage-6.8 milestone Jul 8, 2015
@rharron rharron mannequin added c: number fields labels Jul 8, 2015
@saraedum
Copy link
Member

saraedum commented Feb 1, 2022

comment:1

Actually, the following works:

iota = OK.hom(kappa)
iota(K.gen(0))
iota(OK.gen(0))

But you can't define the morphism explicitly.

@mkoeppe mkoeppe removed this from the sage-6.8 milestone Dec 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants