Theorem: Real.integrable_of_summable_norm_Icc
File: Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean

tactic: refine'
  @integrable_of_summable_norm_restrict ℝ ℤ E _ volume  _ _ _ _ _ _ _ _
    (summable_of_nonneg_of_le
      (fun n : ℤ =>  mul_nonneg (norm_nonneg
          (f.restrict (⟨Icc (n : ℝ) ((n : ℝ) + 1), isCompact_Icc⟩ : Compacts ℝ)))
          ENNReal.toReal_nonneg)
      (fun n => _) hf) _
state_before: E : Type u_1
inst✝ : NormedAddCommGroup E
f : C(ℝ, E)
hf : Summable fun n => ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖
⊢ Integrable ↑f

tactic: intro n
state_before: case refine'_1
E : Type u_1
inst✝ : NormedAddCommGroup E
f : C(ℝ, E)
hf : Summable fun n => ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖
⊢ ℤ → Compacts ℝ

tactic: exact ⟨Icc (n : ℝ) ((n : ℝ) + 1), isCompact_Icc⟩
state_before: case refine'_1
E : Type u_1
inst✝ : NormedAddCommGroup E
f : C(ℝ, E)
hf : Summable fun n => ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖
n : ℤ
⊢ Compacts ℝ

tactic: simp only [Compacts.coe_mk, Real.volume_Icc, add_sub_cancel', ENNReal.toReal_ofReal zero_le_one,
  mul_one, norm_le _ (norm_nonneg _)]
state_before: case refine'_2
E : Type u_1
inst✝ : NormedAddCommGroup E
f : C(ℝ, E)
hf : Summable fun n => ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖
n : ℤ
⊢ ‖ContinuousMap.restrict (↑{ carrier := Icc (↑n) (↑n + 1), isCompact' := (_ : IsCompact (Icc (↑n) (↑n + 1))) }) f‖ *
      ENNReal.toReal (↑↑volume ↑{ carrier := Icc (↑n) (↑n + 1), isCompact' := (_ : IsCompact (Icc (↑n) (↑n + 1))) }) ≤
    ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖

tactic: intro x
state_before: case refine'_2
E : Type u_1
inst✝ : NormedAddCommGroup E
f : C(ℝ, E)
hf : Summable fun n => ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖
n : ℤ
⊢ ∀ (x : ↑(Icc (↑n) (↑n + 1))),
    ‖↑(ContinuousMap.restrict (Icc (↑n) (↑n + 1)) f) x‖ ≤
      ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖

tactic: have := ((f.comp <| ContinuousMap.addRight n).restrict (Icc 0 1)).norm_coe_le_norm
    ⟨x - n, ⟨sub_nonneg.mpr x.2.1, sub_le_iff_le_add'.mpr x.2.2⟩⟩
state_before: case refine'_2
E : Type u_1
inst✝ : NormedAddCommGroup E
f : C(ℝ, E)
hf : Summable fun n => ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖
n : ℤ
x : ↑(Icc (↑n) (↑n + 1))
⊢ ‖↑(ContinuousMap.restrict (Icc (↑n) (↑n + 1)) f) x‖ ≤
    ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖

tactic: simpa only [ContinuousMap.restrict_apply, comp_apply, coe_addRight, Subtype.coe_mk,
  sub_add_cancel] using this
state_before: case refine'_2
E : Type u_1
inst✝ : NormedAddCommGroup E
f : C(ℝ, E)
hf : Summable fun n => ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖
n : ℤ
x : ↑(Icc (↑n) (↑n + 1))
this :
  ‖↑(ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n)))
        { val := ↑x - ↑n, property := (_ : 0 ≤ ↑x - ↑n ∧ ↑x - ↑n ≤ 1) }‖ ≤
    ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖
⊢ ‖↑(ContinuousMap.restrict (Icc (↑n) (↑n + 1)) f) x‖ ≤
    ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖

tactic: exact iUnion_Icc_int_cast ℝ
state_before: case refine'_3
E : Type u_1
inst✝ : NormedAddCommGroup E
f : C(ℝ, E)
hf : Summable fun n => ‖ContinuousMap.restrict (Icc 0 1) (comp f (ContinuousMap.addRight ↑n))‖
⊢ (⋃ (i : ℤ), ↑{ carrier := Icc (↑i) (↑i + 1), isCompact' := (_ : IsCompact (Icc (↑i) (↑i + 1))) }) = univ