Zulip Chat Archive

Stream: condensed mathematics

Topic: cokernels in normed_group/NormedGroup


Scott Morrison (May 15 2021 at 09:20):

It seems in normed_group/NormedGroup.lean that kernels are constructed using the limits API, and then cokernels are constructed "ad hoc", with most of the limits API for cokernels repeated by hand. Is there a good reason for this? If not, I can try to refactor.

Also, I noticed there coker.map and coker.map_lift_comm, which work in any category with cokernels and are not at all specific to normed groups. Again, unless I'm missing something I can replace these.

Johan Commelin (May 15 2021 at 09:24):

The problem is "bounded limits"

Johan Commelin (May 15 2021 at 09:24):

same for equalizers, we also do them by hand

Johan Commelin (May 15 2021 at 09:26):

The problems is, if D : J => NormedGroup is some diagram, and X is the limit of D, then I can pick any norm-increasing isom f : Y \to X and then Y is also a limit, but typically in an unhelpful way.

Johan Commelin (May 15 2021 at 09:26):

In particular, the natural map \iota : equalizer f g -> V_1 cannot be shown to be norm-nonincreasing, if we stick to the usual limits API

Johan Commelin (May 15 2021 at 09:26):

Similar issues with quotients.

Johan Commelin (May 15 2021 at 09:27):

Adam started working on a "bounded limits" API, but I don't know what the status is.

Scott Morrison (May 15 2021 at 10:06):

So should things like instance : limits.has_kernels.{u (u+1)} NormedGroup just be deleted?

Scott Morrison (May 15 2021 at 10:07):

And in any case, the ad hoc development of coker doesn't seem to account for what you say in any way.

Scott Morrison (May 15 2021 at 10:07):

It just repeats the standard setup for cokernel.

Scott Morrison (May 15 2021 at 10:07):

Is it also junk?

Johan Commelin (May 15 2021 at 10:08):

The kernels definitely aren't used.

Johan Commelin (May 15 2021 at 10:09):

Are you talking about

/-- The cokernel of a morphism of normed groups. -/
@[simp]
noncomputable
def coker (f : A  B) : NormedGroup := NormedGroup.of $
  quotient_add_group.quotient f.range

Scott Morrison (May 15 2021 at 10:09):

Oh, maybe I see: if you just picked any arbitrary categorical cokernel, you wouldn't be able to prove

lemma coker.π_norm_noninc {f : A  B} :
  (coker.π : B  coker f).norm_noninc :=

Johan Commelin (May 15 2021 at 10:09):

That one is certainly used.

Johan Commelin (May 15 2021 at 10:09):

Exactly, that silly lemma is crucial!

Scott Morrison (May 15 2021 at 10:10):

So are there (conventional) cokernels in the category of normed groups with non-increasing maps as morphisms?

Johan Commelin (May 15 2021 at 10:10):

Yes, because we use semi-normed groups

Scott Morrison (May 15 2021 at 10:11):

Okay, so my questions above become: can/should someone (e.g. me) refactor the ad hoc development of cokernels, replacing it with the standard limits API version of cokernels in that category?

Johan Commelin (May 15 2021 at 10:12):

I think the concensus was that instead of changing the category, we should extend the limits API

Johan Commelin (May 15 2021 at 10:13):

Because sometimes we want to take limits of maps whose norms are all bounded by C, and get a universal property for maps bounded by C', etc...

Johan Commelin (May 15 2021 at 10:13):

It's not clear to me that we can always assume C = 1 in the proof of 8.19

Johan Commelin (May 15 2021 at 10:14):

Also, to construct the system of complexes that we are interested in, we need to work with norm-increasing maps in intermediary steps.

Scott Morrison (May 15 2021 at 10:14):

Sure. Of course it has to be convenient to step outside the non-increasing morphism subcategory.

Scott Morrison (May 15 2021 at 10:15):

But I'd be happier if I knew a concrete problem that required something more general than (co)limits in the non-increasing map category.

Johan Commelin (May 15 2021 at 10:15):

So, I'm not saying we shouldn't add NormedGroupNormNoninc. But I just want to warn that we can't simply move the entire project over to that category.

Scott Morrison (May 15 2021 at 10:15):

Definitely.

Johan Commelin (May 15 2021 at 10:15):

The proof of 8.19 needs that more general thing.

Johan Commelin (May 15 2021 at 10:16):

But Adam understands the details a lot better than I do


Last updated: Dec 20 2023 at 11:08 UTC