Zulip Chat Archive

Stream: Is there code for X?

Topic: Extending a RingHom by adjoining new elements


Weiyi Wang (Oct 18 2025 at 19:55):

How would I write this definition? (Or is something like this already in Mathlib?)

import Mathlib

/-- Extend a ring hom from subring by adjoining a new element and specifying the corresponding value -/
def ringHomExtend {F G : Type*} [Ring F] [Ring G]
    (F' : Subring F) (f : F' →+* G) (x : F) (hx : x  F') (y : G) :
    Subring.closure (F'  {x}) →+* G := sorry

Aaron Liu (Oct 18 2025 at 20:04):

Does that always work?

Aaron Liu (Oct 18 2025 at 20:05):

What if the x satisfies equations over F that are not satisfied by y?

Weiyi Wang (Oct 18 2025 at 20:06):

That's a good question

Weiyi Wang (Oct 18 2025 at 20:08):

:melting_face: welp, that means I need to rethink the whole idea of the thing I wanted to prove

Weiyi Wang (Oct 18 2025 at 20:16):

I am aware that I am likely going to run into XY problem if I keep asking following this path, but just out of curiosity, let's say I add additional condition saying x is transcendental, would this work and how to write it?

Aaron Liu (Oct 18 2025 at 20:23):

If x is transcendental, then Subring.closure (F' ∪ {x}) is isomorphic to F'[X], and you can use the universal property of polynomials

Kevin Buzzard (Oct 19 2025 at 19:34):

In this generality (no commutativity, no domain assumption) I am not at all sure what "transcendental" even means.

Kevin Buzzard (Oct 19 2025 at 19:35):

Certainly what Aaron says is false because there's no reason x will commute with F'.

Aaron Liu (Oct 19 2025 at 19:47):

oh I guess if it's not a commutative ring then polynomials don't have the same universal property

Weiyi Wang (Oct 19 2025 at 19:50):

That's my bad. The case I am considering is commutative. This is some really early prototype code that by no means captures the correct generality


Last updated: Dec 20 2025 at 21:32 UTC