Theorem: TopCat.partialSections.closed
File: Mathlib/Topology/Category/TopCat/Limits/Konig.lean

Proof steps:
state_before: J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
⊢ IsClosed (partialSections F H)
state_after: J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
this : partialSections F H = ⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
⊢ IsClosed (partialSections F H)
tactic: have :
    partialSections F H =
      ⋂ (f : FiniteDiagramArrow G) (_ : f ∈ H), {u | F.map f.2.2.2.2 (u f.1) = u f.2.1} := by
    ext1
    simp only [Set.mem_iInter, Set.mem_setOf_eq]
    rfl
state_before: J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
this : partialSections F H = ⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
⊢ IsClosed (partialSections F H)
state_after: J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
this : partialSections F H = ⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
⊢ IsClosed (⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst})
tactic: rw [this]
state_before: J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
this : partialSections F H = ⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
⊢ IsClosed (⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst})
state_after: case h
J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
this : partialSections F H = ⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
⊢ ∀ i ∈ fun i => i ∈ H.val, IsClosed {u | (F.map i.snd.snd.snd.snd) (u i.fst) = u i.snd.fst}
tactic: apply isClosed_biInter
state_before: case h
J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
this : partialSections F H = ⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
⊢ ∀ i ∈ fun i => i ∈ H.val, IsClosed {u | (F.map i.snd.snd.snd.snd) (u i.fst) = u i.snd.fst}
state_after: case h
J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
this : partialSections F H = ⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
f : TopCat.FiniteDiagramArrow G
a✝ : f ∈ fun i => i ∈ H.val
⊢ IsClosed {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
tactic: intro f _
state_before: case h
J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
this : partialSections F H = ⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
f : TopCat.FiniteDiagramArrow G
a✝ : f ∈ fun i => i ∈ H.val
⊢ IsClosed {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
state_after: case h
J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
this✝ : partialSections F H = ⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
f : TopCat.FiniteDiagramArrow G
a✝ : f ∈ fun i => i ∈ H.val
this : T2Space ((forget TopCat).obj (F.obj f.snd.fst))
⊢ IsClosed {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
tactic: have : T2Space ((forget TopCat).obj (F.obj f.snd.fst)) :=
    inferInstanceAs (T2Space (F.obj f.snd.fst))
state_before: case h
J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
this✝ : partialSections F H = ⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
f : TopCat.FiniteDiagramArrow G
a✝ : f ∈ fun i => i ∈ H.val
this : T2Space ((forget TopCat).obj (F.obj f.snd.fst))
⊢ IsClosed {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
state_after: case h.hf
J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
this✝ : partialSections F H = ⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
f : TopCat.FiniteDiagramArrow G
a✝ : f ∈ fun i => i ∈ H.val
this : T2Space ((forget TopCat).obj (F.obj f.snd.fst))
⊢ Continuous fun y => (F.map f.snd.snd.snd.snd) (y f.fst)

case h.hg
J : Type u
inst✝¹ : SmallCategory J
F : J ⥤ TopCat
inst✝ : ∀ (j : J), T2Space ↑(F.obj j)
G : Finset J
H : Finset (TopCat.FiniteDiagramArrow G)
this✝ : partialSections F H = ⋂ f ∈ H, {u | (F.map f.snd.snd.snd.snd) (u f.fst) = u f.snd.fst}
f : TopCat.FiniteDiagramArrow G
a✝ : f ∈ fun i => i ∈ H.val
this : T2Space ((forget TopCat).obj (F.obj f.snd.fst))
⊢ Continuous fun y => y f.snd.fst
tactic: apply isClosed_eq