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

Proof steps:
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
hf : Periodic f T
hT : 0 < T
t s : ℝ
⊢ ∫ (x : ℝ) in t..t + T, f x = ∫ (x : ℝ) in s..s + T, f x
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
hf : Periodic f T
hT : 0 < T
t s : ℝ
⊢ ∫ (x : ℝ) in Ioc t (t + T), f x ∂volume = ∫ (x : ℝ) in Ioc s (s + T), f x ∂volume
tactic: simp only [integral_of_le, hT.le, le_add_iff_nonneg_right]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
hf : Periodic f T
hT : 0 < T
t s : ℝ
⊢ ∫ (x : ℝ) in Ioc t (t + T), f x ∂volume = ∫ (x : ℝ) in Ioc s (s + T), f x ∂volume
state_after: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
hf : Periodic f T
hT : 0 < T
t s : ℝ
this : VAddInvariantMeasure ↥(zmultiples T) ℝ volume
⊢ ∫ (x : ℝ) in Ioc t (t + T), f x ∂volume = ∫ (x : ℝ) in Ioc s (s + T), f x ∂volume
tactic: haveI : VAddInvariantMeasure (AddSubgroup.zmultiples T) ℝ volume :=
    ⟨fun c s _ => measure_preimage_add _ _ _⟩
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
hf : Periodic f T
hT : 0 < T
t s : ℝ
this : VAddInvariantMeasure ↥(zmultiples T) ℝ volume
⊢ ∫ (x : ℝ) in Ioc t (t + T), f x ∂volume = ∫ (x : ℝ) in Ioc s (s + T), f x ∂volume
state_after: case hs
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
hf : Periodic f T
hT : 0 < T
t s : ℝ
this : VAddInvariantMeasure ↥(zmultiples T) ℝ volume
⊢ IsAddFundamentalDomain (↥(zmultiples T)) (Ioc t (t + T)) volume

case ht
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
hf : Periodic f T
hT : 0 < T
t s : ℝ
this : VAddInvariantMeasure ↥(zmultiples T) ℝ volume
⊢ IsAddFundamentalDomain (↥(zmultiples T)) (Ioc s (s + T)) volume

case hf
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
hf : Periodic f T
hT : 0 < T
t s : ℝ
this : VAddInvariantMeasure ↥(zmultiples T) ℝ volume
⊢ ∀ (g : ↥(zmultiples T)) (x : ℝ), f (g +ᵥ x) = f x
tactic: apply IsAddFundamentalDomain.setIntegral_eq (G := AddSubgroup.zmultiples T)
state_before: case hs
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
hf : Periodic f T
hT : 0 < T
t s : ℝ
this : VAddInvariantMeasure ↥(zmultiples T) ℝ volume
⊢ IsAddFundamentalDomain (↥(zmultiples T)) (Ioc t (t + T)) volume

case ht
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
hf : Periodic f T
hT : 0 < T
t s : ℝ
this : VAddInvariantMeasure ↥(zmultiples T) ℝ volume
⊢ IsAddFundamentalDomain (↥(zmultiples T)) (Ioc s (s + T)) volume

case hf
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f : ℝ → E
T : ℝ
hf : Periodic f T
hT : 0 < T
t s : ℝ
this : VAddInvariantMeasure ↥(zmultiples T) ℝ volume
⊢ ∀ (g : ↥(zmultiples T)) (x : ℝ), f (g +ᵥ x) = f x
state_after: no goals
tactic: exacts [isAddFundamentalDomain_Ioc hT t, isAddFundamentalDomain_Ioc hT s, hf.map_vadd_zmultiples]