Theorem: ContinuousMultilinearMap.continuous_compContinuousLinearMapL_fin
Proof state before:
case h.refine_1
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
G : Type u_4
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedSpace 𝕜 G
n : ℕ
E : Fin (Nat.succ n) → Type u_2
inst✝³ : (i : Fin (Nat.succ n)) → NormedAddCommGroup (E i)
inst✝² : (i : Fin (Nat.succ n)) → NormedSpace 𝕜 (E i)
E₁ : Fin (Nat.succ n) → Type u_3
inst✝¹ : (i : Fin (Nat.succ n)) → NormedAddCommGroup (E₁ i)
inst✝ : (i : Fin (Nat.succ n)) → NormedSpace 𝕜 (E₁ i)
f : (i : Fin (Nat.succ n)) → E i →L[𝕜] E₁ i
ε : ℝ
hε_pos : ε > 0
ε₁ : ℝ
hε₁_def : ε / 2 / (2 + ‖f 0‖) = ε₁
hε₁_pos : 0 < ε₁
δ₁ : ℝ
hδ₁_pos : δ₁ > 0
δ : ℝ
hδ_def : 1 ⊓ δ₁ ⊓ ε / 2 / (1 + ∏ i : Fin n, ‖f (Fin.succ i)‖) = δ
hδ : δ ≤ δ₁
hδ_pos : 0 < δ
C₁ : ℝ
hC₁_def : ε₁ * (δ + ‖f 0‖) = C₁
C₂ : ℝ
hC₂_def : δ * ∏ i : Fin n, ‖f (Fin.succ i)‖ = C₂
hC₁ : C₁ < ε / 2
hC₂ : C₂ < ε / 2
hC : C₁ + C₂ < ε
hC₁_nonneg : 0 ≤ C₁
hC₂_nonneg : 0 ≤ C₂
g : (i : Fin (Nat.succ n)) → E i →L[𝕜] E₁ i
hgf : ‖(g - f) 0‖ < δ ∧ ‖Fin.tail (g - f)‖ < δ
q : ContinuousMultilinearMap 𝕜 E₁ G
x : (i : Fin (Nat.succ n)) → E i
e : ContinuousMultilinearMap 𝕜 E₁ G ≃ₗᵢ[𝕜] E₁ 0 →L[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E₁ (Fin.succ i)) G
he_q : ∀ (x : E₁ 0) (v : (i : Fin n) → E₁ (Fin.succ i)), ((e q) x) v = q (Fin.cons x v)
IH :
  ‖q (Fin.cons ((g 0) (x 0)) fun i => (g (Fin.succ i)) (x (Fin.succ i))) -
        q (Fin.cons ((g 0) (x 0)) fun i => (f (Fin.succ i)) (x (Fin.succ i)))‖ ≤
    ε₁ * ‖(e q) ((g 0) (x 0))‖ * ∏ i : Fin n, ‖x (Fin.succ i)‖
⊢ ε₁ * (‖(e q) ((g 0) (x 0))‖ * ∏ i : Fin n, ‖x (Fin.succ i)‖) ≤
    ε₁ * ((δ + ‖f 0‖) * (‖q‖ * ∏ i : Fin (Nat.succ n), ‖x i‖))
Tactic:
refine mul_le_mul_of_nonneg_left ?_ hε₁_pos.le
Proof state after:
case h.refine_1
𝕜 : Type u_1
inst✝⁶ : NontriviallyNormedField 𝕜
G : Type u_4
inst✝⁵ : NormedAddCommGroup G
inst✝⁴ : NormedSpace 𝕜 G
n : ℕ
E : Fin (Nat.succ n) → Type u_2
inst✝³ : (i : Fin (Nat.succ n)) → NormedAddCommGroup (E i)
inst✝² : (i : Fin (Nat.succ n)) → NormedSpace 𝕜 (E i)
E₁ : Fin (Nat.succ n) → Type u_3
inst✝¹ : (i : Fin (Nat.succ n)) → NormedAddCommGroup (E₁ i)
inst✝ : (i : Fin (Nat.succ n)) → NormedSpace 𝕜 (E₁ i)
f : (i : Fin (Nat.succ n)) → E i →L[𝕜] E₁ i
ε : ℝ
hε_pos : ε > 0
ε₁ : ℝ
hε₁_def : ε / 2 / (2 + ‖f 0‖) = ε₁
hε₁_pos : 0 < ε₁
δ₁ : ℝ
hδ₁_pos : δ₁ > 0
δ : ℝ
hδ_def : 1 ⊓ δ₁ ⊓ ε / 2 / (1 + ∏ i : Fin n, ‖f (Fin.succ i)‖) = δ
hδ : δ ≤ δ₁
hδ_pos : 0 < δ
C₁ : ℝ
hC₁_def : ε₁ * (δ + ‖f 0‖) = C₁
C₂ : ℝ
hC₂_def : δ * ∏ i : Fin n, ‖f (Fin.succ i)‖ = C₂
hC₁ : C₁ < ε / 2
hC₂ : C₂ < ε / 2
hC : C₁ + C₂ < ε
hC₁_nonneg : 0 ≤ C₁
hC₂_nonneg : 0 ≤ C₂
g : (i : Fin (Nat.succ n)) → E i →L[𝕜] E₁ i
hgf : ‖(g - f) 0‖ < δ ∧ ‖Fin.tail (g - f)‖ < δ
q : ContinuousMultilinearMap 𝕜 E₁ G
x : (i : Fin (Nat.succ n)) → E i
e : ContinuousMultilinearMap 𝕜 E₁ G ≃ₗᵢ[𝕜] E₁ 0 →L[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E₁ (Fin.succ i)) G
he_q : ∀ (x : E₁ 0) (v : (i : Fin n) → E₁ (Fin.succ i)), ((e q) x) v = q (Fin.cons x v)
IH :
  ‖q (Fin.cons ((g 0) (x 0)) fun i => (g (Fin.succ i)) (x (Fin.succ i))) -
        q (Fin.cons ((g 0) (x 0)) fun i => (f (Fin.succ i)) (x (Fin.succ i)))‖ ≤
    ε₁ * ‖(e q) ((g 0) (x 0))‖ * ∏ i : Fin n, ‖x (Fin.succ i)‖
⊢ ‖(e q) ((g 0) (x 0))‖ * ∏ i : Fin n, ‖x (Fin.succ i)‖ ≤ (δ + ‖f 0‖) * (‖q‖ * ∏ i : Fin (Nat.succ n), ‖x i‖)