-- Mathlib/MeasureTheory/Integral/SetToL1.lean
theorem norm_setToSimpleFunc_le_sum_mul_norm_of_integrable (T : Set α → E →L[ℝ] F') {C : ℝ}
    (hT_norm : ∀ s, MeasurableSet s → μ s < ∞ → ‖T s‖ ≤ C * (μ s).toReal) (f : α →ₛ E)
    (hf : Integrable f μ) :
    ‖f.setToSimpleFunc T‖ ≤ C * ∑ x ∈ f.range, (μ (f ⁻¹' {x})).toReal * ‖x‖ :=
  calc
    ‖f.setToSimpleFunc T‖ ≤ ∑ x ∈ f.range, ‖T (f ⁻¹' {x})‖ * ‖x‖ :=
      norm_setToSimpleFunc_le_sum_opNorm T f
    _ ≤ ∑ x ∈ f.range, C * (μ (f ⁻¹' {x})).toReal * ‖x‖

Proof state:
α : Type u_1
E : Type u_2
F' : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ‖T s‖ ≤ C * (μ s).toReal
f : α →ₛ E
hf : Integrable (⇑f) μ
⊢ ∑ x ∈ f.range, C * (μ (⇑f ⁻¹' {x})).toReal * ‖x‖ ≤ C * ∑ x ∈ f.range, (μ (⇑f ⁻¹' {x})).toReal * ‖x‖

Tactic:
simp_rw [mul_sum, ← mul_assoc]

Result:
α : Type u_1
E : Type u_2
F' : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ‖T s‖ ≤ C * (μ s).toReal
f : α →ₛ E
hf : Integrable (⇑f) μ
⊢ ∑ x ∈ f.range, C * (μ (⇑f ⁻¹' {x})).toReal * ‖x‖ ≤ ∑ x ∈ f.range, C * (μ (⇑f ⁻¹' {x})).toReal * ‖x‖

Proof state:
α : Type u_1
E : Type u_2
F' : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ‖T s‖ ≤ C * (μ s).toReal
f : α →ₛ E
hf : Integrable (⇑f) μ
⊢ ∑ x ∈ f.range, ‖T (⇑f ⁻¹' {x})‖ * ‖x‖ ≤ ∑ x ∈ f.range, C * (μ (⇑f ⁻¹' {x})).toReal * ‖x‖

Tactic:
refine Finset.sum_le_sum fun b hb => ?_

Result:
α : Type u_1
E : Type u_2
F' : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ‖T s‖ ≤ C * (μ s).toReal
f : α →ₛ E
hf : Integrable (⇑f) μ
b : E
hb : b ∈ f.range
⊢ ‖T (⇑f ⁻¹' {b})‖ * ‖b‖ ≤ C * (μ (⇑f ⁻¹' {b})).toReal * ‖b‖

Proof state:
case inr
α : Type u_1
E : Type u_2
F' : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ‖T s‖ ≤ C * (μ s).toReal
f : α →ₛ E
hf : Integrable (⇑f) μ
b : E
hb✝ : b ∈ f.range
hb : b ≠ 0
⊢ ‖T (⇑f ⁻¹' {b})‖ * ‖b‖ ≤ C * (μ (⇑f ⁻¹' {b})).toReal * ‖b‖

Tactic:
gcongr

Result:
case inr.h
α : Type u_1
E : Type u_2
F' : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ‖T s‖ ≤ C * (μ s).toReal
f : α →ₛ E
hf : Integrable (⇑f) μ
b : E
hb✝ : b ∈ f.range
hb : b ≠ 0
⊢ ‖T (⇑f ⁻¹' {b})‖ ≤ C * (μ (⇑f ⁻¹' {b})).toReal

Proof state:
α : Type u_1
E : Type u_2
F' : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ‖T s‖ ≤ C * (μ s).toReal
f : α →ₛ E
hf : Integrable (⇑f) μ
⊢ ∑ x ∈ f.range, C * (μ (⇑f ⁻¹' {x})).toReal * ‖x‖ ≤ ∑ x ∈ f.range, C * (μ (⇑f ⁻¹' {x})).toReal * ‖x‖

Tactic:
rfl

Result:
no goals

Proof state:
case inr.h
α : Type u_1
E : Type u_2
F' : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ‖T s‖ ≤ C * (μ s).toReal
f : α →ₛ E
hf : Integrable (⇑f) μ
b : E
hb✝ : b ∈ f.range
hb : b ≠ 0
⊢ ‖T (⇑f ⁻¹' {b})‖ ≤ C * (μ (⇑f ⁻¹' {b})).toReal

Tactic:
exact hT_norm _ (SimpleFunc.measurableSet_fiber _ _) <|
  SimpleFunc.measure_preimage_lt_top_of_integrable _ hf hb

Result:
no goals

Proof state:
case inl
α : Type u_1
E : Type u_2
F' : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ‖T s‖ ≤ C * (μ s).toReal
f : α →ₛ E
hf : Integrable (⇑f) μ
hb : 0 ∈ f.range
⊢ ‖T (⇑f ⁻¹' {0})‖ * ‖0‖ ≤ C * (μ (⇑f ⁻¹' {0})).toReal * ‖0‖

Tactic:
simp

Result:
no goals

Proof state:
α : Type u_1
E : Type u_2
F' : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ‖T s‖ ≤ C * (μ s).toReal
f : α →ₛ E
hf : Integrable (⇑f) μ
b : E
hb : b ∈ f.range
⊢ ‖T (⇑f ⁻¹' {b})‖ * ‖b‖ ≤ C * (μ (⇑f ⁻¹' {b})).toReal * ‖b‖

Tactic:
obtain rfl | hb := eq_or_ne b 0

Result:
case inl
α : Type u_1
E : Type u_2
F' : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ‖T s‖ ≤ C * (μ s).toReal
f : α →ₛ E
hf : Integrable (⇑f) μ
hb : 0 ∈ f.range
⊢ ‖T (⇑f ⁻¹' {0})‖ * ‖0‖ ≤ C * (μ (⇑f ⁻¹' {0})).toReal * ‖0‖

case inr
α : Type u_1
E : Type u_2
F' : Type u_4
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F'
inst✝ : NormedSpace ℝ F'
m : MeasurableSpace α
μ : Measure α
T : Set α → E →L[ℝ] F'
C : ℝ
hT_norm : ∀ (s : Set α), MeasurableSet s → μ s < ⊤ → ‖T s‖ ≤ C * (μ s).toReal
f : α →ₛ E
hf : Integrable (⇑f) μ
b : E
hb✝ : b ∈ f.range
hb : b ≠ 0
⊢ ‖T (⇑f ⁻¹' {b})‖ * ‖b‖ ≤ C * (μ (⇑f ⁻¹' {b})).toReal * ‖b‖