File: Mathlib/Topology/Category/LightProfinite/AsLimit.lean

full_name: LightProfinite.fintypeDiagram
code: /-- The functor `ℕᵒᵖ ⥤ FintypeCat` whose limit is isomorphic to `S`. -/
abbrev fintypeDiagram : ℕᵒᵖ ⥤ FintypeCat 
goal: ℕᵒᵖ ⥤ FintypeCat

full_name: LightProfinite.diagram
code: /-- An abbreviation for `S.fintypeDiagram ⋙ FintypeCat.toProfinite`. -/
abbrev diagram : ℕᵒᵖ ⥤ LightProfinite 
goal: ℕᵒᵖ ⥤ LightProfinite

full_name: LightProfinite.asLimitConeAux
code: /--
A cone over `S.diagram` whose cone point is isomorphic to `S`.
(Auxiliary definition, use `S.asLimitCone` instead.)
-/
def asLimitConeAux : Cone S.diagram 
goal: CategoryTheory.Limits.Cone S.diagram

full_name: LightProfinite.isoMapCone
code: /-- An auxiliary isomorphism of cones used to prove that `S.asLimitConeAux` is a limit cone. -/
def isoMapCone : lightToProfinite.mapCone S.asLimitConeAux ≅ S.toLightDiagram.cone 
goal: lightToProfinite.mapCone S.asLimitConeAux ≅ S.toLightDiagram.cone

full_name: LightProfinite.asLimitAux
code: /--
`S.asLimitConeAux` is indeed a limit cone.
(Auxiliary definition, use `S.asLimit` instead.)
-/
def asLimitAux : IsLimit S.asLimitConeAux 
goal: CategoryTheory.Limits.IsLimit S.asLimitConeAux

full_name: LightProfinite.asLimitCone
code: /-- A cone over `S.diagram` whose cone point is `S`. -/
def asLimitCone : Cone S.diagram 
goal: CategoryTheory.Limits.Cone S.diagram

full_name: LightProfinite.asLimit
code: /-- `S.asLimitCone` is indeed a limit cone. -/
def asLimit : IsLimit S.asLimitCone 
goal: CategoryTheory.Limits.IsLimit S.asLimitCone

full_name: LightProfinite.lim
code: /-- A bundled version of `S.asLimitCone` and `S.asLimit`. -/
def lim : Limits.LimitCone S.diagram 
goal: CategoryTheory.Limits.LimitCone S.diagram

full_name: LightProfinite.proj
code: /-- The projection from `S` to the `n`th component of `S.diagram`. -/
abbrev proj (n : ℕ) : S ⟶ S.diagram.obj ⟨n⟩ 
goal: S ⟶ S.diagram.obj (Opposite.op n)

full_name: LightProfinite.map_liftedLimit
code: lemma map_liftedLimit {C D J : Type*} [Category C] [Category D] [Category J] {K : J ⥤ C}
    {F : C ⥤ D} [CreatesLimit K F] {c : Cone (K ⋙ F)} (t : IsLimit c) (n : J) :
    (liftedLimitMapsToOriginal t).inv.hom ≫ F.map ((liftLimit t).π.app n) = c.π.app n 
goal: (CategoryTheory.liftedLimitMapsToOriginal t).inv.hom ≫ F.map ((CategoryTheory.liftLimit t).π.app n) = c.π.app n

full_name: LightProfinite.lightToProfinite_map_proj_eq
code: lemma lightToProfinite_map_proj_eq (n : ℕ) : lightToProfinite.map (S.proj n) =
    (lightToProfinite.obj S).asLimitCone.π.app _ 
goal: lightToProfinite.map (S.proj n) =
  (lightToProfinite.obj S).asLimitCone.π.app
    ((CategoryTheory.Limits.sequentialFunctor (DiscreteQuotient ↑(lightToProfinite.obj S).toTop)).obj (Opposite.op n))

full_name: LightProfinite.proj_surjective
code: lemma proj_surjective (n : ℕ) : Function.Surjective (S.proj n) 
goal: Function.Surjective ⇑(S.proj n)

full_name: LightProfinite.component
code: /-- An abbreviation for the `n`th component of `S.diagram`. -/
abbrev component (n : ℕ) : LightProfinite 
goal: LightProfinite

full_name: LightProfinite.transitionMap
code: /-- The transition map from `S_{n+1}` to `S_n` in `S.diagram`. -/
abbrev transitionMap (n : ℕ) :  S.component (n+1) ⟶ S.component n 
goal: S.component (n + 1) ⟶ S.component n

full_name: LightProfinite.transitionMapLE
code: /-- The transition map from `S_m` to `S_n` in `S.diagram`, when `m ≤ n`. -/
abbrev transitionMapLE {n m : ℕ} (h : n ≤ m) : S.component m ⟶ S.component n 
goal: S.component m ⟶ S.component n

full_name: LightProfinite.proj_comp_transitionMap
code: lemma proj_comp_transitionMap (n : ℕ) :
    S.proj (n + 1) ≫ S.diagram.map ⟨homOfLE (Nat.le_succ _)⟩ = S.proj n 
goal: S.proj (n + 1) ≫ S.diagram.map (Opposite.op (CategoryTheory.homOfLE ⋯)) = S.proj n

full_name: LightProfinite.proj_comp_transitionMap'
code: lemma proj_comp_transitionMap' (n : ℕ) : S.transitionMap n ∘ S.proj (n + 1) = S.proj n 
goal: ⇑(S.transitionMap n) ∘ ⇑(S.proj (n + 1)) = ⇑(S.proj n)

full_name: LightProfinite.proj_comp_transitionMapLE
code: lemma proj_comp_transitionMapLE {n m : ℕ} (h : n ≤ m) :
    S.proj m ≫ S.diagram.map ⟨homOfLE h⟩ = S.proj n 
goal: S.proj m ≫ S.diagram.map (Opposite.op (CategoryTheory.homOfLE h)) = S.proj n

full_name: LightProfinite.proj_comp_transitionMapLE'
code: lemma proj_comp_transitionMapLE' {n m : ℕ} (h : n ≤ m) :
    S.transitionMapLE h ∘ S.proj m  = S.proj n 
goal: ⇑(S.transitionMapLE h) ∘ ⇑(S.proj m) = ⇑(S.proj n)

full_name: LightProfinite.surjective_transitionMap
code: lemma surjective_transitionMap (n : ℕ) : Function.Surjective (S.transitionMap n) 
goal: Function.Surjective ⇑(S.transitionMap n)

full_name: LightProfinite.surjective_transitionMapLE
code: lemma surjective_transitionMapLE {n m : ℕ} (h : n ≤ m) :
    Function.Surjective (S.transitionMapLE h) 
goal: Function.Surjective ⇑(S.transitionMapLE h)