Theorem: continuous_inf_dom_left₂
File: Mathlib/Topology/Constructions.lean

tactic: haveI := ta1
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.27979
δ : Type ?u.27982
ε : Type ?u.27985
ζ : Type ?u.27988
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type ?u.28024
β : Type ?u.28030
γ : Type ?u.28036
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
⊢ Sort ?u.28038

tactic: haveI := tb1
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.27979
δ : Type ?u.27982
ε : Type ?u.27985
ζ : Type ?u.27988
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type ?u.28024
β : Type ?u.28030
γ : Type ?u.28036
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
this : TopologicalSpace α
⊢ Sort ?u.28038

tactic: exact Continuous fun p : α × β => f p.1 p.2
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.27979
δ : Type ?u.27982
ε : Type ?u.27985
ζ : Type ?u.27988
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type ?u.28024
β : Type ?u.28030
γ : Type ?u.28036
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
this✝ : TopologicalSpace α
this : TopologicalSpace β
⊢ Sort ?u.28038

tactic: haveI := ta1 ⊓ ta2
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.27979
δ : Type ?u.27982
ε : Type ?u.27985
ζ : Type ?u.27988
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type ?u.28024
β : Type ?u.28030
γ : Type ?u.28036
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
h : Continuous fun p => f p.fst p.snd
⊢ Sort ?u.28041

tactic: haveI := tb1 ⊓ tb2
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.27979
δ : Type ?u.27982
ε : Type ?u.27985
ζ : Type ?u.27988
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type ?u.28024
β : Type ?u.28030
γ : Type ?u.28036
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
h : Continuous fun p => f p.fst p.snd
this : TopologicalSpace α
⊢ Sort ?u.28041

tactic: exact Continuous fun p : α × β => f p.1 p.2
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.27979
δ : Type ?u.27982
ε : Type ?u.27985
ζ : Type ?u.27988
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type ?u.28024
β : Type ?u.28030
γ : Type ?u.28036
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
h : Continuous fun p => f p.fst p.snd
this✝ : TopologicalSpace α
this : TopologicalSpace β
⊢ Sort ?u.28041

tactic: have ha := @continuous_inf_dom_left _ _ id ta1 ta2 ta1 (@continuous_id _ (id _))
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.27979
δ : Type ?u.27982
ε : Type ?u.27985
ζ : Type ?u.27988
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
h : Continuous fun p => f p.fst p.snd
⊢ Continuous fun p => f p.fst p.snd

tactic: have hb := @continuous_inf_dom_left _ _ id tb1 tb2 tb1 (@continuous_id _ (id _))
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.27979
δ : Type ?u.27982
ε : Type ?u.27985
ζ : Type ?u.27988
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
h : Continuous fun p => f p.fst p.snd
ha : Continuous id
⊢ Continuous fun p => f p.fst p.snd

tactic: have h_continuous_id := @Continuous.prod_map _ _ _ _ ta1 tb1 (ta1 ⊓ ta2) (tb1 ⊓ tb2) _ _ ha hb
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.27979
δ : Type ?u.27982
ε : Type ?u.27985
ζ : Type ?u.27988
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
h : Continuous fun p => f p.fst p.snd
ha : Continuous id
hb : Continuous id
⊢ Continuous fun p => f p.fst p.snd

tactic: exact @Continuous.comp _ _ _ (id _) (id _) _ _ _ h h_continuous_id
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.27979
δ : Type ?u.27982
ε : Type ?u.27985
ζ : Type ?u.27988
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type u_1
β : Type u_2
γ : Type u_3
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
h : Continuous fun p => f p.fst p.snd
ha : Continuous id
hb : Continuous id
h_continuous_id : Continuous fun x => (id x.fst, id x.snd)
⊢ Continuous fun p => f p.fst p.snd