Zulip Chat Archive

Stream: Is there code for X?

Topic: category of objects with distinguished endomorphism


Johan Commelin (Oct 06 2021 at 19:47):

We have the arrow category. Do we also have the following construction? Let C be a category. Then build a new category whose objects are pairs (X, f), where X : C and f : X ⟶ X.
For C = Module R this construction spits out Module (polynomial R) (up to canonical equivalence).

Alex J. Best (Oct 06 2021 at 20:03):

This is https://mathoverflow.net/q/149007/23872 right? Not that it answers your question :upside_down:

Scott Morrison (Oct 06 2021 at 20:05):

No, we don't have it.

Scott Morrison (Oct 06 2021 at 20:07):

I did have the Karoubi envelope / idempotent completion (the same, but with f^2 = f), but I don't think it ever made it to mathlib.

Matthew Ballard (Oct 06 2021 at 20:31):

Can't you do something like functor.category single_obj \N C?

Adam Topaz (Oct 06 2021 at 21:14):

Looking at docs#category_theory.single_obj now, it looks like we're missing some construction like single_obj.lift of the following form

import category_theory.single_obj

open category_theory

variables {α : Type*} [monoid α] {C : Type*} [category C]

def category_theory.single_obj.lift {X : C} (f : α →* End X) : single_obj α  C :=
{ obj := λ _, X,
  map := λ i j g,
  match i, j, g with
  | punit.star, punit.star, g := f g
  end,
  map_id' := begin
    rintro ⟨⟩,
    exact f.map_one,
  end,
  map_comp' := begin
    rintro ⟨⟩ ⟨⟩ ⟨⟩ a b,
    apply f.map_mul,
  end }

Adam Topaz (Oct 06 2021 at 21:16):

If we combine that with docs#free_monoid.lift then that already get fairly close to what @Johan Commelin is looking for, I think.


Last updated: Dec 20 2023 at 11:08 UTC