File: Mathlib/Topology/Category/CompHausLike/Basic.lean

full_name: CompHausLike.toTop
code: /-- The type of Compact Hausdorff topological spaces satisfying an additional property `P`. -/
structure CompHausLike where
  /-- The underlying topological space of an object of `CompHausLike P`. -/
  toTop : TopCat
  /-- The underlying topological space is compact. -/
  [is_compact : CompactSpace toTop]
  /-- The underlying topological space is T2. -/
  [is_hausdorff : T2Space toTop]
  /-- The underlying topological space satisfies P. -/
  prop : P toTop
goal: TopCat

full_name: CompHausLike.is_compact
code: /-- The type of Compact Hausdorff topological spaces satisfying an additional property `P`. -/
structure CompHausLike where
  /-- The underlying topological space of an object of `CompHausLike P`. -/
  toTop : TopCat
  /-- The underlying topological space is compact. -/
  [is_compact : CompactSpace toTop]
  /-- The underlying topological space is T2. -/
  [is_hausdorff : T2Space toTop]
  /-- The underlying topological space satisfies P. -/
  prop : P toTop
goal: CompactSpace ↑self.toTop

full_name: CompHausLike.prop
code: /-- The type of Compact Hausdorff topological spaces satisfying an additional property `P`. -/
structure CompHausLike where
  /-- The underlying topological space of an object of `CompHausLike P`. -/
  toTop : TopCat
  /-- The underlying topological space is compact. -/
  [is_compact : CompactSpace toTop]
  /-- The underlying topological space is T2. -/
  [is_hausdorff : T2Space toTop]
  /-- The underlying topological space satisfies P. -/
  prop : P toTop
goal: P self.toTop

full_name: CompHausLike.is_hausdorff
code: /-- The type of Compact Hausdorff topological spaces satisfying an additional property `P`. -/
structure CompHausLike where
  /-- The underlying topological space of an object of `CompHausLike P`. -/
  toTop : TopCat
  /-- The underlying topological space is compact. -/
  [is_compact : CompactSpace toTop]
  /-- The underlying topological space is T2. -/
  [is_hausdorff : T2Space toTop]
  /-- The underlying topological space satisfies P. -/
  prop : P toTop
goal: T2Space ↑self.toTop

full_name: CompHausLike
code: /-- The type of Compact Hausdorff topological spaces satisfying an additional property `P`. -/
structure CompHausLike where
  /-- The underlying topological space of an object of `CompHausLike P`. -/
  toTop : TopCat
  /-- The underlying topological space is compact. -/
  [is_compact : CompactSpace toTop]
  /-- The underlying topological space is T2. -/
  [is_hausdorff : T2Space toTop]
  /-- The underlying topological space satisfies P. -/
  prop : P toTop
goal: Type (u + 1)

full_name: CompHausLike.instCoeSortType
code: instance : CoeSort (CompHausLike P) (Type u) 
goal: CoeSort (CompHausLike P) (Type u)

full_name: CompHausLike.category
code: instance category : Category (CompHausLike P) 
goal: CategoryTheory.Category.{u, u + 1} (CompHausLike P)

full_name: CompHausLike.concreteCategory
code: instance concreteCategory : ConcreteCategory (CompHausLike P) 
goal: CategoryTheory.ConcreteCategory (CompHausLike P)

full_name: CompHausLike.hasForget₂
code: instance hasForget₂ : HasForget₂ (CompHausLike P) TopCat 
goal: CategoryTheory.HasForget₂ (CompHausLike P) TopCat

full_name: CompHausLike.HasProp.hasProp
code: /-- This wraps the predicate `P : TopCat → Prop` in a typeclass. -/
class HasProp : Prop where
  hasProp : P (TopCat.of X)
goal: P (TopCat.of X)

full_name: CompHausLike.HasProp
code: /-- This wraps the predicate `P : TopCat → Prop` in a typeclass. -/
class HasProp : Prop where
  hasProp : P (TopCat.of X)
