topology.category.Top.limits.konig
⟷
Mathlib.Topology.Category.TopCat.Limits.Konig
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
(last sync)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
This file is already being ported at https://github.com/leanprover-community/mathlib4/pull/3487, but:
limits/basic.lean
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(first ported)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,7 +3,7 @@ Copyright (c) 2017 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Scott Morrison, Mario Carneiro, Andrew Yang
-/
-import Topology.Category.Top.Limits.Basic
+import Topology.Category.TopCat.Limits.Basic
#align_import topology.category.Top.limits.konig from "leanprover-community/mathlib"@"dbdf71cee7bb20367cb7e37279c08b0c218cf967"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -136,8 +136,9 @@ theorem nonempty_limitCone_of_compact_t2_cofiltered_system [IsCofilteredOrEmpty
Nonempty (TopCat.limitCone.{u} F).pt := by
classical
obtain ⟨u, hu⟩ :=
- IsCompact.nonempty_iInter_of_directed_nonempty_compact_closed (fun G => partial_sections F _)
- (partial_sections.directed F) (fun G => partial_sections.nonempty F _)
+ IsCompact.nonempty_iInter_of_directed_nonempty_isCompact_isClosed
+ (fun G => partial_sections F _) (partial_sections.directed F)
+ (fun G => partial_sections.nonempty F _)
(fun G => IsClosed.isCompact (partial_sections.closed F _)) fun G =>
partial_sections.closed F _
use u
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -70,12 +70,42 @@ def partialSections {J : Type u} [SmallCategory J] (F : J ⥤ TopCat.{u}) {G : F
theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempty (F.obj j)]
{G : Finset J} (H : Finset (FiniteDiagramArrow G)) : (partialSections F H).Nonempty := by
classical
+ cases isEmpty_or_nonempty J
+ · exact ⟨isEmptyElim, fun j => IsEmpty.elim' inferInstance j.1⟩
+ haveI : is_cofiltered J := ⟨⟩
+ use fun j : J =>
+ if hj : j ∈ G then F.map (is_cofiltered.inf_to G H hj) (h (is_cofiltered.inf G H)).some
+ else (h _).some
+ rintro ⟨X, Y, hX, hY, f⟩ hf
+ dsimp only
+ rwa [dif_pos hX, dif_pos hY, ← comp_app, ← F.map_comp, @is_cofiltered.inf_to_commutes _ _ _ G H]
#align Top.partial_sections.nonempty TopCat.partialSections.nonempty
-/
#print TopCat.partialSections.directed /-
theorem partialSections.directed :
- Directed Superset fun G : FiniteDiagram J => partialSections F G.2 := by classical
+ Directed Superset fun G : FiniteDiagram J => partialSections F G.2 := by
+ classical
+ intro A B
+ let ιA : finite_diagram_arrow A.1 → finite_diagram_arrow (A.1 ⊔ B.1) := fun f =>
+ ⟨f.1, f.2.1, Finset.mem_union_left _ f.2.2.1, Finset.mem_union_left _ f.2.2.2.1, f.2.2.2.2⟩
+ let ιB : finite_diagram_arrow B.1 → finite_diagram_arrow (A.1 ⊔ B.1) := fun f =>
+ ⟨f.1, f.2.1, Finset.mem_union_right _ f.2.2.1, Finset.mem_union_right _ f.2.2.2.1, f.2.2.2.2⟩
+ refine' ⟨⟨A.1 ⊔ B.1, A.2.image ιA ⊔ B.2.image ιB⟩, _, _⟩
+ · rintro u hu f hf
+ have : ιA f ∈ A.2.image ιA ⊔ B.2.image ιB :=
+ by
+ apply Finset.mem_union_left
+ rw [Finset.mem_image]
+ refine' ⟨f, hf, rfl⟩
+ exact hu this
+ · rintro u hu f hf
+ have : ιB f ∈ A.2.image ιA ⊔ B.2.image ιB :=
+ by
+ apply Finset.mem_union_right
+ rw [Finset.mem_image]
+ refine' ⟨f, hf, rfl⟩
+ exact hu this
#align Top.partial_sections.directed TopCat.partialSections.directed
-/
@@ -103,7 +133,20 @@ theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
-/
theorem nonempty_limitCone_of_compact_t2_cofiltered_system [IsCofilteredOrEmpty J]
[∀ j : J, Nonempty (F.obj j)] [∀ j : J, CompactSpace (F.obj j)] [∀ j : J, T2Space (F.obj j)] :
- Nonempty (TopCat.limitCone.{u} F).pt := by classical
+ Nonempty (TopCat.limitCone.{u} F).pt := by
+ classical
+ obtain ⟨u, hu⟩ :=
+ IsCompact.nonempty_iInter_of_directed_nonempty_compact_closed (fun G => partial_sections F _)
+ (partial_sections.directed F) (fun G => partial_sections.nonempty F _)
+ (fun G => IsClosed.isCompact (partial_sections.closed F _)) fun G =>
+ partial_sections.closed F _
+ use u
+ intro X Y f
+ let G : finite_diagram J :=
+ ⟨{X, Y},
+ {⟨X, Y, by simp only [true_or_iff, eq_self_iff_true, Finset.mem_insert], by
+ simp only [eq_self_iff_true, or_true_iff, Finset.mem_insert, Finset.mem_singleton], f⟩}⟩
+ exact hu _ ⟨G, rfl⟩ (Finset.mem_singleton_self _)
#align Top.nonempty_limit_cone_of_compact_t2_cofiltered_system TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -70,42 +70,12 @@ def partialSections {J : Type u} [SmallCategory J] (F : J ⥤ TopCat.{u}) {G : F
theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempty (F.obj j)]
{G : Finset J} (H : Finset (FiniteDiagramArrow G)) : (partialSections F H).Nonempty := by
classical
- cases isEmpty_or_nonempty J
- · exact ⟨isEmptyElim, fun j => IsEmpty.elim' inferInstance j.1⟩
- haveI : is_cofiltered J := ⟨⟩
- use fun j : J =>
- if hj : j ∈ G then F.map (is_cofiltered.inf_to G H hj) (h (is_cofiltered.inf G H)).some
- else (h _).some
- rintro ⟨X, Y, hX, hY, f⟩ hf
- dsimp only
- rwa [dif_pos hX, dif_pos hY, ← comp_app, ← F.map_comp, @is_cofiltered.inf_to_commutes _ _ _ G H]
#align Top.partial_sections.nonempty TopCat.partialSections.nonempty
-/
#print TopCat.partialSections.directed /-
theorem partialSections.directed :
- Directed Superset fun G : FiniteDiagram J => partialSections F G.2 := by
- classical
- intro A B
- let ιA : finite_diagram_arrow A.1 → finite_diagram_arrow (A.1 ⊔ B.1) := fun f =>
- ⟨f.1, f.2.1, Finset.mem_union_left _ f.2.2.1, Finset.mem_union_left _ f.2.2.2.1, f.2.2.2.2⟩
- let ιB : finite_diagram_arrow B.1 → finite_diagram_arrow (A.1 ⊔ B.1) := fun f =>
- ⟨f.1, f.2.1, Finset.mem_union_right _ f.2.2.1, Finset.mem_union_right _ f.2.2.2.1, f.2.2.2.2⟩
- refine' ⟨⟨A.1 ⊔ B.1, A.2.image ιA ⊔ B.2.image ιB⟩, _, _⟩
- · rintro u hu f hf
- have : ιA f ∈ A.2.image ιA ⊔ B.2.image ιB :=
- by
- apply Finset.mem_union_left
- rw [Finset.mem_image]
- refine' ⟨f, hf, rfl⟩
- exact hu this
- · rintro u hu f hf
- have : ιB f ∈ A.2.image ιA ⊔ B.2.image ιB :=
- by
- apply Finset.mem_union_right
- rw [Finset.mem_image]
- refine' ⟨f, hf, rfl⟩
- exact hu this
+ Directed Superset fun G : FiniteDiagram J => partialSections F G.2 := by classical
#align Top.partial_sections.directed TopCat.partialSections.directed
-/
@@ -133,20 +103,7 @@ theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
-/
theorem nonempty_limitCone_of_compact_t2_cofiltered_system [IsCofilteredOrEmpty J]
[∀ j : J, Nonempty (F.obj j)] [∀ j : J, CompactSpace (F.obj j)] [∀ j : J, T2Space (F.obj j)] :
- Nonempty (TopCat.limitCone.{u} F).pt := by
- classical
- obtain ⟨u, hu⟩ :=
- IsCompact.nonempty_iInter_of_directed_nonempty_compact_closed (fun G => partial_sections F _)
- (partial_sections.directed F) (fun G => partial_sections.nonempty F _)
- (fun G => IsClosed.isCompact (partial_sections.closed F _)) fun G =>
- partial_sections.closed F _
- use u
- intro X Y f
- let G : finite_diagram J :=
- ⟨{X, Y},
- {⟨X, Y, by simp only [true_or_iff, eq_self_iff_true, Finset.mem_insert], by
- simp only [eq_self_iff_true, or_true_iff, Finset.mem_insert, Finset.mem_singleton], f⟩}⟩
- exact hu _ ⟨G, rfl⟩ (Finset.mem_singleton_self _)
+ Nonempty (TopCat.limitCone.{u} F).pt := by classical
#align Top.nonempty_limit_cone_of_compact_t2_cofiltered_system TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2017 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Scott Morrison, Mario Carneiro, Andrew Yang
-/
-import Mathbin.Topology.Category.Top.Limits.Basic
+import Topology.Category.Top.Limits.Basic
#align_import topology.category.Top.limits.konig from "leanprover-community/mathlib"@"dbdf71cee7bb20367cb7e37279c08b0c218cf967"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2017 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Scott Morrison, Mario Carneiro, Andrew Yang
-
-! This file was ported from Lean 3 source module topology.category.Top.limits.konig
-! leanprover-community/mathlib commit dbdf71cee7bb20367cb7e37279c08b0c218cf967
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Topology.Category.Top.Limits.Basic
+#align_import topology.category.Top.limits.konig from "leanprover-community/mathlib"@"dbdf71cee7bb20367cb7e37279c08b0c218cf967"
+
/-!
# Topological Kőnig's lemma
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -59,6 +59,7 @@ private abbrev finite_diagram_arrow {J : Type u} [SmallCategory J] (G : Finset J
private abbrev finite_diagram (J : Type u) [SmallCategory J] :=
Σ G : Finset J, Finset (FiniteDiagramArrow G)
+#print TopCat.partialSections /-
/-- Partial sections of a cofiltered limit are sections when restricted to
a finite subset of objects and morphisms of `J`.
-/
@@ -66,7 +67,9 @@ def partialSections {J : Type u} [SmallCategory J] (F : J ⥤ TopCat.{u}) {G : F
(H : Finset (FiniteDiagramArrow G)) : Set (∀ j, F.obj j) :=
{u | ∀ {f : FiniteDiagramArrow G} (hf : f ∈ H), F.map f.2.2.2.2 (u f.1) = u f.2.1}
#align Top.partial_sections TopCat.partialSections
+-/
+#print TopCat.partialSections.nonempty /-
theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempty (F.obj j)]
{G : Finset J} (H : Finset (FiniteDiagramArrow G)) : (partialSections F H).Nonempty := by
classical
@@ -80,7 +83,9 @@ theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempt
dsimp only
rwa [dif_pos hX, dif_pos hY, ← comp_app, ← F.map_comp, @is_cofiltered.inf_to_commutes _ _ _ G H]
#align Top.partial_sections.nonempty TopCat.partialSections.nonempty
+-/
+#print TopCat.partialSections.directed /-
theorem partialSections.directed :
Directed Superset fun G : FiniteDiagram J => partialSections F G.2 := by
classical
@@ -105,7 +110,9 @@ theorem partialSections.directed :
refine' ⟨f, hf, rfl⟩
exact hu this
#align Top.partial_sections.directed TopCat.partialSections.directed
+-/
+#print TopCat.partialSections.closed /-
theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
(H : Finset (FiniteDiagramArrow G)) : IsClosed (partialSections F H) :=
by
@@ -122,7 +129,9 @@ theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
apply isClosed_eq
continuity
#align Top.partial_sections.closed TopCat.partialSections.closed
+-/
+#print TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system /-
/-- Cofiltered limits of nonempty compact Hausdorff spaces are nonempty topological spaces.
-/
theorem nonempty_limitCone_of_compact_t2_cofiltered_system [IsCofilteredOrEmpty J]
@@ -142,6 +151,7 @@ theorem nonempty_limitCone_of_compact_t2_cofiltered_system [IsCofilteredOrEmpty
simp only [eq_self_iff_true, or_true_iff, Finset.mem_insert, Finset.mem_singleton], f⟩}⟩
exact hu _ ⟨G, rfl⟩ (Finset.mem_singleton_self _)
#align Top.nonempty_limit_cone_of_compact_t2_cofiltered_system TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system
+-/
end TopologicalKonig
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -64,46 +64,46 @@ a finite subset of objects and morphisms of `J`.
-/
def partialSections {J : Type u} [SmallCategory J] (F : J ⥤ TopCat.{u}) {G : Finset J}
(H : Finset (FiniteDiagramArrow G)) : Set (∀ j, F.obj j) :=
- { u | ∀ {f : FiniteDiagramArrow G} (hf : f ∈ H), F.map f.2.2.2.2 (u f.1) = u f.2.1 }
+ {u | ∀ {f : FiniteDiagramArrow G} (hf : f ∈ H), F.map f.2.2.2.2 (u f.1) = u f.2.1}
#align Top.partial_sections TopCat.partialSections
theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempty (F.obj j)]
{G : Finset J} (H : Finset (FiniteDiagramArrow G)) : (partialSections F H).Nonempty := by
classical
- cases isEmpty_or_nonempty J
- · exact ⟨isEmptyElim, fun j => IsEmpty.elim' inferInstance j.1⟩
- haveI : is_cofiltered J := ⟨⟩
- use fun j : J =>
- if hj : j ∈ G then F.map (is_cofiltered.inf_to G H hj) (h (is_cofiltered.inf G H)).some
- else (h _).some
- rintro ⟨X, Y, hX, hY, f⟩ hf
- dsimp only
- rwa [dif_pos hX, dif_pos hY, ← comp_app, ← F.map_comp, @is_cofiltered.inf_to_commutes _ _ _ G H]
+ cases isEmpty_or_nonempty J
+ · exact ⟨isEmptyElim, fun j => IsEmpty.elim' inferInstance j.1⟩
+ haveI : is_cofiltered J := ⟨⟩
+ use fun j : J =>
+ if hj : j ∈ G then F.map (is_cofiltered.inf_to G H hj) (h (is_cofiltered.inf G H)).some
+ else (h _).some
+ rintro ⟨X, Y, hX, hY, f⟩ hf
+ dsimp only
+ rwa [dif_pos hX, dif_pos hY, ← comp_app, ← F.map_comp, @is_cofiltered.inf_to_commutes _ _ _ G H]
#align Top.partial_sections.nonempty TopCat.partialSections.nonempty
theorem partialSections.directed :
Directed Superset fun G : FiniteDiagram J => partialSections F G.2 := by
classical
- intro A B
- let ιA : finite_diagram_arrow A.1 → finite_diagram_arrow (A.1 ⊔ B.1) := fun f =>
- ⟨f.1, f.2.1, Finset.mem_union_left _ f.2.2.1, Finset.mem_union_left _ f.2.2.2.1, f.2.2.2.2⟩
- let ιB : finite_diagram_arrow B.1 → finite_diagram_arrow (A.1 ⊔ B.1) := fun f =>
- ⟨f.1, f.2.1, Finset.mem_union_right _ f.2.2.1, Finset.mem_union_right _ f.2.2.2.1, f.2.2.2.2⟩
- refine' ⟨⟨A.1 ⊔ B.1, A.2.image ιA ⊔ B.2.image ιB⟩, _, _⟩
- · rintro u hu f hf
- have : ιA f ∈ A.2.image ιA ⊔ B.2.image ιB :=
- by
- apply Finset.mem_union_left
- rw [Finset.mem_image]
- refine' ⟨f, hf, rfl⟩
- exact hu this
- · rintro u hu f hf
- have : ιB f ∈ A.2.image ιA ⊔ B.2.image ιB :=
- by
- apply Finset.mem_union_right
- rw [Finset.mem_image]
- refine' ⟨f, hf, rfl⟩
- exact hu this
+ intro A B
+ let ιA : finite_diagram_arrow A.1 → finite_diagram_arrow (A.1 ⊔ B.1) := fun f =>
+ ⟨f.1, f.2.1, Finset.mem_union_left _ f.2.2.1, Finset.mem_union_left _ f.2.2.2.1, f.2.2.2.2⟩
+ let ιB : finite_diagram_arrow B.1 → finite_diagram_arrow (A.1 ⊔ B.1) := fun f =>
+ ⟨f.1, f.2.1, Finset.mem_union_right _ f.2.2.1, Finset.mem_union_right _ f.2.2.2.1, f.2.2.2.2⟩
+ refine' ⟨⟨A.1 ⊔ B.1, A.2.image ιA ⊔ B.2.image ιB⟩, _, _⟩
+ · rintro u hu f hf
+ have : ιA f ∈ A.2.image ιA ⊔ B.2.image ιB :=
+ by
+ apply Finset.mem_union_left
+ rw [Finset.mem_image]
+ refine' ⟨f, hf, rfl⟩
+ exact hu this
+ · rintro u hu f hf
+ have : ιB f ∈ A.2.image ιA ⊔ B.2.image ιB :=
+ by
+ apply Finset.mem_union_right
+ rw [Finset.mem_image]
+ refine' ⟨f, hf, rfl⟩
+ exact hu this
#align Top.partial_sections.directed TopCat.partialSections.directed
theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
@@ -111,7 +111,7 @@ theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
by
have :
partial_sections F H =
- ⋂ (f : finite_diagram_arrow G) (hf : f ∈ H), { u | F.map f.2.2.2.2 (u f.1) = u f.2.1 } :=
+ ⋂ (f : finite_diagram_arrow G) (hf : 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]
@@ -129,18 +129,18 @@ theorem nonempty_limitCone_of_compact_t2_cofiltered_system [IsCofilteredOrEmpty
[∀ j : J, Nonempty (F.obj j)] [∀ j : J, CompactSpace (F.obj j)] [∀ j : J, T2Space (F.obj j)] :
Nonempty (TopCat.limitCone.{u} F).pt := by
classical
- obtain ⟨u, hu⟩ :=
- IsCompact.nonempty_iInter_of_directed_nonempty_compact_closed (fun G => partial_sections F _)
- (partial_sections.directed F) (fun G => partial_sections.nonempty F _)
- (fun G => IsClosed.isCompact (partial_sections.closed F _)) fun G =>
- partial_sections.closed F _
- use u
- intro X Y f
- let G : finite_diagram J :=
- ⟨{X, Y},
- {⟨X, Y, by simp only [true_or_iff, eq_self_iff_true, Finset.mem_insert], by
- simp only [eq_self_iff_true, or_true_iff, Finset.mem_insert, Finset.mem_singleton], f⟩}⟩
- exact hu _ ⟨G, rfl⟩ (Finset.mem_singleton_self _)
+ obtain ⟨u, hu⟩ :=
+ IsCompact.nonempty_iInter_of_directed_nonempty_compact_closed (fun G => partial_sections F _)
+ (partial_sections.directed F) (fun G => partial_sections.nonempty F _)
+ (fun G => IsClosed.isCompact (partial_sections.closed F _)) fun G =>
+ partial_sections.closed F _
+ use u
+ intro X Y f
+ let G : finite_diagram J :=
+ ⟨{X, Y},
+ {⟨X, Y, by simp only [true_or_iff, eq_self_iff_true, Finset.mem_insert], by
+ simp only [eq_self_iff_true, or_true_iff, Finset.mem_insert, Finset.mem_singleton], f⟩}⟩
+ exact hu _ ⟨G, rfl⟩ (Finset.mem_singleton_self _)
#align Top.nonempty_limit_cone_of_compact_t2_cofiltered_system TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system
end TopologicalKonig
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -54,10 +54,10 @@ variable {J : Type u} [SmallCategory J]
variable (F : J ⥤ TopCat.{u})
private abbrev finite_diagram_arrow {J : Type u} [SmallCategory J] (G : Finset J) :=
- Σ'(X Y : J)(mX : X ∈ G)(mY : Y ∈ G), X ⟶ Y
+ Σ' (X Y : J) (mX : X ∈ G) (mY : Y ∈ G), X ⟶ Y
private abbrev finite_diagram (J : Type u) [SmallCategory J] :=
- ΣG : Finset J, Finset (FiniteDiagramArrow G)
+ Σ G : Finset J, Finset (FiniteDiagramArrow G)
/-- Partial sections of a cofiltered limit are sections when restricted to
a finite subset of objects and morphisms of `J`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -59,12 +59,6 @@ private abbrev finite_diagram_arrow {J : Type u} [SmallCategory J] (G : Finset J
private abbrev finite_diagram (J : Type u) [SmallCategory J] :=
ΣG : Finset J, Finset (FiniteDiagramArrow G)
-/- warning: Top.partial_sections -> TopCat.partialSections is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u}} [_inst_2 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_2 TopCat.{u} TopCat.largeCategory.{u}) {G : Finset.{u} J}, (Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_2 G)) -> (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_2 TopCat.{u} TopCat.largeCategory.{u} F j)))
-but is expected to have type
- forall {J : Type.{u}} [_inst_2 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_2 TopCat.{u_1} instTopCatLargeCategory.{u_1}) {G : Finset.{u} J}, (Finset.{u} (_private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_2 G)) -> (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_2)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_2 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)))
-Case conversion may be inaccurate. Consider using '#align Top.partial_sections TopCat.partialSectionsₓ'. -/
/-- Partial sections of a cofiltered limit are sections when restricted to
a finite subset of objects and morphisms of `J`.
-/
@@ -73,12 +67,6 @@ def partialSections {J : Type u} [SmallCategory J] (F : J ⥤ TopCat.{u}) {G : F
{ u | ∀ {f : FiniteDiagramArrow G} (hf : f ∈ H), F.map f.2.2.2.2 (u f.1) = u f.2.1 }
#align Top.partial_sections TopCat.partialSections
-/- warning: Top.partial_sections.nonempty -> TopCat.partialSections.nonempty is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [h : forall (j : J), Nonempty.{succ u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] {G : Finset.{u} J} (H : Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_1 G)), Set.Nonempty.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.partialSections.{u} J _inst_1 F G H)
-but is expected to have type
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [h : forall (j : J), Nonempty.{succ u_1} (CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))] {G : Finset.{u} J} (H : Finset.{u} (_private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)), Set.Nonempty.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (TopCat.partialSections.{u, u_1} J _inst_1 F G H)
-Case conversion may be inaccurate. Consider using '#align Top.partial_sections.nonempty TopCat.partialSections.nonemptyₓ'. -/
theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempty (F.obj j)]
{G : Finset J} (H : Finset (FiniteDiagramArrow G)) : (partialSections F H).Nonempty := by
classical
@@ -93,12 +81,6 @@ theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempt
rwa [dif_pos hX, dif_pos hY, ← comp_app, ← F.map_comp, @is_cofiltered.inf_to_commutes _ _ _ G H]
#align Top.partial_sections.nonempty TopCat.partialSections.nonempty
-/- warning: Top.partial_sections.directed -> TopCat.partialSections.directed is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}), Directed.{u, succ u} (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))) (_Private.2511650485.FiniteDiagram.{u} J _inst_1) (Superset.{u} (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))) (Set.hasSubset.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)))) (fun (G : _Private.2511650485.FiniteDiagram.{u} J _inst_1) => TopCat.partialSections.{u} J _inst_1 F (Sigma.fst.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_1 G)) G) (Sigma.snd.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_1 G)) G))
-but is expected to have type
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}), Directed.{max u u_1, succ u} (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))) (_private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagram.{u} J _inst_1) (Superset.{max u u_1} (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))) (Set.instHasSubsetSet.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)))) (fun (G : _private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagram.{u} J _inst_1) => TopCat.partialSections.{u, u_1} J _inst_1 F (Sigma.fst.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)) G) (Sigma.snd.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)) G))
-Case conversion may be inaccurate. Consider using '#align Top.partial_sections.directed TopCat.partialSections.directedₓ'. -/
theorem partialSections.directed :
Directed Superset fun G : FiniteDiagram J => partialSections F G.2 := by
classical
@@ -124,12 +106,6 @@ theorem partialSections.directed :
exact hu this
#align Top.partial_sections.directed TopCat.partialSections.directed
-/- warning: Top.partial_sections.closed -> TopCat.partialSections.closed is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}) [_inst_2 : forall (j : J), T2Space.{u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] {G : Finset.{u} J} (H : Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_1 G)), IsClosed.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (Pi.topologicalSpace.{u, u} J (fun (j : J) => coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (fun (a : J) => TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F a))) (TopCat.partialSections.{u} J _inst_1 F G H)
-but is expected to have type
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}) [_inst_2 : forall (j : J), T2Space.{u_1} (CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (TopCat.topologicalSpace_coe.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))] {G : Finset.{u} J} (H : Finset.{u} (_private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)), IsClosed.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (Pi.topologicalSpace.{u, u_1} J (fun (j : J) => CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (fun (a : J) => TopCat.topologicalSpace_coe.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) a))) (TopCat.partialSections.{u, u_1} J _inst_1 F G H)
-Case conversion may be inaccurate. Consider using '#align Top.partial_sections.closed TopCat.partialSections.closedₓ'. -/
theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
(H : Finset (FiniteDiagramArrow G)) : IsClosed (partialSections F H) :=
by
@@ -147,12 +123,6 @@ theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
continuity
#align Top.partial_sections.closed TopCat.partialSections.closed
-/- warning: Top.nonempty_limit_cone_of_compact_t2_cofiltered_system -> TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [_inst_3 : forall (j : J), Nonempty.{succ u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] [_inst_4 : forall (j : J), CompactSpace.{u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] [_inst_5 : forall (j : J), T2Space.{u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))], Nonempty.{succ u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Limits.Cone.pt.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F (TopCat.limitCone.{u, u} J _inst_1 F)))
-but is expected to have type
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, max u u_1, u, succ (max u u_1)} J _inst_1 TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [_inst_3 : forall (j : J), Nonempty.{succ (max u u_1)} (CategoryTheory.Bundled.α.{max u u_1, max u u_1} TopologicalSpace.{max u u_1} (Prefunctor.obj.{succ u, succ (max u u_1), u, succ (max u u_1)} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{max u u_1} (CategoryTheory.CategoryStruct.toQuiver.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} (CategoryTheory.Category.toCategoryStruct.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1})) (CategoryTheory.Functor.toPrefunctor.{u, max u u_1, u, succ (max u u_1)} J _inst_1 TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1} F) j))] [_inst_4 : forall (j : J), CompactSpace.{max u u_1} (CategoryTheory.Bundled.α.{max u u_1, max u u_1} TopologicalSpace.{max u u_1} (Prefunctor.obj.{succ u, succ (max u u_1), u, succ (max u u_1)} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{max u u_1} (CategoryTheory.CategoryStruct.toQuiver.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} (CategoryTheory.Category.toCategoryStruct.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1})) (CategoryTheory.Functor.toPrefunctor.{u, max u u_1, u, succ (max u u_1)} J _inst_1 TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1} F) j)) (TopCat.topologicalSpace_coe.{max u u_1} (Prefunctor.obj.{succ u, succ (max u u_1), u, succ (max u u_1)} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{max u u_1} (CategoryTheory.CategoryStruct.toQuiver.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} (CategoryTheory.Category.toCategoryStruct.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1})) (CategoryTheory.Functor.toPrefunctor.{u, max u u_1, u, succ (max u u_1)} J _inst_1 TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1} F) j))] [_inst_5 : forall (j : J), T2Space.{max u u_1} (CategoryTheory.Bundled.α.{max u u_1, max u u_1} TopologicalSpace.{max u u_1} (Prefunctor.obj.{succ u, succ (max u u_1), u, succ (max u u_1)} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{max u u_1} (CategoryTheory.CategoryStruct.toQuiver.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} (CategoryTheory.Category.toCategoryStruct.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1})) (CategoryTheory.Functor.toPrefunctor.{u, max u u_1, u, succ (max u u_1)} J _inst_1 TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1} F) j)) (TopCat.topologicalSpace_coe.{max u u_1} (Prefunctor.obj.{succ u, succ (max u u_1), u, succ (max u u_1)} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{max u u_1} (CategoryTheory.CategoryStruct.toQuiver.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} (CategoryTheory.Category.toCategoryStruct.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1})) (CategoryTheory.Functor.toPrefunctor.{u, max u u_1, u, succ (max u u_1)} J _inst_1 TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1} F) j))], Nonempty.{max (succ u) (succ u_1)} (CategoryTheory.Bundled.α.{max u u_1, max u u_1} TopologicalSpace.{max u u_1} (CategoryTheory.Limits.Cone.pt.{u, max u u_1, u, max (succ u) (succ u_1)} J _inst_1 TopCatMax.{u, u_1} instTopCatLargeCategory.{max u_1 u} F (TopCat.limitCone.{u, u_1} J _inst_1 F)))
-Case conversion may be inaccurate. Consider using '#align Top.nonempty_limit_cone_of_compact_t2_cofiltered_system TopCat.nonempty_limitCone_of_compact_t2_cofiltered_systemₓ'. -/
/-- Cofiltered limits of nonempty compact Hausdorff spaces are nonempty topological spaces.
-/
theorem nonempty_limitCone_of_compact_t2_cofiltered_system [IsCofilteredOrEmpty J]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -55,11 +55,9 @@ variable (F : J ⥤ TopCat.{u})
private abbrev finite_diagram_arrow {J : Type u} [SmallCategory J] (G : Finset J) :=
Σ'(X Y : J)(mX : X ∈ G)(mY : Y ∈ G), X ⟶ Y
-#align Top.finite_diagram_arrow Top.finite_diagram_arrow
private abbrev finite_diagram (J : Type u) [SmallCategory J] :=
ΣG : Finset J, Finset (FiniteDiagramArrow G)
-#align Top.finite_diagram Top.finite_diagram
/- warning: Top.partial_sections -> TopCat.partialSections is a dubious translation:
lean 3 declaration is
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -65,7 +65,7 @@ private abbrev finite_diagram (J : Type u) [SmallCategory J] :=
lean 3 declaration is
forall {J : Type.{u}} [_inst_2 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_2 TopCat.{u} TopCat.largeCategory.{u}) {G : Finset.{u} J}, (Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_2 G)) -> (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_2 TopCat.{u} TopCat.largeCategory.{u} F j)))
but is expected to have type
- forall {J : Type.{u}} [_inst_2 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_2 TopCat.{u_1} instTopCatLargeCategory.{u_1}) {G : Finset.{u} J}, (Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_2 G)) -> (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_2)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_2 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)))
+ forall {J : Type.{u}} [_inst_2 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_2 TopCat.{u_1} instTopCatLargeCategory.{u_1}) {G : Finset.{u} J}, (Finset.{u} (_private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_2 G)) -> (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_2)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_2 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)))
Case conversion may be inaccurate. Consider using '#align Top.partial_sections TopCat.partialSectionsₓ'. -/
/-- Partial sections of a cofiltered limit are sections when restricted to
a finite subset of objects and morphisms of `J`.
@@ -79,7 +79,7 @@ def partialSections {J : Type u} [SmallCategory J] (F : J ⥤ TopCat.{u}) {G : F
lean 3 declaration is
forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [h : forall (j : J), Nonempty.{succ u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] {G : Finset.{u} J} (H : Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_1 G)), Set.Nonempty.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.partialSections.{u} J _inst_1 F G H)
but is expected to have type
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [h : forall (j : J), Nonempty.{succ u_1} (CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))] {G : Finset.{u} J} (H : Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)), Set.Nonempty.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (TopCat.partialSections.{u, u_1} J _inst_1 F G H)
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [h : forall (j : J), Nonempty.{succ u_1} (CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))] {G : Finset.{u} J} (H : Finset.{u} (_private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)), Set.Nonempty.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (TopCat.partialSections.{u, u_1} J _inst_1 F G H)
Case conversion may be inaccurate. Consider using '#align Top.partial_sections.nonempty TopCat.partialSections.nonemptyₓ'. -/
theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempty (F.obj j)]
{G : Finset J} (H : Finset (FiniteDiagramArrow G)) : (partialSections F H).Nonempty := by
@@ -99,7 +99,7 @@ theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempt
lean 3 declaration is
forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}), Directed.{u, succ u} (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))) (_Private.2511650485.FiniteDiagram.{u} J _inst_1) (Superset.{u} (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))) (Set.hasSubset.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)))) (fun (G : _Private.2511650485.FiniteDiagram.{u} J _inst_1) => TopCat.partialSections.{u} J _inst_1 F (Sigma.fst.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_1 G)) G) (Sigma.snd.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_1 G)) G))
but is expected to have type
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}), Directed.{max u u_1, succ u} (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))) (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagram.{u} J _inst_1) (Superset.{max u u_1} (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))) (Set.instHasSubsetSet.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)))) (fun (G : _private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagram.{u} J _inst_1) => TopCat.partialSections.{u, u_1} J _inst_1 F (Sigma.fst.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)) G) (Sigma.snd.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)) G))
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}), Directed.{max u u_1, succ u} (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))) (_private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagram.{u} J _inst_1) (Superset.{max u u_1} (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))) (Set.instHasSubsetSet.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)))) (fun (G : _private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagram.{u} J _inst_1) => TopCat.partialSections.{u, u_1} J _inst_1 F (Sigma.fst.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)) G) (Sigma.snd.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)) G))
Case conversion may be inaccurate. Consider using '#align Top.partial_sections.directed TopCat.partialSections.directedₓ'. -/
theorem partialSections.directed :
Directed Superset fun G : FiniteDiagram J => partialSections F G.2 := by
@@ -130,7 +130,7 @@ theorem partialSections.directed :
lean 3 declaration is
forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}) [_inst_2 : forall (j : J), T2Space.{u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] {G : Finset.{u} J} (H : Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_1 G)), IsClosed.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (Pi.topologicalSpace.{u, u} J (fun (j : J) => coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (fun (a : J) => TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F a))) (TopCat.partialSections.{u} J _inst_1 F G H)
but is expected to have type
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}) [_inst_2 : forall (j : J), T2Space.{u_1} (CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (TopCat.topologicalSpace_coe.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))] {G : Finset.{u} J} (H : Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)), IsClosed.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (Pi.topologicalSpace.{u, u_1} J (fun (j : J) => CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (fun (a : J) => TopCat.topologicalSpace_coe.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) a))) (TopCat.partialSections.{u, u_1} J _inst_1 F G H)
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}) [_inst_2 : forall (j : J), T2Space.{u_1} (CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (TopCat.topologicalSpace_coe.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))] {G : Finset.{u} J} (H : Finset.{u} (_private.Mathlib.Topology.Category.TopCat.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)), IsClosed.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (Pi.topologicalSpace.{u, u_1} J (fun (j : J) => CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (fun (a : J) => TopCat.topologicalSpace_coe.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) a))) (TopCat.partialSections.{u, u_1} J _inst_1 F G H)
Case conversion may be inaccurate. Consider using '#align Top.partial_sections.closed TopCat.partialSections.closedₓ'. -/
theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
(H : Finset (FiniteDiagramArrow G)) : IsClosed (partialSections F H) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Patrick Massot, Scott Morrison, Mario Carneiro, Andrew Yang
! This file was ported from Lean 3 source module topology.category.Top.limits.konig
-! leanprover-community/mathlib commit 178a32653e369dce2da68dc6b2694e385d484ef1
+! leanprover-community/mathlib commit dbdf71cee7bb20367cb7e37279c08b0c218cf967
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.Topology.Category.Top.Limits.Basic
/-!
# Topological Kőnig's lemma
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
A topological version of Kőnig's lemma is that the inverse limit of nonempty compact Hausdorff
spaces is nonempty. (Note: this can be generalized further to inverse limits of nonempty compact
T0 spaces, where all the maps are closed maps; see [Stone1979] --- however there is an erratum
@@ -60,7 +63,7 @@ private abbrev finite_diagram (J : Type u) [SmallCategory J] :=
/- warning: Top.partial_sections -> TopCat.partialSections is a dubious translation:
lean 3 declaration is
- forall {J : Type.{u}} [_inst_2 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_2 TopCat.{u} TopCat.largeCategory.{u}) {G : Finset.{u} J}, (Finset.{u} (_Private.2248226883.FiniteDiagramArrow.{u} J _inst_2 G)) -> (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_2 TopCat.{u} TopCat.largeCategory.{u} F j)))
+ forall {J : Type.{u}} [_inst_2 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_2 TopCat.{u} TopCat.largeCategory.{u}) {G : Finset.{u} J}, (Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_2 G)) -> (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_2 TopCat.{u} TopCat.largeCategory.{u} F j)))
but is expected to have type
forall {J : Type.{u}} [_inst_2 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_2 TopCat.{u_1} instTopCatLargeCategory.{u_1}) {G : Finset.{u} J}, (Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_2 G)) -> (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_2)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_2 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)))
Case conversion may be inaccurate. Consider using '#align Top.partial_sections TopCat.partialSectionsₓ'. -/
@@ -74,7 +77,7 @@ def partialSections {J : Type u} [SmallCategory J] (F : J ⥤ TopCat.{u}) {G : F
/- warning: Top.partial_sections.nonempty -> TopCat.partialSections.nonempty is a dubious translation:
lean 3 declaration is
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [h : forall (j : J), Nonempty.{succ u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] {G : Finset.{u} J} (H : Finset.{u} (_Private.2248226883.FiniteDiagramArrow.{u} J _inst_1 G)), Set.Nonempty.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.partialSections.{u} J _inst_1 F G H)
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [h : forall (j : J), Nonempty.{succ u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] {G : Finset.{u} J} (H : Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_1 G)), Set.Nonempty.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.partialSections.{u} J _inst_1 F G H)
but is expected to have type
forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [h : forall (j : J), Nonempty.{succ u_1} (CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))] {G : Finset.{u} J} (H : Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)), Set.Nonempty.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (TopCat.partialSections.{u, u_1} J _inst_1 F G H)
Case conversion may be inaccurate. Consider using '#align Top.partial_sections.nonempty TopCat.partialSections.nonemptyₓ'. -/
@@ -94,7 +97,7 @@ theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempt
/- warning: Top.partial_sections.directed -> TopCat.partialSections.directed is a dubious translation:
lean 3 declaration is
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}), Directed.{u, succ u} (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))) (_Private.858651669.FiniteDiagram.{u} J _inst_1) (Superset.{u} (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))) (Set.hasSubset.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)))) (fun (G : _Private.858651669.FiniteDiagram.{u} J _inst_1) => TopCat.partialSections.{u} J _inst_1 F (Sigma.fst.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_Private.2248226883.FiniteDiagramArrow.{u} J _inst_1 G)) G) (Sigma.snd.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_Private.2248226883.FiniteDiagramArrow.{u} J _inst_1 G)) G))
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}), Directed.{u, succ u} (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))) (_Private.2511650485.FiniteDiagram.{u} J _inst_1) (Superset.{u} (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))) (Set.hasSubset.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)))) (fun (G : _Private.2511650485.FiniteDiagram.{u} J _inst_1) => TopCat.partialSections.{u} J _inst_1 F (Sigma.fst.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_1 G)) G) (Sigma.snd.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_1 G)) G))
but is expected to have type
forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}), Directed.{max u u_1, succ u} (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))) (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagram.{u} J _inst_1) (Superset.{max u u_1} (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))) (Set.instHasSubsetSet.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)))) (fun (G : _private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagram.{u} J _inst_1) => TopCat.partialSections.{u, u_1} J _inst_1 F (Sigma.fst.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)) G) (Sigma.snd.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)) G))
Case conversion may be inaccurate. Consider using '#align Top.partial_sections.directed TopCat.partialSections.directedₓ'. -/
@@ -125,7 +128,7 @@ theorem partialSections.directed :
/- warning: Top.partial_sections.closed -> TopCat.partialSections.closed is a dubious translation:
lean 3 declaration is
- forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}) [_inst_2 : forall (j : J), T2Space.{u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] {G : Finset.{u} J} (H : Finset.{u} (_Private.2248226883.FiniteDiagramArrow.{u} J _inst_1 G)), IsClosed.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (Pi.topologicalSpace.{u, u} J (fun (j : J) => coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (fun (a : J) => TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F a))) (TopCat.partialSections.{u} J _inst_1 F G H)
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}) [_inst_2 : forall (j : J), T2Space.{u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] {G : Finset.{u} J} (H : Finset.{u} (_Private.1896892465.FiniteDiagramArrow.{u} J _inst_1 G)), IsClosed.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (Pi.topologicalSpace.{u, u} J (fun (j : J) => coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (fun (a : J) => TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F a))) (TopCat.partialSections.{u} J _inst_1 F G H)
but is expected to have type
forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}) [_inst_2 : forall (j : J), T2Space.{u_1} (CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (TopCat.topologicalSpace_coe.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))] {G : Finset.{u} J} (H : Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)), IsClosed.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (Pi.topologicalSpace.{u, u_1} J (fun (j : J) => CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (fun (a : J) => TopCat.topologicalSpace_coe.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) a))) (TopCat.partialSections.{u, u_1} J _inst_1 F G H)
Case conversion may be inaccurate. Consider using '#align Top.partial_sections.closed TopCat.partialSections.closedₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -137,10 +137,10 @@ theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
⋂ (f : finite_diagram_arrow G) (hf : f ∈ H), { u | F.map f.2.2.2.2 (u f.1) = u f.2.1 } :=
by
ext1
- simp only [Set.mem_interᵢ, Set.mem_setOf_eq]
+ simp only [Set.mem_iInter, Set.mem_setOf_eq]
rfl
rw [this]
- apply isClosed_binterᵢ
+ apply isClosed_biInter
intro f hf
apply isClosed_eq
continuity
@@ -159,7 +159,7 @@ theorem nonempty_limitCone_of_compact_t2_cofiltered_system [IsCofilteredOrEmpty
Nonempty (TopCat.limitCone.{u} F).pt := by
classical
obtain ⟨u, hu⟩ :=
- IsCompact.nonempty_interᵢ_of_directed_nonempty_compact_closed (fun G => partial_sections F _)
+ IsCompact.nonempty_iInter_of_directed_nonempty_compact_closed (fun G => partial_sections F _)
(partial_sections.directed F) (fun G => partial_sections.nonempty F _)
(fun G => IsClosed.isCompact (partial_sections.closed F _)) fun G =>
partial_sections.closed F _
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -58,6 +58,12 @@ private abbrev finite_diagram (J : Type u) [SmallCategory J] :=
ΣG : Finset J, Finset (FiniteDiagramArrow G)
#align Top.finite_diagram Top.finite_diagram
+/- warning: Top.partial_sections -> TopCat.partialSections is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u}} [_inst_2 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_2 TopCat.{u} TopCat.largeCategory.{u}) {G : Finset.{u} J}, (Finset.{u} (_Private.2248226883.FiniteDiagramArrow.{u} J _inst_2 G)) -> (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_2 TopCat.{u} TopCat.largeCategory.{u} F j)))
+but is expected to have type
+ forall {J : Type.{u}} [_inst_2 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_2 TopCat.{u_1} instTopCatLargeCategory.{u_1}) {G : Finset.{u} J}, (Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_2 G)) -> (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_2)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_2 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)))
+Case conversion may be inaccurate. Consider using '#align Top.partial_sections TopCat.partialSectionsₓ'. -/
/-- Partial sections of a cofiltered limit are sections when restricted to
a finite subset of objects and morphisms of `J`.
-/
@@ -66,6 +72,12 @@ def partialSections {J : Type u} [SmallCategory J] (F : J ⥤ TopCat.{u}) {G : F
{ u | ∀ {f : FiniteDiagramArrow G} (hf : f ∈ H), F.map f.2.2.2.2 (u f.1) = u f.2.1 }
#align Top.partial_sections TopCat.partialSections
+/- warning: Top.partial_sections.nonempty -> TopCat.partialSections.nonempty is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [h : forall (j : J), Nonempty.{succ u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] {G : Finset.{u} J} (H : Finset.{u} (_Private.2248226883.FiniteDiagramArrow.{u} J _inst_1 G)), Set.Nonempty.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.partialSections.{u} J _inst_1 F G H)
+but is expected to have type
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [h : forall (j : J), Nonempty.{succ u_1} (CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))] {G : Finset.{u} J} (H : Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)), Set.Nonempty.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (TopCat.partialSections.{u, u_1} J _inst_1 F G H)
+Case conversion may be inaccurate. Consider using '#align Top.partial_sections.nonempty TopCat.partialSections.nonemptyₓ'. -/
theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempty (F.obj j)]
{G : Finset J} (H : Finset (FiniteDiagramArrow G)) : (partialSections F H).Nonempty := by
classical
@@ -80,6 +92,12 @@ theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempt
rwa [dif_pos hX, dif_pos hY, ← comp_app, ← F.map_comp, @is_cofiltered.inf_to_commutes _ _ _ G H]
#align Top.partial_sections.nonempty TopCat.partialSections.nonempty
+/- warning: Top.partial_sections.directed -> TopCat.partialSections.directed is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}), Directed.{u, succ u} (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))) (_Private.858651669.FiniteDiagram.{u} J _inst_1) (Superset.{u} (Set.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))) (Set.hasSubset.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)))) (fun (G : _Private.858651669.FiniteDiagram.{u} J _inst_1) => TopCat.partialSections.{u} J _inst_1 F (Sigma.fst.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_Private.2248226883.FiniteDiagramArrow.{u} J _inst_1 G)) G) (Sigma.snd.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_Private.2248226883.FiniteDiagramArrow.{u} J _inst_1 G)) G))
+but is expected to have type
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}), Directed.{max u u_1, succ u} (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))) (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagram.{u} J _inst_1) (Superset.{max u u_1} (Set.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))) (Set.instHasSubsetSet.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)))) (fun (G : _private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagram.{u} J _inst_1) => TopCat.partialSections.{u, u_1} J _inst_1 F (Sigma.fst.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)) G) (Sigma.snd.{u, u} (Finset.{u} J) (fun (G : Finset.{u} J) => Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)) G))
+Case conversion may be inaccurate. Consider using '#align Top.partial_sections.directed TopCat.partialSections.directedₓ'. -/
theorem partialSections.directed :
Directed Superset fun G : FiniteDiagram J => partialSections F G.2 := by
classical
@@ -105,6 +123,12 @@ theorem partialSections.directed :
exact hu this
#align Top.partial_sections.directed TopCat.partialSections.directed
+/- warning: Top.partial_sections.closed -> TopCat.partialSections.closed is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}) [_inst_2 : forall (j : J), T2Space.{u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] {G : Finset.{u} J} (H : Finset.{u} (_Private.2248226883.FiniteDiagramArrow.{u} J _inst_1 G)), IsClosed.{u} (forall (j : J), coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (Pi.topologicalSpace.{u, u} J (fun (j : J) => coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (fun (a : J) => TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F a))) (TopCat.partialSections.{u} J _inst_1 F G H)
+but is expected to have type
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1}) [_inst_2 : forall (j : J), T2Space.{u_1} (CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (TopCat.topologicalSpace_coe.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j))] {G : Finset.{u} J} (H : Finset.{u} (_private.Mathlib.Topology.Category.Top.Limits.Konig.0.TopCat.FiniteDiagramArrow.{u} J _inst_1 G)), IsClosed.{max u u_1} (forall (j : J), CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (Pi.topologicalSpace.{u, u_1} J (fun (j : J) => CategoryTheory.Bundled.α.{u_1, u_1} TopologicalSpace.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) j)) (fun (a : J) => TopCat.topologicalSpace_coe.{u_1} (Prefunctor.obj.{succ u, succ u_1, u, succ u_1} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{u_1} (CategoryTheory.CategoryStruct.toQuiver.{u_1, succ u_1} TopCat.{u_1} (CategoryTheory.Category.toCategoryStruct.{u_1, succ u_1} TopCat.{u_1} instTopCatLargeCategory.{u_1})) (CategoryTheory.Functor.toPrefunctor.{u, u_1, u, succ u_1} J _inst_1 TopCat.{u_1} instTopCatLargeCategory.{u_1} F) a))) (TopCat.partialSections.{u, u_1} J _inst_1 F G H)
+Case conversion may be inaccurate. Consider using '#align Top.partial_sections.closed TopCat.partialSections.closedₓ'. -/
theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
(H : Finset (FiniteDiagramArrow G)) : IsClosed (partialSections F H) :=
by
@@ -122,6 +146,12 @@ theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
continuity
#align Top.partial_sections.closed TopCat.partialSections.closed
+/- warning: Top.nonempty_limit_cone_of_compact_t2_cofiltered_system -> TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [_inst_3 : forall (j : J), Nonempty.{succ u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] [_inst_4 : forall (j : J), CompactSpace.{u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))] [_inst_5 : forall (j : J), T2Space.{u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j)) (TopCat.topologicalSpace.{u} (CategoryTheory.Functor.obj.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F j))], Nonempty.{succ u} (coeSort.{succ (succ u), succ (succ u)} TopCat.{u} Type.{u} TopCat.hasCoeToSort.{u} (CategoryTheory.Limits.Cone.pt.{u, u, u, succ u} J _inst_1 TopCat.{u} TopCat.largeCategory.{u} F (TopCat.limitCone.{u, u} J _inst_1 F)))
+but is expected to have type
+ forall {J : Type.{u}} [_inst_1 : CategoryTheory.SmallCategory.{u} J] (F : CategoryTheory.Functor.{u, max u u_1, u, succ (max u u_1)} J _inst_1 TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1}) [_inst_2 : CategoryTheory.IsCofilteredOrEmpty.{u, u} J _inst_1] [_inst_3 : forall (j : J), Nonempty.{succ (max u u_1)} (CategoryTheory.Bundled.α.{max u u_1, max u u_1} TopologicalSpace.{max u u_1} (Prefunctor.obj.{succ u, succ (max u u_1), u, succ (max u u_1)} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{max u u_1} (CategoryTheory.CategoryStruct.toQuiver.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} (CategoryTheory.Category.toCategoryStruct.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1})) (CategoryTheory.Functor.toPrefunctor.{u, max u u_1, u, succ (max u u_1)} J _inst_1 TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1} F) j))] [_inst_4 : forall (j : J), CompactSpace.{max u u_1} (CategoryTheory.Bundled.α.{max u u_1, max u u_1} TopologicalSpace.{max u u_1} (Prefunctor.obj.{succ u, succ (max u u_1), u, succ (max u u_1)} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{max u u_1} (CategoryTheory.CategoryStruct.toQuiver.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} (CategoryTheory.Category.toCategoryStruct.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1})) (CategoryTheory.Functor.toPrefunctor.{u, max u u_1, u, succ (max u u_1)} J _inst_1 TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1} F) j)) (TopCat.topologicalSpace_coe.{max u u_1} (Prefunctor.obj.{succ u, succ (max u u_1), u, succ (max u u_1)} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{max u u_1} (CategoryTheory.CategoryStruct.toQuiver.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} (CategoryTheory.Category.toCategoryStruct.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1})) (CategoryTheory.Functor.toPrefunctor.{u, max u u_1, u, succ (max u u_1)} J _inst_1 TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1} F) j))] [_inst_5 : forall (j : J), T2Space.{max u u_1} (CategoryTheory.Bundled.α.{max u u_1, max u u_1} TopologicalSpace.{max u u_1} (Prefunctor.obj.{succ u, succ (max u u_1), u, succ (max u u_1)} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{max u u_1} (CategoryTheory.CategoryStruct.toQuiver.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} (CategoryTheory.Category.toCategoryStruct.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1})) (CategoryTheory.Functor.toPrefunctor.{u, max u u_1, u, succ (max u u_1)} J _inst_1 TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1} F) j)) (TopCat.topologicalSpace_coe.{max u u_1} (Prefunctor.obj.{succ u, succ (max u u_1), u, succ (max u u_1)} J (CategoryTheory.CategoryStruct.toQuiver.{u, u} J (CategoryTheory.Category.toCategoryStruct.{u, u} J _inst_1)) TopCat.{max u u_1} (CategoryTheory.CategoryStruct.toQuiver.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} (CategoryTheory.Category.toCategoryStruct.{max u u_1, succ (max u u_1)} TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1})) (CategoryTheory.Functor.toPrefunctor.{u, max u u_1, u, succ (max u u_1)} J _inst_1 TopCat.{max u u_1} instTopCatLargeCategory.{max u u_1} F) j))], Nonempty.{max (succ u) (succ u_1)} (CategoryTheory.Bundled.α.{max u u_1, max u u_1} TopologicalSpace.{max u u_1} (CategoryTheory.Limits.Cone.pt.{u, max u u_1, u, max (succ u) (succ u_1)} J _inst_1 TopCatMax.{u, u_1} instTopCatLargeCategory.{max u_1 u} F (TopCat.limitCone.{u, u_1} J _inst_1 F)))
+Case conversion may be inaccurate. Consider using '#align Top.nonempty_limit_cone_of_compact_t2_cofiltered_system TopCat.nonempty_limitCone_of_compact_t2_cofiltered_systemₓ'. -/
/-- Cofiltered limits of nonempty compact Hausdorff spaces are nonempty topological spaces.
-/
theorem nonempty_limitCone_of_compact_t2_cofiltered_system [IsCofilteredOrEmpty J]
mathlib commit https://github.com/leanprover-community/mathlib/commit/9b2b58d6b14b895b2f375108e765cb47de71aebd
In this PR, it is shown that if a functor G : J ⥤ C
to a concrete category has a limit and that forget C
is corepresentable, then G ⋙ forget C).sections
is small. As the corepresentability property holds in many concrete categories (e.g. groups, abelian groups) and that we already know since #11420 that limits exist under the smallness assumption in such categories, then this lemma may be used in future PR in order to show that usual forgetful functors preserve all limits (regardless of universe assumptions). This shall be convenient in the development of sheaves of modules.
In this PR, universes assumptions have also been generalized in the file Limits.Yoneda
. In order to do this, a small refactor of the file Limits.Types
was necessary. This introduces bijections like compCoyonedaSectionsEquiv (F : J ⥤ C) (X : C) : (F ⋙ coyoneda.obj (op X)).sections ≃ ((const J).obj X ⟶ F)
with general universe parameters. In order to reduce imports in Limits.Yoneda
, part of the file Limits.Types
was moved to a new file Limits.TypesFiltered
.
Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>
@@ -3,6 +3,7 @@ Copyright (c) 2021 Kyle Miller. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kyle Miller
-/
+import Mathlib.CategoryTheory.Filtered.Basic
import Mathlib.Topology.Category.TopCat.Limits.Basic
#align_import topology.category.Top.limits.konig from "leanprover-community/mathlib"@"dbdf71cee7bb20367cb7e37279c08b0c218cf967"
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -37,7 +37,7 @@ open CategoryTheory
open CategoryTheory.Limits
--- porting note: changed universe order as `v` is usually passed explicitly
+-- Porting note: changed universe order as `v` is usually passed explicitly
universe v u w
noncomputable section
@@ -48,7 +48,7 @@ section TopologicalKonig
variable {J : Type u} [SmallCategory J]
--- porting note: generalized `F` to land in `v` not `u`
+-- Porting note: generalized `F` to land in `v` not `u`
variable (F : J ⥤ TopCat.{v})
private abbrev FiniteDiagramArrow {J : Type u} [SmallCategory J] (G : Finset J) :=
@@ -60,7 +60,7 @@ private abbrev FiniteDiagram (J : Type u) [SmallCategory J] :=
/-- Partial sections of a cofiltered limit are sections when restricted to
a finite subset of objects and morphisms of `J`.
-/
--- porting note: generalized `F` to land in `v` not `u`
+-- Porting note: generalized `F` to land in `v` not `u`
def partialSections {J : Type u} [SmallCategory J] (F : J ⥤ TopCat.{v}) {G : Finset J}
(H : Finset (FiniteDiagramArrow G)) : Set (∀ j, F.obj j) :=
{u | ∀ {f : FiniteDiagramArrow G} (_ : f ∈ H), F.map f.2.2.2.2 (u f.1) = u f.2.1}
@@ -125,7 +125,7 @@ theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
/-- Cofiltered limits of nonempty compact Hausdorff spaces are nonempty topological spaces.
-/
--- porting note: generalized from `TopCat.{u}` to `TopCatMax.{u,v}`
+-- Porting note: generalized from `TopCat.{u}` to `TopCatMax.{u,v}`
theorem nonempty_limitCone_of_compact_t2_cofiltered_system (F : J ⥤ TopCatMax.{u,v})
[IsCofilteredOrEmpty J]
[∀ j : J, Nonempty (F.obj j)] [∀ j : J, CompactSpace (F.obj j)] [∀ j : J, T2Space (F.obj j)] :
The iInter version of Cantor's intersection theorem is already present: IsCompact.nonempty_iInter_of_directed_nonempty_compact_closed
.
The proof of the added sInter version takes advantage of the iInter version.
Much of the addition due to conversation with Sebastien Gouezel on Zulip.
@@ -132,7 +132,7 @@ theorem nonempty_limitCone_of_compact_t2_cofiltered_system (F : J ⥤ TopCatMax.
Nonempty (TopCat.limitCone F).pt := by
classical
obtain ⟨u, hu⟩ :=
- IsCompact.nonempty_iInter_of_directed_nonempty_compact_closed (fun G => partialSections F _)
+ IsCompact.nonempty_iInter_of_directed_nonempty_isCompact_isClosed (fun G => partialSections F _)
(partialSections.directed F) (fun G => partialSections.nonempty F _)
(fun G => IsClosed.isCompact (partialSections.closed F _)) fun G =>
partialSections.closed F _
refine
s (#10762)
I replaced a few "terminal" refine/refine'
s with exact
.
The strategy was very simple-minded: essentially any refine
whose following line had smaller indentation got replaced by exact
and then I cleaned up the mess.
This PR certainly leaves some further terminal refine
s, but maybe the current change is beneficial.
@@ -93,13 +93,13 @@ theorem partialSections.directed :
have : ιA f ∈ A.2.image ιA ⊔ B.2.image ιB := by
apply Finset.mem_union_left
rw [Finset.mem_image]
- refine' ⟨f, hf, rfl⟩
+ exact ⟨f, hf, rfl⟩
exact hu this
· rintro u hu f hf
have : ιB f ∈ A.2.image ιA ⊔ B.2.image ιB := by
apply Finset.mem_union_right
rw [Finset.mem_image]
- refine' ⟨f, hf, rfl⟩
+ exact ⟨f, hf, rfl⟩
exact hu this
#align Top.partial_sections.directed TopCat.partialSections.directed
@@ -2,14 +2,11 @@
Copyright (c) 2021 Kyle Miller. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kyle Miller
-
-! This file was ported from Lean 3 source module topology.category.Top.limits.konig
-! leanprover-community/mathlib commit dbdf71cee7bb20367cb7e37279c08b0c218cf967
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Topology.Category.TopCat.Limits.Basic
+#align_import topology.category.Top.limits.konig from "leanprover-community/mathlib"@"dbdf71cee7bb20367cb7e37279c08b0c218cf967"
+
/-!
# Topological Kőnig's lemma
This was caught up in a simultaneous split and port, and wasn't quite done correctly as a result
Co-authored-by: Kevin Buzzard <k.buzzard@imperial.ac.uk> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -4,14 +4,14 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kyle Miller
! This file was ported from Lean 3 source module topology.category.Top.limits.konig
-! leanprover-community/mathlib commit 8195826f5c428fc283510bc67303dd4472d78498
+! leanprover-community/mathlib commit dbdf71cee7bb20367cb7e37279c08b0c218cf967
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathlib.Topology.Category.TopCat.Limits.Basic
/-!
-## Topological Kőnig's lemma
+# Topological Kőnig's lemma
A topological version of Kőnig's lemma is that the inverse limit of nonempty compact Hausdorff
spaces is nonempty. (Note: this can be generalized further to inverse limits of nonempty compact
@@ -21,14 +21,14 @@ not closed points.)
We give this in a more general form, which is that cofiltered limits
of nonempty compact Hausdorff spaces are nonempty
-(`nonempty_limit_cone_of_compact_t2_cofiltered_system`).
+(`nonempty_limitCone_of_compact_t2_cofiltered_system`).
-This also applies to inverse limits, where `{J : Type u} [preorder J] [is_directed J (≤)]` and
-`F : Jᵒᵖ ⥤ Top`.
+This also applies to inverse limits, where `{J : Type u} [Preorder J] [IsDirected J (≤)]` and
+`F : Jᵒᵖ ⥤ TopCat`.
The theorem is specialized to nonempty finite types (which are compact Hausdorff with the
discrete topology) in lemmas `nonempty_sections_of_finite_cofiltered_system` and
-`nonempty_sections_of_finite_inverse_system` in the file `CategoryTheory.CofilteredSystem`.
+`nonempty_sections_of_finite_inverse_system` in the file `Mathlib.CategoryTheory.CofilteredSystem`.
(See <https://stacks.math.columbia.edu/tag/086J> for the Set version.)
-/
@@ -36,49 +36,23 @@ discrete topology) in lemmas `nonempty_sections_of_finite_cofiltered_system` and
-- Porting note: every ML3 decl has an uppercase letter
set_option linter.uppercaseLean3 false
-open TopologicalSpace
-
open CategoryTheory
open CategoryTheory.Limits
+-- porting note: changed universe order as `v` is usually passed explicitly
universe v u w
noncomputable section
namespace TopCat
-variable {J : Type v} [SmallCategory J]
-
section TopologicalKonig
-/-!
-## Topological Kőnig's lemma
-
-A topological version of Kőnig's lemma is that the inverse limit of nonempty compact Hausdorff
-spaces is nonempty. (Note: this can be generalized further to inverse limits of nonempty compact
-T0 spaces, where all the maps are closed maps; see [Stone1979] --- however there is an erratum
-for Theorem 4 that the element in the inverse limit can have cofinally many components that are
-not closed points.)
-
-We give this in a more general form, which is that cofiltered limits
-of nonempty compact Hausdorff spaces are nonempty
-(`nonempty_limitCone_of_compact_t2_cofiltered_system`).
-
-This also applies to inverse limits, where `{J : Type u} [Preorder J] [IsDirected J (≤)]` and
-`F : Jᵒᵖ ⥤ Top`.
-
-The theorem is specialized to nonempty finite types (which are compact Hausdorff with the
-discrete topology) in lemmas `nonempty_sections_of_finite_cofiltered_system` and
-`nonempty_sections_of_finite_inverse_system` in the file `CategoryTheory.CofilteredSystem`.
-
-(See <https://stacks.math.columbia.edu/tag/086J> for the Set version.)
--/
-
-
variable {J : Type u} [SmallCategory J]
-variable (F : J ⥤ TopCat)
+-- porting note: generalized `F` to land in `v` not `u`
+variable (F : J ⥤ TopCat.{v})
private abbrev FiniteDiagramArrow {J : Type u} [SmallCategory J] (G : Finset J) :=
Σ' (X Y : J) (_ : X ∈ G) (_ : Y ∈ G), X ⟶ Y
@@ -89,53 +63,54 @@ private abbrev FiniteDiagram (J : Type u) [SmallCategory J] :=
/-- Partial sections of a cofiltered limit are sections when restricted to
a finite subset of objects and morphisms of `J`.
-/
-def partialSections {J : Type u} [SmallCategory J] (F : J ⥤ TopCat) {G : Finset J}
+-- porting note: generalized `F` to land in `v` not `u`
+def partialSections {J : Type u} [SmallCategory J] (F : J ⥤ TopCat.{v}) {G : Finset J}
(H : Finset (FiniteDiagramArrow G)) : Set (∀ j, F.obj j) :=
- { u | ∀ {f : FiniteDiagramArrow G} (_ : f ∈ H), F.map f.2.2.2.2 (u f.1) = u f.2.1 }
+ {u | ∀ {f : FiniteDiagramArrow G} (_ : f ∈ H), F.map f.2.2.2.2 (u f.1) = u f.2.1}
#align Top.partial_sections TopCat.partialSections
theorem partialSections.nonempty [IsCofilteredOrEmpty J] [h : ∀ j : J, Nonempty (F.obj j)]
{G : Finset J} (H : Finset (FiniteDiagramArrow G)) : (partialSections F H).Nonempty := by
- classical
- cases (isEmpty_or_nonempty J)
- · exact ⟨isEmptyElim, fun {j} _ => IsEmpty.elim' inferInstance j.fst⟩
- · haveI : IsCofiltered J := ⟨⟩
- use fun j : J =>
- if hj : j ∈ G then F.map (IsCofiltered.infTo G H hj) (h (IsCofiltered.inf G H)).some
- else (h _).some
- rintro ⟨X, Y, hX, hY, f⟩ hf
- dsimp only
- rwa [dif_pos hX, dif_pos hY, ← comp_app, ← F.map_comp, @IsCofiltered.infTo_commutes _ _ _ G H]
+ classical
+ cases isEmpty_or_nonempty J
+ · exact ⟨isEmptyElim, fun {j} => IsEmpty.elim' inferInstance j.1⟩
+ haveI : IsCofiltered J := ⟨⟩
+ use fun j : J =>
+ if hj : j ∈ G then F.map (IsCofiltered.infTo G H hj) (h (IsCofiltered.inf G H)).some
+ else (h _).some
+ rintro ⟨X, Y, hX, hY, f⟩ hf
+ dsimp only
+ rwa [dif_pos hX, dif_pos hY, ← comp_app, ← F.map_comp, @IsCofiltered.infTo_commutes _ _ _ G H]
#align Top.partial_sections.nonempty TopCat.partialSections.nonempty
theorem partialSections.directed :
Directed Superset fun G : FiniteDiagram J => partialSections F G.2 := by
classical
- intro A B
- let ιA : FiniteDiagramArrow A.1 → FiniteDiagramArrow (A.1 ⊔ B.1) := fun f =>
- ⟨f.1, f.2.1, Finset.mem_union_left _ f.2.2.1, Finset.mem_union_left _ f.2.2.2.1, f.2.2.2.2⟩
- let ιB : FiniteDiagramArrow B.1 → FiniteDiagramArrow (A.1 ⊔ B.1) := fun f =>
- ⟨f.1, f.2.1, Finset.mem_union_right _ f.2.2.1, Finset.mem_union_right _ f.2.2.2.1, f.2.2.2.2⟩
- refine' ⟨⟨A.1 ⊔ B.1, A.2.image ιA ⊔ B.2.image ιB⟩, _, _⟩
- · rintro u hu f hf
- have : ιA f ∈ A.2.image ιA ⊔ B.2.image ιB := by
- apply Finset.mem_union_left
- rw [Finset.mem_image]
- refine' ⟨f, hf, rfl⟩
- exact hu this
- · rintro u hu f hf
- have : ιB f ∈ A.2.image ιA ⊔ B.2.image ιB := by
- apply Finset.mem_union_right
- rw [Finset.mem_image]
- refine' ⟨f, hf, rfl⟩
- exact hu this
+ intro A B
+ let ιA : FiniteDiagramArrow A.1 → FiniteDiagramArrow (A.1 ⊔ B.1) := fun f =>
+ ⟨f.1, f.2.1, Finset.mem_union_left _ f.2.2.1, Finset.mem_union_left _ f.2.2.2.1, f.2.2.2.2⟩
+ let ιB : FiniteDiagramArrow B.1 → FiniteDiagramArrow (A.1 ⊔ B.1) := fun f =>
+ ⟨f.1, f.2.1, Finset.mem_union_right _ f.2.2.1, Finset.mem_union_right _ f.2.2.2.1, f.2.2.2.2⟩
+ refine' ⟨⟨A.1 ⊔ B.1, A.2.image ιA ⊔ B.2.image ιB⟩, _, _⟩
+ · rintro u hu f hf
+ have : ιA f ∈ A.2.image ιA ⊔ B.2.image ιB := by
+ apply Finset.mem_union_left
+ rw [Finset.mem_image]
+ refine' ⟨f, hf, rfl⟩
+ exact hu this
+ · rintro u hu f hf
+ have : ιB f ∈ A.2.image ιA ⊔ B.2.image ιB := by
+ apply Finset.mem_union_right
+ rw [Finset.mem_image]
+ refine' ⟨f, hf, rfl⟩
+ exact hu this
#align Top.partial_sections.directed TopCat.partialSections.directed
-theorem partialSections.closed [I : ∀ j : J, T2Space (F.obj j)] {G : Finset J}
+theorem partialSections.closed [∀ j : J, T2Space (F.obj j)] {G : Finset J}
(H : Finset (FiniteDiagramArrow G)) : IsClosed (partialSections F H) := by
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
+ ⋂ (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
@@ -143,32 +118,34 @@ theorem partialSections.closed [I : ∀ j : J, T2Space (F.obj j)] {G : Finset J}
apply isClosed_biInter
intro f _
-- Porting note: can't see through forget
- have : T2Space ((forget TopCat).obj (F.obj f.snd.fst)) := I f.snd.fst
- -- Porting note: used to be continuity
+ have : T2Space ((forget TopCat).obj (F.obj f.snd.fst)) :=
+ inferInstanceAs (T2Space (F.obj f.snd.fst))
apply isClosed_eq
- · apply Continuous.comp (F.map f.snd.snd.snd.snd).continuous_toFun (continuous_apply f.fst)
- · apply continuous_apply f.snd.fst
+ -- Porting note: used to be a single `continuity` that closed both goals
+ · exact (F.map f.snd.snd.snd.snd).continuous.comp (continuous_apply f.fst)
+ · continuity
#align Top.partial_sections.closed TopCat.partialSections.closed
/-- Cofiltered limits of nonempty compact Hausdorff spaces are nonempty topological spaces.
-/
-theorem nonempty_limitCone_of_compact_t2_cofiltered_system [IsCofilteredOrEmpty J]
+-- porting note: generalized from `TopCat.{u}` to `TopCatMax.{u,v}`
+theorem nonempty_limitCone_of_compact_t2_cofiltered_system (F : J ⥤ TopCatMax.{u,v})
+ [IsCofilteredOrEmpty J]
[∀ j : J, Nonempty (F.obj j)] [∀ j : J, CompactSpace (F.obj j)] [∀ j : J, T2Space (F.obj j)] :
Nonempty (TopCat.limitCone F).pt := by
classical
- obtain ⟨u : (j : J) → (F.obj j).α, hu⟩ :=
- IsCompact.nonempty_iInter_of_directed_nonempty_compact_closed
- (fun (G : FiniteDiagram J) => partialSections F G.2)
- (partialSections.directed F) (fun G => partialSections.nonempty F G.2)
- (fun G => IsClosed.isCompact (partialSections.closed F G.2))
- (fun G => partialSections.closed F G.2)
- use u
- intro X Y f
- let G : FiniteDiagram J :=
- ⟨{X, Y},
- {⟨X, Y, by simp only [true_or_iff, eq_self_iff_true, Finset.mem_insert], by
- simp only [eq_self_iff_true, or_true_iff, Finset.mem_insert, Finset.mem_singleton], f⟩}⟩
- exact hu _ ⟨G, rfl⟩ (Finset.mem_singleton_self _)
+ obtain ⟨u, hu⟩ :=
+ IsCompact.nonempty_iInter_of_directed_nonempty_compact_closed (fun G => partialSections F _)
+ (partialSections.directed F) (fun G => partialSections.nonempty F _)
+ (fun G => IsClosed.isCompact (partialSections.closed F _)) fun G =>
+ partialSections.closed F _
+ use u
+ intro X Y f
+ let G : FiniteDiagram J :=
+ ⟨{X, Y},
+ {⟨X, Y, by simp only [true_or_iff, eq_self_iff_true, Finset.mem_insert], by
+ simp only [eq_self_iff_true, or_true_iff, Finset.mem_insert, Finset.mem_singleton], f⟩}⟩
+ exact hu _ ⟨G, rfl⟩ (Finset.mem_singleton_self _)
#align Top.nonempty_limit_cone_of_compact_t2_cofiltered_system TopCat.nonempty_limitCone_of_compact_t2_cofiltered_system
end TopologicalKonig
@@ -28,7 +28,7 @@ This also applies to inverse limits, where `{J : Type u} [preorder J] [is_direct
The theorem is specialized to nonempty finite types (which are compact Hausdorff with the
discrete topology) in lemmas `nonempty_sections_of_finite_cofiltered_system` and
-`nonempty_sections_of_finite_inverse_system` in the file `category_theory.cofiltered_system`.
+`nonempty_sections_of_finite_inverse_system` in the file `CategoryTheory.CofilteredSystem`.
(See <https://stacks.math.columbia.edu/tag/086J> for the Set version.)
-/
@@ -81,10 +81,10 @@ variable {J : Type u} [SmallCategory J]
variable (F : J ⥤ TopCat)
private abbrev FiniteDiagramArrow {J : Type u} [SmallCategory J] (G : Finset J) :=
- Σ'(X Y : J)(_ : X ∈ G)(_ : Y ∈ G), X ⟶ Y
+ Σ' (X Y : J) (_ : X ∈ G) (_ : Y ∈ G), X ⟶ Y
private abbrev FiniteDiagram (J : Type u) [SmallCategory J] :=
- ΣG : Finset J, Finset (FiniteDiagramArrow G)
+ Σ G : Finset J, Finset (FiniteDiagramArrow G)
/-- Partial sections of a cofiltered limit are sections when restricted to
a finite subset of objects and morphisms of `J`.
@@ -135,7 +135,7 @@ theorem partialSections.closed [I : ∀ j : J, T2Space (F.obj j)] {G : Finset J}
(H : Finset (FiniteDiagramArrow G)) : IsClosed (partialSections F H) := by
have :
partialSections F H =
- ⋂ (f : FiniteDiagramArrow G) (_hf : f ∈ H), { u | F.map f.2.2.2.2 (u f.1) = u f.2.1 } := by
+ ⋂ (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
@@ -8,7 +8,7 @@ Authors: Kyle Miller
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
-import Mathlib.Topology.Category.Top.Limits.Basic
+import Mathlib.Topology.Category.TopCat.Limits.Basic
/-!
## Topological Kőnig's lemma
These 2 files show up as unported on the porting page. Try to fix it.
@@ -3,7 +3,7 @@ Copyright (c) 2021 Kyle Miller. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kyle Miller
-! This file was ported from Lean 3 source module topology.category.Top.limits
+! This file was ported from Lean 3 source module topology.category.Top.limits.konig
! leanprover-community/mathlib commit 8195826f5c428fc283510bc67303dd4472d78498
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
The unported dependencies are