Theorem: MeasureTheory.lintegral_pow_le_pow_lintegral_fderiv_aux
File: Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean

tactic: have : (1:ℝ) ≤ ↑#ι - 1 := by
  have hι : (2:ℝ) ≤ #ι := by exact_mod_cast hp.one_lt
  linarith
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
⊢ ∫⁻ (x : ι → ℝ), ↑‖u x‖₊ ^ p ≤ (∫⁻ (x : ι → ℝ), ↑‖fderiv ℝ u x‖₊) ^ p
state_after: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
⊢ ∫⁻ (x : ι → ℝ), ↑‖u x‖₊ ^ p ≤ (∫⁻ (x : ι → ℝ), ↑‖fderiv ℝ u x‖₊) ^ p

tactic: calc ∫⁻ x, (‖u x‖₊ : ℝ≥0∞) ^ p
    = ∫⁻ x, ((‖u x‖₊ : ℝ≥0∞) ^ (1 / (#ι - 1 : ℝ))) ^ (#ι : ℝ) := by
      congr! 2 with x
      rw [← ENNReal.rpow_mul, hp.conj_eq]
      field_simp
  _ = ∫⁻ x, ∏ _i : ι, (‖u x‖₊ : ℝ≥0∞) ^ (1 / (#ι - 1 : ℝ)) := by
      congr! 2 with x
      simp_rw [prod_const, card_univ]
      norm_cast
  _ ≤ ∫⁻ x, ∏ i, (∫⁻ xᵢ, ‖fderiv ℝ u (update x i xᵢ)‖₊) ^ ((1 : ℝ) / (#ι - 1 : ℝ)) := ?_
  _ ≤ (∫⁻ x, ‖fderiv ℝ u x‖₊) ^ p := by
      apply lintegral_prod_lintegral_pow_le _ hp
      have : Continuous (fderiv ℝ u) := hu.continuous_fderiv le_rfl
      fun_prop
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
⊢ ∫⁻ (x : ι → ℝ), ↑‖u x‖₊ ^ p ≤ (∫⁻ (x : ι → ℝ), ↑‖fderiv ℝ u x‖₊) ^ p
state_after: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
⊢ ∫⁻ (x : ι → ℝ), ∏ _i : ι, ↑‖u x‖₊ ^ (1 / (↑#ι - 1)) ≤
    ∫⁻ (x : ι → ℝ), ∏ i : ι, (∫⁻ (xᵢ : ℝ), ↑‖fderiv ℝ u (update x i xᵢ)‖₊) ^ (1 / (↑#ι - 1))

tactic: gcongr with x i
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
⊢ ∫⁻ (x : ι → ℝ), ∏ _i : ι, ↑‖u x‖₊ ^ (1 / (↑#ι - 1)) ≤
    ∫⁻ (x : ι → ℝ), ∏ i : ι, (∫⁻ (xᵢ : ℝ), ↑‖fderiv ℝ u (update x i xᵢ)‖₊) ^ (1 / (↑#ι - 1))
state_after: case hfg.h.h₁
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ ↑‖u x‖₊ ≤ ∫⁻ (xᵢ : ℝ), ↑‖fderiv ℝ u (update x i xᵢ)‖₊

tactic: gcongr with y
state_before: case hfg.h.h₁
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ ∫⁻ (xᵢ : ℝ) in Set.Iic (x i), ↑‖deriv (u ∘ update x i) xᵢ‖₊ ≤ ∫⁻ (xᵢ : ℝ), ↑‖fderiv ℝ u (update x i xᵢ)‖₊
state_after: case hfg.h.h₁.hfg.a
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
y : ℝ
⊢ ‖deriv (u ∘ update x i) y‖₊ ≤ ‖fderiv ℝ u (update x i y)‖₊

case hfg.h.h₁.h2
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ volume.restrict (Set.Iic (x i)) ≤ volume

tactic: swap
state_before: case hfg.h.h₁.hfg.a
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
y : ℝ
⊢ ‖deriv (u ∘ update x i) y‖₊ ≤ ‖fderiv ℝ u (update x i y)‖₊

case hfg.h.h₁.h2
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ volume.restrict (Set.Iic (x i)) ≤ volume
state_after: case hfg.h.h₁.h2
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ volume.restrict (Set.Iic (x i)) ≤ volume

case hfg.h.h₁.hfg.a
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
y : ℝ
⊢ ‖deriv (u ∘ update x i) y‖₊ ≤ ‖fderiv ℝ u (update x i y)‖₊

tactic: exact Measure.restrict_le_self
state_before: case hfg.h.h₁.h2
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ volume.restrict (Set.Iic (x i)) ≤ volume

case hfg.h.h₁.hfg.a
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
y : ℝ
⊢ ‖deriv (u ∘ update x i) y‖₊ ≤ ‖fderiv ℝ u (update x i y)‖₊
state_after: case hfg.h.h₁.hfg.a
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
y : ℝ
⊢ ‖deriv (u ∘ update x i) y‖₊ ≤ ‖fderiv ℝ u (update x i y)‖₊

tactic: calc ‖deriv (u ∘ update x i) y‖₊ = ‖fderiv ℝ u (update x i y) (deriv (update x i) y)‖₊ := by
      rw [fderiv.comp_deriv _ (hu.differentiable le_rfl).differentiableAt
        (hasDerivAt_update x i y).differentiableAt]
  _ ≤ ‖fderiv ℝ u (update x i y)‖₊ * ‖deriv (update x i) y‖₊ :=
      ContinuousLinearMap.le_opNNNorm ..
  _ ≤ ‖fderiv ℝ u (update x i y)‖₊ := by simp [deriv_update, Pi.nnnorm_single]
state_before: case hfg.h.h₁.hfg.a
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
y : ℝ
⊢ ‖deriv (u ∘ update x i) y‖₊ ≤ ‖fderiv ℝ u (update x i y)‖₊
state_after: no goals

tactic: have hι : (2:ℝ) ≤ #ι := by exact_mod_cast hp.one_lt
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
⊢ 1 ≤ ↑#ι - 1
state_after: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
hι : 2 ≤ ↑#ι
⊢ 1 ≤ ↑#ι - 1

tactic: linarith
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
hι : 2 ≤ ↑#ι
⊢ 1 ≤ ↑#ι - 1
state_after: no goals

tactic: exact_mod_cast hp.one_lt
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
⊢ 2 ≤ ↑#ι
state_after: no goals

tactic: congr! 2 with x
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
⊢ ∫⁻ (x : ι → ℝ), ↑‖u x‖₊ ^ p = ∫⁻ (x : ι → ℝ), (↑‖u x‖₊ ^ (1 / (↑#ι - 1))) ^ ↑#ι
state_after: case h.e'_4.h
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
⊢ ↑‖u x‖₊ ^ p = (↑‖u x‖₊ ^ (1 / (↑#ι - 1))) ^ ↑#ι

tactic: rw [← ENNReal.rpow_mul, hp.conj_eq]
state_before: case h.e'_4.h
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
⊢ ↑‖u x‖₊ ^ p = (↑‖u x‖₊ ^ (1 / (↑#ι - 1))) ^ ↑#ι
state_after: case h.e'_4.h
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
⊢ ↑‖u x‖₊ ^ (↑#ι / (↑#ι - 1)) = ↑‖u x‖₊ ^ (1 / (↑#ι - 1) * ↑#ι)

tactic: field_simp
state_before: case h.e'_4.h
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
⊢ ↑‖u x‖₊ ^ (↑#ι / (↑#ι - 1)) = ↑‖u x‖₊ ^ (1 / (↑#ι - 1) * ↑#ι)
state_after: no goals

tactic: congr! 2 with x
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
⊢ ∫⁻ (x : ι → ℝ), (↑‖u x‖₊ ^ (1 / (↑#ι - 1))) ^ ↑#ι = ∫⁻ (x : ι → ℝ), ∏ _i : ι, ↑‖u x‖₊ ^ (1 / (↑#ι - 1))
state_after: case h.e'_4.h
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
⊢ (↑‖u x‖₊ ^ (1 / (↑#ι - 1))) ^ ↑#ι = ∏ _i : ι, ↑‖u x‖₊ ^ (1 / (↑#ι - 1))

tactic: simp_rw [prod_const, card_univ]
state_before: case h.e'_4.h
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
⊢ (↑‖u x‖₊ ^ (1 / (↑#ι - 1))) ^ ↑#ι = ∏ _i : ι, ↑‖u x‖₊ ^ (1 / (↑#ι - 1))
state_after: case h.e'_4.h
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
⊢ (↑‖u x‖₊ ^ (1 / (↑#ι - 1))) ^ ↑#ι = (↑‖u x‖₊ ^ (1 / (↑#ι - 1))) ^ #ι

tactic: norm_cast
state_before: case h.e'_4.h
ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
⊢ (↑‖u x‖₊ ^ (1 / (↑#ι - 1))) ^ ↑#ι = (↑‖u x‖₊ ^ (1 / (↑#ι - 1))) ^ #ι
state_after: no goals

tactic: apply lintegral_prod_lintegral_pow_le _ hp
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
⊢ ∫⁻ (x : ι → ℝ), ∏ i : ι, (∫⁻ (xᵢ : ℝ), ↑‖fderiv ℝ u (update x i xᵢ)‖₊) ^ (1 / (↑#ι - 1)) ≤
    (∫⁻ (x : ι → ℝ), ↑‖fderiv ℝ u x‖₊) ^ p
state_after: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
⊢ Measurable fun x => ↑‖fderiv ℝ u x‖₊

tactic: have : Continuous (fderiv ℝ u) := hu.continuous_fderiv le_rfl
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
⊢ Measurable fun x => ↑‖fderiv ℝ u x‖₊
state_after: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this✝ : 1 ≤ ↑#ι - 1
this : Continuous (fderiv ℝ u)
⊢ Measurable fun x => ↑‖fderiv ℝ u x‖₊

tactic: fun_prop
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this✝ : 1 ≤ ↑#ι - 1
this : Continuous (fderiv ℝ u)
⊢ Measurable fun x => ↑‖fderiv ℝ u x‖₊
state_after: no goals

tactic: apply le_trans (by simp) (HasCompactSupport.ennnorm_le_lintegral_Ici_deriv _ _ _)
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ ↑‖u x‖₊ ≤ ∫⁻ (xᵢ : ℝ) in Set.Iic (x i), ↑‖deriv (u ∘ update x i) xᵢ‖₊
state_after: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ ContDiff ℝ 1 (u ∘ update x i)

ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ HasCompactSupport (u ∘ update x i)

tactic: simp
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ ↑‖u x‖₊ ≤ ↑‖(u ∘ update x i) (x i)‖₊
state_after: no goals

tactic: exact hu.comp (by convert contDiff_update 1 x i)
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ ContDiff ℝ 1 (u ∘ update x i)
state_after: no goals

tactic: convert contDiff_update 1 x i
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ ContDiff ℝ 1 (update x i)
state_after: no goals

tactic: exact h2u.comp_closedEmbedding (closedEmbedding_update x i)
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
⊢ HasCompactSupport (u ∘ update x i)
state_after: no goals

tactic: rw [fderiv.comp_deriv _ (hu.differentiable le_rfl).differentiableAt
  (hasDerivAt_update x i y).differentiableAt]
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
y : ℝ
⊢ ‖deriv (u ∘ update x i) y‖₊ = ‖(fderiv ℝ u (update x i y)) (deriv (update x i) y)‖₊
state_after: no goals

tactic: simp [deriv_update, Pi.nnnorm_single]
state_before: ι : Type u_1
inst✝⁵ : Fintype ι
inst✝⁴ : DecidableEq ι
A : ι → Type u_2
inst✝³ : (i : ι) → MeasurableSpace (A i)
μ : (i : ι) → Measure (A i)
inst✝² : ∀ (i : ι), SigmaFinite (μ i)
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
p : ℝ
hp : (↑#ι).IsConjExponent p
u : (ι → ℝ) → F
hu : ContDiff ℝ 1 u
h2u : HasCompactSupport u
this : 1 ≤ ↑#ι - 1
x : ι → ℝ
i : ι
a✝ : i ∈ Finset.univ
y : ℝ
⊢ ‖fderiv ℝ u (update x i y)‖₊ * ‖deriv (update x i) y‖₊ ≤ ‖fderiv ℝ u (update x i y)‖₊
state_after: no goals