goal: Prop

full_name: CompHausLike.of
code: /-- A constructor for objects of the category `CompHausLike P`,
taking a type, and bundling the compact Hausdorff topology
found by typeclass inference. -/
def of : CompHausLike P 
goal: CompHausLike P

full_name: CompHausLike.coe_of
code: @[simp]
theorem coe_of : (CompHausLike.of P X : Type _) = X 
goal: ↑(CompHausLike.of P X).toTop = X

full_name: CompHausLike.coe_id
code: @[simp]
theorem coe_id (X : CompHausLike P) : (𝟙 ((forget (CompHausLike P)).obj X)) = id 
goal: 𝟙 ((CategoryTheory.forget (CompHausLike P)).obj X) = id

full_name: CompHausLike.coe_comp
code: @[simp]
theorem coe_comp {X Y Z : CompHausLike P} (f : X ⟶ Y) (g : Y ⟶ Z) :
    ((forget (CompHausLike P)).map f ≫ (forget (CompHausLike P)).map g) = g ∘ f 
goal: (CategoryTheory.forget (CompHausLike P)).map f ≫ (CategoryTheory.forget (CompHausLike P)).map g = ⇑g ∘ ⇑f

full_name: CompHausLike.instTopologicalSpaceObjForget
code: instance (X : CompHausLike.{u} P) : TopologicalSpace ((forget (CompHausLike P)).obj X) 
goal: TopologicalSpace ((CategoryTheory.forget (CompHausLike P)).obj X)

full_name: CompHausLike.instCompactSpaceObjForget
code: instance (X : CompHausLike.{u} P) : CompactSpace ((forget (CompHausLike P)).obj X) 
goal: CompactSpace ((CategoryTheory.forget (CompHausLike P)).obj X)

full_name: CompHausLike.instT2SpaceObjForget
code: instance (X : CompHausLike.{u} P) : T2Space ((forget (CompHausLike P)).obj X) 
goal: T2Space ((CategoryTheory.forget (CompHausLike P)).obj X)

full_name: CompHausLike.toCompHausLike
code: /-- If `P` imples `P'`, then there is a functor from `CompHausLike P` to `CompHausLike P'`. -/
@[simps]
def toCompHausLike {P P' : TopCat → Prop} (h : ∀ (X : CompHausLike P), P X.toTop → P' X.toTop) :
    CompHausLike P ⥤ CompHausLike P' 
goal: CompHausLike P ⥤ CompHausLike P'

full_name: CompHausLike.toCompHausLike_map
code: /-- If `P` imples `P'`, then there is a functor from `CompHausLike P` to `CompHausLike P'`. -/
@[simps]
def toCompHausLike {P P' : TopCat → Prop} (h : ∀ (X : CompHausLike P), P X.toTop → P' X.toTop) :
    CompHausLike P ⥤ CompHausLike P' 
goal: ∀ {X Y : CompHausLike P} (f : X ⟶ Y), (CompHausLike.toCompHausLike h).map f = f

full_name: CompHausLike.toCompHausLike_obj
code: /-- If `P` imples `P'`, then there is a functor from `CompHausLike P` to `CompHausLike P'`. -/
@[simps]
def toCompHausLike {P P' : TopCat → Prop} (h : ∀ (X : CompHausLike P), P X.toTop → P' X.toTop) :
    CompHausLike P ⥤ CompHausLike P' 
goal: (CompHausLike.toCompHausLike h).obj X =
  let_fun this := ⋯;
  CompHausLike.of P' ↑X.toTop

full_name: CompHausLike.fullyFaithfulToCompHausLike
code: /-- If `P` imples `P'`, then the functor from `CompHausLike P` to `CompHausLike P'` is fully
faithful. -/
def fullyFaithfulToCompHausLike : (toCompHausLike h).FullyFaithful 
goal: (CompHausLike.toCompHausLike h).FullyFaithful

