Zulip Chat Archive

Stream: Is there code for X?

Topic: first isomorphism theorem for algebra morphisms


Antoine Chambert-Loir (Feb 27 2024 at 09:28):

I can't believe that there isn't a version of docs#quotientKerEquivRange for docs#AlgHom

example {R : Type u} [CommRing R]
  (S : Type v) [CommRing S] [Algebra R S]
  (T : Type w) [CommRing T] [Algebra R T]
  (f : S →ₐ[R] T) :
  (S  (RingHom.ker f.toRingHom)) ≃ₐ[R] f.range := by
  sorry

Antoine Chambert-Loir (Feb 27 2024 at 10:08):

Well, it's at one step from docs#Ideal.quotientKerAlgEquivOfSurjective

Riccardo Brasca (Feb 27 2024 at 10:34):

It indeed seems we are missing this version (we have the one using RingHom.range in that file so I would surprised if it were elsewhere).

Antoine Chambert-Loir (Feb 27 2024 at 10:34):

I'll do it, but this requires a few other lemmas…

Antoine Chambert-Loir (Feb 27 2024 at 10:35):

Relatedly, it is very annoying to have to type RingHom.ker f.toRingHom everytime one needs to consider the kernel of a morphism of algebras… is there a better way? Should one add AlgHom.ker, etc.

Riccardo Brasca (Feb 27 2024 at 10:41):

What do you mean? This works

import Mathlib

variable {R A B : Type*} [CommRing R] [Ring A] [Ring B] [Algebra R A] [Algebra R B]
variable (f : A →ₐ[R] B)

#check RingHom.ker f

Ruben Van de Velde (Feb 27 2024 at 10:41):

You can write RingHom.ker f, no?

Riccardo Brasca (Feb 27 2024 at 10:41):

I agree that writing f.ker would be nicer thought

Antoine Chambert-Loir (Feb 27 2024 at 10:41):

maybe — but I expect to be able to write f.ker.

Ruben Van de Velde (Feb 27 2024 at 10:43):

Yeah, this used to be possible in lean 3, but lean 4 is stricter on dot notation. Not sure if there's a chance to change that

Antoine Chambert-Loir (Feb 27 2024 at 10:43):

There are also inconsistencies in notation : compare docs#Ideal.quotientKerAlgEquivOfSurjective and docs#RingHom.quotientKerEquivOfSurjective
I believe the former should be in the AlgHom namespace and not in Ideal.AlgHom

Antoine Chambert-Loir (Feb 27 2024 at 10:43):

Ruben Van de Velde said:

Yeah, this used to be possible in lean 3, but lean 4 is stricter on dot notation. Not sure if there's a chance to change that

It suffices to add a definition of AlgHom.ker

Ruben Van de Velde (Feb 27 2024 at 10:44):

Nothing to see at docs#Ideal.AlgHom.quotientKerEquivRange

Antoine Chambert-Loir (Feb 27 2024 at 10:46):

(edited)

Antoine Chambert-Loir (Feb 27 2024 at 10:46):

(the missing function is precisely the one that is missing…)

Riccardo Brasca (Feb 27 2024 at 10:47):

I am not sure how to activate dot notation, currently we cannot write f.ker even if f is a RingHom.

Riccardo Brasca (Feb 27 2024 at 10:51):

Ah, this is just because RingHom.ker doesn't take a ring hom as argument (but a term of type RIngHomClass)

Eric Rodriguez (Feb 28 2024 at 14:39):

We do still have an issue asking for more extensible dot notation, right? I guess in theory this could be done via aliases right now but that seems pretty terrible

Eric Rodriguez (Feb 28 2024 at 14:40):

It'd be nice to be able to register specifically that RingHoms and AlgHoms can use RingHom dot notation, and if the name matches just try put it in even if it's not quite right' - on the other hand this is a bit at odds with other details of the implementation of dot notation


Last updated: May 02 2025 at 03:31 UTC