Zulip Chat Archive
Stream: general
Topic: typeclass inference problems for `has_colimits`
Scott Morrison (Apr 06 2019 at 02:35):
Hi @Reid Barton, I am getting lots of strange errors that claim to be about typeclass inference for has_colimits. A typical example is:
failed to synthesize type class instance for
C : Type u,
𝒞 : category C,
_inst_1 : has_colimits C,
F G H : PresheafedSpace C,
α : F ⟶ G,
β : G ⟶ H,
x : ↥(F.X)
⊢ Π {J : Type v} {𝒥 : small_category J} (F : J ⥤ C), has_colimit F
Scott Morrison (Apr 06 2019 at 02:35):
(The goal is just the definition of has_colimits C.)
Scott Morrison (Apr 06 2019 at 02:35):
Do you have any idea what going on here?
Scott Morrison (Apr 06 2019 at 02:38):
The current place it is cropping up, very mysteriously is here, and for now blocking me working on stalks.
Scott Morrison (Apr 06 2019 at 02:38):
Is it some strange bug in Lean dealing with [class] attributes on function types?
Scott Morrison (Apr 06 2019 at 02:39):
Or maybe I'm doing something dumb.
Reid Barton (Apr 06 2019 at 03:09):
Yeah I've seen errors like this before. It seems that the @[class] def has_colimits := a Pi-type doesn't actually totally work, even though it seems to mostly work. It takes some slightly complicated setup for it to stop working and I never got to the bottom of it.
I think we just need to change each of the classes to be a structure
Reid Barton (Apr 06 2019 at 03:10):
with instances that specialize has_colimits -> has_colimits_of_shape -> has_colimit
Reid Barton (Apr 06 2019 at 03:10):
and you won't be able to go back the other way from Pi J, has_colimits_of_shape J to has_colimits automatically, but that probably doesn't really matter in practice
Scott Morrison (Apr 06 2019 at 04:34):
ok. I will try this out at some point.
Last updated: May 02 2025 at 03:31 UTC