Theorem: IntervalIntegrable.comp_add_right
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: wlog h : a ≤ b generalizing a b
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f g : ℝ → E
a b : ℝ
μ : Measure ℝ
hf : IntervalIntegrable f volume a b
c : ℝ
⊢ IntervalIntegrable (fun x => f (x + c)) volume (a - c) (b - c)
state_after: case inr
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f g : ℝ → E
a b : ℝ
μ : Measure ℝ
hf : IntervalIntegrable f volume a b
c : ℝ
this :
  ∀ {a b : ℝ}, IntervalIntegrable f volume a b → a ≤ b → IntervalIntegrable (fun x => f (x + c)) volume (a - c) (b - c)
h : ¬a ≤ b
⊢ IntervalIntegrable (fun x => f (x + c)) volume (a - c) (b - c)

ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f g : ℝ → E
a✝ b✝ : ℝ
μ : Measure ℝ
c a b : ℝ
hf : IntervalIntegrable f volume a b
h : a ≤ b
⊢ IntervalIntegrable (fun x => f (x + c)) volume (a - c) (b - c)

tactic: rw [intervalIntegrable_iff'] at hf ⊢
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f g : ℝ → E
a✝ b✝ : ℝ
μ : Measure ℝ
c a b : ℝ
hf : IntervalIntegrable f volume a b
h : a ≤ b
⊢ IntervalIntegrable (fun x => f (x + c)) volume (a - c) (b - c)
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f g : ℝ → E
a✝ b✝ : ℝ
μ : Measure ℝ
c a b : ℝ
hf : IntegrableOn f [[a, b]] volume
h : a ≤ b
⊢ IntegrableOn (fun x => f (x + c)) [[a - c, b - c]] volume

tactic: have A : MeasurableEmbedding fun x => x + c :=
  (Homeomorph.addRight c).closedEmbedding.measurableEmbedding
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f g : ℝ → E
a✝ b✝ : ℝ
μ : Measure ℝ
c a b : ℝ
hf : IntegrableOn f [[a, b]] volume
h : a ≤ b
⊢ IntegrableOn (fun x => f (x + c)) [[a - c, b - c]] volume
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A✝ : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A✝
f g : ℝ → E
a✝ b✝ : ℝ
μ : Measure ℝ
c a b : ℝ
hf : IntegrableOn f [[a, b]] volume
h : a ≤ b
A : MeasurableEmbedding fun x => x + c
⊢ IntegrableOn (fun x => f (x + c)) [[a - c, b - c]] volume

tactic: rw [← map_add_right_eq_self volume c] at hf
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A✝ : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A✝
f g : ℝ → E
a✝ b✝ : ℝ
μ : Measure ℝ
c a b : ℝ
hf : IntegrableOn f [[a, b]] volume
h : a ≤ b
A : MeasurableEmbedding fun x => x + c
⊢ IntegrableOn (fun x => f (x + c)) [[a - c, b - c]] volume
state_after: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A✝ : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A✝
f g : ℝ → E
a✝ b✝ : ℝ
μ : Measure ℝ
c a b : ℝ
hf : IntegrableOn f [[a, b]] (Measure.map (fun x => x + c) volume)
h : a ≤ b
A : MeasurableEmbedding fun x => x + c
⊢ IntegrableOn (fun x => f (x + c)) [[a - c, b - c]] volume

tactic: convert (MeasurableEmbedding.integrableOn_map_iff A).mp hf using 1
state_before: ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A✝ : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A✝
f g : ℝ → E
a✝ b✝ : ℝ
μ : Measure ℝ
c a b : ℝ
hf : IntegrableOn f [[a, b]] (Measure.map (fun x => x + c) volume)
h : a ≤ b
A : MeasurableEmbedding fun x => x + c
⊢ IntegrableOn (fun x => f (x + c)) [[a - c, b - c]] volume
state_after: case h.e'_6
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A✝ : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A✝
f g : ℝ → E
a✝ b✝ : ℝ
μ : Measure ℝ
c a b : ℝ
hf : IntegrableOn f [[a, b]] (Measure.map (fun x => x + c) volume)
h : a ≤ b
A : MeasurableEmbedding fun x => x + c
⊢ [[a - c, b - c]] = (fun x => x + c) ⁻¹' [[a, b]]

tactic: rw [preimage_add_const_uIcc]
state_before: case h.e'_6
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A✝ : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A✝
f g : ℝ → E
a✝ b✝ : ℝ
μ : Measure ℝ
c a b : ℝ
hf : IntegrableOn f [[a, b]] (Measure.map (fun x => x + c) volume)
h : a ≤ b
A : MeasurableEmbedding fun x => x + c
⊢ [[a - c, b - c]] = (fun x => x + c) ⁻¹' [[a, b]]
state_after: no goals

tactic: exact IntervalIntegrable.symm (this hf.symm (le_of_not_le h))
state_before: case inr
ι : Type u_1
𝕜 : Type u_2
E : Type u_3
F : Type u_4
A : Type u_5
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f g : ℝ → E
a b : ℝ
μ : Measure ℝ
hf : IntervalIntegrable f volume a b
c : ℝ
this :
  ∀ {a b : ℝ}, IntervalIntegrable f volume a b → a ≤ b → IntervalIntegrable (fun x => f (x + c)) volume (a - c) (b - c)
h : ¬a ≤ b
⊢ IntervalIntegrable (fun x => f (x + c)) volume (a - c) (b - c)
state_after: no goals