Theorem: Homeomorph.piEquivPiSubtypeProd_symm_apply
File: Mathlib/Topology/Homeomorph.lean

Proof steps:
state_before: X : Type u_1
Y✝ : Type u_2
Z : Type u_3
inst✝⁶ : TopologicalSpace X
inst✝⁵ : TopologicalSpace Y✝
inst✝⁴ : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝³ : TopologicalSpace X'
inst✝² : TopologicalSpace Y'
ι : Type u_6
p : ι → Prop
Y : ι → Type u_7
inst✝¹ : (i : ι) → TopologicalSpace (Y i)
inst✝ : DecidablePred p
⊢ Continuous (Equiv.piEquivPiSubtypeProd p Y).toFun
state_after: no goals
tactic: apply Continuous.prod_mk <;> exact continuous_pi fun j => continuous_apply j.1
state_before: X : Type u_1
Y✝ : Type u_2
Z : Type u_3
inst✝⁶ : TopologicalSpace X
inst✝⁵ : TopologicalSpace Y✝
inst✝⁴ : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝³ : TopologicalSpace X'
inst✝² : TopologicalSpace Y'
ι : Type u_6
p : ι → Prop
Y : ι → Type u_7
inst✝¹ : (i : ι) → TopologicalSpace (Y i)
inst✝ : DecidablePred p
j : ι
⊢ Continuous fun a => (Equiv.piEquivPiSubtypeProd p Y).invFun a j
state_after: X : Type u_1
Y✝ : Type u_2
Z : Type u_3
inst✝⁶ : TopologicalSpace X
inst✝⁵ : TopologicalSpace Y✝
inst✝⁴ : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝³ : TopologicalSpace X'
inst✝² : TopologicalSpace Y'
ι : Type u_6
p : ι → Prop
Y : ι → Type u_7
inst✝¹ : (i : ι) → TopologicalSpace (Y i)
inst✝ : DecidablePred p
j : ι
⊢ Continuous fun a => if h : p j then a.1 ⟨j, h⟩ else a.2 ⟨j, h⟩
tactic: dsimp only [Equiv.piEquivPiSubtypeProd]
state_before: X : Type u_1
Y✝ : Type u_2
Z : Type u_3
inst✝⁶ : TopologicalSpace X
inst✝⁵ : TopologicalSpace Y✝
inst✝⁴ : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝³ : TopologicalSpace X'
inst✝² : TopologicalSpace Y'
ι : Type u_6
p : ι → Prop
Y : ι → Type u_7
inst✝¹ : (i : ι) → TopologicalSpace (Y i)
inst✝ : DecidablePred p
j : ι
⊢ Continuous fun a => if h : p j then a.1 ⟨j, h⟩ else a.2 ⟨j, h⟩
state_after: case pos
X : Type u_1
Y✝ : Type u_2
Z : Type u_3
inst✝⁶ : TopologicalSpace X
inst✝⁵ : TopologicalSpace Y✝
inst✝⁴ : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝³ : TopologicalSpace X'
inst✝² : TopologicalSpace Y'
ι : Type u_6
p : ι → Prop
Y : ι → Type u_7
inst✝¹ : (i : ι) → TopologicalSpace (Y i)
inst✝ : DecidablePred p
j : ι
h✝ : p j
⊢ Continuous fun a => a.1 ⟨j, h✝⟩

case neg
X : Type u_1
Y✝ : Type u_2
Z : Type u_3
inst✝⁶ : TopologicalSpace X
inst✝⁵ : TopologicalSpace Y✝
inst✝⁴ : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝³ : TopologicalSpace X'
inst✝² : TopologicalSpace Y'
ι : Type u_6
p : ι → Prop
Y : ι → Type u_7
inst✝¹ : (i : ι) → TopologicalSpace (Y i)
inst✝ : DecidablePred p
j : ι
h✝ : ¬p j
⊢ Continuous fun a => a.2 ⟨j, h✝⟩
tactic: split_ifs
state_before: case pos
X : Type u_1
Y✝ : Type u_2
Z : Type u_3
inst✝⁶ : TopologicalSpace X
inst✝⁵ : TopologicalSpace Y✝
inst✝⁴ : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝³ : TopologicalSpace X'
inst✝² : TopologicalSpace Y'
ι : Type u_6
p : ι → Prop
Y : ι → Type u_7
inst✝¹ : (i : ι) → TopologicalSpace (Y i)
inst✝ : DecidablePred p
j : ι
h✝ : p j
⊢ Continuous fun a => a.1 ⟨j, h✝⟩

case neg
X : Type u_1
Y✝ : Type u_2
Z : Type u_3
inst✝⁶ : TopologicalSpace X
inst✝⁵ : TopologicalSpace Y✝
inst✝⁴ : TopologicalSpace Z
X' : Type u_4
Y' : Type u_5
inst✝³ : TopologicalSpace X'
inst✝² : TopologicalSpace Y'
ι : Type u_6
p : ι → Prop
Y : ι → Type u_7
inst✝¹ : (i : ι) → TopologicalSpace (Y i)
inst✝ : DecidablePred p
j : ι
h✝ : ¬p j
⊢ Continuous fun a => a.2 ⟨j, h✝⟩
state_after: no goals
tactic: exacts [(continuous_apply _).comp continuous_fst, (continuous_apply _).comp continuous_snd]