topology.category.Profinite.as_limit
⟷
Mathlib.Topology.Category.Profinite.AsLimit
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -76,7 +76,7 @@ instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asL
(by
refine' ⟨fun a b h => _, fun a => _⟩
· refine' DiscreteQuotient.eq_of_forall_proj_eq fun S => _
- apply_fun fun f : (limit_cone X.diagram).pt => f.val S at h
+ apply_fun fun f : (limit_cone X.diagram).pt => f.val S at h
exact h
· obtain ⟨b, hb⟩ :=
DiscreteQuotient.exists_of_compat (fun S => a.val S) fun _ _ h => a.prop (hom_of_le h)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Calle Sönne, Adam Topaz
-/
-import Mathbin.Topology.Category.Profinite.Basic
-import Mathbin.Topology.DiscreteQuotient
+import Topology.Category.Profinite.Basic
+import Topology.DiscreteQuotient
#align_import topology.category.Profinite.as_limit from "leanprover-community/mathlib"@"781cb2eed038c4caf53bdbd8d20a95e5822d77df"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Calle Sönne, Adam Topaz
-
-! This file was ported from Lean 3 source module topology.category.Profinite.as_limit
-! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Topology.Category.Profinite.Basic
import Mathbin.Topology.DiscreteQuotient
+#align_import topology.category.Profinite.as_limit from "leanprover-community/mathlib"@"781cb2eed038c4caf53bdbd8d20a95e5822d77df"
+
/-!
# Profinite sets as limits of finite sets.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -47,6 +47,7 @@ universe u
variable (X : Profinite.{u})
+#print Profinite.fintypeDiagram /-
/-- The functor `discrete_quotient X ⥤ Fintype` whose limit is isomorphic to `X`. -/
def fintypeDiagram : DiscreteQuotient X ⥤ FintypeCat
where
@@ -55,18 +56,24 @@ def fintypeDiagram : DiscreteQuotient X ⥤ FintypeCat
FintypeCat.of S
map S T f := DiscreteQuotient.ofLE f.le
#align Profinite.fintype_diagram Profinite.fintypeDiagram
+-/
+#print Profinite.diagram /-
/-- An abbreviation for `X.fintype_diagram ⋙ Fintype_to_Profinite`. -/
abbrev diagram : DiscreteQuotient X ⥤ Profinite :=
X.fintypeDiagram ⋙ FintypeCat.toProfinite
#align Profinite.diagram Profinite.diagram
+-/
+#print Profinite.asLimitCone /-
/-- A cone over `X.diagram` whose cone point is `X`. -/
def asLimitCone : CategoryTheory.Limits.Cone X.diagram :=
{ pt
π := { app := fun S => ⟨S.proj, S.proj_isLocallyConstant.Continuous⟩ } }
#align Profinite.as_limit_cone Profinite.asLimitCone
+-/
+#print Profinite.isIso_asLimitCone_lift /-
instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asLimitCone) :=
isIso_of_bijective _
(by
@@ -80,30 +87,39 @@ instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asL
ext S : 3
apply hb)
#align Profinite.is_iso_as_limit_cone_lift Profinite.isIso_asLimitCone_lift
+-/
+#print Profinite.isoAsLimitConeLift /-
/-- The isomorphism between `X` and the explicit limit of `X.diagram`,
induced by lifting `X.as_limit_cone`.
-/
def isoAsLimitConeLift : X ≅ (limitCone X.diagram).pt :=
asIso <| (limitConeIsLimit _).lift X.asLimitCone
#align Profinite.iso_as_limit_cone_lift Profinite.isoAsLimitConeLift
+-/
+#print Profinite.asLimitConeIso /-
/-- The isomorphism of cones `X.as_limit_cone` and `Profinite.limit_cone X.diagram`.
The underlying isomorphism is defeq to `X.iso_as_limit_cone_lift`.
-/
def asLimitConeIso : X.asLimitCone ≅ limitCone _ :=
Limits.Cones.ext (isoAsLimitConeLift _) fun _ => rfl
#align Profinite.as_limit_cone_iso Profinite.asLimitConeIso
+-/
+#print Profinite.asLimit /-
/-- `X.as_limit_cone` is indeed a limit cone. -/
def asLimit : CategoryTheory.Limits.IsLimit X.asLimitCone :=
Limits.IsLimit.ofIsoLimit (limitConeIsLimit _) X.asLimitConeIso.symm
#align Profinite.as_limit Profinite.asLimit
+-/
+#print Profinite.lim /-
/-- A bundled version of `X.as_limit_cone` and `X.as_limit`. -/
def lim : Limits.LimitCone X.diagram :=
⟨X.asLimitCone, X.asLimit⟩
#align Profinite.lim Profinite.lim
+-/
end Profinite
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -72,7 +72,7 @@ instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asL
(by
refine' ⟨fun a b h => _, fun a => _⟩
· refine' DiscreteQuotient.eq_of_forall_proj_eq fun S => _
- apply_fun fun f : (limit_cone X.diagram).pt => f.val S at h
+ apply_fun fun f : (limit_cone X.diagram).pt => f.val S at h
exact h
· obtain ⟨b, hb⟩ :=
DiscreteQuotient.exists_of_compat (fun S => a.val S) fun _ _ h => a.prop (hom_of_le h)
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -72,7 +72,7 @@ instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asL
(by
refine' ⟨fun a b h => _, fun a => _⟩
· refine' DiscreteQuotient.eq_of_forall_proj_eq fun S => _
- apply_fun fun f : (limit_cone X.diagram).pt => f.val S at h
+ apply_fun fun f : (limit_cone X.diagram).pt => f.val S at h
exact h
· obtain ⟨b, hb⟩ :=
DiscreteQuotient.exists_of_compat (fun S => a.val S) fun _ _ h => a.prop (hom_of_le h)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -47,12 +47,6 @@ universe u
variable (X : Profinite.{u})
-/- warning: Profinite.fintype_diagram -> Profinite.fintypeDiagram is a dubious translation:
-lean 3 declaration is
- forall (X : Profinite.{u1}), CategoryTheory.Functor.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) FintypeCat.{u1} FintypeCat.CategoryTheory.category.{u1}
-but is expected to have type
- forall (X : Profinite.{u1}), CategoryTheory.Functor.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) FintypeCat.{u1} FintypeCat.instCategoryFintypeCat.{u1}
-Case conversion may be inaccurate. Consider using '#align Profinite.fintype_diagram Profinite.fintypeDiagramₓ'. -/
/-- The functor `discrete_quotient X ⥤ Fintype` whose limit is isomorphic to `X`. -/
def fintypeDiagram : DiscreteQuotient X ⥤ FintypeCat
where
@@ -62,32 +56,17 @@ def fintypeDiagram : DiscreteQuotient X ⥤ FintypeCat
map S T f := DiscreteQuotient.ofLE f.le
#align Profinite.fintype_diagram Profinite.fintypeDiagram
-/- warning: Profinite.diagram -> Profinite.diagram is a dubious translation:
-lean 3 declaration is
- forall (X : Profinite.{u1}), CategoryTheory.Functor.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1}
-but is expected to have type
- forall (X : Profinite.{u1}), CategoryTheory.Functor.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1}
-Case conversion may be inaccurate. Consider using '#align Profinite.diagram Profinite.diagramₓ'. -/
/-- An abbreviation for `X.fintype_diagram ⋙ Fintype_to_Profinite`. -/
abbrev diagram : DiscreteQuotient X ⥤ Profinite :=
X.fintypeDiagram ⋙ FintypeCat.toProfinite
#align Profinite.diagram Profinite.diagram
-/- warning: Profinite.as_limit_cone -> Profinite.asLimitCone is a dubious translation:
-lean 3 declaration is
- forall (X : Profinite.{u1}), CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)
-but is expected to have type
- forall (X : Profinite.{u1}), CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)
-Case conversion may be inaccurate. Consider using '#align Profinite.as_limit_cone Profinite.asLimitConeₓ'. -/
/-- A cone over `X.diagram` whose cone point is `X`. -/
def asLimitCone : CategoryTheory.Limits.Cone X.diagram :=
{ pt
π := { app := fun S => ⟨S.proj, S.proj_isLocallyConstant.Continuous⟩ } }
#align Profinite.as_limit_cone Profinite.asLimitCone
-/- warning: Profinite.is_iso_as_limit_cone_lift -> Profinite.isIso_asLimitCone_lift is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align Profinite.is_iso_as_limit_cone_lift Profinite.isIso_asLimitCone_liftₓ'. -/
instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asLimitCone) :=
isIso_of_bijective _
(by
@@ -102,12 +81,6 @@ instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asL
apply hb)
#align Profinite.is_iso_as_limit_cone_lift Profinite.isIso_asLimitCone_lift
-/- warning: Profinite.iso_as_limit_cone_lift -> Profinite.isoAsLimitConeLift is a dubious translation:
-lean 3 declaration is
- forall (X : Profinite.{u1}), CategoryTheory.Iso.{u1, succ u1} Profinite.{u1} Profinite.category.{u1} X (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X)))
-but is expected to have type
- forall (X : Profinite.{u1}), CategoryTheory.Iso.{u1, succ u1} Profinite.{u1} Profinite.category.{u1} X (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X)))
-Case conversion may be inaccurate. Consider using '#align Profinite.iso_as_limit_cone_lift Profinite.isoAsLimitConeLiftₓ'. -/
/-- The isomorphism between `X` and the explicit limit of `X.diagram`,
induced by lifting `X.as_limit_cone`.
-/
@@ -115,12 +88,6 @@ def isoAsLimitConeLift : X ≅ (limitCone X.diagram).pt :=
asIso <| (limitConeIsLimit _).lift X.asLimitCone
#align Profinite.iso_as_limit_cone_lift Profinite.isoAsLimitConeLift
-/- warning: Profinite.as_limit_cone_iso -> Profinite.asLimitConeIso is a dubious translation:
-lean 3 declaration is
- forall (X : Profinite.{u1}), CategoryTheory.Iso.{u1, succ u1} (CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)) (CategoryTheory.Limits.Cone.category.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)) (Profinite.asLimitCone.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X))
-but is expected to have type
- forall (X : Profinite.{u1}), CategoryTheory.Iso.{u1, succ u1} (CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)) (CategoryTheory.Limits.Cone.category.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)) (Profinite.asLimitCone.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X))
-Case conversion may be inaccurate. Consider using '#align Profinite.as_limit_cone_iso Profinite.asLimitConeIsoₓ'. -/
/-- The isomorphism of cones `X.as_limit_cone` and `Profinite.limit_cone X.diagram`.
The underlying isomorphism is defeq to `X.iso_as_limit_cone_lift`.
-/
@@ -128,23 +95,11 @@ def asLimitConeIso : X.asLimitCone ≅ limitCone _ :=
Limits.Cones.ext (isoAsLimitConeLift _) fun _ => rfl
#align Profinite.as_limit_cone_iso Profinite.asLimitConeIso
-/- warning: Profinite.as_limit -> Profinite.asLimit is a dubious translation:
-lean 3 declaration is
- forall (X : Profinite.{u1}), CategoryTheory.Limits.IsLimit.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.asLimitCone.{u1} X)
-but is expected to have type
- forall (X : Profinite.{u1}), CategoryTheory.Limits.IsLimit.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.asLimitCone.{u1} X)
-Case conversion may be inaccurate. Consider using '#align Profinite.as_limit Profinite.asLimitₓ'. -/
/-- `X.as_limit_cone` is indeed a limit cone. -/
def asLimit : CategoryTheory.Limits.IsLimit X.asLimitCone :=
Limits.IsLimit.ofIsoLimit (limitConeIsLimit _) X.asLimitConeIso.symm
#align Profinite.as_limit Profinite.asLimit
-/- warning: Profinite.lim -> Profinite.lim is a dubious translation:
-lean 3 declaration is
- forall (X : Profinite.{u1}), CategoryTheory.Limits.LimitCone.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)
-but is expected to have type
- forall (X : Profinite.{u1}), CategoryTheory.Limits.LimitCone.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)
-Case conversion may be inaccurate. Consider using '#align Profinite.lim Profinite.limₓ'. -/
/-- A bundled version of `X.as_limit_cone` and `X.as_limit`. -/
def lim : Limits.LimitCone X.diagram :=
⟨X.asLimitCone, X.asLimit⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -86,10 +86,7 @@ def asLimitCone : CategoryTheory.Limits.Cone X.diagram :=
#align Profinite.as_limit_cone Profinite.asLimitCone
/- warning: Profinite.is_iso_as_limit_cone_lift -> Profinite.isIso_asLimitCone_lift is a dubious translation:
-lean 3 declaration is
- forall (X : Profinite.{u1}), CategoryTheory.IsIso.{u1, succ u1} Profinite.{u1} Profinite.category.{u1} (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.asLimitCone.{u1} X)) (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X))) (CategoryTheory.Limits.IsLimit.lift.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X)) (Profinite.limitConeIsLimit.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X)) (Profinite.asLimitCone.{u1} X))
-but is expected to have type
- forall (X : Profinite.{u1}), CategoryTheory.IsIso.{u1, succ u1} Profinite.{u1} Profinite.category.{u1} (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.asLimitCone.{u1} X)) (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X))) (CategoryTheory.Limits.IsLimit.lift.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X)) (Profinite.limitConeIsLimit.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X)) (Profinite.asLimitCone.{u1} X))
+<too large>
Case conversion may be inaccurate. Consider using '#align Profinite.is_iso_as_limit_cone_lift Profinite.isIso_asLimitCone_liftₓ'. -/
instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asLimitCone) :=
isIso_of_bijective _
mathlib commit https://github.com/leanprover-community/mathlib/commit/2f8347015b12b0864dfaf366ec4909eb70c78740
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Calle Sönne, Adam Topaz
! This file was ported from Lean 3 source module topology.category.Profinite.as_limit
-! leanprover-community/mathlib commit d101e93197bb5f6ea89bd7ba386b7f7dff1f3903
+! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.Topology.DiscreteQuotient
/-!
# Profinite sets as limits of finite sets.
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
We show that any profinite set is isomorphic to the limit of its
discrete (hence finite) quotients.
mathlib commit https://github.com/leanprover-community/mathlib/commit/28b2a92f2996d28e580450863c130955de0ed398
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Calle Sönne, Adam Topaz
! This file was ported from Lean 3 source module topology.category.Profinite.as_limit
-! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
+! leanprover-community/mathlib commit d101e93197bb5f6ea89bd7ba386b7f7dff1f3903
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,9 +14,6 @@ import Mathbin.Topology.DiscreteQuotient
/-!
# Profinite sets as limits of finite sets.
-> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
-> Any changes to this file require a corresponding PR to mathlib4.
-
We show that any profinite set is isomorphic to the limit of its
discrete (hence finite) quotients.
mathlib commit https://github.com/leanprover-community/mathlib/commit/2f8347015b12b0864dfaf366ec4909eb70c78740
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Calle Sönne, Adam Topaz
! This file was ported from Lean 3 source module topology.category.Profinite.as_limit
-! leanprover-community/mathlib commit d101e93197bb5f6ea89bd7ba386b7f7dff1f3903
+! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.Topology.DiscreteQuotient
/-!
# Profinite sets as limits of finite sets.
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
We show that any profinite set is isomorphic to the limit of its
discrete (hence finite) quotients.
mathlib commit https://github.com/leanprover-community/mathlib/commit/cc5dd6244981976cc9da7afc4eee5682b037a013
@@ -44,6 +44,12 @@ universe u
variable (X : Profinite.{u})
+/- warning: Profinite.fintype_diagram -> Profinite.fintypeDiagram is a dubious translation:
+lean 3 declaration is
+ forall (X : Profinite.{u1}), CategoryTheory.Functor.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) FintypeCat.{u1} FintypeCat.CategoryTheory.category.{u1}
+but is expected to have type
+ forall (X : Profinite.{u1}), CategoryTheory.Functor.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) FintypeCat.{u1} FintypeCat.instCategoryFintypeCat.{u1}
+Case conversion may be inaccurate. Consider using '#align Profinite.fintype_diagram Profinite.fintypeDiagramₓ'. -/
/-- The functor `discrete_quotient X ⥤ Fintype` whose limit is isomorphic to `X`. -/
def fintypeDiagram : DiscreteQuotient X ⥤ FintypeCat
where
@@ -53,17 +59,35 @@ def fintypeDiagram : DiscreteQuotient X ⥤ FintypeCat
map S T f := DiscreteQuotient.ofLE f.le
#align Profinite.fintype_diagram Profinite.fintypeDiagram
+/- warning: Profinite.diagram -> Profinite.diagram is a dubious translation:
+lean 3 declaration is
+ forall (X : Profinite.{u1}), CategoryTheory.Functor.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1}
+but is expected to have type
+ forall (X : Profinite.{u1}), CategoryTheory.Functor.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1}
+Case conversion may be inaccurate. Consider using '#align Profinite.diagram Profinite.diagramₓ'. -/
/-- An abbreviation for `X.fintype_diagram ⋙ Fintype_to_Profinite`. -/
abbrev diagram : DiscreteQuotient X ⥤ Profinite :=
X.fintypeDiagram ⋙ FintypeCat.toProfinite
#align Profinite.diagram Profinite.diagram
+/- warning: Profinite.as_limit_cone -> Profinite.asLimitCone is a dubious translation:
+lean 3 declaration is
+ forall (X : Profinite.{u1}), CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)
+but is expected to have type
+ forall (X : Profinite.{u1}), CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)
+Case conversion may be inaccurate. Consider using '#align Profinite.as_limit_cone Profinite.asLimitConeₓ'. -/
/-- A cone over `X.diagram` whose cone point is `X`. -/
def asLimitCone : CategoryTheory.Limits.Cone X.diagram :=
{ pt
π := { app := fun S => ⟨S.proj, S.proj_isLocallyConstant.Continuous⟩ } }
#align Profinite.as_limit_cone Profinite.asLimitCone
+/- warning: Profinite.is_iso_as_limit_cone_lift -> Profinite.isIso_asLimitCone_lift is a dubious translation:
+lean 3 declaration is
+ forall (X : Profinite.{u1}), CategoryTheory.IsIso.{u1, succ u1} Profinite.{u1} Profinite.category.{u1} (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.asLimitCone.{u1} X)) (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X))) (CategoryTheory.Limits.IsLimit.lift.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X)) (Profinite.limitConeIsLimit.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X)) (Profinite.asLimitCone.{u1} X))
+but is expected to have type
+ forall (X : Profinite.{u1}), CategoryTheory.IsIso.{u1, succ u1} Profinite.{u1} Profinite.category.{u1} (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.asLimitCone.{u1} X)) (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X))) (CategoryTheory.Limits.IsLimit.lift.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X)) (Profinite.limitConeIsLimit.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X)) (Profinite.asLimitCone.{u1} X))
+Case conversion may be inaccurate. Consider using '#align Profinite.is_iso_as_limit_cone_lift Profinite.isIso_asLimitCone_liftₓ'. -/
instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asLimitCone) :=
isIso_of_bijective _
(by
@@ -78,6 +102,12 @@ instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asL
apply hb)
#align Profinite.is_iso_as_limit_cone_lift Profinite.isIso_asLimitCone_lift
+/- warning: Profinite.iso_as_limit_cone_lift -> Profinite.isoAsLimitConeLift is a dubious translation:
+lean 3 declaration is
+ forall (X : Profinite.{u1}), CategoryTheory.Iso.{u1, succ u1} Profinite.{u1} Profinite.category.{u1} X (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X)))
+but is expected to have type
+ forall (X : Profinite.{u1}), CategoryTheory.Iso.{u1, succ u1} Profinite.{u1} Profinite.category.{u1} X (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X)))
+Case conversion may be inaccurate. Consider using '#align Profinite.iso_as_limit_cone_lift Profinite.isoAsLimitConeLiftₓ'. -/
/-- The isomorphism between `X` and the explicit limit of `X.diagram`,
induced by lifting `X.as_limit_cone`.
-/
@@ -85,6 +115,12 @@ def isoAsLimitConeLift : X ≅ (limitCone X.diagram).pt :=
asIso <| (limitConeIsLimit _).lift X.asLimitCone
#align Profinite.iso_as_limit_cone_lift Profinite.isoAsLimitConeLift
+/- warning: Profinite.as_limit_cone_iso -> Profinite.asLimitConeIso is a dubious translation:
+lean 3 declaration is
+ forall (X : Profinite.{u1}), CategoryTheory.Iso.{u1, succ u1} (CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)) (CategoryTheory.Limits.Cone.category.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)) (Profinite.asLimitCone.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X))
+but is expected to have type
+ forall (X : Profinite.{u1}), CategoryTheory.Iso.{u1, succ u1} (CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)) (CategoryTheory.Limits.Cone.category.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)) (Profinite.asLimitCone.{u1} X) (Profinite.limitCone.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) (Profinite.diagram.{u1} X))
+Case conversion may be inaccurate. Consider using '#align Profinite.as_limit_cone_iso Profinite.asLimitConeIsoₓ'. -/
/-- The isomorphism of cones `X.as_limit_cone` and `Profinite.limit_cone X.diagram`.
The underlying isomorphism is defeq to `X.iso_as_limit_cone_lift`.
-/
@@ -92,11 +128,23 @@ def asLimitConeIso : X.asLimitCone ≅ limitCone _ :=
Limits.Cones.ext (isoAsLimitConeLift _) fun _ => rfl
#align Profinite.as_limit_cone_iso Profinite.asLimitConeIso
+/- warning: Profinite.as_limit -> Profinite.asLimit is a dubious translation:
+lean 3 declaration is
+ forall (X : Profinite.{u1}), CategoryTheory.Limits.IsLimit.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.asLimitCone.{u1} X)
+but is expected to have type
+ forall (X : Profinite.{u1}), CategoryTheory.Limits.IsLimit.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X) (Profinite.asLimitCone.{u1} X)
+Case conversion may be inaccurate. Consider using '#align Profinite.as_limit Profinite.asLimitₓ'. -/
/-- `X.as_limit_cone` is indeed a limit cone. -/
def asLimit : CategoryTheory.Limits.IsLimit X.asLimitCone :=
Limits.IsLimit.ofIsoLimit (limitConeIsLimit _) X.asLimitConeIso.symm
#align Profinite.as_limit Profinite.asLimit
+/- warning: Profinite.lim -> Profinite.lim is a dubious translation:
+lean 3 declaration is
+ forall (X : Profinite.{u1}), CategoryTheory.Limits.LimitCone.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.semilatticeInf.{u1} (coeSort.{succ (succ u1), succ (succ u1)} Profinite.{u1} Type.{u1} Profinite.hasCoeToSort.{u1} X) (TopCat.topologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)
+but is expected to have type
+ forall (X : Profinite.{u1}), CategoryTheory.Limits.LimitCone.{u1, u1, u1, succ u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (Preorder.smallCategory.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (PartialOrder.toPreorder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (SemilatticeInf.toPartialOrder.{u1} (DiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X)))) (DiscreteQuotient.instSemilatticeInfDiscreteQuotient.{u1} (CategoryTheory.Bundled.α.{u1, u1} TopologicalSpace.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))) (TopCat.topologicalSpace_coe.{u1} (CompHaus.toTop.{u1} (Profinite.toCompHaus.{u1} X))))))) Profinite.{u1} Profinite.category.{u1} (Profinite.diagram.{u1} X)
+Case conversion may be inaccurate. Consider using '#align Profinite.lim Profinite.limₓ'. -/
/-- A bundled version of `X.as_limit_cone` and `X.as_limit`. -/
def lim : Limits.LimitCone X.diagram :=
⟨X.asLimitCone, X.asLimit⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/17ad94b4953419f3e3ce3e77da3239c62d1d09f0
@@ -50,7 +50,7 @@ def fintypeDiagram : DiscreteQuotient X ⥤ FintypeCat
obj S :=
haveI := Fintype.ofFinite S
FintypeCat.of S
- map S T f := DiscreteQuotient.ofLe f.le
+ map S T f := DiscreteQuotient.ofLE f.le
#align Profinite.fintype_diagram Profinite.fintypeDiagram
/-- An abbreviation for `X.fintype_diagram ⋙ Fintype_to_Profinite`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -60,7 +60,7 @@ abbrev diagram : DiscreteQuotient X ⥤ Profinite :=
/-- A cone over `X.diagram` whose cone point is `X`. -/
def asLimitCone : CategoryTheory.Limits.Cone X.diagram :=
- { x
+ { pt
π := { app := fun S => ⟨S.proj, S.proj_isLocallyConstant.Continuous⟩ } }
#align Profinite.as_limit_cone Profinite.asLimitCone
@@ -69,7 +69,7 @@ instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asL
(by
refine' ⟨fun a b h => _, fun a => _⟩
· refine' DiscreteQuotient.eq_of_forall_proj_eq fun S => _
- apply_fun fun f : (limit_cone X.diagram).x => f.val S at h
+ apply_fun fun f : (limit_cone X.diagram).pt => f.val S at h
exact h
· obtain ⟨b, hb⟩ :=
DiscreteQuotient.exists_of_compat (fun S => a.val S) fun _ _ h => a.prop (hom_of_le h)
@@ -81,7 +81,7 @@ instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asL
/-- The isomorphism between `X` and the explicit limit of `X.diagram`,
induced by lifting `X.as_limit_cone`.
-/
-def isoAsLimitConeLift : X ≅ (limitCone X.diagram).x :=
+def isoAsLimitConeLift : X ≅ (limitCone X.diagram).pt :=
asIso <| (limitConeIsLimit _).lift X.asLimitCone
#align Profinite.iso_as_limit_cone_lift Profinite.isoAsLimitConeLift
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
We allow the indexing category for the cofiltered limit in the result Profinite.exists_locallyConstant
to live in a smaller universe than our profinite sets.
@@ -64,12 +64,12 @@ def asLimitCone : CategoryTheory.Limits.Cone X.diagram :=
set_option linter.uppercaseLean3 false in
#align Profinite.as_limit_cone Profinite.asLimitCone
-instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asLimitCone) :=
+instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit.{u, u} X.diagram).lift X.asLimitCone) :=
isIso_of_bijective _
(by
refine' ⟨fun a b h => _, fun a => _⟩
· refine' DiscreteQuotient.eq_of_forall_proj_eq fun S => _
- apply_fun fun f : (limitCone X.diagram).pt => f.val S at h
+ apply_fun fun f : (limitCone.{u, u} X.diagram).pt => f.val S at h
exact h
· obtain ⟨b, hb⟩ :=
DiscreteQuotient.exists_of_compat (fun S => a.val S) fun _ _ h => a.prop (homOfLE h)
@@ -87,15 +87,15 @@ set_option linter.uppercaseLean3 false in
/-- The isomorphism between `X` and the explicit limit of `X.diagram`,
induced by lifting `X.asLimitCone`.
-/
-def isoAsLimitConeLift : X ≅ (limitCone X.diagram).pt :=
- asIso <| (limitConeIsLimit _).lift X.asLimitCone
+def isoAsLimitConeLift : X ≅ (limitCone.{u, u} X.diagram).pt :=
+ asIso <| (limitConeIsLimit.{u, u} _).lift X.asLimitCone
set_option linter.uppercaseLean3 false in
#align Profinite.iso_as_limit_cone_lift Profinite.isoAsLimitConeLift
/-- The isomorphism of cones `X.asLimitCone` and `Profinite.limitCone X.diagram`.
The underlying isomorphism is defeq to `X.isoAsLimitConeLift`.
-/
-def asLimitConeIso : X.asLimitCone ≅ limitCone _ :=
+def asLimitConeIso : X.asLimitCone ≅ limitCone.{u, u} _ :=
Limits.Cones.ext (isoAsLimitConeLift _) fun _ => rfl
set_option linter.uppercaseLean3 false in
#align Profinite.as_limit_cone_iso Profinite.asLimitConeIso
@@ -2,15 +2,12 @@
Copyright (c) 2021 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Calle Sönne, Adam Topaz
-
-! This file was ported from Lean 3 source module topology.category.Profinite.as_limit
-! leanprover-community/mathlib commit d101e93197bb5f6ea89bd7ba386b7f7dff1f3903
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Topology.Category.Profinite.Basic
import Mathlib.Topology.DiscreteQuotient
+#align_import topology.category.Profinite.as_limit from "leanprover-community/mathlib"@"d101e93197bb5f6ea89bd7ba386b7f7dff1f3903"
+
/-!
# Profinite sets as limits of finite sets.
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -72,7 +72,7 @@ instance isIso_asLimitCone_lift : IsIso ((limitConeIsLimit X.diagram).lift X.asL
(by
refine' ⟨fun a b h => _, fun a => _⟩
· refine' DiscreteQuotient.eq_of_forall_proj_eq fun S => _
- apply_fun fun f : (limitCone X.diagram).pt => f.val S at h
+ apply_fun fun f : (limitCone X.diagram).pt => f.val S at h
exact h
· obtain ⟨b, hb⟩ :=
DiscreteQuotient.exists_of_compat (fun S => a.val S) fun _ _ h => a.prop (homOfLE h)
@@ -25,10 +25,10 @@ There are a handful of definitions in this file, given `X : Profinite`:
2. `X.diagram` is an abbreviation for `X.fintypeDiagram ⋙ FintypeCat.toProfinite`.
3. `X.asLimitCone` is the cone over `X.diagram` whose cone point is `X`.
4. `X.isoAsLimitConeLift` is the isomorphism `X ≅ (Profinite.limitCone X.diagram).X` induced
- by lifting `X.as_limit_cone`.
+ by lifting `X.asLimitCone`.
5. `X.asLimitConeIso` is the isomorphism `X.asLimitCone ≅ (Profinite.limitCone X.diagram)`
induced by `X.isoAsLimitConeLift`.
-6. `X.asLimit` is a term of type `is_limit X.asLimitCone`.
+6. `X.asLimit` is a term of type `IsLimit X.asLimitCone`.
7. `X.lim : CategoryTheory.Limits.LimitCone X.asLimitCone` is a bundled combination of 3 and 6.
-/
The unported dependencies are
algebra.order.module
init.core
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
init.data.list.default
algebra.order.monoid.cancel.basic
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file