Theorem: ContinuousMap.piComparison_fac
File: Mathlib/Topology/Category/TopCat/Yoneda.lean

Proof steps:
state_before: C : Type u
inst✝¹ : Category.{v, u} C
F : C ⥤ TopCat
Y : Type w'
inst✝ : TopologicalSpace Y
α : Type
X : α → TopCat
⊢ (piComparison (yonedaPresheaf' Y) fun x => op (X x)) =
    (yonedaPresheaf' Y).map ((opCoproductIsoProduct X).inv ≫ (TopCat.sigmaIsoSigma X).inv.op) ≫
      (equivEquivIso (sigmaEquiv Y fun x => ↑(X x))).inv ≫ (Types.productIso fun i => C(↑(X i), Y)).inv
state_after: C : Type u
inst✝¹ : Category.{v, u} C
F : C ⥤ TopCat
Y : Type w'
inst✝ : TopologicalSpace Y
α : Type
X : α → TopCat
⊢ (piComparison (yonedaPresheaf' Y) fun x => op (X x)) ≫ (Types.productIso fun i => C(↑(X i), Y)).hom =
    (yonedaPresheaf' Y).map ((opCoproductIsoProduct X).inv ≫ (TopCat.sigmaIsoSigma X).inv.op) ≫
      (equivEquivIso (sigmaEquiv Y fun x => ↑(X x))).inv
tactic: rw [← Category.assoc, Iso.eq_comp_inv]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
F : C ⥤ TopCat
Y : Type w'
inst✝ : TopologicalSpace Y
α : Type
X : α → TopCat
⊢ (piComparison (yonedaPresheaf' Y) fun x => op (X x)) ≫ (Types.productIso fun i => C(↑(X i), Y)).hom =
    (yonedaPresheaf' Y).map ((opCoproductIsoProduct X).inv ≫ (TopCat.sigmaIsoSigma X).inv.op) ≫
      (equivEquivIso (sigmaEquiv Y fun x => ↑(X x))).inv
state_after: case h.h.h
C : Type u
inst✝¹ : Category.{v, u} C
F : C ⥤ TopCat
Y : Type w'
inst✝ : TopologicalSpace Y
α : Type
X : α → TopCat
a✝¹ : (yonedaPresheaf' Y).obj (∏ᶜ fun x => op (X x))
x✝ : α
a✝ : ↑(X x✝)
⊢ (((piComparison (yonedaPresheaf' Y) fun x => op (X x)) ≫ (Types.productIso fun i => C(↑(X i), Y)).hom) a✝¹ x✝) a✝ =
    (((yonedaPresheaf' Y).map ((opCoproductIsoProduct X).inv ≫ (TopCat.sigmaIsoSigma X).inv.op) ≫
          (equivEquivIso (sigmaEquiv Y fun x => ↑(X x))).inv)
        a✝¹ x✝)
      a✝
tactic: ext
state_before: case h.h.h
C : Type u
inst✝¹ : Category.{v, u} C
F : C ⥤ TopCat
Y : Type w'
inst✝ : TopologicalSpace Y
α : Type
X : α → TopCat
a✝¹ : (yonedaPresheaf' Y).obj (∏ᶜ fun x => op (X x))
x✝ : α
a✝ : ↑(X x✝)
⊢ (((piComparison (yonedaPresheaf' Y) fun x => op (X x)) ≫ (Types.productIso fun i => C(↑(X i), Y)).hom) a✝¹ x✝) a✝ =
    (((yonedaPresheaf' Y).map ((opCoproductIsoProduct X).inv ≫ (TopCat.sigmaIsoSigma X).inv.op) ≫
          (equivEquivIso (sigmaEquiv Y fun x => ↑(X x))).inv)
        a✝¹ x✝)
      a✝
state_after: case h.h.h
C : Type u
inst✝¹ : Category.{v, u} C
F : C ⥤ TopCat
Y : Type w'
inst✝ : TopologicalSpace Y
α : Type
X : α → TopCat
a✝¹ : (yonedaPresheaf' Y).obj (∏ᶜ fun x => op (X x))
x✝ : α
a✝ : ↑(X x✝)
⊢ a✝¹ ((Sigma.ι X x✝ ≫ (opCoproductIsoProduct X).inv.unop) a✝) =
    a✝¹ (((TopCat.sigmaIsoSigma X).inv ≫ (opCoproductIsoProduct X).inv.unop) ⟨x✝, a✝⟩)
tactic: simp only [yonedaPresheaf', unop_op, piComparison, types_comp_apply,
    Types.productIso_hom_comp_eval_apply, Types.pi_lift_π_apply, comp_apply, TopCat.coe_of,
    unop_comp, Quiver.Hom.unop_op, sigmaEquiv, equivEquivIso_hom, Equiv.toIso_inv,
    Equiv.coe_fn_symm_mk, comp_assoc, sigmaMk_apply, ← opCoproductIsoProduct_inv_comp_ι]
state_before: case h.h.h
C : Type u
inst✝¹ : Category.{v, u} C
F : C ⥤ TopCat
Y : Type w'
inst✝ : TopologicalSpace Y
α : Type
X : α → TopCat
a✝¹ : (yonedaPresheaf' Y).obj (∏ᶜ fun x => op (X x))
x✝ : α
a✝ : ↑(X x✝)
⊢ a✝¹ ((Sigma.ι X x✝ ≫ (opCoproductIsoProduct X).inv.unop) a✝) =
    a✝¹ (((TopCat.sigmaIsoSigma X).inv ≫ (opCoproductIsoProduct X).inv.unop) ⟨x✝, a✝⟩)
state_after: no goals
tactic: rfl