Explicit limits and colimits #
This file collects some constructions of explicit limits and colimits in Profinite
,
which may be useful due to their definitional properties.
Main definitions #
Profinite.pullback
: Explicit pullback, defined in the "usual" way as a subset of the product.Profinite.finiteCoproduct
: Explicit finite coproducts, defined as a disjoint union.
The pullback of two morphisms f, g
in Profinite
, constructed explicitly as the set of
pairs (x, y)
such that f x = g y
, with the topology induced by the product.
Equations
- Profinite.pullback f g = Profinite.of ↑{xy : ↑X.toTop × ↑Y.toTop | f xy.1 = g xy.2}
Instances For
The projection from the pullback to the first component.
Equations
- Profinite.pullback.fst f g = { toFun := fun (x : ↑(Profinite.pullback f g).toTop) => match x with | ⟨(x, snd), property⟩ => x, continuous_toFun := ⋯ }
Instances For
The projection from the pullback to the second component.
Equations
- Profinite.pullback.snd f g = { toFun := fun (x : ↑(Profinite.pullback f g).toTop) => match x with | ⟨(fst, y), property⟩ => y, continuous_toFun := ⋯ }
Instances For
Construct a morphism to the explicit pullback given morphisms to the factors which are compatible with the maps to the base. This is essentially the universal property of the pullback.
Equations
- Profinite.pullback.lift f g a b w = { toFun := fun (z : ↑Z.toTop) => ⟨(a z, b z), ⋯⟩, continuous_toFun := ⋯ }
Instances For
The explicit pullback cone is a limit cone.
Equations
- Profinite.pullback.isLimit f g = (Profinite.pullback.cone f g).isLimitAux (fun (s : CategoryTheory.Limits.PullbackCone f g) => Profinite.pullback.lift f g s.fst s.snd ⋯) ⋯ ⋯ ⋯
Instances For
The isomorphism from the explicit pullback to the abstract pullback.
Equations
- Profinite.pullbackIsoPullback f g = (Profinite.pullback.isLimit f g).conePointUniqueUpToIso (CategoryTheory.Limits.limit.isLimit (CategoryTheory.Limits.cospan f g))
Instances For
The homeomorphism from the explicit pullback to the abstract pullback.
Equations
Instances For
The coproduct of a finite family of objects in Profinite
, constructed as the disjoint
union with its usual topology.
Equations
- Profinite.finiteCoproduct X = Profinite.of ((a : α) × ↑(X a).toTop)
Instances For
The inclusion of one of the factors into the explicit finite coproduct.
Equations
- Profinite.finiteCoproduct.ι X a = { toFun := fun (x : ↑(X a).toTop) => ⟨a, x⟩, continuous_toFun := ⋯ }
Instances For
To construct a morphism from the explicit finite coproduct, it suffices to specify a morphism from each of its factors. This is essentially the universal property of the coproduct.
Equations
- Profinite.finiteCoproduct.desc X e = { toFun := fun (x : ↑(Profinite.finiteCoproduct X).toTop) => match x with | ⟨a, x⟩ => (e a) x, continuous_toFun := ⋯ }
Instances For
The coproduct cocone associated to the explicit finite coproduct.
Equations
Instances For
The explicit finite coproduct cocone is a colimit cocone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The isomorphism from the explicit finite coproducts to the abstract coproduct.
Equations
- Profinite.coproductIsoCoproduct X = (Profinite.finiteCoproduct.isColimit X).coconePointUniqueUpToIso (CategoryTheory.Limits.colimit.isColimit (CategoryTheory.Discrete.functor X))
Instances For
The homeomorphism from the explicit finite coproducts to the abstract coproduct.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- Profinite.instPreservesFiniteCoproductsTopCatToTopCat = { preserves := fun (x : Type) (x_1 : Fintype x) => inferInstance }