Zulip Chat Archive
Stream: Is there code for X?
Topic: image of a field is a field
Edison Xie (Aug 04 2025 at 20:08):
Do we have that for f : F →+* R a ring homomorphism, if F is a field then f.range is also a field?
Eric Wieser (Aug 04 2025 at 20:24):
docs#RingHom.fieldRange is close but not what you want
Kevin Buzzard (Aug 04 2025 at 20:25):
It's not true if R=0
Aaron Liu (Aug 04 2025 at 20:26):
If R is nontrivial then
import Mathlib
example {R S : Type*} [Ring R] [Ring S] [Nontrivial S] (f : R →+* S) (hr : IsField R) : IsField f.range :=
have b : RingHom.ker f = ⊥ := (RingHom.ker_eq_bot_iff_eq_zero f).2 fun _ hx =>
let := hr.toField
isUnit_iff_ne_zero.not_left.1 fun hu => (hu.map f).ne_zero hx
(f.quotientKerEquivRange.symm.trans
((Ideal.quotEquivOfEq b).trans (RingEquiv.quotientBot R))).toMulEquiv.isField R hr
Edison Xie (Aug 04 2025 at 22:33):
Aaron Liu said:
If
Ris nontrivial thenimport Mathlib example {R S : Type*} [Ring R] [Ring S] [Nontrivial S] (f : R →+* S) (hr : IsField R) : IsField f.range := have b : RingHom.ker f = ⊥ := (RingHom.ker_eq_bot_iff_eq_zero f).2 fun _ hx => let := hr.toField isUnit_iff_ne_zero.not_left.1 fun hu => (hu.map f).ne_zero hx (f.quotientKerEquivRange.symm.trans ((Ideal.quotEquivOfEq b).trans (RingEquiv.quotientBot R))).toMulEquiv.isField R hr
If this is not a one-liner, does that mean we should have it in Mathlib?
Last updated: Dec 20 2025 at 21:32 UTC