Zulip Chat Archive
Stream: Is there code for X?
Topic: subsingleton (R →ₐ[R] A)
Kevin Buzzard (Jul 12 2022 at 16:15):
Do we have either of these?
import tactic
variables {R A : Type*} [comm_semiring R] [semiring A] [algebra R A]
-- I couldn't find this in mathlib
lemma alg_hom.eq_of_id (f : R →ₐ[R] A) : f = algebra.of_id R A :=
alg_hom.ext $ f.commutes
instance : subsingleton (R →ₐ[R] A) :=
subsingleton.intro $ λ f g, by { rw [alg_hom.eq_of_id f, alg_hom.eq_of_id g] }
Eric Wieser (Jul 12 2022 at 16:18):
Or maybe unique
instead of subsingleton
Eric Wieser (Jul 12 2022 at 16:19):
Probably if we have this it's not an instance because adding subsingleton
instances is basically forbidden at this point
Junyan Xu (Jul 12 2022 at 16:19):
docs#alg_hom.subsingleton not an instance for performance reasons ...
Junyan Xu (Jul 12 2022 at 16:20):
import algebra.algebra.subalgebra.basic
variables {R A : Type*} [comm_semiring R] [semiring A] [algebra R A]
local attribute [instance] alg_hom.subsingleton
instance x : subsingleton (R →ₐ[R] A) := by apply_instance
Kevin Buzzard (Jul 12 2022 at 16:21):
In our application we need eq_of_id
rather than the subsingleton instance. This is for proving that the identity morphism is formally smooth.
Andrew Yang (Jul 12 2022 at 16:25):
Is someone working on formally smooth morphisms? I just opened #15242 and #15243.
Andrew Yang (Jul 12 2022 at 16:25):
I could close them though. I don't need the results for now.
Andrew Yang (Jul 12 2022 at 16:27):
And #15244 is also related.
Kevin Buzzard (Jul 12 2022 at 16:29):
There's a conference going on this week and I got chatting to @Judith Ludwig and @Jackie Lang about making these definitions and proving a basic API for them.
Kevin Buzzard (Jul 12 2022 at 16:30):
Oh wow what an interesting coincidence! No we're just experimenting.
Last updated: Dec 20 2023 at 11:08 UTC