Theorem: HasCompactSupport.convolutionExistsAt
File: Mathlib/Analysis/Convolution.lean

Proof steps:
state_before: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
⊢ ConvolutionExistsAt f g x₀ L μ
state_after: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
u : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
⊢ ConvolutionExistsAt f g x₀ L μ
tactic: let u := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
state_before: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
u : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
⊢ ConvolutionExistsAt f g x₀ L μ
state_after: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
u : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
v : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addLeft x₀)
⊢ ConvolutionExistsAt f g x₀ L μ
tactic: let v := (Homeomorph.neg G).trans (Homeomorph.addLeft x₀)
state_before: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
u : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
v : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addLeft x₀)
⊢ ConvolutionExistsAt f g x₀ L μ
state_after: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
u : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
v : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addLeft x₀)
⊢ AEStronglyMeasurable g
    (Measure.map (fun t => ↑(toAddUnits x₀) - t) (μ.restrict (tsupport fun t => (L (f t)) (g (x₀ - t)))))
tactic: apply ((u.isCompact_preimage.mpr h).bddAbove_image hg.norm.continuousOn).convolutionExistsAt' L
    isClosed_closure.measurableSet subset_closure (hf.integrableOn_isCompact h)
state_before: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
u : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
v : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addLeft x₀)
⊢ AEStronglyMeasurable g
    (Measure.map (fun t => ↑(toAddUnits x₀) - t) (μ.restrict (tsupport fun t => (L (f t)) (g (x₀ - t)))))
state_after: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
u : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
v : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addLeft x₀)
A : AEStronglyMeasurable (g ∘ ⇑v) (μ.restrict (tsupport fun t => (L (f t)) (g (x₀ - t))))
⊢ AEStronglyMeasurable g
    (Measure.map (fun t => ↑(toAddUnits x₀) - t) (μ.restrict (tsupport fun t => (L (f t)) (g (x₀ - t)))))
tactic: have A : AEStronglyMeasurable (g ∘ v)
      (μ.restrict (tsupport fun t : G => L (f t) (g (x₀ - t)))) := by
    apply (hg.comp v.continuous).continuousOn.aestronglyMeasurable_of_isCompact h
    exact (isClosed_tsupport _).measurableSet
state_before: 𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
u : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
v : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addLeft x₀)
A : AEStronglyMeasurable (g ∘ ⇑v) (μ.restrict (tsupport fun t => (L (f t)) (g (x₀ - t))))
⊢ AEStronglyMeasurable g
    (Measure.map (fun t => ↑(toAddUnits x₀) - t) (μ.restrict (tsupport fun t => (L (f t)) (g (x₀ - t)))))
state_after: case h.e'_6.h.e'_5.h.h.e
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
u : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
v : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addLeft x₀)
A : AEStronglyMeasurable (g ∘ ⇑v) (μ.restrict (tsupport fun t => (L (f t)) (g (x₀ - t))))
x✝ : G
⊢ HSub.hSub ↑(toAddUnits x₀) = ⇑v
tactic: convert ((v.continuous.measurable.measurePreserving
      (μ.restrict (tsupport fun t => L (f t) (g (x₀ - t))))).aestronglyMeasurable_comp_iff
    v.measurableEmbedding).1 A
state_before: case h.e'_6.h.e'_5.h.h.e
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
u : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
v : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addLeft x₀)
A : AEStronglyMeasurable (g ∘ ⇑v) (μ.restrict (tsupport fun t => (L (f t)) (g (x₀ - t))))
x✝ : G
⊢ HSub.hSub ↑(toAddUnits x₀) = ⇑v
state_after: case h.e'_6.h.e'_5.h.h.e.h
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x✝¹ x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
u : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
v : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addLeft x₀)
A : AEStronglyMeasurable (g ∘ ⇑v) (μ.restrict (tsupport fun t => (L (f t)) (g (x₀ - t))))
x✝ x : G
⊢ ↑(toAddUnits x₀) - x = v x
tactic: ext x
state_before: case h.e'_6.h.e'_5.h.h.e.h
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
E'' : Type uE''
F : Type uF
F' : Type uF'
F'' : Type uF''
P : Type uP
inst✝¹³ : NormedAddCommGroup E
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : NormedAddCommGroup E''
inst✝¹⁰ : NormedAddCommGroup F
f f' : G → E
g g' : G → E'
x✝¹ x' : G
y y' : E
inst✝⁹ : NontriviallyNormedField 𝕜
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : NormedSpace 𝕜 E'
inst✝⁶ : NormedSpace 𝕜 E''
inst✝⁵ : NormedSpace 𝕜 F
L : E →L[𝕜] E' →L[𝕜] F
inst✝⁴ : MeasurableSpace G
μ ν : Measure G
inst✝³ : AddGroup G
inst✝² : TopologicalSpace G
inst✝¹ : TopologicalAddGroup G
inst✝ : BorelSpace G
x₀ : G
h : HasCompactSupport fun t => (L (f t)) (g (x₀ - t))
hf : LocallyIntegrable f μ
hg : Continuous g
u : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)
v : G ≃ₜ G := (Homeomorph.neg G).trans (Homeomorph.addLeft x₀)
A : AEStronglyMeasurable (g ∘ ⇑v) (μ.restrict (tsupport fun t => (L (f t)) (g (x₀ - t))))
x✝ x : G
⊢ ↑(toAddUnits x₀) - x = v x
state_after: no goals
tactic: simp only [v, Homeomorph.neg, sub_eq_add_neg, val_toAddUnits_apply, Homeomorph.trans_apply,
    Equiv.neg_apply, Equiv.toFun_as_coe, Homeomorph.homeomorph_mk_coe, Equiv.coe_fn_mk,
    Homeomorph.coe_addLeft]