M : Type ?u.267459
R : Type ?u.267462
α : Type u_2
β : Type ?u.267468
inst✝⁸ : UniformSpace α
inst✝⁷ : AddGroup α
inst✝⁶ : UniformAddGroup α
inst✝⁵ : UniformSpace β
inst✝⁴ : AddGroup β
inst✝³ : UniformAddGroup β
γ : Type u_1
inst✝² : AddCommGroup γ
inst✝¹ : UniformSpace γ
inst✝ : UniformAddGroup γ
f g : α →+ γ
hf : Continuous ↑f
hg : Continuous ↑g
hfg : Continuous fun x => ↑f x + ↑g x
⊢ completion (f + g) (_ : Continuous fun x => ↑f x + ↑g x) = completion f hf + completion g hg
M : Type ?u.267459
R : Type ?u.267462
α : Type u_2
β : Type ?u.267468
inst✝⁸ : UniformSpace α
inst✝⁷ : AddGroup α
inst✝⁶ : UniformAddGroup α
inst✝⁵ : UniformSpace β
inst✝⁴ : AddGroup β
inst✝³ : UniformAddGroup β
γ : Type u_1
inst✝² : AddCommGroup γ
inst✝¹ : UniformSpace γ
inst✝ : UniformAddGroup γ
f g : α →+ γ
hf : Continuous ↑f
hg : Continuous ↑g
⊢ completion (f + g) (_ : Continuous fun x => ↑f x + ↑g x) = completion f hf + completion g hg
have hfg := hf.add hg
case h
M : Type ?u.267459
R : Type ?u.267462
α : Type u_2
β : Type ?u.267468
inst✝⁸ : UniformSpace α
inst✝⁷ : AddGroup α
inst✝⁶ : UniformAddGroup α
inst✝⁵ : UniformSpace β
inst✝⁴ : AddGroup β
inst✝³ : UniformAddGroup β
γ : Type u_1
inst✝² : AddCommGroup γ
inst✝¹ : UniformSpace γ
inst✝ : UniformAddGroup γ
f g : α →+ γ
hf : Continuous ↑f
hg : Continuous ↑g
hfg : Continuous fun x => ↑f x + ↑g x
x : Completion α
⊢ ↑(completion (f + g) (_ : Continuous fun x => ↑f x + ↑g x)) x = ↑(completion f hf + completion g hg) x
M : Type ?u.267459
R : Type ?u.267462
α : Type u_2
β : Type ?u.267468
inst✝⁸ : UniformSpace α
inst✝⁷ : AddGroup α
inst✝⁶ : UniformAddGroup α
inst✝⁵ : UniformSpace β
inst✝⁴ : AddGroup β
inst✝³ : UniformAddGroup β
γ : Type u_1
inst✝² : AddCommGroup γ
inst✝¹ : UniformSpace γ
inst✝ : UniformAddGroup γ
f g : α →+ γ
hf : Continuous ↑f
hg : Continuous ↑g
hfg : Continuous fun x => ↑f x + ↑g x
⊢ completion (f + g) (_ : Continuous fun x => ↑f x + ↑g x) = completion f hf + completion g hg
ext x
case h.refine_1
M : Type ?u.267459
R : Type ?u.267462
α : Type u_2
β : Type ?u.267468
inst✝⁸ : UniformSpace α
inst✝⁷ : AddGroup α
inst✝⁶ : UniformAddGroup α
inst✝⁵ : UniformSpace β
inst✝⁴ : AddGroup β
inst✝³ : UniformAddGroup β
γ : Type u_1
inst✝² : AddCommGroup γ
inst✝¹ : UniformSpace γ
inst✝ : UniformAddGroup γ
f g : α →+ γ
hf : Continuous ↑f
hg : Continuous ↑g
hfg : Continuous fun x => ↑f x + ↑g x
x : Completion α
⊢ IsClosed {a | ↑(completion (f + g) (_ : Continuous fun x => ↑f x + ↑g x)) a = ↑(completion f hf + completion g hg) a}

case h.refine_2
M : Type ?u.267459
R : Type ?u.267462
α : Type u_2
β : Type ?u.267468
inst✝⁸ : UniformSpace α
inst✝⁷ : AddGroup α
inst✝⁶ : UniformAddGroup α
inst✝⁵ : UniformSpace β
inst✝⁴ : AddGroup β
inst✝³ : UniformAddGroup β
γ : Type u_1
inst✝² : AddCommGroup γ
inst✝¹ : UniformSpace γ
inst✝ : UniformAddGroup γ
f g : α →+ γ
hf : Continuous ↑f
hg : Continuous ↑g
hfg : Continuous fun x => ↑f x + ↑g x
x : Completion α
⊢ ∀ (a : α),
    ↑(completion (f + g) (_ : Continuous fun x => ↑f x + ↑g x)) (↑α a) = ↑(completion f hf + completion g hg) (↑α a)
