Theorem: integral_bilinear_hasLineDerivAt_right_eq_neg_left_of_integrable_aux1
File: Mathlib/Analysis/Calculus/LineDeriv/IntegrationByParts.lean

tactic: apply integral_congr_ae
state_before: E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
⊢ ∫ (x : E), ∫ (t : ℝ), (B (f (x, t))) (g' (x, t)) ∂μ = ∫ (x : E), -∫ (t : ℝ), (B (f' (x, t))) (g (x, t)) ∂μ
state_after: case h
E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
⊢ (fun a => ∫ (t : ℝ), (B (f (a, t))) (g' (a, t))) =ᶠ[ae μ] fun a => -∫ (t : ℝ), (B (f' (a, t))) (g (a, t))

tactic: filter_upwards [hf'g.prod_right_ae, hfg'.prod_right_ae, hfg.prod_right_ae]
  with x hf'gx hfg'x hfgx
state_before: case h
E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
⊢ (fun a => ∫ (t : ℝ), (B (f (a, t))) (g' (a, t))) =ᶠ[ae μ] fun a => -∫ (t : ℝ), (B (f' (a, t))) (g (a, t))
state_after: case h
E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
x : E
hf'gx : Integrable (fun y => (B (f' (x, y))) (g (x, y))) volume
hfg'x : Integrable (fun y => (B (f (x, y))) (g' (x, y))) volume
hfgx : Integrable (fun y => (B (f (x, y))) (g (x, y))) volume
⊢ ∫ (t : ℝ), (B (f (x, t))) (g' (x, t)) = -∫ (t : ℝ), (B (f' (x, t))) (g (x, t))

tactic: apply integral_bilinear_hasDerivAt_right_eq_neg_left_of_integrable ?_ ?_ hfg'x hf'gx hfgx
state_before: case h
E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
x : E
hf'gx : Integrable (fun y => (B (f' (x, y))) (g (x, y))) volume
hfg'x : Integrable (fun y => (B (f (x, y))) (g' (x, y))) volume
hfgx : Integrable (fun y => (B (f (x, y))) (g (x, y))) volume
⊢ ∫ (t : ℝ), (B (f (x, t))) (g' (x, t)) = -∫ (t : ℝ), (B (f' (x, t))) (g (x, t))
state_after: E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
x : E
hf'gx : Integrable (fun y => (B (f' (x, y))) (g (x, y))) volume
hfg'x : Integrable (fun y => (B (f (x, y))) (g' (x, y))) volume
hfgx : Integrable (fun y => (B (f (x, y))) (g (x, y))) volume
⊢ ∀ (x_1 : ℝ), HasDerivAt (fun x_2 => f (x, x_2)) (f' (x, x_1)) x_1

E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
x : E
hf'gx : Integrable (fun y => (B (f' (x, y))) (g (x, y))) volume
hfg'x : Integrable (fun y => (B (f (x, y))) (g' (x, y))) volume
hfgx : Integrable (fun y => (B (f (x, y))) (g (x, y))) volume
⊢ ∀ (x_1 : ℝ), HasDerivAt (fun x_2 => g (x, x_2)) (g' (x, x_1)) x_1

tactic: intro t
state_before: E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
x : E
hf'gx : Integrable (fun y => (B (f' (x, y))) (g (x, y))) volume
hfg'x : Integrable (fun y => (B (f (x, y))) (g' (x, y))) volume
hfgx : Integrable (fun y => (B (f (x, y))) (g (x, y))) volume
⊢ ∀ (x_1 : ℝ), HasDerivAt (fun x_2 => f (x, x_2)) (f' (x, x_1)) x_1
state_after: E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
x : E
hf'gx : Integrable (fun y => (B (f' (x, y))) (g (x, y))) volume
hfg'x : Integrable (fun y => (B (f (x, y))) (g' (x, y))) volume
hfgx : Integrable (fun y => (B (f (x, y))) (g (x, y))) volume
t : ℝ
⊢ HasDerivAt (fun x_1 => f (x, x_1)) (f' (x, t)) t

tactic: convert (hf (x, t)).scomp_of_eq t ((hasDerivAt_id t).add (hasDerivAt_const t (-t))) (by simp)
  <;> simp
state_before: E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
x : E
hf'gx : Integrable (fun y => (B (f' (x, y))) (g (x, y))) volume
hfg'x : Integrable (fun y => (B (f (x, y))) (g' (x, y))) volume
hfgx : Integrable (fun y => (B (f (x, y))) (g (x, y))) volume
t : ℝ
⊢ HasDerivAt (fun x_1 => f (x, x_1)) (f' (x, t)) t
state_after: no goals

tactic: simp
state_before: E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
x : E
hf'gx : Integrable (fun y => (B (f' (x, y))) (g (x, y))) volume
hfg'x : Integrable (fun y => (B (f (x, y))) (g' (x, y))) volume
hfgx : Integrable (fun y => (B (f (x, y))) (g (x, y))) volume
t : ℝ
⊢ 0 = id t + -t
state_after: no goals

