Theorem: PicardLindelof.FunSpace.dist_next_apply_le_of_le
File: Mathlib/Analysis/ODE/PicardLindelof.lean

tactic: simp only [dist_eq_norm, next_apply, add_sub_add_left_eq_sub, ←
  intervalIntegral.integral_sub (intervalIntegrable_vComp _ _ _)
    (intervalIntegrable_vComp _ _ _),
  norm_integral_eq_norm_integral_Ioc] at *
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
v : PicardLindelof E
f : FunSpace v
inst✝ : CompleteSpace E
f₁ f₂ : FunSpace v
n : ℕ
d : ℝ
h : ∀ (t : ↑(Icc v.tMin v.tMax)), dist (toFun f₁ t) (toFun f₂ t) ≤ (↑v.L * abs (↑t - ↑v.t₀)) ^ n / ↑n ! * d
t : ↑(Icc v.tMin v.tMax)
⊢ dist (toFun (next f₁) t) (toFun (next f₂) t) ≤ (↑v.L * abs (↑t - ↑v.t₀)) ^ (n + 1) / ↑(n + 1)! * d

tactic: refine' norm_integral_le_of_norm_le (Continuous.integrableOn_uIoc _) _
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
v : PicardLindelof E
f : FunSpace v
inst✝ : CompleteSpace E
f₁ f₂ : FunSpace v
n : ℕ
d : ℝ
t : ↑(Icc v.tMin v.tMax)
h : ∀ (t : ↑(Icc v.tMin v.tMax)), ‖toFun f₁ t - toFun f₂ t‖ ≤ (↑v.L * abs (↑t - ↑v.t₀)) ^ n / ↑n ! * d
⊢ ‖∫ (τ : ℝ) in Ι ↑v.t₀ ↑t, vComp f₁ τ - vComp f₂ τ‖ ≤
    ∫ (τ : ℝ) in Ι ↑v.t₀ ↑t, ↑v.L * ((↑v.L * abs (τ - ↑v.t₀)) ^ n / ↑n ! * d)

tactic: refine .mul continuous_const <| .mul (.div_const ?_ _) continuous_const
state_before: case refine'_1
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
v : PicardLindelof E
f : FunSpace v
inst✝ : CompleteSpace E
f₁ f₂ : FunSpace v
n : ℕ
d : ℝ
t : ↑(Icc v.tMin v.tMax)
h : ∀ (t : ↑(Icc v.tMin v.tMax)), ‖toFun f₁ t - toFun f₂ t‖ ≤ (↑v.L * abs (↑t - ↑v.t₀)) ^ n / ↑n ! * d
⊢ Continuous fun τ => ↑v.L * ((↑v.L * abs (τ - ↑v.t₀)) ^ n / ↑n ! * d)

tactic: refine .pow (.mul continuous_const <| .abs <| ?_) _
state_before: case refine'_1
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
v : PicardLindelof E
f : FunSpace v
inst✝ : CompleteSpace E
f₁ f₂ : FunSpace v
n : ℕ
d : ℝ
t : ↑(Icc v.tMin v.tMax)
h : ∀ (t : ↑(Icc v.tMin v.tMax)), ‖toFun f₁ t - toFun f₂ t‖ ≤ (↑v.L * abs (↑t - ↑v.t₀)) ^ n / ↑n ! * d
⊢ Continuous fun τ => (↑v.L * abs (τ - ↑v.t₀)) ^ n

tactic: exact .sub continuous_id continuous_const
state_before: case refine'_1
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
v : PicardLindelof E
f : FunSpace v
inst✝ : CompleteSpace E
f₁ f₂ : FunSpace v
n : ℕ
d : ℝ
t : ↑(Icc v.tMin v.tMax)
h : ∀ (t : ↑(Icc v.tMin v.tMax)), ‖toFun f₁ t - toFun f₂ t‖ ≤ (↑v.L * abs (↑t - ↑v.t₀)) ^ n / ↑n ! * d
⊢ Continuous fun τ => τ - ↑v.t₀