case h
M : Type ?u.267459
R : Type ?u.267462
α : Type u_2
β : Type ?u.267468
inst✝⁸ : UniformSpace α
inst✝⁷ : AddGroup α
inst✝⁶ : UniformAddGroup α
inst✝⁵ : UniformSpace β
inst✝⁴ : AddGroup β
inst✝³ : UniformAddGroup β
γ : Type u_1
inst✝² : AddCommGroup γ
inst✝¹ : UniformSpace γ
inst✝ : UniformAddGroup γ
f g : α →+ γ
hf : Continuous ↑f
hg : Continuous ↑g
hfg : Continuous fun x => ↑f x + ↑g x
x : Completion α
⊢ ↑(completion (f + g) (_ : Continuous fun x => ↑f x + ↑g x)) x = ↑(completion f hf + completion g hg) x
refine Completion.induction_on x ?_ ?_
no goals
case h.refine_1
M : Type ?u.267459
R : Type ?u.267462
α : Type u_2
β : Type ?u.267468
inst✝⁸ : UniformSpace α
inst✝⁷ : AddGroup α
inst✝⁶ : UniformAddGroup α
inst✝⁵ : UniformSpace β
inst✝⁴ : AddGroup β
inst✝³ : UniformAddGroup β
γ : Type u_1
inst✝² : AddCommGroup γ
inst✝¹ : UniformSpace γ
inst✝ : UniformAddGroup γ
f g : α →+ γ
hf : Continuous ↑f
hg : Continuous ↑g
hfg : Continuous fun x => ↑f x + ↑g x
x : Completion α
⊢ IsClosed {a | ↑(completion (f + g) (_ : Continuous fun x => ↑f x + ↑g x)) a = ↑(completion f hf + completion g hg) a}
exact isClosed_eq ((f + g).continuous_completion hfg)
  ((f.continuous_completion hf).add (g.continuous_completion hg))
case h.refine_2
M : Type ?u.267459
R : Type ?u.267462
α : Type u_2
β : Type ?u.267468
inst✝⁸ : UniformSpace α
inst✝⁷ : AddGroup α
inst✝⁶ : UniformAddGroup α
inst✝⁵ : UniformSpace β
inst✝⁴ : AddGroup β
inst✝³ : UniformAddGroup β
γ : Type u_1
inst✝² : AddCommGroup γ
inst✝¹ : UniformSpace γ
inst✝ : UniformAddGroup γ
f g : α →+ γ
hf : Continuous ↑f
hg : Continuous ↑g
hfg : Continuous fun x => ↑f x + ↑g x
x : Completion α
a : α
⊢ ↑(completion (f + g) (_ : Continuous fun x => ↑f x + ↑g x)) (↑α a) = ↑(completion f hf + completion g hg) (↑α a)
case h.refine_2
M : Type ?u.267459
R : Type ?u.267462
α : Type u_2
β : Type ?u.267468
inst✝⁸ : UniformSpace α
inst✝⁷ : AddGroup α
inst✝⁶ : UniformAddGroup α
inst✝⁵ : UniformSpace β
inst✝⁴ : AddGroup β
inst✝³ : UniformAddGroup β
γ : Type u_1
inst✝² : AddCommGroup γ
inst✝¹ : UniformSpace γ
inst✝ : UniformAddGroup γ
f g : α →+ γ
hf : Continuous ↑f
hg : Continuous ↑g
hfg : Continuous fun x => ↑f x + ↑g x
x : Completion α
⊢ ∀ (a : α),
    ↑(completion (f + g) (_ : Continuous fun x => ↑f x + ↑g x)) (↑α a) = ↑(completion f hf + completion g hg) (↑α a)
intro a
no goals
case h.refine_2
M : Type ?u.267459
R : Type ?u.267462
α : Type u_2
β : Type ?u.267468
inst✝⁸ : UniformSpace α
inst✝⁷ : AddGroup α
inst✝⁶ : UniformAddGroup α
inst✝⁵ : UniformSpace β
inst✝⁴ : AddGroup β
inst✝³ : UniformAddGroup β
γ : Type u_1
inst✝² : AddCommGroup γ
inst✝¹ : UniformSpace γ
inst✝ : UniformAddGroup γ
f g : α →+ γ
hf : Continuous ↑f
hg : Continuous ↑g
hfg : Continuous fun x => ↑f x + ↑g x
x : Completion α
a : α
⊢ ↑(completion (f + g) (_ : Continuous fun x => ↑f x + ↑g x)) (↑α a) = ↑(completion f hf + completion g hg) (↑α a)
simp [(f + g).completion_coe hfg, coe_add, f.completion_coe hf, g.completion_coe hg]