[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
c : V
x y : P
⊢ dist (c +ᵥ x) (c +ᵥ y) = dist x y
[PROOFSTEP]
rw [NormedAddTorsor.dist_eq_norm', NormedAddTorsor.dist_eq_norm', vadd_vsub_vadd_cancel_left]
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
v₁ v₂ : V
x : P
⊢ dist (v₁ +ᵥ x) (v₂ +ᵥ x) = dist v₁ v₂
[PROOFSTEP]
rw [dist_eq_norm_vsub V, dist_eq_norm, vadd_vsub_vadd_cancel_right]
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
v : V
x : P
⊢ dist (v +ᵥ x) x = ‖v‖
[PROOFSTEP]
rw [dist_eq_norm_vsub V _ x, vadd_vsub]
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
v : V
x : P
⊢ dist x (v +ᵥ x) = ‖v‖
[PROOFSTEP]
rw [dist_comm, dist_vadd_left]
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
x y z : P
⊢ dist (x -ᵥ y) (x -ᵥ z) = dist y z
[PROOFSTEP]
rw [dist_eq_norm, vsub_sub_vsub_cancel_left, dist_comm, dist_eq_norm_vsub V]
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
v v' : V
p p' : P
⊢ dist (v +ᵥ p) (v' +ᵥ p') ≤ dist v v' + dist p p'
[PROOFSTEP]
simpa [(dist_vadd_cancel_right)] using dist_triangle (v +ᵥ p) (v' +ᵥ p) (v' +ᵥ p')
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
p₁ p₂ p₃ p₄ : P
⊢ dist (p₁ -ᵥ p₂) (p₃ -ᵥ p₄) ≤ dist p₁ p₃ + dist p₂ p₄
[PROOFSTEP]
rw [dist_eq_norm, vsub_sub_vsub_comm, dist_eq_norm_vsub V, dist_eq_norm_vsub V]
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
p₁ p₂ p₃ p₄ : P
⊢ ‖p₁ -ᵥ p₃ - (p₂ -ᵥ p₄)‖ ≤ ‖p₁ -ᵥ p₃‖ + ‖p₂ -ᵥ p₄‖
[PROOFSTEP]
exact norm_sub_le _ _
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
p₁ p₂ p₃ p₄ : P
⊢ nndist (p₁ -ᵥ p₂) (p₃ -ᵥ p₄) ≤ nndist p₁ p₃ + nndist p₂ p₄
[PROOFSTEP]
simp only [← NNReal.coe_le_coe, NNReal.coe_add, ← dist_nndist, (dist_vsub_vsub_le)]
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
v v' : V
p p' : P
⊢ edist (v +ᵥ p) (v' +ᵥ p') ≤ edist v v' + edist p p'
[PROOFSTEP]
simp only [edist_nndist]
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
v v' : V
p p' : P
⊢ ↑(nndist (v +ᵥ p) (v' +ᵥ p')) ≤ ↑(nndist v v') + ↑(nndist p p')
[PROOFSTEP]
norm_cast
  -- porting note: was apply_mod_cast
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
v v' : V
p p' : P
⊢ nndist (v +ᵥ p) (v' +ᵥ p') ≤ nndist v v' + nndist p p'
[PROOFSTEP]
apply dist_vadd_vadd_le
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
p₁ p₂ p₃ p₄ : P
⊢ edist (p₁ -ᵥ p₂) (p₃ -ᵥ p₄) ≤ edist p₁ p₃ + edist p₂ p₄
[PROOFSTEP]
simp only [edist_nndist]
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
p₁ p₂ p₃ p₄ : P
⊢ ↑(nndist (p₁ -ᵥ p₂) (p₃ -ᵥ p₄)) ≤ ↑(nndist p₁ p₃) + ↑(nndist p₂ p₄)
[PROOFSTEP]
norm_cast
  -- porting note: was apply_mod_cast
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
p₁ p₂ p₃ p₄ : P
⊢ nndist (p₁ -ᵥ p₂) (p₃ -ᵥ p₄) ≤ nndist p₁ p₃ + nndist p₂ p₄
[PROOFSTEP]
apply dist_vsub_vsub_le
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : SeminormedAddCommGroup V
inst✝ : AddTorsor V P
x : P
⊢ dist x x = 0
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : SeminormedAddCommGroup V
inst✝ : AddTorsor V P
x y : P
⊢ dist x y = dist y x
[PROOFSTEP]
simp only [← neg_vsub_eq_vsub_rev y x, norm_neg]
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : SeminormedAddCommGroup V
inst✝ : AddTorsor V P
x y z : P
⊢ dist x z ≤ dist x y + dist y z
[PROOFSTEP]
change ‖x -ᵥ z‖ ≤ ‖x -ᵥ y‖ + ‖y -ᵥ z‖
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : SeminormedAddCommGroup V
inst✝ : AddTorsor V P
x y z : P
⊢ ‖x -ᵥ z‖ ≤ ‖x -ᵥ y‖ + ‖y -ᵥ z‖
[PROOFSTEP]
rw [← vsub_add_vsub_cancel]
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : SeminormedAddCommGroup V
inst✝ : AddTorsor V P
x y z : P
⊢ ‖x -ᵥ ?p2 + (?p2 -ᵥ z)‖ ≤ ‖x -ᵥ y‖ + ‖y -ᵥ z‖
case p2
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : SeminormedAddCommGroup V
inst✝ : AddTorsor V P
x y z : P
⊢ P
[PROOFSTEP]
apply norm_add_le
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : SeminormedAddCommGroup V
inst✝ : AddTorsor V P
x✝¹ x✝ : P
⊢ (fun x y => ↑{ val := ‖x -ᵥ y‖, property := (_ : 0 ≤ ‖x -ᵥ y‖) }) x✝¹ x✝ = ENNReal.ofReal (dist x✝¹ x✝)
[PROOFSTEP]
simp only [← ENNReal.ofReal_eq_coe_nnreal]
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : NormedAddCommGroup V
inst✝ : AddTorsor V P
x : P
⊢ dist x x = 0
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : NormedAddCommGroup V
inst✝ : AddTorsor V P
x y : P
⊢ dist x y = dist y x
[PROOFSTEP]
simp only [← neg_vsub_eq_vsub_rev y x, norm_neg]
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : NormedAddCommGroup V
inst✝ : AddTorsor V P
x y z : P
⊢ dist x z ≤ dist x y + dist y z
[PROOFSTEP]
change ‖x -ᵥ z‖ ≤ ‖x -ᵥ y‖ + ‖y -ᵥ z‖
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : NormedAddCommGroup V
inst✝ : AddTorsor V P
x y z : P
⊢ ‖x -ᵥ z‖ ≤ ‖x -ᵥ y‖ + ‖y -ᵥ z‖
[PROOFSTEP]
rw [← vsub_add_vsub_cancel]
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : NormedAddCommGroup V
inst✝ : AddTorsor V P
x y z : P
⊢ ‖x -ᵥ ?p2 + (?p2 -ᵥ z)‖ ≤ ‖x -ᵥ y‖ + ‖y -ᵥ z‖
case p2
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : NormedAddCommGroup V
inst✝ : AddTorsor V P
x y z : P
⊢ P
[PROOFSTEP]
apply norm_add_le
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : NormedAddCommGroup V
inst✝ : AddTorsor V P
x✝¹ x✝ : P
⊢ (fun x y => ↑{ val := ‖x -ᵥ y‖, property := (_ : 0 ≤ ‖x -ᵥ y‖) }) x✝¹ x✝ = ENNReal.ofReal (dist x✝¹ x✝)
[PROOFSTEP]
simp only
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : NormedAddCommGroup V
inst✝ : AddTorsor V P
x✝¹ x✝ : P
⊢ ↑{ val := ‖x✝¹ -ᵥ x✝‖, property := (_ : 0 ≤ ‖x✝¹ -ᵥ x✝‖) } = ENNReal.ofReal ‖x✝¹ -ᵥ x✝‖
[PROOFSTEP]
rw [ENNReal.ofReal_eq_coe_nnreal]
[GOAL]
α : Type u_1
V✝ : Type u_2
P✝ : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁷ : SeminormedAddCommGroup V✝
inst✝⁶ : PseudoMetricSpace P✝
inst✝⁵ : NormedAddTorsor V✝ P✝
inst✝⁴ : NormedAddCommGroup W
inst✝³ : MetricSpace Q
inst✝² : NormedAddTorsor W Q
V : Type u_6
P : Type u_7
inst✝¹ : NormedAddCommGroup V
inst✝ : AddTorsor V P
x✝ y✝ : P
h : dist x✝ y✝ = 0
⊢ x✝ = y✝
[PROOFSTEP]
simpa using h
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
s : Set V
t : Set P
hs : IsClosed s
ht : IsCompact t
⊢ IsClosed (s +ᵥ t)
[PROOFSTEP]
refine IsSeqClosed.isClosed (fun u p husv hup ↦ ?_)
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
s : Set V
t : Set P
hs : IsClosed s
ht : IsCompact t
u : ℕ → P
p : P
husv : ∀ (n : ℕ), u n ∈ s +ᵥ t
hup : Tendsto u atTop (𝓝 p)
⊢ p ∈ s +ᵥ t
[PROOFSTEP]
choose! a v hav using husv
[GOAL]
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
s : Set V
t : Set P
hs : IsClosed s
ht : IsCompact t
u : ℕ → P
p : P
hup : Tendsto u atTop (𝓝 p)
a : ℕ → V
v : ℕ → P
hav : ∀ (n : ℕ), a n ∈ s ∧ v n ∈ t ∧ (fun x x_1 => x +ᵥ x_1) (a n) (v n) = u n
⊢ p ∈ s +ᵥ t
[PROOFSTEP]
rcases ht.isSeqCompact fun n ↦ (hav n).2.1 with ⟨q, hqt, φ, φ_mono, hφq⟩
[GOAL]
case intro.intro.intro.intro
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
s : Set V
t : Set P
hs : IsClosed s
ht : IsCompact t
u : ℕ → P
p : P
hup : Tendsto u atTop (𝓝 p)
a : ℕ → V
v : ℕ → P
hav : ∀ (n : ℕ), a n ∈ s ∧ v n ∈ t ∧ (fun x x_1 => x +ᵥ x_1) (a n) (v n) = u n
q : P
hqt : q ∈ t
φ : ℕ → ℕ
φ_mono : StrictMono φ
hφq : Tendsto ((fun n => v n) ∘ φ) atTop (𝓝 q)
⊢ p ∈ s +ᵥ t
[PROOFSTEP]
refine
  ⟨p -ᵥ q, q, hs.mem_of_tendsto ((hup.comp φ_mono.tendsto_atTop).vsub hφq) (eventually_of_forall fun n ↦ ?_), hqt,
    vsub_vadd _ _⟩
[GOAL]
case intro.intro.intro.intro
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
s : Set V
t : Set P
hs : IsClosed s
ht : IsCompact t
u : ℕ → P
p : P
hup : Tendsto u atTop (𝓝 p)
a : ℕ → V
v : ℕ → P
hav : ∀ (n : ℕ), a n ∈ s ∧ v n ∈ t ∧ (fun x x_1 => x +ᵥ x_1) (a n) (v n) = u n
q : P
hqt : q ∈ t
φ : ℕ → ℕ
φ_mono : StrictMono φ
hφq : Tendsto ((fun n => v n) ∘ φ) atTop (𝓝 q)
n : ℕ
⊢ (u ∘ φ -ᵥ (fun n => v n) ∘ φ) n ∈ s
[PROOFSTEP]
convert (hav (φ n)).1 using 1
[GOAL]
case h.e'_4
α : Type u_1
V : Type u_2
P : Type u_3
W : Type u_4
Q : Type u_5
inst✝⁵ : SeminormedAddCommGroup V
inst✝⁴ : PseudoMetricSpace P
inst✝³ : NormedAddTorsor V P
inst✝² : NormedAddCommGroup W
inst✝¹ : MetricSpace Q
inst✝ : NormedAddTorsor W Q
s : Set V
t : Set P
hs : IsClosed s
ht : IsCompact t
u : ℕ → P
p : P
hup : Tendsto u atTop (𝓝 p)
a : ℕ → V
v : ℕ → P
hav : ∀ (n : ℕ), a n ∈ s ∧ v n ∈ t ∧ (fun x x_1 => x +ᵥ x_1) (a n) (v n) = u n
q : P
hqt : q ∈ t
φ : ℕ → ℕ
φ_mono : StrictMono φ
hφq : Tendsto ((fun n => v n) ∘ φ) atTop (𝓝 q)
n : ℕ
⊢ (u ∘ φ -ᵥ (fun n => v n) ∘ φ) n = a (φ n)
[PROOFSTEP]
exact (eq_vadd_iff_vsub_eq _ _ _).mp (hav (φ n)).2.2.symm
