Hardy zeta

11.3. HardyZeta.FiniteDifference🔗

def modifiedDifference (h : ℝ) (f : ℝ → ℝ) (x : ℝ) : ℝ := f (x + h) + f (x - h) - 2 * Real.cos (h / 2) * f x /-- The multiplier on the hyperbolic cosine kernel. -/def differenceMultiplier (h t : ℝ) : ℝ := 2 * (Real.cosh (h * t) - Real.cos (h / 2))theorem modifiedDifference_cos (h x : ℝ) : modifiedDifference h (fun x ↦ Real.cos (x / 2)) x = 0 := h:ℝx:ℝ⊢ modifiedDifference h (fun x => Real.cos (x / 2)) x = 0 h:ℝx:ℝ⊢ Real.cos (x / 2) * Real.cos (h / 2) - Real.sin (x / 2) * Real.sin (h / 2) + (Real.cos (x / 2) * Real.cos (h / 2) + Real.sin (x / 2) * Real.sin (h / 2)) - 2 * Real.cos (h / 2) * Real.cos (x / 2) = 0 All goals completed! 🐙theorem modifiedDifference_cosh (h t x : ℝ) : modifiedDifference h (fun x ↦ Real.cosh (x * t)) x = differenceMultiplier h t * Real.cosh (x * t) := h:ℝt:ℝx:ℝ⊢ modifiedDifference h (fun x => Real.cosh (x * t)) x = differenceMultiplier h t * Real.cosh (x * t) h:ℝt:ℝx:ℝ⊢ Real.cosh (x * t) * Real.cosh (h * t) + Real.sinh (x * t) * Real.sinh (h * t) + (Real.cosh (x * t) * Real.cosh (h * t) - Real.sinh (x * t) * Real.sinh (h * t)) - 2 * Real.cos (h / 2) * Real.cosh (x * t) = 2 * (Real.cosh (h * t) - Real.cos (h / 2)) * Real.cosh (x * t) All goals completed! 🐙theorem differenceMultiplier_nonneg (h t : ℝ) : 0 ≤ differenceMultiplier h t := h:ℝt:ℝ⊢ 0 ≤ differenceMultiplier h t h:ℝt:ℝthis:1 ≤ Real.cosh (h * t)⊢ 0 ≤ differenceMultiplier h t h:ℝt:ℝthis✝:1 ≤ Real.cosh (h * t)this:Real.cos (h / 2) ≤ 1⊢ 0 ≤ differenceMultiplier h t h:ℝt:ℝthis✝:1 ≤ Real.cosh (h * t)this:Real.cos (h / 2) ≤ 1⊢ 0 ≤ 2 * (Real.cosh (h * t) - Real.cos (h / 2)) All goals completed! 🐙theorem modifiedDifference_const_mul (h c : ℝ) (f : ℝ → ℝ) : modifiedDifference h (fun x ↦ c * f x) = fun x ↦ c * modifiedDifference h f x := h:ℝc:ℝf:ℝ → ℝ⊢ (modifiedDifference h fun x => c * f x) = fun x => c * modifiedDifference h f x h:ℝc:ℝf:ℝ → ℝx:ℝ⊢ modifiedDifference h (fun x => c * f x) x = c * modifiedDifference h f x h:ℝc:ℝf:ℝ → ℝx:ℝ⊢ c * f (x + h) + c * f (x - h) - 2 * Real.cos (h / 2) * (c * f x) = c * (f (x + h) + f (x - h) - 2 * Real.cos (h / 2) * f x) All goals completed! 🐙theorem iterate_modifiedDifference_cosh (h t : ℝ) (k : ℕ) : (modifiedDifference h)^[k] (fun x ↦ Real.cosh (x * t)) = fun x ↦ differenceMultiplier h t ^ k * Real.cosh (x * t) := h:ℝt:ℝk:ℕ⊢ ((modifiedDifference h)^[k] fun x => Real.cosh (x * t)) = fun x => differenceMultiplier h t ^ k * Real.cosh (x * t) induction k with h:ℝt:ℝ⊢ ((modifiedDifference h)^[0] fun x => Real.cosh (x * t)) = fun x => differenceMultiplier h t ^ 0 * Real.cosh (x * t) All goals completed! 🐙 h:ℝt:ℝk:ℕih:((modifiedDifference h)^[k] fun x => Real.cosh (x * t)) = fun x => differenceMultiplier h t ^ k * Real.cosh (x * t)⊢ ((modifiedDifference h)^[k + 1] fun x => Real.cosh (x * t)) = fun x => differenceMultiplier h t ^ (k + 1) * Real.cosh (x * t) h:ℝt:ℝk:ℕih:((modifiedDifference h)^[k] fun x => Real.cosh (x * t)) = fun x => differenceMultiplier h t ^ k * Real.cosh (x * t)⊢ (fun x => differenceMultiplier h t ^ k * modifiedDifference h (fun x => Real.cosh (x * t)) x) = fun x => differenceMultiplier h t ^ (k + 1) * Real.cosh (x * t) h:ℝt:ℝk:ℕih:((modifiedDifference h)^[k] fun x => Real.cosh (x * t)) = fun x => differenceMultiplier h t ^ k * Real.cosh (x * t)x:ℝ⊢ differenceMultiplier h t ^ k * modifiedDifference h (fun x => Real.cosh (x * t)) x = differenceMultiplier h t ^ (k + 1) * Real.cosh (x * t) h:ℝt:ℝk:ℕih:((modifiedDifference h)^[k] fun x => Real.cosh (x * t)) = fun x => differenceMultiplier h t ^ k * Real.cosh (x * t)x:ℝ⊢ differenceMultiplier h t ^ k * (differenceMultiplier h t * Real.cosh (x * t)) = differenceMultiplier h t ^ k * differenceMultiplier h t * Real.cosh (x * t) All goals completed! 🐙theorem differenceMultiplier_eq_squares (h t : ℝ) : differenceMultiplier h t = 4 * (Real.sinh (h * t / 2) ^ 2 + Real.sin (h / 4) ^ 2) := h:ℝt:ℝ⊢ differenceMultiplier h t = 4 * (Real.sinh (h * t / 2) ^ 2 + Real.sin (h / 4) ^ 2) h:ℝt:ℝhh:h * t = h * t / 2 + h * t / 2⊢ differenceMultiplier h t = 4 * (Real.sinh (h * t / 2) ^ 2 + Real.sin (h / 4) ^ 2) h:ℝt:ℝhh:h * t = h * t / 2 + h * t / 2hc:h / 2 = h / 4 + h / 4⊢ differenceMultiplier h t = 4 * (Real.sinh (h * t / 2) ^ 2 + Real.sin (h / 4) ^ 2) h:ℝt:ℝhh:h * t = h * t / 2 + h * t / 2hc:h / 2 = h / 4 + h / 4⊢ 2 * (Real.cosh (h * t) - Real.cos (h / 2)) = 4 * (Real.sinh (h * t / 2) ^ 2 + Real.sin (h / 4) ^ 2) conv_lhs => h:ℝt:ℝhh:h * t = h * t / 2 + h * t / 2hc:h / 2 = h / 4 + h / 4| 2 * (Real.cosh (h * t / 2) * Real.cosh (h * t / 2) + Real.sinh (h * t / 2) * Real.sinh (h * t / 2) - (Real.cos (h / 4) * Real.cos (h / 4) - Real.sin (h / 4) * Real.sin (h / 4))) h:ℝt:ℝhh:h * t = h * t / 2 + h * t / 2hc:h / 2 = h / 4 + h / 4hs:Real.cosh (h * t / 2) ^ 2 - Real.sinh (h * t / 2) ^ 2 = 1⊢ 2 * (Real.cosh (h * t / 2) * Real.cosh (h * t / 2) + Real.sinh (h * t / 2) * Real.sinh (h * t / 2) - (Real.cos (h / 4) * Real.cos (h / 4) - Real.sin (h / 4) * Real.sin (h / 4))) = 4 * (Real.sinh (h * t / 2) ^ 2 + Real.sin (h / 4) ^ 2) h:ℝt:ℝhh:h * t = h * t / 2 + h * t / 2hc:h / 2 = h / 4 + h / 4hs:Real.cosh (h * t / 2) ^ 2 - Real.sinh (h * t / 2) ^ 2 = 1ht:Real.sin (h / 4) ^ 2 + Real.cos (h / 4) ^ 2 = 1⊢ 2 * (Real.cosh (h * t / 2) * Real.cosh (h * t / 2) + Real.sinh (h * t / 2) * Real.sinh (h * t / 2) - (Real.cos (h / 4) * Real.cos (h / 4) - Real.sin (h / 4) * Real.sin (h / 4))) = 4 * (Real.sinh (h * t / 2) ^ 2 + Real.sin (h / 4) ^ 2) All goals completed! 🐙theorem tendsto_differenceMultiplier_div_sq (t : ℝ) : Tendsto (fun h : ℝ ↦ differenceMultiplier h t / h ^ 2) (𝓝[>] 0) (𝓝 (t ^ 2 + 1 / 4)) := t:ℝ⊢ Tendsto (fun h => differenceMultiplier h t / h ^ 2) (𝓝[>] 0) (𝓝 (t ^ 2 + 1 / 4)) t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0⊢ Tendsto (fun h => differenceMultiplier h t / h ^ 2) (𝓝[>] 0) (𝓝 (t ^ 2 + 1 / 4)) t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0hc:HasDerivAt (fun h => Real.sin (h / 4)) (1 / 4) 0⊢ Tendsto (fun h => differenceMultiplier h t / h ^ 2) (𝓝[>] 0) (𝓝 (t ^ 2 + 1 / 4)) t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0hc:HasDerivAt (fun h => Real.sin (h / 4)) (1 / 4) 0hsl:Tendsto (fun h => Real.sinh (h * t / 2) / h) (𝓝[>] 0) (𝓝 (t / 2))⊢ Tendsto (fun h => differenceMultiplier h t / h ^ 2) (𝓝[>] 0) (𝓝 (t ^ 2 + 1 / 4)) t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0hc:HasDerivAt (fun h => Real.sin (h / 4)) (1 / 4) 0hsl:Tendsto (fun h => Real.sinh (h * t / 2) / h) (𝓝[>] 0) (𝓝 (t / 2))hcl:Tendsto (fun h => Real.sin (h / 4) / h) (𝓝[>] 0) (𝓝 (1 / 4))⊢ Tendsto (fun h => differenceMultiplier h t / h ^ 2) (𝓝[>] 0) (𝓝 (t ^ 2 + 1 / 4)) t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0hc:HasDerivAt (fun h => Real.sin (h / 4)) (1 / 4) 0hsl:Tendsto (fun h => Real.sinh (h * t / 2) / h) (𝓝[>] 0) (𝓝 (t / 2))hcl:Tendsto (fun h => Real.sin (h / 4) / h) (𝓝[>] 0) (𝓝 (1 / 4))hl:Tendsto (fun x => 4 * ((Real.sinh (x * t / 2) / x) ^ 2 + (Real.sin (x / 4) / x) ^ 2)) (𝓝[>] 0) (𝓝 (4 * ((t / 2) ^ 2 + (1 / 4) ^ 2)))⊢ Tendsto (fun h => differenceMultiplier h t / h ^ 2) (𝓝[>] 0) (𝓝 (t ^ 2 + 1 / 4)) t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0hc:HasDerivAt (fun h => Real.sin (h / 4)) (1 / 4) 0hsl:Tendsto (fun h => Real.sinh (h * t / 2) / h) (𝓝[>] 0) (𝓝 (t / 2))hcl:Tendsto (fun h => Real.sin (h / 4) / h) (𝓝[>] 0) (𝓝 (1 / 4))hl:Tendsto (fun x => 4 * ((Real.sinh (x * t / 2) / x) ^ 2 + (Real.sin (x / 4) / x) ^ 2)) (𝓝[>] 0) (𝓝 (4 * ((t / 2) ^ 2 + (1 / 4) ^ 2)))⊢ (fun h => differenceMultiplier h t / h ^ 2) = fun x => 4 * ((Real.sinh (x * t / 2) / x) ^ 2 + (Real.sin (x / 4) / x) ^ 2)t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0hc:HasDerivAt (fun h => Real.sin (h / 4)) (1 / 4) 0hsl:Tendsto (fun h => Real.sinh (h * t / 2) / h) (𝓝[>] 0) (𝓝 (t / 2))hcl:Tendsto (fun h => Real.sin (h / 4) / h) (𝓝[>] 0) (𝓝 (1 / 4))hl:Tendsto (fun x => 4 * ((Real.sinh (x * t / 2) / x) ^ 2 + (Real.sin (x / 4) / x) ^ 2)) (𝓝[>] 0) (𝓝 (4 * ((t / 2) ^ 2 + (1 / 4) ^ 2)))⊢ 𝓝 (t ^ 2 + 1 / 4) = 𝓝 (4 * ((t / 2) ^ 2 + (1 / 4) ^ 2)) t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0hc:HasDerivAt (fun h => Real.sin (h / 4)) (1 / 4) 0hsl:Tendsto (fun h => Real.sinh (h * t / 2) / h) (𝓝[>] 0) (𝓝 (t / 2))hcl:Tendsto (fun h => Real.sin (h / 4) / h) (𝓝[>] 0) (𝓝 (1 / 4))hl:Tendsto (fun x => 4 * ((Real.sinh (x * t / 2) / x) ^ 2 + (Real.sin (x / 4) / x) ^ 2)) (𝓝[>] 0) (𝓝 (4 * ((t / 2) ^ 2 + (1 / 4) ^ 2)))⊢ (fun h => differenceMultiplier h t / h ^ 2) = fun x => 4 * ((Real.sinh (x * t / 2) / x) ^ 2 + (Real.sin (x / 4) / x) ^ 2) t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0hc:HasDerivAt (fun h => Real.sin (h / 4)) (1 / 4) 0hsl:Tendsto (fun h => Real.sinh (h * t / 2) / h) (𝓝[>] 0) (𝓝 (t / 2))hcl:Tendsto (fun h => Real.sin (h / 4) / h) (𝓝[>] 0) (𝓝 (1 / 4))hl:Tendsto (fun x => 4 * ((Real.sinh (x * t / 2) / x) ^ 2 + (Real.sin (x / 4) / x) ^ 2)) (𝓝[>] 0) (𝓝 (4 * ((t / 2) ^ 2 + (1 / 4) ^ 2)))h:ℝ⊢ differenceMultiplier h t / h ^ 2 = 4 * ((Real.sinh (h * t / 2) / h) ^ 2 + (Real.sin (h / 4) / h) ^ 2) t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0hc:HasDerivAt (fun h => Real.sin (h / 4)) (1 / 4) 0hsl:Tendsto (fun h => Real.sinh (h * t / 2) / h) (𝓝[>] 0) (𝓝 (t / 2))hcl:Tendsto (fun h => Real.sin (h / 4) / h) (𝓝[>] 0) (𝓝 (1 / 4))hl:Tendsto (fun x => 4 * ((Real.sinh (x * t / 2) / x) ^ 2 + (Real.sin (x / 4) / x) ^ 2)) (𝓝[>] 0) (𝓝 (4 * ((t / 2) ^ 2 + (1 / 4) ^ 2)))h:ℝ⊢ 4 * (Real.sinh (h * t / 2) ^ 2 + Real.sin (h / 4) ^ 2) / h ^ 2 = 4 * ((Real.sinh (h * t / 2) / h) ^ 2 + (Real.sin (h / 4) / h) ^ 2) t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0hc:HasDerivAt (fun h => Real.sin (h / 4)) (1 / 4) 0hsl:Tendsto (fun h => Real.sinh (h * t / 2) / h) (𝓝[>] 0) (𝓝 (t / 2))hcl:Tendsto (fun h => Real.sin (h / 4) / h) (𝓝[>] 0) (𝓝 (1 / 4))hl:Tendsto (fun x => 4 * ((Real.sinh (x * t / 2) / x) ^ 2 + (Real.sin (x / 4) / x) ^ 2)) (𝓝[>] 0) (𝓝 (4 * ((t / 2) ^ 2 + (1 / 4) ^ 2)))h:ℝ⊢ 4 * (Real.sinh (h * t / 2) ^ 2 + Real.sin (h / 4) ^ 2) / h ^ 2 = 4 * (Real.sinh (h * t / 2) ^ 2 / h ^ 2 + Real.sin (h / 4) ^ 2 / h ^ 2) All goals completed! 🐙 t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0hc:HasDerivAt (fun h => Real.sin (h / 4)) (1 / 4) 0hsl:Tendsto (fun h => Real.sinh (h * t / 2) / h) (𝓝[>] 0) (𝓝 (t / 2))hcl:Tendsto (fun h => Real.sin (h / 4) / h) (𝓝[>] 0) (𝓝 (1 / 4))hl:Tendsto (fun x => 4 * ((Real.sinh (x * t / 2) / x) ^ 2 + (Real.sin (x / 4) / x) ^ 2)) (𝓝[>] 0) (𝓝 (4 * ((t / 2) ^ 2 + (1 / 4) ^ 2)))⊢ 𝓝 (t ^ 2 + 1 / 4) = 𝓝 (4 * ((t / 2) ^ 2 + (1 / 4) ^ 2)) t:ℝhs:HasDerivAt (fun h => Real.sinh (h * t / 2)) (t / 2) 0hc:HasDerivAt (fun h => Real.sin (h / 4)) (1 / 4) 0hsl:Tendsto (fun h => Real.sinh (h * t / 2) / h) (𝓝[>] 0) (𝓝 (t / 2))hcl:Tendsto (fun h => Real.sin (h / 4) / h) (𝓝[>] 0) (𝓝 (1 / 4))hl:Tendsto (fun x => 4 * ((Real.sinh (x * t / 2) / x) ^ 2 + (Real.sin (x / 4) / x) ^ 2)) (𝓝[>] 0) (𝓝 (4 * ((t / 2) ^ 2 + (1 / 4) ^ 2)))⊢ t ^ 2 + 1 / 4 = 4 * ((t / 2) ^ 2 + (1 / 4) ^ 2) All goals completed! 🐙 /-- Moving one difference through an integral requires only the three sampled functions to be integrable. No endpoint integral is used. -/theorem modifiedDifference_integral {μ : Measure ℝ} (h x : ℝ) (f : ℝ → ℝ → ℝ) (hp : Integrable (f (x + h)) μ) (hm : Integrable (f (x - h)) μ) (hx : Integrable (f x) μ) : modifiedDifference h (fun y ↦ ∫ t, f y t ∂μ) x = ∫ t, modifiedDifference h (fun y ↦ f y t) x ∂μ := μ:Measure ℝh:ℝx:ℝf:ℝ → ℝ → ℝhp:Integrable (f (x + h)) μhm:Integrable (f (x - h)) μhx:Integrable (f x) μ⊢ modifiedDifference h (fun y => ∫ (t : ℝ), f y t ∂μ) x = ∫ (t : ℝ), modifiedDifference h (fun y => f y t) x ∂μ μ:Measure ℝh:ℝx:ℝf:ℝ → ℝ → ℝhp:Integrable (f (x + h)) μhm:Integrable (f (x - h)) μhx:Integrable (f x) μ⊢ ∫ (t : ℝ), f (x + h) t ∂μ + ∫ (t : ℝ), f (x - h) t ∂μ - 2 * Real.cos (h / 2) * ∫ (t : ℝ), f x t ∂μ = ∫ (t : ℝ), f (x + h) t + f (x - h) t - 2 * Real.cos (h / 2) * f x t ∂μ μ:Measure ℝh:ℝx:ℝf:ℝ → ℝ → ℝhp:Integrable (f (x + h)) μhm:Integrable (f (x - h)) μhx:Integrable (f x) μha:Integrable (fun t => f (x + h) t + f (x - h) t) μ⊢ ∫ (t : ℝ), f (x + h) t ∂μ + ∫ (t : ℝ), f (x - h) t ∂μ - 2 * Real.cos (h / 2) * ∫ (t : ℝ), f x t ∂μ = ∫ (t : ℝ), f (x + h) t + f (x - h) t - 2 * Real.cos (h / 2) * f x t ∂μ μ:Measure ℝh:ℝx:ℝf:ℝ → ℝ → ℝhp:Integrable (f (x + h)) μhm:Integrable (f (x - h)) μhx:Integrable (f x) μha:Integrable (fun t => f (x + h) t + f (x - h) t) μhb:Integrable (fun t => 2 * Real.cos (h / 2) * f x t) μ⊢ ∫ (t : ℝ), f (x + h) t ∂μ + ∫ (t : ℝ), f (x - h) t ∂μ - 2 * Real.cos (h / 2) * ∫ (t : ℝ), f x t ∂μ = ∫ (t : ℝ), f (x + h) t + f (x - h) t - 2 * Real.cos (h / 2) * f x t ∂μ All goals completed! 🐙 /-- The modified kernel stays integrable using just interior samples. -/theorem integrable_difference_kernel {μ : Measure ℝ} {g : ℝ → ℝ} (h x : ℝ) (hp : Integrable (fun t ↦ g t * Real.cosh ((x + h) * t)) μ) (hm : Integrable (fun t ↦ g t * Real.cosh ((x - h) * t)) μ) (hx : Integrable (fun t ↦ g t * Real.cosh (x * t)) μ) : Integrable (fun t ↦ g t * differenceMultiplier h t * Real.cosh (x * t)) μ := μ:Measure ℝg:ℝ → ℝh:ℝx:ℝhp:Integrable (fun t => g t * Real.cosh ((x + h) * t)) μhm:Integrable (fun t => g t * Real.cosh ((x - h) * t)) μhx:Integrable (fun t => g t * Real.cosh (x * t)) μ⊢ Integrable (fun t => g t * differenceMultiplier h t * Real.cosh (x * t)) μ μ:Measure ℝg:ℝ → ℝh:ℝx:ℝhp:Integrable (fun t => g t * Real.cosh ((x + h) * t)) μhm:Integrable (fun t => g t * Real.cosh ((x - h) * t)) μhx:Integrable (fun t => g t * Real.cosh (x * t)) μ⊢ (fun t => g t * differenceMultiplier h t * Real.cosh (x * t)) = ((fun t => g t * Real.cosh ((x + h) * t)) + fun t => g t * Real.cosh ((x - h) * t)) - fun x_1 => 2 * Real.cos (h / 2) * (g x_1 * Real.cosh (x * x_1)) μ:Measure ℝg:ℝ → ℝh:ℝx:ℝhp:Integrable (fun t => g t * Real.cosh ((x + h) * t)) μhm:Integrable (fun t => g t * Real.cosh ((x - h) * t)) μhx:Integrable (fun t => g t * Real.cosh (x * t)) μt:ℝ⊢ g t * differenceMultiplier h t * Real.cosh (x * t) = (((fun t => g t * Real.cosh ((x + h) * t)) + fun t => g t * Real.cosh ((x - h) * t)) - fun x_1 => 2 * Real.cos (h / 2) * (g x_1 * Real.cosh (x * x_1))) t μ:Measure ℝg:ℝ → ℝh:ℝx:ℝhp:Integrable (fun t => g t * Real.cosh ((x + h) * t)) μhm:Integrable (fun t => g t * Real.cosh ((x - h) * t)) μhx:Integrable (fun t => g t * Real.cosh (x * t)) μt:ℝhe:modifiedDifference h (fun x => Real.cosh (x * t)) x = differenceMultiplier h t * Real.cosh (x * t)⊢ g t * differenceMultiplier h t * Real.cosh (x * t) = (((fun t => g t * Real.cosh ((x + h) * t)) + fun t => g t * Real.cosh ((x - h) * t)) - fun x_1 => 2 * Real.cos (h / 2) * (g x_1 * Real.cosh (x * x_1))) t μ:Measure ℝg:ℝ → ℝh:ℝx:ℝhp:Integrable (fun t => g t * Real.cosh ((x + h) * t)) μhm:Integrable (fun t => g t * Real.cosh ((x - h) * t)) μhx:Integrable (fun t => g t * Real.cosh (x * t)) μt:ℝhe:Real.cosh ((x + h) * t) + Real.cosh ((x - h) * t) - 2 * Real.cos (h / 2) * Real.cosh (x * t) = differenceMultiplier h t * Real.cosh (x * t)⊢ g t * differenceMultiplier h t * Real.cosh (x * t) = (((fun t => g t * Real.cosh ((x + h) * t)) + fun t => g t * Real.cosh ((x - h) * t)) - fun x_1 => 2 * Real.cos (h / 2) * (g x_1 * Real.cosh (x * x_1))) t μ:Measure ℝg:ℝ → ℝh:ℝx:ℝhp:Integrable (fun t => g t * Real.cosh ((x + h) * t)) μhm:Integrable (fun t => g t * Real.cosh ((x - h) * t)) μhx:Integrable (fun t => g t * Real.cosh (x * t)) μt:ℝhe:Real.cosh ((x + h) * t) + Real.cosh ((x - h) * t) - 2 * Real.cos (h / 2) * Real.cosh (x * t) = differenceMultiplier h t * Real.cosh (x * t)⊢ g t * differenceMultiplier h t * Real.cosh (x * t) = g t * Real.cosh ((x + h) * t) + g t * Real.cosh ((x - h) * t) - 2 * Real.cos (h / 2) * (g t * Real.cosh (x * t)) μ:Measure ℝg:ℝ → ℝh:ℝx:ℝhp:Integrable (fun t => g t * Real.cosh ((x + h) * t)) μhm:Integrable (fun t => g t * Real.cosh ((x - h) * t)) μhx:Integrable (fun t => g t * Real.cosh (x * t)) μt:ℝhe:Real.cosh ((x + h) * t) + Real.cosh ((x - h) * t) - 2 * Real.cos (h / 2) * Real.cosh (x * t) = differenceMultiplier h t * Real.cosh (x * t)⊢ g t * (Real.cosh ((x + h) * t) + Real.cosh ((x - h) * t) - 2 * Real.cos (h / 2) * Real.cosh (x * t)) = g t * Real.cosh ((x + h) * t) + g t * Real.cosh ((x - h) * t) - 2 * Real.cos (h / 2) * (g t * Real.cosh (x * t)) All goals completed! 🐙theorem abs_modifiedDifference_le (h x M : ℝ) (f : ℝ → ℝ) (hp : |f (x + h)| ≤ M) (hm : |f (x - h)| ≤ M) (hx : |f x| ≤ M) : |modifiedDifference h f x| ≤ 4 * M := h:ℝx:ℝM:ℝf:ℝ → ℝhp:|f (x + h)| ≤ Mhm:|f (x - h)| ≤ Mhx:|f x| ≤ M⊢ |modifiedDifference h f x| ≤ 4 * M h:ℝx:ℝM:ℝf:ℝ → ℝhp:|f (x + h)| ≤ Mhm:|f (x - h)| ≤ Mhx:|f x| ≤ MhM:0 ≤ M⊢ |modifiedDifference h f x| ≤ 4 * M h:ℝx:ℝM:ℝf:ℝ → ℝhp:|f (x + h)| ≤ Mhm:|f (x - h)| ≤ Mhx:|f x| ≤ MhM:0 ≤ Mhc:|2 * Real.cos (h / 2) * f x| ≤ 2 * M⊢ |modifiedDifference h f x| ≤ 4 * M h:ℝx:ℝM:ℝf:ℝ → ℝhp:|f (x + h)| ≤ Mhm:|f (x - h)| ≤ Mhx:|f x| ≤ MhM:0 ≤ Mhc:|2 * Real.cos (h / 2) * f x| ≤ 2 * M⊢ |f (x + h) + f (x - h) - 2 * Real.cos (h / 2) * f x| ≤ 4 * M calc _ ≤ |f (x + h) + f (x - h)| + |2 * Real.cos (h / 2) * f x| := abs_sub _ _ _ ≤ (|f (x + h)| + |f (x - h)|) + |2 * Real.cos (h / 2) * f x| := h:ℝx:ℝM:ℝf:ℝ → ℝhp:|f (x + h)| ≤ Mhm:|f (x - h)| ≤ Mhx:|f x| ≤ MhM:0 ≤ Mhc:|2 * Real.cos (h / 2) * f x| ≤ 2 * M⊢ |f (x + h) + f (x - h)| + |2 * Real.cos (h / 2) * f x| ≤ |f (x + h)| + |f (x - h)| + |2 * Real.cos (h / 2) * f x| All goals completed! 🐙 _ ≤ 4 * M := h:ℝx:ℝM:ℝf:ℝ → ℝhp:|f (x + h)| ≤ Mhm:|f (x - h)| ≤ Mhx:|f x| ≤ MhM:0 ≤ Mhc:|2 * Real.cos (h / 2) * f x| ≤ 2 * M⊢ |f (x + h)| + |f (x - h)| + |2 * Real.cos (h / 2) * f x| ≤ 4 * M All goals completed! 🐙 /-- Only values within k steps of the center enter the iterated difference. -/theorem abs_iterate_modifiedDifference_le (h x M : ℝ) (f : ℝ → ℝ) (k : ℕ) (hf : ∀ y, |y - x| ≤ k * |h| → |f y| ≤ M) : |(modifiedDifference h)^[k] f x| ≤ 4 ^ k * M := h:ℝx:ℝM:ℝf:ℝ → ℝk:ℕhf:∀ (y : ℝ), |y - x| ≤ ↑k * |h| → |f y| ≤ M⊢ |(modifiedDifference h)^[k] f x| ≤ 4 ^ k * M induction k generalizing x with h:ℝM:ℝf:ℝ → ℝx:ℝhf:∀ (y : ℝ), |y - x| ≤ ↑0 * |h| → |f y| ≤ M⊢ |(modifiedDifference h)^[0] f x| ≤ 4 ^ 0 * M simpa using hf x (h:ℝM:ℝf:ℝ → ℝx:ℝhf:∀ (y : ℝ), |y - x| ≤ ↑0 * |h| → |f y| ≤ M⊢ |x - x| ≤ ↑0 * |h| All goals completed! 🐙) h:ℝM:ℝf:ℝ → ℝk:ℕih:∀ (x : ℝ), (∀ (y : ℝ), |y - x| ≤ ↑k * |h| → |f y| ≤ M) → |(modifiedDifference h)^[k] f x| ≤ 4 ^ k * Mx:ℝhf:∀ (y : ℝ), |y - x| ≤ ↑(k + 1) * |h| → |f y| ≤ M⊢ |(modifiedDifference h)^[k + 1] f x| ≤ 4 ^ (k + 1) * M h:ℝM:ℝf:ℝ → ℝk:ℕih:∀ (x : ℝ), (∀ (y : ℝ), |y - x| ≤ ↑k * |h| → |f y| ≤ M) → |(modifiedDifference h)^[k] f x| ≤ 4 ^ k * Mx:ℝhf:∀ (y : ℝ), |y - x| ≤ ↑(k + 1) * |h| → |f y| ≤ M⊢ |modifiedDifference h ((modifiedDifference h)^[k] f) x| ≤ 4 ^ (k + 1) * M h:ℝM:ℝf:ℝ → ℝk:ℕih:∀ (x : ℝ), (∀ (y : ℝ), |y - x| ≤ ↑k * |h| → |f y| ≤ M) → |(modifiedDifference h)^[k] f x| ≤ 4 ^ k * Mx:ℝhf:∀ (y : ℝ), |y - x| ≤ ↑(k + 1) * |h| → |f y| ≤ Mbound:∀ (z : ℝ), |z - x| ≤ |h| → |(modifiedDifference h)^[k] f z| ≤ 4 ^ k * M⊢ |modifiedDifference h ((modifiedDifference h)^[k] f) x| ≤ 4 ^ (k + 1) * M h:ℝM:ℝf:ℝ → ℝk:ℕih:∀ (x : ℝ), (∀ (y : ℝ), |y - x| ≤ ↑k * |h| → |f y| ≤ M) → |(modifiedDifference h)^[k] f x| ≤ 4 ^ k * Mx:ℝhf:∀ (y : ℝ), |y - x| ≤ ↑(k + 1) * |h| → |f y| ≤ Mbound:∀ (z : ℝ), |z - x| ≤ |h| → |(modifiedDifference h)^[k] f z| ≤ 4 ^ k * Mhp:|(modifiedDifference h)^[k] f (x + h)| ≤ 4 ^ k * M⊢ |modifiedDifference h ((modifiedDifference h)^[k] f) x| ≤ 4 ^ (k + 1) * M h:ℝM:ℝf:ℝ → ℝk:ℕih:∀ (x : ℝ), (∀ (y : ℝ), |y - x| ≤ ↑k * |h| → |f y| ≤ M) → |(modifiedDifference h)^[k] f x| ≤ 4 ^ k * Mx:ℝhf:∀ (y : ℝ), |y - x| ≤ ↑(k + 1) * |h| → |f y| ≤ Mbound:∀ (z : ℝ), |z - x| ≤ |h| → |(modifiedDifference h)^[k] f z| ≤ 4 ^ k * Mhp:|(modifiedDifference h)^[k] f (x + h)| ≤ 4 ^ k * Mhm:|(modifiedDifference h)^[k] f (x - h)| ≤ 4 ^ k * M⊢ |modifiedDifference h ((modifiedDifference h)^[k] f) x| ≤ 4 ^ (k + 1) * M h:ℝM:ℝf:ℝ → ℝk:ℕih:∀ (x : ℝ), (∀ (y : ℝ), |y - x| ≤ ↑k * |h| → |f y| ≤ M) → |(modifiedDifference h)^[k] f x| ≤ 4 ^ k * Mx:ℝhf:∀ (y : ℝ), |y - x| ≤ ↑(k + 1) * |h| → |f y| ≤ Mbound:∀ (z : ℝ), |z - x| ≤ |h| → |(modifiedDifference h)^[k] f z| ≤ 4 ^ k * Mhp:|(modifiedDifference h)^[k] f (x + h)| ≤ 4 ^ k * Mhm:|(modifiedDifference h)^[k] f (x - h)| ≤ 4 ^ k * Mhx:|(modifiedDifference h)^[k] f x| ≤ 4 ^ k * M⊢ |modifiedDifference h ((modifiedDifference h)^[k] f) x| ≤ 4 ^ (k + 1) * M h:ℝM:ℝf:ℝ → ℝk:ℕih:∀ (x : ℝ), (∀ (y : ℝ), |y - x| ≤ ↑k * |h| → |f y| ≤ M) → |(modifiedDifference h)^[k] f x| ≤ 4 ^ k * Mx:ℝhf:∀ (y : ℝ), |y - x| ≤ ↑(k + 1) * |h| → |f y| ≤ Mbound:∀ (z : ℝ), |z - x| ≤ |h| → |(modifiedDifference h)^[k] f z| ≤ 4 ^ k * Mhp:|(modifiedDifference h)^[k] f (x + h)| ≤ 4 ^ k * Mhm:|(modifiedDifference h)^[k] f (x - h)| ≤ 4 ^ k * Mhx:|(modifiedDifference h)^[k] f x| ≤ 4 ^ k * Mhe:|modifiedDifference h ((modifiedDifference h)^[k] f) x| ≤ 4 * (4 ^ k * M)⊢ |modifiedDifference h ((modifiedDifference h)^[k] f) x| ≤ 4 ^ (k + 1) * M h:ℝM:ℝf:ℝ → ℝk:ℕih:∀ (x : ℝ), (∀ (y : ℝ), |y - x| ≤ ↑k * |h| → |f y| ≤ M) → |(modifiedDifference h)^[k] f x| ≤ 4 ^ k * Mx:ℝhf:∀ (y : ℝ), |y - x| ≤ ↑(k + 1) * |h| → |f y| ≤ Mbound:∀ (z : ℝ), |z - x| ≤ |h| → |(modifiedDifference h)^[k] f z| ≤ 4 ^ k * Mhp:|(modifiedDifference h)^[k] f (x + h)| ≤ 4 ^ k * Mhm:|(modifiedDifference h)^[k] f (x - h)| ≤ 4 ^ k * Mhx:|(modifiedDifference h)^[k] f x| ≤ 4 ^ k * Mhe:|modifiedDifference h ((modifiedDifference h)^[k] f) x| ≤ 4 * (4 ^ k * M)⊢ 4 ^ (k + 1) * M = 4 * (4 ^ k * M) All goals completed! 🐙