tactic: refine' (ae_restrict_mem measurableSet_Ioc).mono fun τ hτ => _
state_before: case refine'_2
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
v : PicardLindelof E
f : FunSpace v
inst✝ : CompleteSpace E
f₁ f₂ : FunSpace v
n : ℕ
d : ℝ
t : ↑(Icc v.tMin v.tMax)
h : ∀ (t : ↑(Icc v.tMin v.tMax)), ‖toFun f₁ t - toFun f₂ t‖ ≤ (↑v.L * abs (↑t - ↑v.t₀)) ^ n / ↑n ! * d
⊢ ∀ᵐ (x : ℝ) ∂Measure.restrict volume (Ι ↑v.t₀ ↑t),
    ‖vComp f₁ x - vComp f₂ x‖ ≤ ↑v.L * ((↑v.L * abs (x - ↑v.t₀)) ^ n / ↑n ! * d)

tactic: refine' (v.lipschitzOnWith (v.proj τ).2).norm_sub_le_of_le (f₁.mem_closedBall _)
    (f₂.mem_closedBall _) ((h _).trans_eq _)
state_before: case refine'_2
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
v : PicardLindelof E
f : FunSpace v
inst✝ : CompleteSpace E
f₁ f₂ : FunSpace v
n : ℕ
d : ℝ
t : ↑(Icc v.tMin v.tMax)
h : ∀ (t : ↑(Icc v.tMin v.tMax)), ‖toFun f₁ t - toFun f₂ t‖ ≤ (↑v.L * abs (↑t - ↑v.t₀)) ^ n / ↑n ! * d
τ : ℝ
hτ : τ ∈ Ioc (min ↑v.t₀ ↑t) (max ↑v.t₀ ↑t)
⊢ ‖vComp f₁ τ - vComp f₂ τ‖ ≤ ↑v.L * ((↑v.L * abs (τ - ↑v.t₀)) ^ n / ↑n ! * d)

tactic: rw [v.proj_of_mem]
state_before: case refine'_2
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
v : PicardLindelof E
f : FunSpace v
inst✝ : CompleteSpace E
f₁ f₂ : FunSpace v
n : ℕ
d : ℝ
t : ↑(Icc v.tMin v.tMax)
h : ∀ (t : ↑(Icc v.tMin v.tMax)), ‖toFun f₁ t - toFun f₂ t‖ ≤ (↑v.L * abs (↑t - ↑v.t₀)) ^ n / ↑n ! * d
τ : ℝ
hτ : τ ∈ Ioc (min ↑v.t₀ ↑t) (max ↑v.t₀ ↑t)
⊢ (↑v.L * abs (↑(proj v τ) - ↑v.t₀)) ^ n / ↑n ! * d = (↑v.L * abs (τ - ↑v.t₀)) ^ n / ↑n ! * d

tactic: exact uIcc_subset_Icc v.t₀.2 t.2 <| Ioc_subset_Icc_self hτ
state_before: case refine'_2
E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
v : PicardLindelof E
f : FunSpace v
inst✝ : CompleteSpace E
f₁ f₂ : FunSpace v
n : ℕ
d : ℝ
t : ↑(Icc v.tMin v.tMax)
h : ∀ (t : ↑(Icc v.tMin v.tMax)), ‖toFun f₁ t - toFun f₂ t‖ ≤ (↑v.L * abs (↑t - ↑v.t₀)) ^ n / ↑n ! * d
τ : ℝ
hτ : τ ∈ Ioc (min ↑v.t₀ ↑t) (max ↑v.t₀ ↑t)
⊢ τ ∈ Icc v.tMin v.tMax

tactic: simp_rw [mul_pow, div_eq_mul_inv, mul_assoc, MeasureTheory.integral_mul_left,
  MeasureTheory.integral_mul_right, integral_pow_abs_sub_uIoc, div_eq_mul_inv,
  pow_succ (v.L : ℝ), Nat.factorial_succ, Nat.cast_mul, Nat.cast_succ, mul_inv, mul_assoc]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
v : PicardLindelof E
f : FunSpace v
inst✝ : CompleteSpace E
f₁ f₂ : FunSpace v
n : ℕ
d : ℝ
t : ↑(Icc v.tMin v.tMax)
h : ∀ (t : ↑(Icc v.tMin v.tMax)), ‖toFun f₁ t - toFun f₂ t‖ ≤ (↑v.L * abs (↑t - ↑v.t₀)) ^ n / ↑n ! * d
⊢ (∫ (τ : ℝ) in Ι ↑v.t₀ ↑t, ↑v.L * ((↑v.L * abs (τ - ↑v.t₀)) ^ n / ↑n ! * d)) =
    (↑v.L * abs (↑t - ↑v.t₀)) ^ (n + 1) / ↑(n + 1)! * d