Zulip Chat Archive

Stream: new members

Topic: Terminal Object Identity


Klaus Gy (Jun 29 2025 at 19:58):

Hello, I have some proof like h.isTerminal : IsTerminal h.Ω₀ which I can use to construct an instance of HasTerminal C via h.isTerminal.hasTerminal. But it seems that ⊤_ C is not automatically equal to h.Ω₀. Is that by design? Is there an interface which returns both, an instance of HasTerminal C and a proof of ⊤_ C = h.Ω₀?

Kenny Lau (Jun 29 2025 at 19:59):

@Klaus Gy That is intentional, because terminal objects are not unique!

Klaus Gy (Jun 29 2025 at 20:00):

Yes, but since ⊤_ C is some concrete object, why can't I have it be the one I used to construct HasTerminal C?

Kenny Lau (Jun 29 2025 at 20:06):

#mathlib4 > Why are limits in category noncomputable?

Klaus Gy (Jun 29 2025 at 20:06):

Thanks!

Kenny Lau (Jun 29 2025 at 20:07):

I asked a different question, so I got a different answer, but I suspect it is still to prevent diamonds

Kenny Lau (Jun 29 2025 at 20:07):

basically, you made HasTerminal for category C, brilliant, but now I have another HasTerminal instance for C, and so now our two terminal objects are not defeq! (shocker!)

Kenny Lau (Jun 29 2025 at 20:08):

(cf. building product from pullback+terminal)

Klaus Gy (Jun 29 2025 at 20:08):

That's really helpful!


Last updated: Dec 20 2025 at 21:32 UTC