ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- eq_of_germ_isConstant_on
lemma eq_of_germ_isConstant_on {s : Set X} (h : ∀ x ∈ s, (f : Germ (𝓝 x) Y).IsConstant)
    (hs : IsPreconnected s) {x' : X} (x_in : x ∈ s) (x'_in : x' ∈ s) : f x = f x' 
Arguments: {X : Type u_3} {Y : Type u_4} [TopologicalSpace X] {f : X → Y} {x : X} {s : Set X} (h : ∀ x ∈ s, (↑f).IsConstant) (hs : IsPreconnected s) {x' : X} (x_in : x ∈ s) (x'_in : x' ∈ s)
Goal: f x = f x'
-- Germ.coe_sum
@[to_additive (attr := simp)]
theorem Germ.coe_prod {α : Type*} (l : Filter α) (R : Type*) [CommMonoid R] {ι} (f : ι → α → R)
    (s : Finset ι) : ((∏ i ∈ s, f i : α → R) : Germ l R) = ∏ i ∈ s, (f i : Germ l R) 
Arguments: {α : Type u_6} (l : Filter α) (R : Type u_7) [AddCommMonoid R] {ι : Type u_8} (f : ι → α → R) (s : Finset ι)
Goal: ↑(∑ i ∈ s, f i) = ∑ i ∈ s, ↑(f i)
-- Germ.coe_prod
@[to_additive (attr := simp)]
theorem Germ.coe_prod {α : Type*} (l : Filter α) (R : Type*) [CommMonoid R] {ι} (f : ι → α → R)
    (s : Finset ι) : ((∏ i ∈ s, f i : α → R) : Germ l R) = ∏ i ∈ s, (f i : Germ l R) 
Arguments: {α : Type u_6} (l : Filter α) (R : Type u_7) [CommMonoid R] {ι : Type u_8} (f : ι → α → R) (s : Finset ι)
Goal: ↑(∏ i ∈ s, f i) = ∏ i ∈ s, ↑(f i)
-- CompHaus.pullback.condition
@[reassoc]
lemma pullback.condition : pullback.fst f g ≫ f = pullback.snd f g ≫ g 
Arguments: {X Y B : CompHaus} (f : X ⟶ B) (g : Y ⟶ B)
Goal: CategoryTheory.CategoryStruct.comp (CompHaus.pullback.fst f g) f =
  CategoryTheory.CategoryStruct.comp (CompHaus.pullback.snd f g) g
-- CompHaus.pullback.lift_fst
@[reassoc (attr := simp)]
lemma pullback.lift_fst {Z : CompHaus.{u}} (a : Z ⟶ X) (b : Z ⟶ Y) (w : a ≫ f = b ≫ g) :
    pullback.lift f g a b w ≫ pullback.fst f g = a 
Arguments: {X Y B : CompHaus} (f : X ⟶ B) (g : Y ⟶ B) {Z : CompHaus} (a : Z ⟶ X) (b : Z ⟶ Y) (w : CategoryTheory.CategoryStruct.comp a f = CategoryTheory.CategoryStruct.comp b g)
Goal: CategoryTheory.CategoryStruct.comp (CompHaus.pullback.lift f g a b w) (CompHaus.pullback.fst f g) = a
-- CompHaus.pullback.lift_snd
@[reassoc (attr := simp)]
lemma pullback.lift_snd {Z : CompHaus.{u}} (a : Z ⟶ X) (b : Z ⟶ Y) (w : a ≫ f = b ≫ g) :
    pullback.lift f g a b w ≫ pullback.snd f g = b 
Arguments: {X Y B : CompHaus} (f : X ⟶ B) (g : Y ⟶ B) {Z : CompHaus} (a : Z ⟶ X) (b : Z ⟶ Y) (w : CategoryTheory.CategoryStruct.comp a f = CategoryTheory.CategoryStruct.comp b g)
Goal: CategoryTheory.CategoryStruct.comp (CompHaus.pullback.lift f g a b w) (CompHaus.pullback.snd f g) = b
-- CompHaus.pullback.hom_ext
lemma pullback.hom_ext {Z : CompHaus.{u}} (a b : Z ⟶ pullback f g)
    (hfst : a ≫ pullback.fst f g = b ≫ pullback.fst f g)
    (hsnd : a ≫ pullback.snd f g = b ≫ pullback.snd f g) : a = b 
Arguments: {X Y B : CompHaus} (f : X ⟶ B) (g : Y ⟶ B) {Z : CompHaus} (a b : Z ⟶ CompHaus.pullback f g) (hfst :
  CategoryTheory.CategoryStruct.comp a (CompHaus.pullback.fst f g) =
    CategoryTheory.CategoryStruct.comp b (CompHaus.pullback.fst f g)) (hsnd :
  CategoryTheory.CategoryStruct.comp a (CompHaus.pullback.snd f g) =
    CategoryTheory.CategoryStruct.comp b (CompHaus.pullback.snd f g))
Goal: a = b
-- CompHaus.pullback.cone_π
@[simps! pt π]
def pullback.cone : Limits.PullbackCone f g 
Arguments: {X Y B : CompHaus} (f : X ⟶ B) (g : Y ⟶ B)
Goal: (CompHaus.pullback.cone f g).π =
  {
    app := fun j =>
      Option.rec (CategoryTheory.CategoryStruct.comp (CompHaus.pullback.fst f g) f)
        (fun val => CategoryTheory.Limits.WalkingPair.rec (CompHaus.pullback.fst f g) (CompHaus.pullback.snd f g) val)
        j,
    naturality := ⋯ }
-- CompHaus.pullback.cone_pt
@[simps! pt π]
def pullback.cone : Limits.PullbackCone f g 
Arguments: {X Y B : CompHaus} (f : X ⟶ B) (g : Y ⟶ B)
Goal: (CompHaus.pullback.cone f g).pt = CompHaus.pullback f g
-- CompHaus.pullback.isLimit_lift
@[simps! lift]
def pullback.isLimit : Limits.IsLimit (pullback.cone f g) 
Arguments: {X Y B : CompHaus} (f : X ⟶ B) (g : Y ⟶ B) (s : CategoryTheory.Limits.PullbackCone f g)
Goal: (CompHaus.pullback.isLimit f g).lift s = CompHaus.pullback.lift f g s.fst s.snd ⋯
-- CompHaus.pullback_fst_eq
theorem pullback_fst_eq :
    CompHaus.pullback.fst f g = (pullbackIsoPullback f g).hom ≫ Limits.pullback.fst f g 
Arguments: {X Y B : CompHaus} (f : X ⟶ B) (g : Y ⟶ B)
Goal: CompHaus.pullback.fst f g =
  CategoryTheory.CategoryStruct.comp (CompHaus.pullbackIsoPullback f g).hom (CategoryTheory.Limits.pullback.fst f g)
-- CompHaus.pullback_snd_eq
theorem pullback_snd_eq :
    CompHaus.pullback.snd f g = (pullbackIsoPullback f g).hom ≫ Limits.pullback.snd f g 
Arguments: {X Y B : CompHaus} (f : X ⟶ B) (g : Y ⟶ B)
Goal: CompHaus.pullback.snd f g =
  CategoryTheory.CategoryStruct.comp (CompHaus.pullbackIsoPullback f g).hom (CategoryTheory.Limits.pullback.snd f g)
-- CompHaus.finiteCoproduct.ι_desc
@[reassoc (attr := simp)]
lemma finiteCoproduct.ι_desc {B : CompHaus} (e : (a : α) → (X a ⟶ B)) (a : α) :
    finiteCoproduct.ι X a ≫ finiteCoproduct.desc X e = e a 
Arguments: {α : Type w} [Finite α] (X : α → CompHaus) {B : CompHaus} (e : (a : α) → X a ⟶ B) (a : α)
Goal: CategoryTheory.CategoryStruct.comp (CompHaus.finiteCoproduct.ι X a) (CompHaus.finiteCoproduct.desc X e) = e a
-- CompHaus.finiteCoproduct.hom_ext
lemma finiteCoproduct.hom_ext {B : CompHaus} (f g : finiteCoproduct X ⟶ B)
    (h : ∀ a : α, finiteCoproduct.ι X a ≫ f = finiteCoproduct.ι X a ≫ g) : f = g 
Arguments: {α : Type w} [Finite α] (X : α → CompHaus) {B : CompHaus} (f g : CompHaus.finiteCoproduct X ⟶ B) (h :
  ∀ (a : α),
    CategoryTheory.CategoryStruct.comp (CompHaus.finiteCoproduct.ι X a) f =
      CategoryTheory.CategoryStruct.comp (CompHaus.finiteCoproduct.ι X a) g)
Goal: f = g
-- CompHaus.Sigma.ι_comp_toFiniteCoproduct
theorem Sigma.ι_comp_toFiniteCoproduct (a : α) :
    (Limits.Sigma.ι X a) ≫ (coproductIsoCoproduct X).inv = finiteCoproduct.ι X a 
Arguments: {α : Type w} [Finite α] (X : α → CompHaus) (a : α)
Goal: CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Sigma.ι X a) (CompHaus.coproductIsoCoproduct X).inv =
  CompHaus.finiteCoproduct.ι X a
-- CompHaus.finiteCoproduct.ι_injective
lemma finiteCoproduct.ι_injective (a : α) : Function.Injective (finiteCoproduct.ι X a) 
Arguments: {α : Type w} [Finite α] (X : α → CompHaus) (a : α)
Goal: Function.Injective ⇑(CompHaus.finiteCoproduct.ι X a)
-- CompHaus.finiteCoproduct.ι_jointly_surjective
lemma finiteCoproduct.ι_jointly_surjective (R : finiteCoproduct X) :
    ∃ (a : α) (r : X a), R = finiteCoproduct.ι X a r 
Arguments: {α : Type w} [Finite α] (X : α → CompHaus) (R : ↑(CompHaus.finiteCoproduct X).toTop)
Goal: ∃ a r, R = (CompHaus.finiteCoproduct.ι X a) r
-- CompHaus.finiteCoproduct.ι_desc_apply
lemma finiteCoproduct.ι_desc_apply {B : CompHaus} {π : (a : α) → X a ⟶ B} (a : α) :
    ∀ x, finiteCoproduct.desc X π (finiteCoproduct.ι X a x) = π a x 
Arguments: {α : Type w} [Finite α] (X : α → CompHaus) {B : CompHaus} {π : (a : α) → X a ⟶ B} (a : α) (x : (CategoryTheory.forget CompHaus).obj (X a))
Goal: (CompHaus.finiteCoproduct.desc X π) ((CompHaus.finiteCoproduct.ι X a) x) = (π a) x
-- stoneCechObj_toTop_str_IsOpen
@[simps!]
def stoneCechObj (X : TopCat) : CompHaus 
Arguments: (X : TopCat) (s : Set (Quotient (t2Setoid (PreStoneCech ↑X))))
Goal: TopologicalSpace.IsOpen s = IsOpen (Quotient.mk' ⁻¹' s)
-- stoneCechObj_toTop_α
@[simps!]
def stoneCechObj (X : TopCat) : CompHaus 
Arguments: (X : TopCat)
Goal: ↑(stoneCechObj X).toTop = StoneCech ↑X
-- topToCompHaus_obj
theorem topToCompHaus_obj (X : TopCat) : ↥(topToCompHaus.obj X) = StoneCech X 
Arguments: (X : TopCat)
Goal: ↑(topToCompHaus.obj X).toTop = StoneCech ↑X
-- CompHaus.epi_iff_surjective
theorem epi_iff_surjective {X Y : CompHaus.{u}} (f : X ⟶ Y) : Epi f ↔ Function.Surjective f 
Arguments: {X Y : CompHaus} (f : X ⟶ Y)
Goal: CategoryTheory.Epi f ↔ Function.Surjective ⇑f
-- TopCat.pullbackFst_apply
lemma pullbackFst_apply (f : X ⟶ Z) (g : Y ⟶ Z) (x) : pullbackFst f g x = x.1.1 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z) (x : ↑(TopCat.of { p // f p.1 = g p.2 }))
Goal: (TopCat.pullbackFst f g) x = (↑x).1
-- TopCat.pullbackSnd_apply
lemma pullbackSnd_apply (f : X ⟶ Z) (g : Y ⟶ Z) (x) : pullbackSnd f g x = x.1.2 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z) (x : ↑(TopCat.of { p // f p.1 = g p.2 }))
Goal: (TopCat.pullbackSnd f g) x = (↑x).2
-- TopCat.pullbackIsoProdSubtype_inv_fst
@[reassoc (attr := simp)]
theorem pullbackIsoProdSubtype_inv_fst (f : X ⟶ Z) (g : Y ⟶ Z) :
    (pullbackIsoProdSubtype f g).inv ≫ pullback.fst _ _ = pullbackFst f g 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z)
Goal: (TopCat.pullbackIsoProdSubtype f g).inv ≫ CategoryTheory.Limits.pullback.fst f g = TopCat.pullbackFst f g
-- TopCat.pullbackIsoProdSubtype_inv_fst_apply
theorem pullbackIsoProdSubtype_inv_fst_apply (f : X ⟶ Z) (g : Y ⟶ Z)
    (x : { p : X × Y // f p.1 = g p.2 }) :
    pullback.fst f g ((pullbackIsoProdSubtype f g).inv x) = (x : X × Y).fst 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z) (x : { p // f p.1 = g p.2 })
Goal: (CategoryTheory.Limits.pullback.fst f g) ((TopCat.pullbackIsoProdSubtype f g).inv x) = (↑x).1
-- TopCat.pullbackIsoProdSubtype_inv_snd
@[reassoc (attr := simp)]
theorem pullbackIsoProdSubtype_inv_snd (f : X ⟶ Z) (g : Y ⟶ Z) :
    (pullbackIsoProdSubtype f g).inv ≫ pullback.snd _ _ = pullbackSnd f g 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z)
Goal: (TopCat.pullbackIsoProdSubtype f g).inv ≫ CategoryTheory.Limits.pullback.snd f g = TopCat.pullbackSnd f g
-- TopCat.pullbackIsoProdSubtype_inv_snd_apply
theorem pullbackIsoProdSubtype_inv_snd_apply (f : X ⟶ Z) (g : Y ⟶ Z)
    (x : { p : X × Y // f p.1 = g p.2 }) :
    pullback.snd f g ((pullbackIsoProdSubtype f g).inv x) = (x : X × Y).snd 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z) (x : { p // f p.1 = g p.2 })
Goal: (CategoryTheory.Limits.pullback.snd f g) ((TopCat.pullbackIsoProdSubtype f g).inv x) = (↑x).2
-- TopCat.pullbackIsoProdSubtype_hom_fst
theorem pullbackIsoProdSubtype_hom_fst (f : X ⟶ Z) (g : Y ⟶ Z) :
    (pullbackIsoProdSubtype f g).hom ≫ pullbackFst f g = pullback.fst _ _ 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z)
Goal: (TopCat.pullbackIsoProdSubtype f g).hom ≫ TopCat.pullbackFst f g = CategoryTheory.Limits.pullback.fst f g
-- TopCat.pullbackIsoProdSubtype_hom_snd
theorem pullbackIsoProdSubtype_hom_snd (f : X ⟶ Z) (g : Y ⟶ Z) :
    (pullbackIsoProdSubtype f g).hom ≫ pullbackSnd f g = pullback.snd _ _ 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z)
Goal: (TopCat.pullbackIsoProdSubtype f g).hom ≫ TopCat.pullbackSnd f g = CategoryTheory.Limits.pullback.snd f g
-- TopCat.pullbackIsoProdSubtype_hom_apply
theorem pullbackIsoProdSubtype_hom_apply {f : X ⟶ Z} {g : Y ⟶ Z}
    (x : ConcreteCategory.forget.obj (pullback f g)) :
    (pullbackIsoProdSubtype f g).hom x =
      ⟨⟨pullback.fst f g x, pullback.snd f g x⟩, by
        simpa using ConcreteCategory.congr_hom pullback.condition x⟩ 
Arguments: {X Y Z : TopCat} {f : X ⟶ Z} {g : Y ⟶ Z} (x : CategoryTheory.ConcreteCategory.forget.obj (CategoryTheory.Limits.pullback f g))
Goal: (TopCat.pullbackIsoProdSubtype f g).hom x =
  ⟨((CategoryTheory.Limits.pullback.fst f g) x, (CategoryTheory.Limits.pullback.snd f g) x), ⋯⟩
-- TopCat.pullback_topology
theorem pullback_topology {X Y Z : TopCat.{u}} (f : X ⟶ Z) (g : Y ⟶ Z) :
    (pullback f g).str =
      induced (pullback.fst f g) X.str ⊓
        induced (pullback.snd f g) Y.str 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z)
Goal: (CategoryTheory.Limits.pullback f g).str =
  TopologicalSpace.induced (⇑(CategoryTheory.Limits.pullback.fst f g)) X.str ⊓
    TopologicalSpace.induced (⇑(CategoryTheory.Limits.pullback.snd f g)) Y.str
-- TopCat.range_pullback_to_prod
theorem range_pullback_to_prod {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z) :
    Set.range (prod.lift (pullback.fst f g) (pullback.snd f g)) =
      { x | (Limits.prod.fst ≫ f) x = (Limits.prod.snd ≫ g) x } 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z)
Goal: Set.range
    ⇑(CategoryTheory.Limits.prod.lift (CategoryTheory.Limits.pullback.fst f g)
        (CategoryTheory.Limits.pullback.snd f g)) =
  {x | (CategoryTheory.Limits.prod.fst ≫ f) x = (CategoryTheory.Limits.prod.snd ≫ g) x}
-- TopCat.inducing_pullback_to_prod
theorem inducing_pullback_to_prod {X Y Z : TopCat.{u}} (f : X ⟶ Z) (g : Y ⟶ Z) :
    Inducing <| ⇑(prod.lift (pullback.fst f g) (pullback.snd f g)) 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z)
Goal: Inducing
  ⇑(CategoryTheory.Limits.prod.lift (CategoryTheory.Limits.pullback.fst f g) (CategoryTheory.Limits.pullback.snd f g))
-- TopCat.embedding_pullback_to_prod
theorem embedding_pullback_to_prod {X Y Z : TopCat.{u}} (f : X ⟶ Z) (g : Y ⟶ Z) :
    Embedding <| ⇑(prod.lift (pullback.fst f g) (pullback.snd f g)) 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z)
Goal: Embedding
  ⇑(CategoryTheory.Limits.prod.lift (CategoryTheory.Limits.pullback.fst f g) (CategoryTheory.Limits.pullback.snd f g))
-- TopCat.range_pullback_map
theorem range_pullback_map {W X Y Z S T : TopCat} (f₁ : W ⟶ S) (f₂ : X ⟶ S) (g₁ : Y ⟶ T)
    (g₂ : Z ⟶ T) (i₁ : W ⟶ Y) (i₂ : X ⟶ Z) (i₃ : S ⟶ T) [H₃ : Mono i₃] (eq₁ : f₁ ≫ i₃ = i₁ ≫ g₁)
    (eq₂ : f₂ ≫ i₃ = i₂ ≫ g₂) :
    Set.range (pullback.map f₁ f₂ g₁ g₂ i₁ i₂ i₃ eq₁ eq₂) =
      (pullback.fst g₁ g₂) ⁻¹' Set.range i₁ ∩ (pullback.snd g₁ g₂) ⁻¹' Set.range i₂ 
Arguments: {W X Y Z S T : TopCat} (f₁ : W ⟶ S) (f₂ : X ⟶ S) (g₁ : Y ⟶ T) (g₂ : Z ⟶ T) (i₁ : W ⟶ Y) (i₂ : X ⟶ Z) (i₃ : S ⟶ T) [H₃ : CategoryTheory.Mono i₃] (eq₁ : f₁ ≫ i₃ = i₁ ≫ g₁) (eq₂ : f₂ ≫ i₃ = i₂ ≫ g₂)
Goal: Set.range ⇑(CategoryTheory.Limits.pullback.map f₁ f₂ g₁ g₂ i₁ i₂ i₃ eq₁ eq₂) =
  ⇑(CategoryTheory.Limits.pullback.fst g₁ g₂) ⁻¹' Set.range ⇑i₁ ∩
    ⇑(CategoryTheory.Limits.pullback.snd g₁ g₂) ⁻¹' Set.range ⇑i₂
-- TopCat.pullback_fst_range
theorem pullback_fst_range {X Y S : TopCat} (f : X ⟶ S) (g : Y ⟶ S) :
    Set.range (pullback.fst f g) = { x : X | ∃ y : Y, f x = g y } 
Arguments: {X Y S : TopCat} (f : X ⟶ S) (g : Y ⟶ S)
Goal: Set.range ⇑(CategoryTheory.Limits.pullback.fst f g) = {x | ∃ y, f x = g y}
-- TopCat.pullback_snd_range
theorem pullback_snd_range {X Y S : TopCat} (f : X ⟶ S) (g : Y ⟶ S) :
    Set.range (pullback.snd f g) = { y : Y | ∃ x : X, f x = g y } 
Arguments: {X Y S : TopCat} (f : X ⟶ S) (g : Y ⟶ S)
Goal: Set.range ⇑(CategoryTheory.Limits.pullback.snd f g) = {y | ∃ x, f x = g y}
-- TopCat.pullback_map_embedding_of_embeddings
theorem pullback_map_embedding_of_embeddings {W X Y Z S T : TopCat.{u}} (f₁ : W ⟶ S) (f₂ : X ⟶ S)
    (g₁ : Y ⟶ T) (g₂ : Z ⟶ T) {i₁ : W ⟶ Y} {i₂ : X ⟶ Z} (H₁ : Embedding i₁) (H₂ : Embedding i₂)
    (i₃ : S ⟶ T) (eq₁ : f₁ ≫ i₃ = i₁ ≫ g₁) (eq₂ : f₂ ≫ i₃ = i₂ ≫ g₂) :
    Embedding (pullback.map f₁ f₂ g₁ g₂ i₁ i₂ i₃ eq₁ eq₂) 
Arguments: {W X Y Z S T : TopCat} (f₁ : W ⟶ S) (f₂ : X ⟶ S) (g₁ : Y ⟶ T) (g₂ : Z ⟶ T) {i₁ : W ⟶ Y} {i₂ : X ⟶ Z} (H₁ : Embedding ⇑i₁) (H₂ : Embedding ⇑i₂) (i₃ : S ⟶ T) (eq₁ : f₁ ≫ i₃ = i₁ ≫ g₁) (eq₂ : f₂ ≫ i₃ = i₂ ≫ g₂)
Goal: Embedding ⇑(CategoryTheory.Limits.pullback.map f₁ f₂ g₁ g₂ i₁ i₂ i₃ eq₁ eq₂)
-- TopCat.pullback_map_openEmbedding_of_open_embeddings
theorem pullback_map_openEmbedding_of_open_embeddings {W X Y Z S T : TopCat.{u}} (f₁ : W ⟶ S)
    (f₂ : X ⟶ S) (g₁ : Y ⟶ T) (g₂ : Z ⟶ T) {i₁ : W ⟶ Y} {i₂ : X ⟶ Z} (H₁ : OpenEmbedding i₁)
    (H₂ : OpenEmbedding i₂) (i₃ : S ⟶ T) [H₃ : Mono i₃] (eq₁ : f₁ ≫ i₃ = i₁ ≫ g₁)
    (eq₂ : f₂ ≫ i₃ = i₂ ≫ g₂) : OpenEmbedding (pullback.map f₁ f₂ g₁ g₂ i₁ i₂ i₃ eq₁ eq₂) 
Arguments: {W X Y Z S T : TopCat} (f₁ : W ⟶ S) (f₂ : X ⟶ S) (g₁ : Y ⟶ T) (g₂ : Z ⟶ T) {i₁ : W ⟶ Y} {i₂ : X ⟶ Z} (H₁ : OpenEmbedding ⇑i₁) (H₂ : OpenEmbedding ⇑i₂) (i₃ : S ⟶ T) [H₃ : CategoryTheory.Mono i₃] (eq₁ : f₁ ≫ i₃ = i₁ ≫ g₁) (eq₂ : f₂ ≫ i₃ = i₂ ≫ g₂)
Goal: OpenEmbedding ⇑(CategoryTheory.Limits.pullback.map f₁ f₂ g₁ g₂ i₁ i₂ i₃ eq₁ eq₂)
-- TopCat.snd_embedding_of_left_embedding
theorem snd_embedding_of_left_embedding {X Y S : TopCat} {f : X ⟶ S} (H : Embedding f) (g : Y ⟶ S) :
    Embedding <| ⇑(pullback.snd f g) 
Arguments: {X Y S : TopCat} {f : X ⟶ S} (H : Embedding ⇑f) (g : Y ⟶ S)
Goal: Embedding ⇑(CategoryTheory.Limits.pullback.snd f g)
-- TopCat.fst_embedding_of_right_embedding
theorem fst_embedding_of_right_embedding {X Y S : TopCat} (f : X ⟶ S) {g : Y ⟶ S}
    (H : Embedding g) : Embedding <| ⇑(pullback.fst f g) 
Arguments: {X Y S : TopCat} (f : X ⟶ S) {g : Y ⟶ S} (H : Embedding ⇑g)
Goal: Embedding ⇑(CategoryTheory.Limits.pullback.fst f g)
-- TopCat.embedding_of_pullback_embeddings
theorem embedding_of_pullback_embeddings {X Y S : TopCat} {f : X ⟶ S} {g : Y ⟶ S} (H₁ : Embedding f)
    (H₂ : Embedding g) : Embedding (limit.π (cospan f g) WalkingCospan.one) 
Arguments: {X Y S : TopCat} {f : X ⟶ S} {g : Y ⟶ S} (H₁ : Embedding ⇑f) (H₂ : Embedding ⇑g)
Goal: Embedding ⇑(CategoryTheory.Limits.limit.π (CategoryTheory.Limits.cospan f g) CategoryTheory.Limits.WalkingCospan.one)
-- TopCat.snd_openEmbedding_of_left_openEmbedding
theorem snd_openEmbedding_of_left_openEmbedding {X Y S : TopCat} {f : X ⟶ S} (H : OpenEmbedding f)
    (g : Y ⟶ S) : OpenEmbedding <| ⇑(pullback.snd f g) 
Arguments: {X Y S : TopCat} {f : X ⟶ S} (H : OpenEmbedding ⇑f) (g : Y ⟶ S)
Goal: OpenEmbedding ⇑(CategoryTheory.Limits.pullback.snd f g)
-- TopCat.fst_openEmbedding_of_right_openEmbedding
theorem fst_openEmbedding_of_right_openEmbedding {X Y S : TopCat} (f : X ⟶ S) {g : Y ⟶ S}
    (H : OpenEmbedding g) : OpenEmbedding <| ⇑(pullback.fst f g) 
Arguments: {X Y S : TopCat} (f : X ⟶ S) {g : Y ⟶ S} (H : OpenEmbedding ⇑g)
Goal: OpenEmbedding ⇑(CategoryTheory.Limits.pullback.fst f g)
-- TopCat.openEmbedding_of_pullback_open_embeddings
theorem openEmbedding_of_pullback_open_embeddings {X Y S : TopCat} {f : X ⟶ S} {g : Y ⟶ S}
    (H₁ : OpenEmbedding f) (H₂ : OpenEmbedding g) :
    OpenEmbedding (limit.π (cospan f g) WalkingCospan.one) 
Arguments: {X Y S : TopCat} {f : X ⟶ S} {g : Y ⟶ S} (H₁ : OpenEmbedding ⇑f) (H₂ : OpenEmbedding ⇑g)
Goal: OpenEmbedding
  ⇑(CategoryTheory.Limits.limit.π (CategoryTheory.Limits.cospan f g) CategoryTheory.Limits.WalkingCospan.one)
-- TopCat.fst_iso_of_right_embedding_range_subset
theorem fst_iso_of_right_embedding_range_subset {X Y S : TopCat} (f : X ⟶ S) {g : Y ⟶ S}
    (hg : Embedding g) (H : Set.range f ⊆ Set.range g) :
    IsIso (pullback.fst f g) 
Arguments: {X Y S : TopCat} (f : X ⟶ S) {g : Y ⟶ S} (hg : Embedding ⇑g) (H : Set.range ⇑f ⊆ Set.range ⇑g)
Goal: CategoryTheory.IsIso (CategoryTheory.Limits.pullback.fst f g)
-- TopCat.snd_iso_of_left_embedding_range_subset
theorem snd_iso_of_left_embedding_range_subset {X Y S : TopCat} {f : X ⟶ S} (hf : Embedding f)
    (g : Y ⟶ S) (H : Set.range g ⊆ Set.range f) : IsIso (pullback.snd f g) 
Arguments: {X Y S : TopCat} {f : X ⟶ S} (hf : Embedding ⇑f) (g : Y ⟶ S) (H : Set.range ⇑g ⊆ Set.range ⇑f)
Goal: CategoryTheory.IsIso (CategoryTheory.Limits.pullback.snd f g)
-- TopCat.pullback_snd_image_fst_preimage
theorem pullback_snd_image_fst_preimage (f : X ⟶ Z) (g : Y ⟶ Z) (U : Set X) :
    (pullback.snd f g) '' ((pullback.fst f g) ⁻¹' U) =
      g ⁻¹' (f '' U) 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z) (U : Set ↑X)
Goal: ⇑(CategoryTheory.Limits.pullback.snd f g) '' (⇑(CategoryTheory.Limits.pullback.fst f g) ⁻¹' U) = ⇑g ⁻¹' (⇑f '' U)
-- TopCat.pullback_fst_image_snd_preimage
theorem pullback_fst_image_snd_preimage (f : X ⟶ Z) (g : Y ⟶ Z) (U : Set Y) :
    (pullback.fst f g) '' ((pullback.snd f g) ⁻¹' U) =
      f ⁻¹' (g '' U) 
Arguments: {X Y Z : TopCat} (f : X ⟶ Z) (g : Y ⟶ Z) (U : Set ↑Y)
Goal: ⇑(CategoryTheory.Limits.pullback.fst f g) '' (⇑(CategoryTheory.Limits.pullback.snd f g) ⁻¹' U) = ⇑f ⁻¹' (⇑g '' U)
-- TopCat.coinduced_of_isColimit
theorem coinduced_of_isColimit {F : J ⥤ TopCat.{max v u}} (c : Cocone F) (hc : IsColimit c) :
    c.pt.str = ⨆ j, (F.obj j).str.coinduced (c.ι.app j) 
Arguments: {J : Type v} [CategoryTheory.SmallCategory J] {F : J ⥤ TopCat} (c : CategoryTheory.Limits.Cocone F) (hc : CategoryTheory.Limits.IsColimit c)
Goal: c.pt.str = ⨆ j, TopologicalSpace.coinduced (⇑(c.ι.app j)) (F.obj j).str
-- TopCat.colimit_topology
theorem colimit_topology (F : J ⥤ TopCat.{max v u}) :
    (colimit F).str = ⨆ j, (F.obj j).str.coinduced (colimit.ι F j) 
Arguments: {J : Type v} [CategoryTheory.SmallCategory J] (F : J ⥤ TopCat)
Goal: (CategoryTheory.Limits.colimit F).str =
  ⨆ j, TopologicalSpace.coinduced (⇑(CategoryTheory.Limits.colimit.ι F j)) (F.obj j).str
-- TopCat.colimit_isOpen_iff
theorem colimit_isOpen_iff (F : J ⥤ TopCat.{max v u}) (U : Set ((colimit F : _) : Type max v u)) :
    IsOpen U ↔ ∀ j, IsOpen (colimit.ι F j ⁻¹' U) 
Arguments: {J : Type v} [CategoryTheory.SmallCategory J] (F : J ⥤ TopCat) (U : Set ↑(CategoryTheory.Limits.colimit F))
Goal: IsOpen U ↔ ∀ (j : J), IsOpen (⇑(CategoryTheory.Limits.colimit.ι F j) ⁻¹' U)
-- TopCat.coequalizer_isOpen_iff
theorem coequalizer_isOpen_iff (F : WalkingParallelPair ⥤ TopCat.{u})
    (U : Set ((colimit F : _) : Type u)) :
    IsOpen U ↔ IsOpen (colimit.ι F WalkingParallelPair.one ⁻¹' U) 
Arguments: (F : CategoryTheory.Limits.WalkingParallelPair ⥤ TopCat) (U : Set ↑(CategoryTheory.Limits.colimit F))
Goal: IsOpen U ↔ IsOpen (⇑(CategoryTheory.Limits.colimit.ι F CategoryTheory.Limits.WalkingParallelPair.one) ⁻¹' U)
-- FintypeCat.toLightProfinite_obj_toTop_str_IsOpen
@[simps!]
def FintypeCat.toLightProfinite : FintypeCat ⥤ LightProfinite 
Arguments: (A : FintypeCat) (u : Set ↑A)
Goal: TopologicalSpace.IsOpen u = (u ∈ ⊤)
-- FintypeCat.toLightProfinite_map_apply
@[simps!]
def FintypeCat.toLightProfinite : FintypeCat ⥤ LightProfinite 
Goal: ∀ {X Y : FintypeCat} (f : X ⟶ Y) (a : ↑X), (FintypeCat.toLightProfinite.map f) a = f a
-- FintypeCat.toLightProfinite_obj_toTop_α
@[simps!]
def FintypeCat.toLightProfinite : FintypeCat ⥤ LightProfinite 
Arguments: (A : FintypeCat)
Goal: ↑(FintypeCat.toLightProfinite.obj A).toTop = ↑A
-- LightProfinite.isClosedMap
theorem isClosedMap : IsClosedMap f 
Arguments: {X Y : LightProfinite} (f : X ⟶ Y)
Goal: IsClosedMap ⇑f
-- LightProfinite.isIso_of_bijective
theorem isIso_of_bijective (bij : Function.Bijective f) : IsIso f 
Arguments: {X Y : LightProfinite} (f : X ⟶ Y) (bij : Function.Bijective ⇑f)
Goal: CategoryTheory.IsIso f
-- LightProfinite.epi_iff_surjective
theorem epi_iff_surjective {X Y : LightProfinite.{u}} (f : X ⟶ Y) :
    Epi f ↔ Function.Surjective f 
Arguments: {X Y : LightProfinite} (f : X ⟶ Y)
Goal: CategoryTheory.Epi f ↔ Function.Surjective ⇑f
-- LightDiagram.instCategory_id_apply
@[simps!]
instance : Category LightDiagram 
Arguments: (X : CategoryTheory.InducedCategory Profinite LightDiagram.toProfinite) (a : ↑(LightDiagram.toProfinite X).toTop)
Goal: (𝟙 X) a = a
-- LightDiagram.instCategory_comp_apply
@[simps!]
instance : Category LightDiagram 
Goal: ∀ {X Y Z : CategoryTheory.InducedCategory Profinite LightDiagram.toProfinite} (f : X ⟶ Y) (g : Y ⟶ Z)
  (a : ↑(LightDiagram.toProfinite X).toTop), (f ≫ g) a = g (f a)
-- lightDiagramToProfinite_map
@[simps!]
def lightDiagramToProfinite : LightDiagram ⥤ Profinite 
Goal: ∀ {X Y : CategoryTheory.InducedCategory Profinite LightDiagram.toProfinite} (f : X ⟶ Y),
  lightDiagramToProfinite.map f = f
-- lightDiagramToProfinite_obj
@[simps!]
def lightDiagramToProfinite : LightDiagram ⥤ Profinite 
Arguments: (S : LightDiagram)
Goal: lightDiagramToProfinite.obj S = S.toProfinite
-- lightProfiniteToLightDiagram_obj
@[simps]
noncomputable def lightProfiniteToLightDiagram : LightProfinite.{u} ⥤ LightDiagram.{u} 
Arguments: (X : LightProfinite)
Goal: lightProfiniteToLightDiagram.obj X = X.toLightDiagram
-- lightProfiniteToLightDiagram_map
@[simps]
noncomputable def lightProfiniteToLightDiagram : LightProfinite.{u} ⥤ LightDiagram.{u} 
Goal: ∀ {X Y : LightProfinite} (f : X ⟶ Y), lightProfiniteToLightDiagram.map f = f
-- lightDiagramToLightProfinite_obj
@[simps]
def lightDiagramToLightProfinite : LightDiagram.{u} ⥤ LightProfinite.{u} 
Arguments: (X : LightDiagram)
Goal: lightDiagramToLightProfinite.obj X = LightProfinite.of ↑X.cone.pt.toTop
-- lightDiagramToLightProfinite_map
@[simps]
def lightDiagramToLightProfinite : LightDiagram.{u} ⥤ LightProfinite.{u} 
Goal: ∀ {X Y : LightDiagram} (f : X ⟶ Y), lightDiagramToLightProfinite.map f = f
-- Stonean.finiteCoproduct.ι_desc
@[reassoc (attr := simp)]
lemma finiteCoproduct.ι_desc {B : Stonean.{u}} (e : (a : α) → (X a ⟶ B)) (a : α) :
    finiteCoproduct.ι X a ≫ finiteCoproduct.desc X e = e a 
Arguments: {α : Type} [Finite α] (X : α → Stonean) {B : Stonean} (e : (a : α) → X a ⟶ B) (a : α)
Goal: Stonean.finiteCoproduct.ι X a ≫ Stonean.finiteCoproduct.desc X e = e a