Theorem: Function.Periodic.integral_le_sSup_add_zsmul_of_pos
File: Mathlib/MeasureTheory/Integral/Periodic.lean

tactic: let ε := Int.fract (t / T) * T
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
g : ℝ → ℝ
hg : Periodic g T
h_int : ∀ (t₁ t₂ : ℝ), IntervalIntegrable g volume t₁ t₂
hT : 0 < T
t : ℝ
⊢ ∫ (x : ℝ) in 0 ..t, g x ≤ sSup ((fun t => ∫ (x : ℝ) in 0 ..t, g x) '' Icc 0 T) + ⌊t / T⌋ • ∫ (x : ℝ) in 0 ..T, g x
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
g : ℝ → ℝ
hg : Periodic g T
h_int : ∀ (t₁ t₂ : ℝ), IntervalIntegrable g volume t₁ t₂
hT : 0 < T
t : ℝ
ε : ℝ := Int.fract (t / T) * T
⊢ ∫ (x : ℝ) in 0 ..t, g x ≤ sSup ((fun t => ∫ (x : ℝ) in 0 ..t, g x) '' Icc 0 T) + ⌊t / T⌋ • ∫ (x : ℝ) in 0 ..T, g x

tactic: conv_lhs =>
  rw [← Int.fract_div_mul_self_add_zsmul_eq T t (by linarith), ←
    integral_add_adjacent_intervals (h_int 0 ε) (h_int _ _)]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
g : ℝ → ℝ
hg : Periodic g T
h_int : ∀ (t₁ t₂ : ℝ), IntervalIntegrable g volume t₁ t₂
hT : 0 < T
t : ℝ
ε : ℝ := Int.fract (t / T) * T
⊢ ∫ (x : ℝ) in 0 ..t, g x ≤ sSup ((fun t => ∫ (x : ℝ) in 0 ..t, g x) '' Icc 0 T) + ⌊t / T⌋ • ∫ (x : ℝ) in 0 ..T, g x
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
g : ℝ → ℝ
hg : Periodic g T
h_int : ∀ (t₁ t₂ : ℝ), IntervalIntegrable g volume t₁ t₂
hT : 0 < T
t : ℝ
ε : ℝ := Int.fract (t / T) * T
⊢ (∫ (x : ℝ) in 0 ..ε, g x) + ∫ (x : ℝ) in ε..Int.fract (t / T) * T + ⌊t / T⌋ • T, g x ≤
    sSup ((fun t => ∫ (x : ℝ) in 0 ..t, g x) '' Icc 0 T) + ⌊t / T⌋ • ∫ (x : ℝ) in 0 ..T, g x

tactic: rw [hg.intervalIntegral_add_zsmul_eq ⌊t / T⌋ ε h_int, hg.intervalIntegral_add_eq ε 0, zero_add,
  add_le_add_iff_right]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
g : ℝ → ℝ
hg : Periodic g T
h_int : ∀ (t₁ t₂ : ℝ), IntervalIntegrable g volume t₁ t₂
hT : 0 < T
t : ℝ
ε : ℝ := Int.fract (t / T) * T
⊢ (∫ (x : ℝ) in 0 ..ε, g x) + ∫ (x : ℝ) in ε..Int.fract (t / T) * T + ⌊t / T⌋ • T, g x ≤
    sSup ((fun t => ∫ (x : ℝ) in 0 ..t, g x) '' Icc 0 T) + ⌊t / T⌋ • ∫ (x : ℝ) in 0 ..T, g x
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
g : ℝ → ℝ
hg : Periodic g T
h_int : ∀ (t₁ t₂ : ℝ), IntervalIntegrable g volume t₁ t₂
hT : 0 < T
t : ℝ
ε : ℝ := Int.fract (t / T) * T
⊢ ∫ (x : ℝ) in 0 ..ε, g x ≤ sSup ((fun t => ∫ (x : ℝ) in 0 ..t, g x) '' Icc 0 T)

tactic: exact (continuous_primitive h_int 0).continuousOn.le_sSup_image_Icc
  (mem_Icc_of_Ico (Int.fract_div_mul_self_mem_Ico T t hT))
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
g : ℝ → ℝ
hg : Periodic g T
h_int : ∀ (t₁ t₂ : ℝ), IntervalIntegrable g volume t₁ t₂
hT : 0 < T
t : ℝ
ε : ℝ := Int.fract (t / T) * T
⊢ ∫ (x : ℝ) in 0 ..ε, g x ≤ sSup ((fun t => ∫ (x : ℝ) in 0 ..t, g x) '' Icc 0 T)
state_after: no goals

tactic: linarith
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
g : ℝ → ℝ
hg : Periodic g T
h_int : ∀ (t₁ t₂ : ℝ), IntervalIntegrable g volume t₁ t₂
hT : 0 < T
t : ℝ
ε : ℝ := Int.fract (t / T) * T
⊢ T ≠ 0
state_after: no goals