Zulip Chat Archive

Stream: new members

Topic: How to use lifts?


Fernando Chu (Jan 23 2025 at 15:22):

Hi, I'm trying to formalize that the grothendieck construction is prefibered, but I'm unsure how to prove the sorry in the base below, as a'.base should be equal to b; but I don't know how to obtain this from the data in the context.

import Mathlib.CategoryTheory.Bicategory.Grothendieck
import Mathlib.CategoryTheory.Bicategory.LocallyDiscrete
import Mathlib.CategoryTheory.Bicategory.Functor.Pseudofunctor
import Mathlib.CategoryTheory.FiberedCategory.Fibered

open CategoryTheory Functor Category Opposite Discrete Bicategory Pseudofunctor.Grothendieck

universe w v₁ v₂ v₃ u₁ u₂ u₃
variable {𝒮 : Type u₁} [Category.{v₁} 𝒮] {F : Pseudofunctor (LocallyDiscrete 𝒮ᵒᵖ) Cat.{v₂, u₂}}

instance isPreFibered : IsPreFibered (forget F) := by
  constructor; intro a b f
  exact
     { base := b, fiber := (F.map f.op.toLoc).obj a.fiber } ,
      { base := f , fiber := 𝟙 _ } ,
      { universal_property := by
          intro a' g
          exact  { base := sorry , fiber := sorry } , sorry
        cond := sorry } 

Any help on this, or feedback is appreciated.

Johan Commelin (Jan 25 2025 at 05:48):

Here's how I filled in the first sorry. Note that I added hfg to the intro line.
The have demonstrates one way to use it.

instance isPreFibered : IsPreFibered (forget F) := by
  constructor; intro a b f
  exact
     { base := b, fiber := (F.map f.op.toLoc).obj a.fiber } ,
      { base := f , fiber := 𝟙 _ } ,
      { universal_property := by
          rintro a' g hfg
          have := IsHomLift.fac (forget F) f g
          exact  { base := eqToHom <| IsHomLift.domain_eq (forget F) f g, fiber := sorry } , sorry
        cond := sorry } 

Fernando Chu (Jan 25 2025 at 06:10):

Great, thank you!


Last updated: May 02 2025 at 03:31 UTC