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

tactic: haveI := ta2
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.28674
δ : Type ?u.28677
ε : Type ?u.28680
ζ : Type ?u.28683
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type ?u.28719
β : Type ?u.28725
γ : Type ?u.28731
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
⊢ Sort ?u.28733

tactic: haveI := tb2
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.28674
δ : Type ?u.28677
ε : Type ?u.28680
ζ : Type ?u.28683
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type ?u.28719
β : Type ?u.28725
γ : Type ?u.28731
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
this : TopologicalSpace α
⊢ Sort ?u.28733

tactic: exact Continuous fun p : α × β => f p.1 p.2
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.28674
δ : Type ?u.28677
ε : Type ?u.28680
ζ : Type ?u.28683
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type ?u.28719
β : Type ?u.28725
γ : Type ?u.28731
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
this✝ : TopologicalSpace α
this : TopologicalSpace β
⊢ Sort ?u.28733

tactic: haveI := ta1 ⊓ ta2
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.28674
δ : Type ?u.28677
ε : Type ?u.28680
ζ : Type ?u.28683
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type ?u.28719
β : Type ?u.28725
γ : Type ?u.28731
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
h : Continuous fun p => f p.fst p.snd
⊢ Sort ?u.28736

tactic: haveI := tb1 ⊓ tb2
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.28674
δ : Type ?u.28677
ε : Type ?u.28680
ζ : Type ?u.28683
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type ?u.28719
β : Type ?u.28725
γ : Type ?u.28731
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
h : Continuous fun p => f p.fst p.snd
this : TopologicalSpace α
⊢ Sort ?u.28736

tactic: exact Continuous fun p : α × β => f p.1 p.2
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.28674
δ : Type ?u.28677
ε : Type ?u.28680
ζ : Type ?u.28683
inst✝⁵ : TopologicalSpace α✝
inst✝⁴ : TopologicalSpace β✝
inst✝³ : TopologicalSpace γ✝
inst✝² : TopologicalSpace δ
inst✝¹ : TopologicalSpace ε
inst✝ : TopologicalSpace ζ
α : Type ?u.28719
β : Type ?u.28725
γ : Type ?u.28731
f : α → β → γ
ta1 ta2 : TopologicalSpace α
tb1 tb2 : TopologicalSpace β
tc1 : TopologicalSpace γ
h : Continuous fun p => f p.fst p.snd
this✝ : TopologicalSpace α
this : TopologicalSpace β
⊢ Sort ?u.28736

tactic: have ha := @continuous_inf_dom_right _ _ id ta1 ta2 ta2 (@continuous_id _ (id _))
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.28674
δ : Type ?u.28677
ε : Type ?u.28680
ζ : Type ?u.28683
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_right _ _ id tb1 tb2 tb2 (@continuous_id _ (id _))
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.28674
δ : Type ?u.28677
ε : Type ?u.28680
ζ : Type ?u.28683
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 _ _ _ _ ta2 tb2 (ta1 ⊓ ta2) (tb1 ⊓ tb2) _ _ ha hb
state_before: α✝ : Type u
β✝ : Type v
γ✝ : Type ?u.28674
δ : Type ?u.28677
ε : Type ?u.28680
ζ : Type ?u.28683
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.28674
δ : Type ?u.28677
ε : Type ?u.28680
ζ : Type ?u.28683
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