-- Mathlib/Analysis/Convolution.lean
theorem _root_.HasCompactSupport.convolutionExistsAt {x₀ : G}
    (h : HasCompactSupport fun t => L (f t) (g (x₀ - t))) (hf : LocallyIntegrable f μ)
    (hg : Continuous g) : ConvolutionExistsAt f g x₀ L μ

Proof state:
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
F : Type uF
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup E'
inst✝⁹ : NormedAddCommGroup F
f : G → E
g : G → E'
inst✝⁸ : NontriviallyNormedField 𝕜
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✝¹ : IsTopologicalAddGroup 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 μ

Tactic:
let u := (Homeomorph.neg G).trans (Homeomorph.addRight x₀)

Result:
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
F : Type uF
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup E'
inst✝⁹ : NormedAddCommGroup F
f : G → E
g : G → E'
inst✝⁸ : NontriviallyNormedField 𝕜
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✝¹ : IsTopologicalAddGroup 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 μ

Proof state:
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
F : Type uF
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup E'
inst✝⁹ : NormedAddCommGroup F
f : G → E
g : G → E'
inst✝⁸ : NontriviallyNormedField 𝕜
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✝¹ : IsTopologicalAddGroup 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₀)
⊢ MeasurableSet (tsupport fun t => (L (f t)) (g (x₀ - t)))

Tactic:
exact (isClosed_tsupport _).measurableSet

Result:
no goals

Proof state:
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
F : Type uF
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup E'
inst✝⁹ : NormedAddCommGroup F
f : G → E
g : G → E'
inst✝⁸ : NontriviallyNormedField 𝕜
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✝¹ : IsTopologicalAddGroup 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 ∘ ⇑v) (μ.restrict (tsupport fun t => (L (f t)) (g (x₀ - t))))

Tactic:
apply (hg.comp v.continuous).continuousOn.aestronglyMeasurable_of_isCompact h

Result:
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
F : Type uF
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup E'
inst✝⁹ : NormedAddCommGroup F
f : G → E
g : G → E'
inst✝⁸ : NontriviallyNormedField 𝕜
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✝¹ : IsTopologicalAddGroup 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₀)
⊢ MeasurableSet (tsupport fun t => (L (f t)) (g (x₀ - t)))

Proof state:
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
F : Type uF
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup E'
inst✝⁹ : NormedAddCommGroup F
f : G → E
g : G → E'
inst✝⁸ : NontriviallyNormedField 𝕜
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✝¹ : IsTopologicalAddGroup 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 v := (Homeomorph.neg G).trans (Homeomorph.addLeft x₀)

Result:
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
F : Type uF
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup E'
inst✝⁹ : NormedAddCommGroup F
f : G → E
g : G → E'
inst✝⁸ : NontriviallyNormedField 𝕜
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✝¹ : IsTopologicalAddGroup 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 μ

Proof state:
case h.e'_7.h.e'_5.h.h.e.h
𝕜 : Type u𝕜
G : Type uG
E : Type uE
E' : Type uE'
F : Type uF
inst✝¹¹ : NormedAddCommGroup E
inst✝¹⁰ : NormedAddCommGroup E'
inst✝⁹ : NormedAddCommGroup F
f : G → E
g : G → E'
inst✝⁸ : NontriviallyNormedField 𝕜
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✝¹ : IsTopologicalAddGroup 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:
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]

Result:
no goals