Theorem: MeasureTheory.SimpleFunc.setToSimpleFunc_nonneg'
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

tactic: refine' sum_nonneg fun i hi => _
state_before: α : Type u_1
E : Type ?u.361138
F : Type ?u.361141
F' : Type ?u.361144
G : Type ?u.361147
𝕜 : Type ?u.361150
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
G' : Type u_2
G'' : Type u_3
inst✝³ : NormedLatticeAddCommGroup G''
inst✝² : NormedSpace ℝ G''
inst✝¹ : NormedLatticeAddCommGroup G'
inst✝ : NormedSpace ℝ G'
T : Set α → G' →L[ℝ] G''
hT_nonneg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∀ (x : G'), 0 ≤ x → 0 ≤ ↑(T s) x
f : α →ₛ G'
hf : 0 ≤ f
hfi : Integrable ↑f
⊢ 0 ≤ setToSimpleFunc T f

tactic: by_cases h0 : i = 0
state_before: α : Type u_1
E : Type ?u.361138
F : Type ?u.361141
F' : Type ?u.361144
G : Type ?u.361147
𝕜 : Type ?u.361150
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
G' : Type u_2
G'' : Type u_3
inst✝³ : NormedLatticeAddCommGroup G''
inst✝² : NormedSpace ℝ G''
inst✝¹ : NormedLatticeAddCommGroup G'
inst✝ : NormedSpace ℝ G'
T : Set α → G' →L[ℝ] G''
hT_nonneg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∀ (x : G'), 0 ≤ x → 0 ≤ ↑(T s) x
f : α →ₛ G'
hf : 0 ≤ f
hfi : Integrable ↑f
i : G'
hi : i ∈ SimpleFunc.range f
⊢ 0 ≤ ↑(T (↑f ⁻¹' {i})) i

tactic: refine'
  hT_nonneg _ (measurableSet_fiber _ _) (measure_preimage_lt_top_of_integrable _ hfi h0) i _
state_before: case neg
α : Type u_1
E : Type ?u.361138
F : Type ?u.361141
F' : Type ?u.361144
G : Type ?u.361147
𝕜 : Type ?u.361150
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
G' : Type u_2
G'' : Type u_3
inst✝³ : NormedLatticeAddCommGroup G''
inst✝² : NormedSpace ℝ G''
inst✝¹ : NormedLatticeAddCommGroup G'
inst✝ : NormedSpace ℝ G'
T : Set α → G' →L[ℝ] G''
hT_nonneg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∀ (x : G'), 0 ≤ x → 0 ≤ ↑(T s) x
f : α →ₛ G'
hf : 0 ≤ f
hfi : Integrable ↑f
i : G'
hi : i ∈ SimpleFunc.range f
h0 : ¬i = 0
⊢ 0 ≤ ↑(T (↑f ⁻¹' {i})) i

tactic: rw [mem_range] at hi
state_before: case neg
α : Type u_1
E : Type ?u.361138
F : Type ?u.361141
F' : Type ?u.361144
G : Type ?u.361147
𝕜 : Type ?u.361150
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
G' : Type u_2
G'' : Type u_3
inst✝³ : NormedLatticeAddCommGroup G''
inst✝² : NormedSpace ℝ G''
inst✝¹ : NormedLatticeAddCommGroup G'
inst✝ : NormedSpace ℝ G'
T : Set α → G' →L[ℝ] G''
hT_nonneg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∀ (x : G'), 0 ≤ x → 0 ≤ ↑(T s) x
f : α →ₛ G'
hf : 0 ≤ f
hfi : Integrable ↑f
i : G'
hi : i ∈ SimpleFunc.range f
h0 : ¬i = 0
⊢ 0 ≤ i

tactic: obtain ⟨y, hy⟩ := Set.mem_range.mp hi
state_before: case neg
α : Type u_1
E : Type ?u.361138
F : Type ?u.361141
F' : Type ?u.361144
G : Type ?u.361147
𝕜 : Type ?u.361150
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
G' : Type u_2
G'' : Type u_3
inst✝³ : NormedLatticeAddCommGroup G''
inst✝² : NormedSpace ℝ G''
inst✝¹ : NormedLatticeAddCommGroup G'
inst✝ : NormedSpace ℝ G'
T : Set α → G' →L[ℝ] G''
hT_nonneg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∀ (x : G'), 0 ≤ x → 0 ≤ ↑(T s) x
f : α →ₛ G'
hf : 0 ≤ f
hfi : Integrable ↑f
i : G'
hi : i ∈ Set.range ↑f
h0 : ¬i = 0
⊢ 0 ≤ i

tactic: rw [← hy]
state_before: case neg.intro
α : Type u_1
E : Type ?u.361138
F : Type ?u.361141
F' : Type ?u.361144
G : Type ?u.361147
𝕜 : Type ?u.361150
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
G' : Type u_2
G'' : Type u_3
inst✝³ : NormedLatticeAddCommGroup G''
inst✝² : NormedSpace ℝ G''
inst✝¹ : NormedLatticeAddCommGroup G'
inst✝ : NormedSpace ℝ G'
T : Set α → G' →L[ℝ] G''
hT_nonneg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∀ (x : G'), 0 ≤ x → 0 ≤ ↑(T s) x
f : α →ₛ G'
hf : 0 ≤ f
hfi : Integrable ↑f
i : G'
hi : i ∈ Set.range ↑f
h0 : ¬i = 0
y : α
hy : ↑f y = i
⊢ 0 ≤ i

tactic: convert hf y
state_before: case neg.intro
α : Type u_1
E : Type ?u.361138
F : Type ?u.361141
F' : Type ?u.361144
G : Type ?u.361147
𝕜 : Type ?u.361150
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
G' : Type u_2
G'' : Type u_3
inst✝³ : NormedLatticeAddCommGroup G''
inst✝² : NormedSpace ℝ G''
inst✝¹ : NormedLatticeAddCommGroup G'
inst✝ : NormedSpace ℝ G'
T : Set α → G' →L[ℝ] G''
hT_nonneg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∀ (x : G'), 0 ≤ x → 0 ≤ ↑(T s) x
f : α →ₛ G'
hf : 0 ≤ f
hfi : Integrable ↑f
i : G'
hi : i ∈ Set.range ↑f
h0 : ¬i = 0
y : α
hy : ↑f y = i
⊢ 0 ≤ ↑f y

tactic: simp [h0]
state_before: case pos
α : Type u_1
E : Type ?u.361138
F : Type ?u.361141
F' : Type ?u.361144
G : Type ?u.361147
𝕜 : Type ?u.361150
p : ℝ≥0∞
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup F'
inst✝⁵ : NormedSpace ℝ F'
inst✝⁴ : NormedAddCommGroup G
m : MeasurableSpace α
μ : Measure α
G' : Type u_2
G'' : Type u_3
inst✝³ : NormedLatticeAddCommGroup G''
inst✝² : NormedSpace ℝ G''
inst✝¹ : NormedLatticeAddCommGroup G'
inst✝ : NormedSpace ℝ G'
T : Set α → G' →L[ℝ] G''
hT_nonneg : ∀ (s : Set α), MeasurableSet s → ↑↑μ s < ⊤ → ∀ (x : G'), 0 ≤ x → 0 ≤ ↑(T s) x
f : α →ₛ G'
hf : 0 ≤ f
hfi : Integrable ↑f
i : G'
hi : i ∈ SimpleFunc.range f
h0 : i = 0
⊢ 0 ≤ ↑(T (↑f ⁻¹' {i})) i