Theorem: CondensedSet.topCatAdjunctionUnit_val_app
File: Mathlib/Condensed/TopCatAdjunction.lean

Proof steps:
state_before: X✝ X : CondensedSet
S : CompHausᵒᵖ
x : X.val.obj S
⊢ Continuous fun s => X.val.map (CompHaus.const (Opposite.unop S) s).op x
state_after: X✝ X : CondensedSet
S : CompHausᵒᵖ
x : X.val.obj S
⊢ ∀ (i : (T : CompHaus) × X.val.obj (Opposite.op T)), Continuous fun a => CondensedSet.coinducingCoprod X ⟨i, a⟩
tactic: suffices ∀ (i : (T : CompHaus.{u}) × X.val.obj ⟨T⟩),
          Continuous (fun (a : i.fst) ↦ X.coinducingCoprod ⟨i, a⟩) from this ⟨_, _⟩
state_before: X✝ X : CondensedSet
S : CompHausᵒᵖ
x : X.val.obj S
⊢ ∀ (i : (T : CompHaus) × X.val.obj (Opposite.op T)), Continuous fun a => CondensedSet.coinducingCoprod X ⟨i, a⟩
state_after: X✝ X : CondensedSet
S : CompHausᵒᵖ
x : X.val.obj S
⊢ Continuous (CondensedSet.coinducingCoprod X)
tactic: rw [← continuous_sigma_iff]
state_before: X✝ X : CondensedSet
S : CompHausᵒᵖ
x : X.val.obj S
⊢ Continuous (CondensedSet.coinducingCoprod X)
state_after: no goals
tactic: apply continuous_coinduced_rng
state_before: X✝ X : CondensedSet
x✝² x✝¹ : CompHausᵒᵖ
x✝ : x✝² ⟶ x✝¹
⊢ X.val.map x✝ ≫
      (fun S x => { toFun := fun s => X.val.map (CompHaus.const (Opposite.unop S) s).op x, continuous_toFun := ⋯ })
        x✝¹ =
    (fun S x => { toFun := fun s => X.val.map (CompHaus.const (Opposite.unop S) s).op x, continuous_toFun := ⋯ }) x✝² ≫
      X.toTopCat.toCondensedSet.val.map x✝
state_after: case h
X✝ X : CondensedSet
x✝² x✝¹ : CompHausᵒᵖ
x✝ : x✝² ⟶ x✝¹
a✝ : X.val.obj x✝²
⊢ (X.val.map x✝ ≫
        (fun S x => { toFun := fun s => X.val.map (CompHaus.const (Opposite.unop S) s).op x, continuous_toFun := ⋯ })
          x✝¹)
      a✝ =
    ((fun S x => { toFun := fun s => X.val.map (CompHaus.const (Opposite.unop S) s).op x, continuous_toFun := ⋯ }) x✝² ≫
        X.toTopCat.toCondensedSet.val.map x✝)
      a✝
tactic: ext
state_before: case h
X✝ X : CondensedSet
x✝² x✝¹ : CompHausᵒᵖ
x✝ : x✝² ⟶ x✝¹
a✝ : X.val.obj x✝²
⊢ (X.val.map x✝ ≫
        (fun S x => { toFun := fun s => X.val.map (CompHaus.const (Opposite.unop S) s).op x, continuous_toFun := ⋯ })
          x✝¹)
      a✝ =
    ((fun S x => { toFun := fun s => X.val.map (CompHaus.const (Opposite.unop S) s).op x, continuous_toFun := ⋯ }) x✝² ≫
        X.toTopCat.toCondensedSet.val.map x✝)
      a✝
state_after: case h
X✝ X : CondensedSet
x✝² x✝¹ : CompHausᵒᵖ
x✝ : x✝² ⟶ x✝¹
a✝ : X.val.obj x✝²
⊢ { toFun := fun s => X.val.map (x✝ ≫ (CompHaus.const (Opposite.unop x✝¹) s).op) a✝, continuous_toFun := ⋯ } =
    { toFun := fun s => X.val.map (CompHaus.const (Opposite.unop x✝²) s).op a✝, continuous_toFun := ⋯ }.comp x✝.unop
tactic: simp only [TopCat.toCondensedSet_val_obj, CompHausLike.compHausLikeToTop_obj,
        Opposite.op_unop, types_comp_apply, TopCat.toCondensedSet_val_map,
        ← FunctorToTypes.map_comp_apply]
state_before: case h
X✝ X : CondensedSet
x✝² x✝¹ : CompHausᵒᵖ
x✝ : x✝² ⟶ x✝¹
a✝ : X.val.obj x✝²
⊢ { toFun := fun s => X.val.map (x✝ ≫ (CompHaus.const (Opposite.unop x✝¹) s).op) a✝, continuous_toFun := ⋯ } =
    { toFun := fun s => X.val.map (CompHaus.const (Opposite.unop x✝²) s).op a✝, continuous_toFun := ⋯ }.comp x✝.unop
state_after: no goals
tactic: rfl