Theorem: VectorFourier.norm_fourierPowSMulRight_le
File: Mathlib/Analysis/Fourier/FourierTransformDeriv.lean

tactic: apply ContinuousMultilinearMap.opNorm_le_bound _ (by positivity) (fun m ↦ ?_)
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
⊢ ‖fourierPowSMulRight L f v n‖ ≤ (2 * π * ‖L‖) ^ n * ‖v‖ ^ n * ‖f v‖
state_after: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
m : Fin n → W
⊢ ‖(fourierPowSMulRight L f v n) m‖ ≤ (2 * π * ‖L‖) ^ n * ‖v‖ ^ n * ‖f v‖ * ∏ i : Fin n, ‖m i‖

tactic: positivity
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
⊢ 0 ≤ (2 * π * ‖L‖) ^ n * ‖v‖ ^ n * ‖f v‖
state_after: no goals

tactic: simp [_root_.abs_of_nonneg pi_nonneg, norm_smul]
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
m : Fin n → W
⊢ ‖(fourierPowSMulRight L f v n) m‖ = (2 * π) ^ n * ((∏ x : Fin n, |(L v) (m x)|) * ‖f v‖)
state_after: no goals

tactic: gcongr with i _hi
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
m : Fin n → W
⊢ (2 * π) ^ n * ((∏ x : Fin n, |(L v) (m x)|) * ‖f v‖) ≤ (2 * π) ^ n * ((∏ x : Fin n, ‖L‖ * ‖v‖ * ‖m x‖) * ‖f v‖)
state_after: case h.h.h0
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
m : Fin n → W
⊢ ∀ i ∈ Finset.univ, 0 ≤ |(L v) (m i)|

case h.h.h1
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
m : Fin n → W
i : Fin n
_hi : i ∈ Finset.univ
⊢ |(L v) (m i)| ≤ ‖L‖ * ‖v‖ * ‖m i‖

tactic: exact fun i _hi ↦ abs_nonneg _
state_before: case h.h.h0
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
m : Fin n → W
⊢ ∀ i ∈ Finset.univ, 0 ≤ |(L v) (m i)|
state_after: no goals

tactic: exact L.le_opNorm₂ v (m i)
state_before: case h.h.h1
E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
m : Fin n → W
i : Fin n
_hi : i ∈ Finset.univ
⊢ |(L v) (m i)| ≤ ‖L‖ * ‖v‖ * ‖m i‖
state_after: no goals

tactic: simp [Finset.prod_mul_distrib, mul_pow]
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
m : Fin n → W
⊢ (2 * π) ^ n * ((∏ x : Fin n, ‖L‖ * ‖v‖ * ‖m x‖) * ‖f v‖) = (2 * π * ‖L‖) ^ n * ‖v‖ ^ n * ‖f v‖ * ∏ i : Fin n, ‖m i‖
state_after: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
m : Fin n → W
⊢ 2 ^ n * π ^ n * ((‖L‖ ^ n * ‖v‖ ^ n * ∏ x : Fin n, ‖m x‖) * ‖f v‖) =
    2 ^ n * π ^ n * ‖L‖ ^ n * ‖v‖ ^ n * ‖f v‖ * ∏ x : Fin n, ‖m x‖

tactic: ring
state_before: E : Type u_1
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℂ E
V : Type u_2
W : Type u_3
inst✝³ : NormedAddCommGroup V
inst✝² : NormedSpace ℝ V
inst✝¹ : NormedAddCommGroup W
inst✝ : NormedSpace ℝ W
L : V →L[ℝ] W →L[ℝ] ℝ
f✝ f : V → E
v : V
n : ℕ
m : Fin n → W
⊢ 2 ^ n * π ^ n * ((‖L‖ ^ n * ‖v‖ ^ n * ∏ x : Fin n, ‖m x‖) * ‖f v‖) =
    2 ^ n * π ^ n * ‖L‖ ^ n * ‖v‖ ^ n * ‖f v‖ * ∏ x : Fin n, ‖m x‖
state_after: no goals