Theorem: MeasureTheory.DominatedFinMeasAdditive.of_smul_measure
File: Mathlib/MeasureTheory/Integral/SetToL1.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
hT : DominatedFinMeasAdditive (c • μ) T C
⊢ DominatedFinMeasAdditive μ T (c.toReal * C)
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
hT : DominatedFinMeasAdditive (c • μ) T C
h : ∀ (s : Set α), MeasurableSet s → c • μ s = ⊤ → μ s = ⊤
⊢ DominatedFinMeasAdditive μ T (c.toReal * C)
tactic: have h : ∀ s, MeasurableSet s → c • μ s = ∞ → μ s = ∞ := by
    intro s _ hcμs
    simp only [hc_ne_top, Algebra.id.smul_eq_mul, ENNReal.mul_eq_top, or_false_iff, Ne,
      false_and_iff] at hcμs
    exact hcμs.2
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
hT : DominatedFinMeasAdditive (c • μ) T C
h : ∀ (s : Set α), MeasurableSet s → c • μ s = ⊤ → μ s = ⊤
⊢ DominatedFinMeasAdditive μ T (c.toReal * C)
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
hT : DominatedFinMeasAdditive (c • μ) T C
h : ∀ (s : Set α), MeasurableSet s → c • μ s = ⊤ → μ s = ⊤
s : Set α
hs : MeasurableSet s
hμs : μ s < ⊤
⊢ ‖T s‖ ≤ c.toReal * C * (μ s).toReal
tactic: refine ⟨hT.1.of_eq_top_imp_eq_top (μ := c • μ) h, fun s hs hμs => ?_⟩
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
hT : DominatedFinMeasAdditive (c • μ) T C
h : ∀ (s : Set α), MeasurableSet s → c • μ s = ⊤ → μ s = ⊤
s : Set α
hs : MeasurableSet s
hμs : μ s < ⊤
⊢ ‖T s‖ ≤ c.toReal * C * (μ s).toReal
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
hT : DominatedFinMeasAdditive (c • μ) T C
h : ∀ (s : Set α), MeasurableSet s → c • μ s = ⊤ → μ s = ⊤
s : Set α
hs : MeasurableSet s
hμs : μ s < ⊤
hcμs : c • μ s ≠ ⊤
⊢ ‖T s‖ ≤ c.toReal * C * (μ s).toReal
tactic: have hcμs : c • μ s ≠ ∞ := mt (h s hs) hμs.ne
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
hT : DominatedFinMeasAdditive (c • μ) T C
h : ∀ (s : Set α), MeasurableSet s → c • μ s = ⊤ → μ s = ⊤
s : Set α
hs : MeasurableSet s
hμs : μ s < ⊤
hcμs : c • μ s ≠ ⊤
⊢ ‖T s‖ ≤ c.toReal * C * (μ s).toReal
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
hT : DominatedFinMeasAdditive (c • μ) T C
h : ∀ (s : Set α), MeasurableSet s → c • μ s = ⊤ → μ s = ⊤
s : Set α
hs : MeasurableSet s
hμs : μ s < ⊤
hcμs : c * μ s ≠ ⊤
⊢ ‖T s‖ ≤ c.toReal * C * (μ s).toReal
tactic: rw [smul_eq_mul] at hcμs
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
hT : DominatedFinMeasAdditive (c • μ) T C
h : ∀ (s : Set α), MeasurableSet s → c • μ s = ⊤ → μ s = ⊤
s : Set α
hs : MeasurableSet s
hμs : μ s < ⊤
hcμs : c * μ s ≠ ⊤
⊢ ‖T s‖ ≤ c.toReal * C * (μ s).toReal
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
h : ∀ (s : Set α), MeasurableSet s → c • μ s = ⊤ → μ s = ⊤
s : Set α
hs : MeasurableSet s
hμs : μ s < ⊤
hcμs : c * μ s ≠ ⊤
hT : FinMeasAdditive (c • μ) T ∧ ∀ (s : Set α), MeasurableSet s → c * μ s < ⊤ → ‖T s‖ ≤ C * (c.toReal * (μ s).toReal)
⊢ ‖T s‖ ≤ c.toReal * C * (μ s).toReal
tactic: simp_rw [DominatedFinMeasAdditive, Measure.smul_apply, smul_eq_mul, toReal_mul] at hT
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
h : ∀ (s : Set α), MeasurableSet s → c • μ s = ⊤ → μ s = ⊤
s : Set α
hs : MeasurableSet s
hμs : μ s < ⊤
hcμs : c * μ s ≠ ⊤
hT : FinMeasAdditive (c • μ) T ∧ ∀ (s : Set α), MeasurableSet s → c * μ s < ⊤ → ‖T s‖ ≤ C * (c.toReal * (μ s).toReal)
⊢ ‖T s‖ ≤ c.toReal * C * (μ s).toReal
state_after: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
h : ∀ (s : Set α), MeasurableSet s → c • μ s = ⊤ → μ s = ⊤
s : Set α
hs : MeasurableSet s
hμs : μ s < ⊤
hcμs : c * μ s ≠ ⊤
hT : FinMeasAdditive (c • μ) T ∧ ∀ (s : Set α), MeasurableSet s → c * μ s < ⊤ → ‖T s‖ ≤ C * (c.toReal * (μ s).toReal)
⊢ C * (c.toReal * (μ s).toReal) = c.toReal * C * (μ s).toReal
tactic: refine (hT.2 s hs hcμs.lt_top).trans (le_of_eq ?_)
state_before: α : Type u_1
E : Type u_2
F : Type u_3
F' : Type u_4
G : Type u_5
𝕜 : Type u_6
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 α
β : Type u_7
inst✝ : SeminormedAddCommGroup β
T T' : Set α → β
C C' : ℝ
c : ℝ≥0∞
hc_ne_top : c ≠ ⊤
h : ∀ (s : Set α), MeasurableSet s → c • μ s = ⊤ → μ s = ⊤
s : Set α
hs : MeasurableSet s
hμs : μ s < ⊤
hcμs : c * μ s ≠ ⊤
hT : FinMeasAdditive (c • μ) T ∧ ∀ (s : Set α), MeasurableSet s → c * μ s < ⊤ → ‖T s‖ ≤ C * (c.toReal * (μ s).toReal)
⊢ C * (c.toReal * (μ s).toReal) = c.toReal * C * (μ s).toReal
state_after: no goals
tactic: ring