full_name: CompHausLike.instFullToCompHausLike
code: instance : (toCompHausLike h).Full 
goal: (CompHausLike.toCompHausLike h).Full

full_name: CompHausLike.instFaithfulToCompHausLike
code: instance : (toCompHausLike h).Faithful 
goal: (CompHausLike.toCompHausLike h).Faithful

full_name: CompHausLike.compHausLikeToTop
code: /-- The fully faithful embedding of `CompHausLike P` in `TopCat`. -/
@[simps!]
def compHausLikeToTop : CompHausLike.{u} P ⥤ TopCat.{u} 
goal: CompHausLike P ⥤ TopCat

full_name: CompHausLike.compHausLikeToTop_map
code: /-- The fully faithful embedding of `CompHausLike P` in `TopCat`. -/
@[simps!]
def compHausLikeToTop : CompHausLike.{u} P ⥤ TopCat.{u} 
goal: ∀ {X Y : CategoryTheory.InducedCategory TopCat CompHausLike.toTop} (f : X ⟶ Y),
  (CompHausLike.compHausLikeToTop P).map f = f

full_name: CompHausLike.compHausLikeToTop_obj
code: /-- The fully faithful embedding of `CompHausLike P` in `TopCat`. -/
@[simps!]
def compHausLikeToTop : CompHausLike.{u} P ⥤ TopCat.{u} 
goal: (CompHausLike.compHausLikeToTop P).obj self = self.toTop

full_name: CompHausLike.fullyFaithfulCompHausLikeToTop
code: /-- The functor from `CompHausLike P` to `TopCat` is fully faithful. -/
def fullyFaithfulCompHausLikeToTop : (compHausLikeToTop P).FullyFaithful 
goal: (CompHausLike.compHausLikeToTop P).FullyFaithful

full_name: CompHausLike.instFullTopCatCompHausLikeToTop
code: instance : (compHausLikeToTop P).Full  
goal: (CompHausLike.compHausLikeToTop P).Full

full_name: CompHausLike.instFaithfulTopCatCompHausLikeToTop
code: instance : (compHausLikeToTop P).Faithful 
goal: (CompHausLike.compHausLikeToTop P).Faithful

full_name: CompHausLike.instCompactSpaceαTopologicalSpaceObjTopCatCompHausLikeToTop
code: instance (X : CompHausLike P) : CompactSpace ((compHausLikeToTop P).obj X) 
goal: CompactSpace ↑((CompHausLike.compHausLikeToTop P).obj X)

full_name: CompHausLike.instT2SpaceαTopologicalSpaceObjTopCatCompHausLikeToTop
code: instance (X : CompHausLike P) : T2Space ((compHausLikeToTop P).obj X) 
goal: T2Space ↑((CompHausLike.compHausLikeToTop P).obj X)

full_name: CompHausLike.epi_of_surjective
code: theorem epi_of_surjective {X Y : CompHausLike.{u} P} (f : X ⟶ Y) (hf : Function.Surjective f) :
    Epi f 
goal: CategoryTheory.Epi f

full_name: CompHausLike.mono_iff_injective
code: theorem mono_iff_injective {X Y : CompHausLike.{u} P} (f : X ⟶ Y) :
    Mono f ↔ Function.Injective f 
goal: CategoryTheory.Mono f ↔ Function.Injective ⇑f

full_name: CompHausLike.isClosedMap
code: /-- Any continuous function on compact Hausdorff spaces is a closed map. -/
theorem isClosedMap {X Y : CompHausLike.{u} P} (f : X ⟶ Y) : IsClosedMap f 
goal: IsClosedMap ⇑f

full_name: CompHausLike.isIso_of_bijective
code: /-- Any continuous bijection of compact Hausdorff spaces is an isomorphism. -/
theorem isIso_of_bijective {X Y : CompHausLike.{u} P} (f : X ⟶ Y) (bij : Function.Bijective f) :
    IsIso f 