tactic: intro t
state_before: E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
x : E
hf'gx : Integrable (fun y => (B (f' (x, y))) (g (x, y))) volume
hfg'x : Integrable (fun y => (B (f (x, y))) (g' (x, y))) volume
hfgx : Integrable (fun y => (B (f (x, y))) (g (x, y))) volume
⊢ ∀ (x_1 : ℝ), HasDerivAt (fun x_2 => g (x, x_2)) (g' (x, x_1)) x_1
state_after: E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
x : E
hf'gx : Integrable (fun y => (B (f' (x, y))) (g (x, y))) volume
hfg'x : Integrable (fun y => (B (f (x, y))) (g' (x, y))) volume
hfgx : Integrable (fun y => (B (f (x, y))) (g (x, y))) volume
t : ℝ
⊢ HasDerivAt (fun x_1 => g (x, x_1)) (g' (x, t)) t

tactic: convert (hg (x, t)).scomp_of_eq t ((hasDerivAt_id t).add (hasDerivAt_const t (-t))) (by simp)
  <;> simp
state_before: E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
x : E
hf'gx : Integrable (fun y => (B (f' (x, y))) (g (x, y))) volume
hfg'x : Integrable (fun y => (B (f (x, y))) (g' (x, y))) volume
hfgx : Integrable (fun y => (B (f (x, y))) (g (x, y))) volume
t : ℝ
⊢ HasDerivAt (fun x_1 => g (x, x_1)) (g' (x, t)) t
state_after: no goals

tactic: rw [integral_neg, integral_prod _ hf'g]
state_before: E : Type u_1
F : Type u_2
G : Type u_3
W : Type u_4
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedSpace ℝ E
inst✝⁸ : NormedAddCommGroup F
inst✝⁷ : NormedSpace ℝ F
inst✝⁶ : NormedAddCommGroup G
inst✝⁵ : NormedSpace ℝ G
inst✝⁴ : NormedAddCommGroup W
inst✝³ : NormedSpace ℝ W
inst✝² : MeasurableSpace E
inst✝¹ : BorelSpace E
μ : Measure E
inst✝ : SigmaFinite μ
f f' : E × ℝ → F
g g' : E × ℝ → G
B : F →L[ℝ] G →L[ℝ] W
hf'g : Integrable (fun x => (B (f' x)) (g x)) (μ.prod volume)
hfg' : Integrable (fun x => (B (f x)) (g' x)) (μ.prod volume)
hfg : Integrable (fun x => (B (f x)) (g x)) (μ.prod volume)
hf : ∀ (x : E × ℝ), HasLineDerivAt ℝ f (f' x) x (0, 1)
hg : ∀ (x : E × ℝ), HasLineDerivAt ℝ g (g' x) x (0, 1)
⊢ ∫ (x : E), -∫ (t : ℝ), (B (f' (x, t))) (g (x, t)) ∂μ = -∫ (x : E × ℝ), (B (f' x)) (g x) ∂μ.prod volume
state_after: no goals