goal: CategoryTheory.IsIso f

full_name: CompHausLike.forget_reflectsIsomorphisms
code: instance forget_reflectsIsomorphisms :
    (forget (CompHausLike.{u} P)).ReflectsIsomorphisms 
goal: (CategoryTheory.forget (CompHausLike P)).ReflectsIsomorphisms

full_name: CompHausLike.isoOfBijective
code: /-- Any continuous bijection of compact Hausdorff spaces induces an isomorphism. -/
noncomputable def isoOfBijective {X Y : CompHausLike.{u} P} (f : X ⟶ Y)
    (bij : Function.Bijective f) : X ≅ Y 
goal: X ≅ Y

full_name: CompHausLike.isoOfHomeo
code: /-- Construct an isomorphism from a homeomorphism. -/
@[simps!]
def isoOfHomeo {X Y : CompHausLike.{u} P} (f : X ≃ₜ Y) : X ≅ Y 
goal: X ≅ Y

full_name: CompHausLike.isoOfHomeo_hom_apply
code: /-- Construct an isomorphism from a homeomorphism. -/
@[simps!]
def isoOfHomeo {X Y : CompHausLike.{u} P} (f : X ≃ₜ Y) : X ≅ Y 
goal: (CompHausLike.isoOfHomeo f).hom a = f a

full_name: CompHausLike.isoOfHomeo_inv_apply
code: /-- Construct an isomorphism from a homeomorphism. -/
@[simps!]
def isoOfHomeo {X Y : CompHausLike.{u} P} (f : X ≃ₜ Y) : X ≅ Y 
goal: (CompHausLike.isoOfHomeo f).inv a = f.symm a

full_name: CompHausLike.homeoOfIso_symm_apply
code: /-- Construct a homeomorphism from an isomorphism. -/
@[simps!]
def homeoOfIso {X Y : CompHausLike.{u} P} (f : X ≅ Y) : X ≃ₜ Y 
goal: (CompHausLike.homeoOfIso f).symm a = f.inv a

full_name: CompHausLike.homeoOfIso
code: /-- Construct a homeomorphism from an isomorphism. -/
@[simps!]
def homeoOfIso {X Y : CompHausLike.{u} P} (f : X ≅ Y) : X ≃ₜ Y 
goal: ↑X.toTop ≃ₜ ↑Y.toTop

full_name: CompHausLike.homeoOfIso_apply
code: /-- Construct a homeomorphism from an isomorphism. -/
@[simps!]
def homeoOfIso {X Y : CompHausLike.{u} P} (f : X ≅ Y) : X ≃ₜ Y 
goal: (CompHausLike.homeoOfIso f) a = f.hom a

full_name: CompHausLike.isoEquivHomeo_symm_apply
code: /-- The equivalence between isomorphisms in `CompHaus` and homeomorphisms
of topological spaces. -/
@[simps]
def isoEquivHomeo {X Y : CompHausLike.{u} P} : (X ≅ Y) ≃ (X ≃ₜ Y) 
goal: CompHausLike.isoEquivHomeo.symm f = CompHausLike.isoOfHomeo f

full_name: CompHausLike.isoEquivHomeo
code: /-- The equivalence between isomorphisms in `CompHaus` and homeomorphisms
of topological spaces. -/
@[simps]
def isoEquivHomeo {X Y : CompHausLike.{u} P} : (X ≅ Y) ≃ (X ≃ₜ Y) 
goal: (X ≅ Y) ≃ (↑X.toTop ≃ₜ ↑Y.toTop)

full_name: CompHausLike.isoEquivHomeo_apply
code: /-- The equivalence between isomorphisms in `CompHaus` and homeomorphisms
of topological spaces. -/
@[simps]
def isoEquivHomeo {X Y : CompHausLike.{u} P} : (X ≅ Y) ≃ (X ≃ₜ Y) 
goal: CompHausLike.isoEquivHomeo f = CompHausLike.homeoOfIso f