Actual PBPS integrated hazard and first exponential clock
AutoSamplingTheory.ExampleCases.ProximalBPS.ActualHazardClock.actual_integrated_hazard_clock_laws · theorem · Teaching coverage
Mathematical statement
Let E be a finite-dimensional real inner-product Borel space, including rank zero. Let V:E→ℝ be C², let α,β≥0 satisfy 0<α≤β and α‖v‖²≤D²V(x)[v,v]≤β‖v‖² for all x,v, and let η>0 with βη≤1. For arbitrary y,xRef and z=(x,p), define c=y−η∇V(xRef), Φ_t(z)=(c+cos(t)(x−c)+√η sin(t)p, −sin(t)(x−c)/√η+cos(t)p), λ(xRef,(u,q))=√η max(0,⟨q,∇V(u)−∇V(xRef)⟩), H(z)=(η⁻¹‖x−c‖²+‖p‖²)/2, and C(z)=√η β√(2H(z))(√(2ηH(z))+‖c−xRef‖). For t≥0 put Λ_z(t)=∫₀ᵗλ(xRef,Φ_s(z))ds and τ_z(e)=inf{t≥0:Λ_z(t)≥e}, returning ∞ when this set is empty. Let W_z be the pushforward of Exp(1) on ℝ by e↦τ_z(max(e,0)). Then: (1) Λ is jointly continuous in y,xRef,z,t; (2) Λ is jointly Borel; (3) the actual orbit rate is integrable on every finite [0,t]; (4) Λ_z(0)=0, Λ_z(t)≥0 and Λ_z is nondecreasing; (5) for every e,t≥0, τ_z(e)≤t iff e≤Λ_z(t); (6) τ_z(e)=∞ iff Λ_z(t)<e for every finite t, finite τ_z(e) satisfies Λ_z(τ_z(e))=e, e>0 implies τ_z(e)>0, and τ_z(0)=0; (7) τ is jointly Borel in y,xRef,z,e; (8) W_z is a probability measure on [0,∞] and W_z((t,∞])=exp(−Λ_z(t)) for every finite t; (9) C(z)≥0 and Λ_z(t)≤C(z)t; (10) C(z)>0 implies max(e/C(z),0)≤τ_z(e), while C(z)=0 and e>0 imply τ_z(e)=∞. Every conclusion is derived for the actual flow and rate using their compiled laws. No unbounded-hazard or almost-sure finite-wait assumption is made. This is one flow-segment clock law used by AppendixA.1(A.1) and the future recursion(A.2). Recursive paths, nonexplosion, Markov memorylessness, invariance, terminal sampling kernels, main bounds and query costs remain open.
Lean statement · actual_integrated_hazard_clock_laws
Let E be a finite-dimensional real inner-product Borel space, including rank zero. Let V:E→ℝ be C², let α,β≥0 satisfy 0<α≤β and α‖v‖²≤D²V(x)[v,v]≤β‖v‖² for all x,v, and let η>0 with βη≤1. For arbitrary y,xRef and z=(x,p), define c=y−η∇V(xRef), Φ_t(z)=(c+cos(t)(x−c)+√η sin(t)p, −sin(t)(x−c)/√η+cos(t)p), λ(xRef,(u,q))=√η max(0,⟨q,∇V(u)−∇V(xRef)⟩), H(z)=(η⁻¹‖x−c‖²+‖p‖²)/2, and C(z)=√η β√(2H(z))(√(2ηH(z))+‖c−xRef‖). For t≥0 put Λ_z(t)=∫₀ᵗλ(xRef,Φ_s(z))ds and τ_z(e)=inf{t≥0:Λ_z(t)≥e}, returning ∞ when this set is empty. Let W_z be the pushforward of Exp(1) on ℝ by e↦τ_z(max(e,0)). Then: (1) Λ is jointly continuous in y,xRef,z,t; (2) Λ is jointly Borel; (3) the actual orbit rate is integrable on every finite [0,t]; (4) Λ_z(0)=0, Λ_z(t)≥0 and Λ_z is nondecreasing; (5) for every e,t≥0, τ_z(e)≤t iff e≤Λ_z(t); (6) τ_z(e)=∞ iff Λ_z(t)<e for every finite t, finite τ_z(e) satisfies Λ_z(τ_z(e))=e, e>0 implies τ_z(e)>0, and τ_z(0)=0; (7) τ is jointly Borel in y,xRef,z,e; (8) W_z is a probability measure on [0,∞] and W_z((t,∞])=exp(−Λ_z(t)) for every finite t; (9) C(z)≥0 and Λ_z(t)≤C(z)t; (10) C(z)>0 implies max(e/C(z),0)≤τ_z(e), while C(z)=0 and e>0 imply τ_z(e)=∞. Every conclusion is derived for the actual flow and rate using their compiled laws. No unbounded-hazard or almost-sure finite-wait assumption is made. This is one flow-segment clock law used by AppendixA.1(A.1) and the future recursion(A.2). Recursive paths, nonexplosion, Markov memorylessness, invariance, terminal sampling kernels, main bounds and query costs remain open.
Braces mark parameters Lean can infer; square brackets request structures such as a measurable space or probability measure. Named hypotheses are mathematical premises, not facts established by this declaration. Section parameters are described in the mathematical hypotheses above; the module link retains their exact source context.
theorem actual_integrated_hazard_clock_laws
{E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
[FiniteDimensional ℝ E] [MeasurableSpace E] [BorelSpace E]
{V : E → ℝ} {α β : ℝ≥0} {η : ℝ}
(hα : 0 < (α : ℝ)) (hαβ : α ≤ β) (hV : ContDiff ℝ 2 V)
(hH : ∀ x v : E,
(α : ℝ) * ‖v‖ ^ 2 ≤ (fderiv ℝ (fderiv ℝ V) x v) v ∧
(fderiv ℝ (fderiv ℝ V) x v) v ≤ (β : ℝ) * ‖v‖ ^ 2)
(hη : 0 < η) (hβη : (β : ℝ) * η ≤ 1) :
actual_integrated_hazard_clock_statement hα hαβ hV hH hη hβηFull Lean proposition (definition) · actual_integrated_hazard_clock_statement
This literal definition stores the complete proposition asserted above. It supplies no mathematical proof or additional hypothesis; the theorem proof must establish its value.
Braces mark parameters Lean can infer; square brackets request structures such as a measurable space or probability measure. Named hypotheses are mathematical premises, not facts established by this declaration. Section parameters are described in the mathematical hypotheses above; the module link retains their exact source context.
private def actual_integrated_hazard_clock_statement
{E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
[FiniteDimensional ℝ E] [MeasurableSpace E] [BorelSpace E]
{V : E → ℝ} {α β : ℝ≥0} {η : ℝ}
(hα : 0 < (α : ℝ)) (hαβ : α ≤ β) (hV : ContDiff ℝ 2 V)
(hH : ∀ x v : E,
(α : ℝ) * ‖v‖ ^ 2 ≤ (fderiv ℝ (fderiv ℝ V) x v) v ∧
(fderiv ℝ (fderiv ℝ V) x v) v ≤ (β : ℝ) * ‖v‖ ^ 2)
(hη : 0 < η) (hβη : (β : ℝ) * η ≤ 1) : Prop :=
let c : E → E → E := fun y xRef => y - η • gradient V xRef
let Φ : E → E → ℝ → (E × E) → (E × E) := fun y xRef t z =>
(c y xRef + Real.cos t • (z.1 - c y xRef) +
(Real.sqrt η * Real.sin t) • z.2,
(-Real.sin t / Real.sqrt η) • (z.1 - c y xRef) + Real.cos t • z.2)
let rate : E → (E × E) → ℝ := fun xRef z =>
Real.sqrt η * max 0 (inner ℝ z.2 (gradient V z.1 - gradient V xRef))
let H : E → E → (E × E) → ℝ := fun y xRef z =>
(η⁻¹ * ‖z.1 - c y xRef‖ ^ 2 + ‖z.2‖ ^ 2) / 2
let C : E → E → (E × E) → ℝ := fun y xRef z =>
Real.sqrt η * (β : ℝ) * Real.sqrt (2 * H y xRef z) *
(Real.sqrt (2 * η * H y xRef z) + ‖c y xRef - xRef‖)
let Λ : E → E → (E × E) → ℝ≥0 → ℝ := fun y xRef z t =>
∫ s in (0 : ℝ)..(t : ℝ), rate xRef (Φ y xRef s z)
let τ : E → E → (E × E) → ℝ≥0 → WithTop ℝ≥0 := fun y xRef z e =>
MeasureTheory.hittingAfter
(fun t : ℝ≥0 => fun a : (E × E) × (E × E) × ℝ≥0 =>
Λ a.1.1 a.1.2 a.2.1 t - (a.2.2 : ℝ))
(Set.Ici (0 : ℝ)) 0 ((y, xRef), z, e)
let W : E → E → (E × E) → Measure (WithTop ℝ≥0) := fun y xRef z =>
Measure.map (fun e : ℝ => τ y xRef z (Real.toNNReal e))
(ProbabilityTheory.expMeasure (1 : ℝ))
Continuous (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) ∧
Measurable (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) ∧
(∀ y xRef : E, ∀ z : E × E, ∀ t : ℝ≥0,
IntervalIntegrable (fun s : ℝ => rate xRef (Φ y xRef s z)) volume 0 (t : ℝ)) ∧
(∀ y xRef : E, ∀ z : E × E,
Λ y xRef z 0 = 0 ∧ (∀ t : ℝ≥0, 0 ≤ Λ y xRef z t) ∧
Monotone (Λ y xRef z)) ∧
(∀ y xRef : E, ∀ z : E × E, ∀ e t : ℝ≥0,
τ y xRef z e ≤ (t : WithTop ℝ≥0) ↔ (e : ℝ) ≤ Λ y xRef z t) ∧
(∀ y xRef : E, ∀ z : E × E, ∀ e : ℝ≥0,
(τ y xRef z e = ⊤ ↔ ∀ t : ℝ≥0, Λ y xRef z t < (e : ℝ)) ∧
(τ y xRef z e ≠ ⊤ → Λ y xRef z (τ y xRef z e).untopA = (e : ℝ)) ∧
(0 < e → (0 : WithTop ℝ≥0) < τ y xRef z e) ∧ τ y xRef z 0 = 0) ∧
Measurable (fun a : (E × E) × (E × E) × ℝ≥0 =>
τ a.1.1 a.1.2 a.2.1 a.2.2) ∧
(∀ y xRef : E, ∀ z : E × E, IsProbabilityMeasure (W y xRef z) ∧
∀ t : ℝ≥0, (W y xRef z).real (Set.Ioi (t : WithTop ℝ≥0)) =
Real.exp (-Λ y xRef z t)) ∧
(∀ y xRef : E, ∀ z : E × E, 0 ≤ C y xRef z ∧
∀ t : ℝ≥0, Λ y xRef z t ≤ C y xRef z * (t : ℝ)) ∧
(∀ y xRef : E, ∀ z : E × E, ∀ e : ℝ≥0,
(0 < C y xRef z →
(Real.toNNReal ((e : ℝ) / C y xRef z) : WithTop ℝ≥0) ≤ τ y xRef z e) ∧
(C y xRef z = 0 → 0 < e → τ y xRef z e = ⊤))
set_option maxHeartbeats 800000 inProof roadmap
- 1Reuse the actual flow, rate and conserved-energy bound
Take joint flow continuity and exact H conservation from the compiled harmonic-flow theorem, and rate continuity/nonnegativity and the same-energy-layer bound from the compiled bounce/rate theorem. Substitute Φ_s(z) into that bound and use H(Φ_s(z))=H(z). Positivity of the displayed factors proves C(z)≥0.
- 2Construct the continuous cumulative hazard
The actual joint orbit rate is continuous. The parameter-dependent primitive theorem with real Lebesgue measure gives joint continuity of its integral up to t; restricting the endpoint to NNReal preserves continuity and Borel measurability. For each fixed phase, direct trigonometric continuity of Φ and continuity of λ prove interval integrability on every finite real interval.
- 3Derive monotonicity and the integrated cap
The empty interval gives Λ(0)=0. Nonnegativity of the actual integrand gives Λ(t)≥0. Integral monotonicity on nested nonnegative intervals gives Λ(s)≤Λ(t) when s≤t. Integrating the same actual pointwise bound C(z) gives Λ(t)≤C(z)t. Collect these facts in the private helper; no integral or cap certificate becomes a public caller.
- 4Identify the exact finite-time crossing event
Reuse the proved primitive facts with their folded local types. The set A_e={s≥0:e≤Λ(s)} is closed by continuity. If A_e is nonempty, its infimum belongs to A_e because it is bounded below; monotonicity gives inf A_e≤t iff e≤Λ(t). If it is empty, τ=∞ and both sides are false. This is a closed-set argument on continuous NNReal time.
- 5Prove the first crossing has the exact threshold value
For finite τ=q, the crossing event gives e≤Λ(q). If Λ(q)>e, continuity on [0,q], Λ(0)=0 and e≥0 yield s≤q with Λ(s)=e by the intermediate value theorem. Strictness forces s<q, while the crossing equivalence forces q≤s, a contradiction. At time zero the same event proves e>0⇒τ>0 and τ(0)=0.
- 6Prove the first clock is jointly Borel
The target extended time is generated by closed lower intervals. The preimage of Iic(∞) is the whole space. For finite t, the crossing event identifies the preimage as {e≤Λ_z(t)}, a Borel inequality between the threshold coordinate and the jointly Borel cumulative hazard. This proves joint measurability, including infinite waiting.
- 7Push forward the actual unit exponential law
The unit-rate exponential measure is a probability measure. Its map e↦τ_z(toNNReal e) is measurable by composing the jointly Borel clock with fixed parameters and the measurable nonnegative-part map. Hence its pushforward W_z is a probability measure. The finite-time event and Λ_z(t)≥0 identify the strict survival preimage exactly with {e>Λ_z(t)} on ℝ.
- 8Evaluate the strict survival probability
Apply the measurable pushforward formula to Ioi(t). The preimage from the preceding block is Ioi(Λ_z(t)). Take the complement of Iic and use the exact Exp(1) CDF, 1−exp(−u) for u≥0, obtaining exp(−Λ_z(t)). Possible mass at infinite waiting is retained by the interval (t,∞].
- 9Extract the extended waiting lower bound and zero-cap branch
If C(z)>0 and τ is finite, the exact threshold identity and integrated cap give e=Λ_z(τ)≤C(z)τ, so e/C(z)≤τ. If τ=∞ the extended inequality is automatic. If C(z)=0 and e>0, every Λ_z(t)≤0<e; the no-hit equivalence gives τ=∞. Collect all ten conclusion groups, preserving the finite-hit guards.
Full assumptions and notation
All objects and hypotheses
- E is a finite-dimensional real inner-product space with its compatible norm and Borel measurable structure; product spaces use product structures. Rank zero is allowed.
- V:E→ℝ is C² on all E. The nonnegative α,β satisfy 0<α and α≤β, and α‖v‖²≤D²V(x)[v,v]≤β‖v‖² for every x,v∈E.
- η is real, η>0 and βη≤1. These are exactly the six original analytic callers. Flow/rate continuity, integrability, hazard monotonicity, an arbitrary cap, positivity of energy and finiteness of a random wait are never supplied as callers.
- All y,xRef∈E, initial phase z=(x,p)∈E×E, continuous nonnegative times t and thresholds e≥0 are arbitrary. The eight c,Φ,λ,H,C,Λ,τ,W definitions below are the literal definitions.
- τ takes values in [0,∞], with τ=∞ when no finite cumulative-hazard crossing exists. e=0 is included and gives τ=0. The finite-hitting identity has an explicit τ≠∞ guard.
- W is the actual pushforward of the unit-rate real exponential measure under e↦τ(toNNReal e); its measurability and probability normalization are conclusions. The waiting lower bound assumes C>0 only in its own implication; the C=0,e>0 branch gives τ=∞.
Mathematical proof
1. Reuse the actual flow, rate and conserved-energy bound
Take joint flow continuity and exact H conservation from the compiled harmonic-flow theorem, and rate continuity/nonnegativity and the same-energy-layer bound from the compiled bounce/rate theorem. Substitute Φ_s(z) into that bound and use H(Φ_s(z))=H(z). Positivity of the displayed factors proves C(z)≥0.
Corresponding Lean step
have hf := ActualHarmonicFlow.actual_harmonic_flow_laws hα hαβ hV hH hη hβη
have hb := ActualBounceRate.actual_bounce_rate_energy_laws hα hαβ hV hH hη hβη
have hΦ : Continuous (fun a : (E × E) × ℝ × (E × E) =>
Φ a.1.1 a.1.2 a.2.1 a.2.2) := hf.1
have hrate : Continuous (fun a : E × (E × E) => rate a.1 a.2) := hb.2.1
have hrate0 (xRef : E) (z : E × E) : 0 ≤ rate xRef z :=
(hb.2.2.2.2.2.2.2.1 xRef z).1
have henergy (y xRef : E) (s : ℝ) (z : E × E) :
H y xRef (Φ y xRef s z) = H y xRef z := hf.2.2.2.2.2.2.2.1 y xRef s z
have hcap (y xRef : E) (z : E × E) (s : ℝ) :
rate xRef (Φ y xRef s z) ≤ C y xRef z :=
(hb.2.2.2.2.2.2.2.2.2 y xRef z).2 (Φ y xRef s z) (henergy y xRef s z) |>.2.2
have hC (y xRef : E) (z : E × E) : 0 ≤ C y xRef z := by
dsimp [C]
positivity
Exact contiguous compiled BODY; the literal local definitions and preceding facts remain in scope. The first three blocks are the internal primitive helper, then the public first-clock proof.
2. Construct the continuous cumulative hazard
The actual joint orbit rate is continuous. The parameter-dependent primitive theorem with real Lebesgue measure gives joint continuity of its integral up to t; restricting the endpoint to NNReal preserves continuity and Borel measurability. For each fixed phase, direct trigonometric continuity of Φ and continuity of λ prove interval integrability on every finite real interval.
Corresponding Lean step
have hF : Continuous (fun a : ((E × E) × (E × E)) × ℝ =>
rate a.1.1.2 (Φ a.1.1.1 a.1.1.2 a.2 a.1.2)) := by
exact hrate.comp (continuous_fst.fst.snd.prodMk
(hΦ.comp ((continuous_fst.fst).prodMk
(continuous_snd.prodMk continuous_fst.snd))))
have hΛ : Continuous (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) := by
exact (intervalIntegral.continuous_parametric_primitive_of_continuous
(f := fun (q : (E × E) × (E × E)) (s : ℝ) =>
rate q.1.2 (Φ q.1.1 q.1.2 s q.2)) (μ := volume) (a₀ := 0) hF).comp
(continuous_fst.prodMk (NNReal.continuous_coe.comp continuous_snd))
have hInt (y xRef : E) (z : E × E) (a b : ℝ) :
IntervalIntegrable (fun s : ℝ => rate xRef (Φ y xRef s z)) volume a b := by
have hsΦ : Continuous (fun s : ℝ => Φ y xRef s z) := by
dsimp [Φ]
fun_prop
have hc : Continuous (fun s : ℝ => rate xRef (Φ y xRef s z)) :=
hrate.comp (continuous_const.prodMk hsΦ)
exact hc.intervalIntegrable a b
Exact contiguous compiled BODY; the literal local definitions and preceding facts remain in scope. The first three blocks are the internal primitive helper, then the public first-clock proof.
3. Derive monotonicity and the integrated cap
The empty interval gives Λ(0)=0. Nonnegativity of the actual integrand gives Λ(t)≥0. Integral monotonicity on nested nonnegative intervals gives Λ(s)≤Λ(t) when s≤t. Integrating the same actual pointwise bound C(z) gives Λ(t)≤C(z)t. Collect these facts in the private helper; no integral or cap certificate becomes a public caller.
Corresponding Lean step
have hbasic (y xRef : E) (z : E × E) :
Λ y xRef z 0 = 0 ∧ (∀ t : ℝ≥0, 0 ≤ Λ y xRef z t) ∧
Monotone (Λ y xRef z) := by
refine ⟨by simp [Λ], ?_, ?_⟩
· intro t
exact intervalIntegral.integral_nonneg_of_forall t.coe_nonneg
(fun s => hrate0 xRef (Φ y xRef s z))
· intro s t hst
exact intervalIntegral.integral_mono_interval (le_refl 0) s.coe_nonneg
(show (s : ℝ) ≤ t from hst)
(Filter.Eventually.of_forall (fun u => hrate0 xRef (Φ y xRef u z)))
(hInt y xRef z 0 t)
have hbound (y xRef : E) (z : E × E) (t : ℝ≥0) :
Λ y xRef z t ≤ C y xRef z * (t : ℝ) := by
have hi := intervalIntegral.integral_mono_on t.coe_nonneg
(hInt y xRef z 0 t) (intervalIntegrable_const (μ := volume))
(fun s _ => hcap y xRef z s)
simpa only [intervalIntegral.integral_const, sub_zero, smul_eq_mul, mul_comm] using hi
exact ⟨hΛ, hΛ.measurable, fun y xRef z t => hInt y xRef z 0 t,
hbasic, fun y xRef z => ⟨hC y xRef z, hbound y xRef z⟩⟩
Exact contiguous compiled BODY; the literal local definitions and preceding facts remain in scope. The first three blocks are the internal primitive helper, then the public first-clock proof.
4. Identify the exact finite-time crossing event
Reuse the proved primitive facts with their folded local types. The set A_e={s≥0:e≤Λ(s)} is closed by continuity. If A_e is nonempty, its infimum belongs to A_e because it is bounded below; monotonicity gives inf A_e≤t iff e≤Λ(t). If it is empty, τ=∞ and both sides are false. This is a closed-set argument on continuous NNReal time.
Corresponding Lean step
classical
have hp :
Continuous (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) ∧
Measurable (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) ∧
(∀ y xRef : E, ∀ z : E × E, ∀ t : ℝ≥0,
IntervalIntegrable (fun s : ℝ => rate xRef (Φ y xRef s z)) volume 0 (t : ℝ)) ∧
(∀ y xRef : E, ∀ z : E × E,
Λ y xRef z 0 = 0 ∧ (∀ t : ℝ≥0, 0 ≤ Λ y xRef z t) ∧
Monotone (Λ y xRef z)) ∧
(∀ y xRef : E, ∀ z : E × E, 0 ≤ C y xRef z ∧
∀ t : ℝ≥0, Λ y xRef z t ≤ C y xRef z * (t : ℝ)) :=
actual_hazard_primitive_laws hα hαβ hV hH hη hβη
rcases hp with ⟨hΛ, hΛmeas, hInt, hbasic, hcaps⟩
have hcont (y xRef : E) (z : E × E) : Continuous (Λ y xRef z) :=
hΛ.comp (show Continuous (fun t : ℝ≥0 => (((y, xRef), z), t)) from
continuous_const.prodMk continuous_id)
have hτle (y xRef : E) (z : E × E) (e t : ℝ≥0) :
τ y xRef z e ≤ (t : WithTop ℝ≥0) ↔ (e : ℝ) ≤ Λ y xRef z t := by
dsimp only [τ, MeasureTheory.hittingAfter]
simp only [Set.mem_Ici, sub_nonneg, zero_le, true_and]
split_ifs with hex
· simp only [WithTop.coe_le_coe]
constructor
· intro h
have hc : IsClosed {s : ℝ≥0 | (e : ℝ) ≤ Λ y xRef z s} :=
isClosed_le continuous_const (hcont y xRef z)
exact (hc.csInf_mem hex (OrderBot.bddBelow _)).trans
((hbasic y xRef z).2.2 h)
· intro he
exact csInf_le (OrderBot.bddBelow _) he
· constructor
· intro h
exact False.elim (WithTop.not_top_le_coe t h)
· intro he
exact False.elim (hex ⟨t, he⟩)
have hτtop (y xRef : E) (z : E × E) (e : ℝ≥0) :
τ y xRef z e = ⊤ ↔ ∀ t : ℝ≥0, Λ y xRef z t < (e : ℝ) := by
simp only [τ, MeasureTheory.hittingAfter_eq_top_iff, Set.mem_Ici,
sub_nonneg, zero_le, true_implies, not_le]
Exact contiguous compiled BODY; the literal local definitions and preceding facts remain in scope. The first three blocks are the internal primitive helper, then the public first-clock proof.
5. Prove the first crossing has the exact threshold value
For finite τ=q, the crossing event gives e≤Λ(q). If Λ(q)>e, continuity on [0,q], Λ(0)=0 and e≥0 yield s≤q with Λ(s)=e by the intermediate value theorem. Strictness forces s<q, while the crossing equivalence forces q≤s, a contradiction. At time zero the same event proves e>0⇒τ>0 and τ(0)=0.
Corresponding Lean step
have hfinite (y xRef : E) (z : E × E) (e : ℝ≥0)
(hn : τ y xRef z e ≠ ⊤) :
Λ y xRef z (τ y xRef z e).untopA = (e : ℝ) := by
let q : ℝ≥0 := (τ y xRef z e).untop hn
have hq : (q : WithTop ℝ≥0) = τ y xRef z e := WithTop.coe_untop _ _
have hge : (e : ℝ) ≤ Λ y xRef z q :=
(hτle y xRef z e q).1 hq.symm.le
have hval : Λ y xRef z q = (e : ℝ) := by
apply le_antisymm _ hge
by_contra h
have hstrict : (e : ℝ) < Λ y xRef z q := not_le.mp h
obtain ⟨s, hs, hse⟩ := intermediate_value_Icc (show (0 : ℝ≥0) ≤ q from bot_le)
(hcont y xRef z).continuousOn
(show (e : ℝ) ∈ Set.Icc (Λ y xRef z 0) (Λ y xRef z q) from
⟨by simpa only [(hbasic y xRef z).1] using e.coe_nonneg, hge⟩)
have hsq : s < q := by
by_contra hnot
have heq : q = s := le_antisymm (not_lt.mp hnot) hs.2
have hbad : Λ y xRef z q = (e : ℝ) := by simpa only [heq] using hse
linarith
have hqs : q ≤ s := by
exact_mod_cast hq.le.trans ((hτle y xRef z e s).2 hse.ge)
exact not_le_of_gt hsq hqs
simpa only [WithTop.untopA_eq_untop hn] using hval
have hpositive (y xRef : E) (z : E × E) (e : ℝ≥0) (he : 0 < e) :
(0 : WithTop ℝ≥0) < τ y xRef z e := by
apply lt_of_not_ge
intro h
have hh : (e : ℝ) ≤ 0 := by
simpa only [(hbasic y xRef z).1] using (hτle y xRef z e 0).1 h
exact not_le_of_gt (show (0 : ℝ) < e from he) hh
have hzero (y xRef : E) (z : E × E) : τ y xRef z 0 = 0 := by
apply le_antisymm _ bot_le
exact (hτle y xRef z 0 0).2 (by
simpa only [NNReal.coe_zero, (hbasic y xRef z).1] using (le_refl (0 : ℝ)))
Exact contiguous compiled BODY; the literal local definitions and preceding facts remain in scope. The first three blocks are the internal primitive helper, then the public first-clock proof.
6. Prove the first clock is jointly Borel
The target extended time is generated by closed lower intervals. The preimage of Iic(∞) is the whole space. For finite t, the crossing event identifies the preimage as {e≤Λ_z(t)}, a Borel inequality between the threshold coordinate and the jointly Borel cumulative hazard. This proves joint measurability, including infinite waiting.
Corresponding Lean step
have hτmeas : Measurable (fun a : (E × E) × (E × E) × ℝ≥0 =>
τ a.1.1 a.1.2 a.2.1 a.2.2) := by
apply measurable_of_Iic
intro b
induction b using WithTop.recTopCoe with
| top => simpa using MeasurableSet.univ
| coe t =>
have hevent : (fun a : (E × E) × (E × E) × ℝ≥0 =>
τ a.1.1 a.1.2 a.2.1 a.2.2) ⁻¹' Set.Iic (t : WithTop ℝ≥0) =
{a | (a.2.2 : ℝ) ≤ Λ a.1.1 a.1.2 a.2.1 t} := by
ext a
exact hτle a.1.1 a.1.2 a.2.1 a.2.2 t
rw [hevent]
exact measurableSet_le (measurable_coe_nnreal_real.comp measurable_snd.snd)
(hΛmeas.comp ((measurable_fst.prodMk measurable_snd.fst).prodMk measurable_const))
Exact contiguous compiled BODY; the literal local definitions and preceding facts remain in scope. The first three blocks are the internal primitive helper, then the public first-clock proof.
7. Push forward the actual unit exponential law
The unit-rate exponential measure is a probability measure. Its map e↦τ_z(toNNReal e) is measurable by composing the jointly Borel clock with fixed parameters and the measurable nonnegative-part map. Hence its pushforward W_z is a probability measure. The finite-time event and Λ_z(t)≥0 identify the strict survival preimage exactly with {e>Λ_z(t)} on ℝ.
Corresponding Lean step
have hlaw (y xRef : E) (z : E × E) : IsProbabilityMeasure (W y xRef z) ∧
∀ t : ℝ≥0, (W y xRef z).real (Set.Ioi (t : WithTop ℝ≥0)) =
Real.exp (-Λ y xRef z t) := by
letI : IsProbabilityMeasure (ProbabilityTheory.expMeasure (1 : ℝ)) :=
ProbabilityTheory.isProbabilityMeasure_expMeasure zero_lt_one
have hi : Measurable (fun e : ℝ => ((y, xRef), z, Real.toNNReal e)) :=
measurable_const.prodMk (measurable_const.prodMk measurable_real_toNNReal)
have ht0 := hτmeas.comp hi
have ht : Measurable (fun e : ℝ => τ y xRef z (Real.toNNReal e)) := ht0
refine ⟨Measure.isProbabilityMeasure_map ht.aemeasurable, ?_⟩
intro t
have hpre : (fun e : ℝ => τ y xRef z (Real.toNNReal e)) ⁻¹'
Set.Ioi (t : WithTop ℝ≥0) = Set.Ioi (Λ y xRef z t) := by
ext e
change (t : WithTop ℝ≥0) < τ y xRef z (Real.toNNReal e) ↔ Λ y xRef z t < e
rw [← not_le, hτle, not_le]
simp only [Real.coe_toNNReal', lt_max_iff,
not_lt.mpr ((hbasic y xRef z).2.1 t), or_false]
Exact contiguous compiled BODY; the literal local definitions and preceding facts remain in scope. The first three blocks are the internal primitive helper, then the public first-clock proof.
8. Evaluate the strict survival probability
Apply the measurable pushforward formula to Ioi(t). The preimage from the preceding block is Ioi(Λ_z(t)). Take the complement of Iic and use the exact Exp(1) CDF, 1−exp(−u) for u≥0, obtaining exp(−Λ_z(t)). Possible mass at infinite waiting is retained by the interval (t,∞].
Corresponding Lean step
change ((ProbabilityTheory.expMeasure (1 : ℝ)).map
(fun e : ℝ => τ y xRef z (Real.toNNReal e))
(Set.Ioi (t : WithTop ℝ≥0))).toReal = _
rw [Measure.map_apply ht measurableSet_Ioi, hpre]
change (ProbabilityTheory.expMeasure (1 : ℝ)).real (Set.Ioi (Λ y xRef z t)) = _
rw [← Set.compl_Iic, measureReal_compl measurableSet_Iic, probReal_univ,
← ProbabilityTheory.cdf_eq_real, ProbabilityTheory.cdf_expMeasure_eq zero_lt_one]
simp only [if_pos ((hbasic y xRef z).2.1 t), one_mul]
ring
Exact contiguous compiled BODY; the literal local definitions and preceding facts remain in scope. The first three blocks are the internal primitive helper, then the public first-clock proof.
9. Extract the extended waiting lower bound and zero-cap branch
If C(z)>0 and τ is finite, the exact threshold identity and integrated cap give e=Λ_z(τ)≤C(z)τ, so e/C(z)≤τ. If τ=∞ the extended inequality is automatic. If C(z)=0 and e>0, every Λ_z(t)≤0<e; the no-hit equivalence gives τ=∞. Collect all ten conclusion groups, preserving the finite-hit guards.
Corresponding Lean step
have hwait (y xRef : E) (z : E × E) (e : ℝ≥0) :
(0 < C y xRef z →
(Real.toNNReal ((e : ℝ) / C y xRef z) : WithTop ℝ≥0) ≤ τ y xRef z e) ∧
(C y xRef z = 0 → 0 < e → τ y xRef z e = ⊤) := by
constructor
· intro hC
by_cases hn : τ y xRef z e = ⊤
· simp only [hn, le_top]
· let q : ℝ≥0 := (τ y xRef z e).untop hn
have hq : (q : WithTop ℝ≥0) = τ y xRef z e := WithTop.coe_untop _ _
have hval : Λ y xRef z q = (e : ℝ) := by
simpa only [WithTop.untopA_eq_untop hn] using hfinite y xRef z e hn
have hb : (e : ℝ) ≤ C y xRef z * (q : ℝ) :=
hval ▸ (hcaps y xRef z).2 q
have hdiv : (e : ℝ) / C y xRef z ≤ (q : ℝ) :=
(div_le_iff₀ hC).2 (by simpa only [mul_comm] using hb)
exact (WithTop.coe_le_coe.mpr (Real.toNNReal_le_iff_le_coe.mpr hdiv)).trans_eq hq
· intro hC he
apply (hτtop y xRef z e).2
intro t
have hb : Λ y xRef z t ≤ 0 := by simpa only [hC, zero_mul] using (hcaps y xRef z).2 t
exact hb.trans_lt (show (0 : ℝ) < e from he)
exact ⟨hΛ, hΛmeas, hInt, hbasic, hτle,
fun y xRef z e => ⟨hτtop y xRef z e, hfinite y xRef z e,
hpositive y xRef z e, hzero y xRef z⟩, hτmeas, hlaw, hcaps, hwait⟩
Exact contiguous compiled BODY; the literal local definitions and preceding facts remain in scope. The first three blocks are the internal primitive helper, then the public first-clock proof.
Lean verification
The exact proof begins folded immediately after the mathematical argument; the statement is folded beside the claim above.
Lean proof · actual_integrated_hazard_clock_laws
Reuse the actual flow, rate and conserved-energy bound; Construct the continuous cumulative hazard; Derive monotonicity and the integrated cap; Identify the exact finite-time crossing event; Prove the first crossing has the exact threshold value; Prove the first clock is jointly Borel; Push forward the actual unit exponential law; Evaluate the strict survival probability; Extract the extended waiting lower bound and zero-cap branch
Braces mark parameters Lean can infer; square brackets request structures such as a measurable space or probability measure. Named hypotheses are mathematical premises, not facts established by this declaration. Section parameters are described in the mathematical hypotheses above; the module link retains their exact source context.
theorem actual_integrated_hazard_clock_laws
{E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
[FiniteDimensional ℝ E] [MeasurableSpace E] [BorelSpace E]
{V : E → ℝ} {α β : ℝ≥0} {η : ℝ}
(hα : 0 < (α : ℝ)) (hαβ : α ≤ β) (hV : ContDiff ℝ 2 V)
(hH : ∀ x v : E,
(α : ℝ) * ‖v‖ ^ 2 ≤ (fderiv ℝ (fderiv ℝ V) x v) v ∧
(fderiv ℝ (fderiv ℝ V) x v) v ≤ (β : ℝ) * ‖v‖ ^ 2)
(hη : 0 < η) (hβη : (β : ℝ) * η ≤ 1) :
actual_integrated_hazard_clock_statement hα hαβ hV hH hη hβη := by
let c : E → E → E := fun y xRef => y - η • gradient V xRef
let Φ : E → E → ℝ → (E × E) → (E × E) := fun y xRef t z =>
(c y xRef + Real.cos t • (z.1 - c y xRef) +
(Real.sqrt η * Real.sin t) • z.2,
(-Real.sin t / Real.sqrt η) • (z.1 - c y xRef) + Real.cos t • z.2)
let rate : E → (E × E) → ℝ := fun xRef z =>
Real.sqrt η * max 0 (inner ℝ z.2 (gradient V z.1 - gradient V xRef))
let H : E → E → (E × E) → ℝ := fun y xRef z =>
(η⁻¹ * ‖z.1 - c y xRef‖ ^ 2 + ‖z.2‖ ^ 2) / 2
let C : E → E → (E × E) → ℝ := fun y xRef z =>
Real.sqrt η * (β : ℝ) * Real.sqrt (2 * H y xRef z) *
(Real.sqrt (2 * η * H y xRef z) + ‖c y xRef - xRef‖)
let Λ : E → E → (E × E) → ℝ≥0 → ℝ := fun y xRef z t =>
∫ s in (0 : ℝ)..(t : ℝ), rate xRef (Φ y xRef s z)
let τ : E → E → (E × E) → ℝ≥0 → WithTop ℝ≥0 := fun y xRef z e =>
MeasureTheory.hittingAfter
(fun t : ℝ≥0 => fun a : (E × E) × (E × E) × ℝ≥0 =>
Λ a.1.1 a.1.2 a.2.1 t - (a.2.2 : ℝ))
(Set.Ici (0 : ℝ)) 0 ((y, xRef), z, e)
let W : E → E → (E × E) → Measure (WithTop ℝ≥0) := fun y xRef z =>
Measure.map (fun e : ℝ => τ y xRef z (Real.toNNReal e))
(ProbabilityTheory.expMeasure (1 : ℝ))
change
Continuous (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) ∧
Measurable (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) ∧
(∀ y xRef : E, ∀ z : E × E, ∀ t : ℝ≥0,
IntervalIntegrable (fun s : ℝ => rate xRef (Φ y xRef s z)) volume 0 (t : ℝ)) ∧
(∀ y xRef : E, ∀ z : E × E,
Λ y xRef z 0 = 0 ∧ (∀ t : ℝ≥0, 0 ≤ Λ y xRef z t) ∧
Monotone (Λ y xRef z)) ∧
(∀ y xRef : E, ∀ z : E × E, ∀ e t : ℝ≥0,
τ y xRef z e ≤ (t : WithTop ℝ≥0) ↔ (e : ℝ) ≤ Λ y xRef z t) ∧
(∀ y xRef : E, ∀ z : E × E, ∀ e : ℝ≥0,
(τ y xRef z e = ⊤ ↔ ∀ t : ℝ≥0, Λ y xRef z t < (e : ℝ)) ∧
(τ y xRef z e ≠ ⊤ → Λ y xRef z (τ y xRef z e).untopA = (e : ℝ)) ∧
(0 < e → (0 : WithTop ℝ≥0) < τ y xRef z e) ∧ τ y xRef z 0 = 0) ∧
Measurable (fun a : (E × E) × (E × E) × ℝ≥0 =>
τ a.1.1 a.1.2 a.2.1 a.2.2) ∧
(∀ y xRef : E, ∀ z : E × E, IsProbabilityMeasure (W y xRef z) ∧
∀ t : ℝ≥0, (W y xRef z).real (Set.Ioi (t : WithTop ℝ≥0)) =
Real.exp (-Λ y xRef z t)) ∧
(∀ y xRef : E, ∀ z : E × E, 0 ≤ C y xRef z ∧
∀ t : ℝ≥0, Λ y xRef z t ≤ C y xRef z * (t : ℝ)) ∧
(∀ y xRef : E, ∀ z : E × E, ∀ e : ℝ≥0,
(0 < C y xRef z →
(Real.toNNReal ((e : ℝ) / C y xRef z) : WithTop ℝ≥0) ≤ τ y xRef z e) ∧
(C y xRef z = 0 → 0 < e → τ y xRef z e = ⊤))
classical
have hp :
Continuous (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) ∧
Measurable (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) ∧
(∀ y xRef : E, ∀ z : E × E, ∀ t : ℝ≥0,
IntervalIntegrable (fun s : ℝ => rate xRef (Φ y xRef s z)) volume 0 (t : ℝ)) ∧
(∀ y xRef : E, ∀ z : E × E,
Λ y xRef z 0 = 0 ∧ (∀ t : ℝ≥0, 0 ≤ Λ y xRef z t) ∧
Monotone (Λ y xRef z)) ∧
(∀ y xRef : E, ∀ z : E × E, 0 ≤ C y xRef z ∧
∀ t : ℝ≥0, Λ y xRef z t ≤ C y xRef z * (t : ℝ)) :=
actual_hazard_primitive_laws hα hαβ hV hH hη hβη
rcases hp with ⟨hΛ, hΛmeas, hInt, hbasic, hcaps⟩
have hcont (y xRef : E) (z : E × E) : Continuous (Λ y xRef z) :=
hΛ.comp (show Continuous (fun t : ℝ≥0 => (((y, xRef), z), t)) from
continuous_const.prodMk continuous_id)
have hτle (y xRef : E) (z : E × E) (e t : ℝ≥0) :
τ y xRef z e ≤ (t : WithTop ℝ≥0) ↔ (e : ℝ) ≤ Λ y xRef z t := by
dsimp only [τ, MeasureTheory.hittingAfter]
simp only [Set.mem_Ici, sub_nonneg, zero_le, true_and]
split_ifs with hex
· simp only [WithTop.coe_le_coe]
constructor
· intro h
have hc : IsClosed {s : ℝ≥0 | (e : ℝ) ≤ Λ y xRef z s} :=
isClosed_le continuous_const (hcont y xRef z)
exact (hc.csInf_mem hex (OrderBot.bddBelow _)).trans
((hbasic y xRef z).2.2 h)
· intro he
exact csInf_le (OrderBot.bddBelow _) he
· constructor
· intro h
exact False.elim (WithTop.not_top_le_coe t h)
· intro he
exact False.elim (hex ⟨t, he⟩)
have hτtop (y xRef : E) (z : E × E) (e : ℝ≥0) :
τ y xRef z e = ⊤ ↔ ∀ t : ℝ≥0, Λ y xRef z t < (e : ℝ) := by
simp only [τ, MeasureTheory.hittingAfter_eq_top_iff, Set.mem_Ici,
sub_nonneg, zero_le, true_implies, not_le]
have hfinite (y xRef : E) (z : E × E) (e : ℝ≥0)
(hn : τ y xRef z e ≠ ⊤) :
Λ y xRef z (τ y xRef z e).untopA = (e : ℝ) := by
let q : ℝ≥0 := (τ y xRef z e).untop hn
have hq : (q : WithTop ℝ≥0) = τ y xRef z e := WithTop.coe_untop _ _
have hge : (e : ℝ) ≤ Λ y xRef z q :=
(hτle y xRef z e q).1 hq.symm.le
have hval : Λ y xRef z q = (e : ℝ) := by
apply le_antisymm _ hge
by_contra h
have hstrict : (e : ℝ) < Λ y xRef z q := not_le.mp h
obtain ⟨s, hs, hse⟩ := intermediate_value_Icc (show (0 : ℝ≥0) ≤ q from bot_le)
(hcont y xRef z).continuousOn
(show (e : ℝ) ∈ Set.Icc (Λ y xRef z 0) (Λ y xRef z q) from
⟨by simpa only [(hbasic y xRef z).1] using e.coe_nonneg, hge⟩)
have hsq : s < q := by
by_contra hnot
have heq : q = s := le_antisymm (not_lt.mp hnot) hs.2
have hbad : Λ y xRef z q = (e : ℝ) := by simpa only [heq] using hse
linarith
have hqs : q ≤ s := by
exact_mod_cast hq.le.trans ((hτle y xRef z e s).2 hse.ge)
exact not_le_of_gt hsq hqs
simpa only [WithTop.untopA_eq_untop hn] using hval
have hpositive (y xRef : E) (z : E × E) (e : ℝ≥0) (he : 0 < e) :
(0 : WithTop ℝ≥0) < τ y xRef z e := by
apply lt_of_not_ge
intro h
have hh : (e : ℝ) ≤ 0 := by
simpa only [(hbasic y xRef z).1] using (hτle y xRef z e 0).1 h
exact not_le_of_gt (show (0 : ℝ) < e from he) hh
have hzero (y xRef : E) (z : E × E) : τ y xRef z 0 = 0 := by
apply le_antisymm _ bot_le
exact (hτle y xRef z 0 0).2 (by
simpa only [NNReal.coe_zero, (hbasic y xRef z).1] using (le_refl (0 : ℝ)))
have hτmeas : Measurable (fun a : (E × E) × (E × E) × ℝ≥0 =>
τ a.1.1 a.1.2 a.2.1 a.2.2) := by
apply measurable_of_Iic
intro b
induction b using WithTop.recTopCoe with
| top => simpa using MeasurableSet.univ
| coe t =>
have hevent : (fun a : (E × E) × (E × E) × ℝ≥0 =>
τ a.1.1 a.1.2 a.2.1 a.2.2) ⁻¹' Set.Iic (t : WithTop ℝ≥0) =
{a | (a.2.2 : ℝ) ≤ Λ a.1.1 a.1.2 a.2.1 t} := by
ext a
exact hτle a.1.1 a.1.2 a.2.1 a.2.2 t
rw [hevent]
exact measurableSet_le (measurable_coe_nnreal_real.comp measurable_snd.snd)
(hΛmeas.comp ((measurable_fst.prodMk measurable_snd.fst).prodMk measurable_const))
have hlaw (y xRef : E) (z : E × E) : IsProbabilityMeasure (W y xRef z) ∧
∀ t : ℝ≥0, (W y xRef z).real (Set.Ioi (t : WithTop ℝ≥0)) =
Real.exp (-Λ y xRef z t) := by
letI : IsProbabilityMeasure (ProbabilityTheory.expMeasure (1 : ℝ)) :=
ProbabilityTheory.isProbabilityMeasure_expMeasure zero_lt_one
have hi : Measurable (fun e : ℝ => ((y, xRef), z, Real.toNNReal e)) :=
measurable_const.prodMk (measurable_const.prodMk measurable_real_toNNReal)
have ht0 := hτmeas.comp hi
have ht : Measurable (fun e : ℝ => τ y xRef z (Real.toNNReal e)) := ht0
refine ⟨Measure.isProbabilityMeasure_map ht.aemeasurable, ?_⟩
intro t
have hpre : (fun e : ℝ => τ y xRef z (Real.toNNReal e)) ⁻¹'
Set.Ioi (t : WithTop ℝ≥0) = Set.Ioi (Λ y xRef z t) := by
ext e
change (t : WithTop ℝ≥0) < τ y xRef z (Real.toNNReal e) ↔ Λ y xRef z t < e
rw [← not_le, hτle, not_le]
simp only [Real.coe_toNNReal', lt_max_iff,
not_lt.mpr ((hbasic y xRef z).2.1 t), or_false]
change ((ProbabilityTheory.expMeasure (1 : ℝ)).map
(fun e : ℝ => τ y xRef z (Real.toNNReal e))
(Set.Ioi (t : WithTop ℝ≥0))).toReal = _
rw [Measure.map_apply ht measurableSet_Ioi, hpre]
change (ProbabilityTheory.expMeasure (1 : ℝ)).real (Set.Ioi (Λ y xRef z t)) = _
rw [← Set.compl_Iic, measureReal_compl measurableSet_Iic, probReal_univ,
← ProbabilityTheory.cdf_eq_real, ProbabilityTheory.cdf_expMeasure_eq zero_lt_one]
simp only [if_pos ((hbasic y xRef z).2.1 t), one_mul]
ring
have hwait (y xRef : E) (z : E × E) (e : ℝ≥0) :
(0 < C y xRef z →
(Real.toNNReal ((e : ℝ) / C y xRef z) : WithTop ℝ≥0) ≤ τ y xRef z e) ∧
(C y xRef z = 0 → 0 < e → τ y xRef z e = ⊤) := by
constructor
· intro hC
by_cases hn : τ y xRef z e = ⊤
· simp only [hn, le_top]
· let q : ℝ≥0 := (τ y xRef z e).untop hn
have hq : (q : WithTop ℝ≥0) = τ y xRef z e := WithTop.coe_untop _ _
have hval : Λ y xRef z q = (e : ℝ) := by
simpa only [WithTop.untopA_eq_untop hn] using hfinite y xRef z e hn
have hb : (e : ℝ) ≤ C y xRef z * (q : ℝ) :=
hval ▸ (hcaps y xRef z).2 q
have hdiv : (e : ℝ) / C y xRef z ≤ (q : ℝ) :=
(div_le_iff₀ hC).2 (by simpa only [mul_comm] using hb)
exact (WithTop.coe_le_coe.mpr (Real.toNNReal_le_iff_le_coe.mpr hdiv)).trans_eq hq
· intro hC he
apply (hτtop y xRef z e).2
intro t
have hb : Λ y xRef z t ≤ 0 := by simpa only [hC, zero_mul] using (hcaps y xRef z).2 t
exact hb.trans_lt (show (0 : ℝ) < e from he)
exact ⟨hΛ, hΛmeas, hInt, hbasic, hτle,
fun y xRef z e => ⟨hτtop y xRef z e, hfinite y xRef z e,
hpositive y xRef z e, hzero y xRef z⟩, hτmeas, hlaw, hcaps, hwait⟩
end
end AutoSamplingTheory.ExampleCases.ProximalBPS.ActualHazardClockExact module and namespace context
Lean proof · actual_hazard_primitive_laws
Supporting proof called by the result above.
Braces mark parameters Lean can infer; square brackets request structures such as a measurable space or probability measure. Named hypotheses are mathematical premises, not facts established by this declaration. Section parameters are described in the mathematical hypotheses above; the module link retains their exact source context.
private theorem actual_hazard_primitive_laws
{E : Type*} [NormedAddCommGroup E] [InnerProductSpace ℝ E]
[FiniteDimensional ℝ E] [MeasurableSpace E] [BorelSpace E]
{V : E → ℝ} {α β : ℝ≥0} {η : ℝ}
(hα : 0 < (α : ℝ)) (hαβ : α ≤ β) (hV : ContDiff ℝ 2 V)
(hH : ∀ x v : E,
(α : ℝ) * ‖v‖ ^ 2 ≤ (fderiv ℝ (fderiv ℝ V) x v) v ∧
(fderiv ℝ (fderiv ℝ V) x v) v ≤ (β : ℝ) * ‖v‖ ^ 2)
(hη : 0 < η) (hβη : (β : ℝ) * η ≤ 1) :
let c : E → E → E := fun y xRef => y - η • gradient V xRef
let Φ : E → E → ℝ → (E × E) → (E × E) := fun y xRef t z =>
(c y xRef + Real.cos t • (z.1 - c y xRef) +
(Real.sqrt η * Real.sin t) • z.2,
(-Real.sin t / Real.sqrt η) • (z.1 - c y xRef) + Real.cos t • z.2)
let rate : E → (E × E) → ℝ := fun xRef z =>
Real.sqrt η * max 0 (inner ℝ z.2 (gradient V z.1 - gradient V xRef))
let H : E → E → (E × E) → ℝ := fun y xRef z =>
(η⁻¹ * ‖z.1 - c y xRef‖ ^ 2 + ‖z.2‖ ^ 2) / 2
let C : E → E → (E × E) → ℝ := fun y xRef z =>
Real.sqrt η * (β : ℝ) * Real.sqrt (2 * H y xRef z) *
(Real.sqrt (2 * η * H y xRef z) + ‖c y xRef - xRef‖)
let Λ : E → E → (E × E) → ℝ≥0 → ℝ := fun y xRef z t =>
∫ s in (0 : ℝ)..(t : ℝ), rate xRef (Φ y xRef s z)
Continuous (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) ∧
Measurable (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) ∧
(∀ y xRef : E, ∀ z : E × E, ∀ t : ℝ≥0,
IntervalIntegrable (fun s : ℝ => rate xRef (Φ y xRef s z)) volume 0 (t : ℝ)) ∧
(∀ y xRef : E, ∀ z : E × E,
Λ y xRef z 0 = 0 ∧ (∀ t : ℝ≥0, 0 ≤ Λ y xRef z t) ∧
Monotone (Λ y xRef z)) ∧
(∀ y xRef : E, ∀ z : E × E, 0 ≤ C y xRef z ∧
∀ t : ℝ≥0, Λ y xRef z t ≤ C y xRef z * (t : ℝ)) := by
let c : E → E → E := fun y xRef => y - η • gradient V xRef
let Φ : E → E → ℝ → (E × E) → (E × E) := fun y xRef t z =>
(c y xRef + Real.cos t • (z.1 - c y xRef) +
(Real.sqrt η * Real.sin t) • z.2,
(-Real.sin t / Real.sqrt η) • (z.1 - c y xRef) + Real.cos t • z.2)
let rate : E → (E × E) → ℝ := fun xRef z =>
Real.sqrt η * max 0 (inner ℝ z.2 (gradient V z.1 - gradient V xRef))
let H : E → E → (E × E) → ℝ := fun y xRef z =>
(η⁻¹ * ‖z.1 - c y xRef‖ ^ 2 + ‖z.2‖ ^ 2) / 2
let C : E → E → (E × E) → ℝ := fun y xRef z =>
Real.sqrt η * (β : ℝ) * Real.sqrt (2 * H y xRef z) *
(Real.sqrt (2 * η * H y xRef z) + ‖c y xRef - xRef‖)
let Λ : E → E → (E × E) → ℝ≥0 → ℝ := fun y xRef z t =>
∫ s in (0 : ℝ)..(t : ℝ), rate xRef (Φ y xRef s z)
change
Continuous (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) ∧
Measurable (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) ∧
(∀ y xRef : E, ∀ z : E × E, ∀ t : ℝ≥0,
IntervalIntegrable (fun s : ℝ => rate xRef (Φ y xRef s z)) volume 0 (t : ℝ)) ∧
(∀ y xRef : E, ∀ z : E × E,
Λ y xRef z 0 = 0 ∧ (∀ t : ℝ≥0, 0 ≤ Λ y xRef z t) ∧
Monotone (Λ y xRef z)) ∧
(∀ y xRef : E, ∀ z : E × E, 0 ≤ C y xRef z ∧
∀ t : ℝ≥0, Λ y xRef z t ≤ C y xRef z * (t : ℝ))
have hf := ActualHarmonicFlow.actual_harmonic_flow_laws hα hαβ hV hH hη hβη
have hb := ActualBounceRate.actual_bounce_rate_energy_laws hα hαβ hV hH hη hβη
have hΦ : Continuous (fun a : (E × E) × ℝ × (E × E) =>
Φ a.1.1 a.1.2 a.2.1 a.2.2) := hf.1
have hrate : Continuous (fun a : E × (E × E) => rate a.1 a.2) := hb.2.1
have hrate0 (xRef : E) (z : E × E) : 0 ≤ rate xRef z :=
(hb.2.2.2.2.2.2.2.1 xRef z).1
have henergy (y xRef : E) (s : ℝ) (z : E × E) :
H y xRef (Φ y xRef s z) = H y xRef z := hf.2.2.2.2.2.2.2.1 y xRef s z
have hcap (y xRef : E) (z : E × E) (s : ℝ) :
rate xRef (Φ y xRef s z) ≤ C y xRef z :=
(hb.2.2.2.2.2.2.2.2.2 y xRef z).2 (Φ y xRef s z) (henergy y xRef s z) |>.2.2
have hC (y xRef : E) (z : E × E) : 0 ≤ C y xRef z := by
dsimp [C]
positivity
have hF : Continuous (fun a : ((E × E) × (E × E)) × ℝ =>
rate a.1.1.2 (Φ a.1.1.1 a.1.1.2 a.2 a.1.2)) := by
exact hrate.comp (continuous_fst.fst.snd.prodMk
(hΦ.comp ((continuous_fst.fst).prodMk
(continuous_snd.prodMk continuous_fst.snd))))
have hΛ : Continuous (fun a : ((E × E) × (E × E)) × ℝ≥0 =>
Λ a.1.1.1 a.1.1.2 a.1.2 a.2) := by
exact (intervalIntegral.continuous_parametric_primitive_of_continuous
(f := fun (q : (E × E) × (E × E)) (s : ℝ) =>
rate q.1.2 (Φ q.1.1 q.1.2 s q.2)) (μ := volume) (a₀ := 0) hF).comp
(continuous_fst.prodMk (NNReal.continuous_coe.comp continuous_snd))
have hInt (y xRef : E) (z : E × E) (a b : ℝ) :
IntervalIntegrable (fun s : ℝ => rate xRef (Φ y xRef s z)) volume a b := by
have hsΦ : Continuous (fun s : ℝ => Φ y xRef s z) := by
dsimp [Φ]
fun_prop
have hc : Continuous (fun s : ℝ => rate xRef (Φ y xRef s z)) :=
hrate.comp (continuous_const.prodMk hsΦ)
exact hc.intervalIntegrable a b
have hbasic (y xRef : E) (z : E × E) :
Λ y xRef z 0 = 0 ∧ (∀ t : ℝ≥0, 0 ≤ Λ y xRef z t) ∧
Monotone (Λ y xRef z) := by
refine ⟨by simp [Λ], ?_, ?_⟩
· intro t
exact intervalIntegral.integral_nonneg_of_forall t.coe_nonneg
(fun s => hrate0 xRef (Φ y xRef s z))
· intro s t hst
exact intervalIntegral.integral_mono_interval (le_refl 0) s.coe_nonneg
(show (s : ℝ) ≤ t from hst)
(Filter.Eventually.of_forall (fun u => hrate0 xRef (Φ y xRef u z)))
(hInt y xRef z 0 t)
have hbound (y xRef : E) (z : E × E) (t : ℝ≥0) :
Λ y xRef z t ≤ C y xRef z * (t : ℝ) := by
have hi := intervalIntegral.integral_mono_on t.coe_nonneg
(hInt y xRef z 0 t) (intervalIntegrable_const (μ := volume))
(fun s _ => hcap y xRef z s)
simpa only [intervalIntegral.integral_const, sub_zero, smul_eq_mul, mul_comm] using hi
exact ⟨hΛ, hΛ.measurable, fun y xRef z t => hInt y xRef z 0 t,
hbasic, fun y xRef z => ⟨hC y xRef z, hbound y xRef z⟩⟩
set_option maxHeartbeats 1200000 inScope and omitted-condition boundaries
- Only one actual flow-segment hazard and first waiting-time probability law, including infinite waits and e=0. No recursive PDMP path, iid recursion/SLLN/nonexplosion, Markov memorylessness, invariant/reversed or terminal kernel, hypocoercivity/main, implementation error, expected query cost, actual-input composition, full Exposition/PURIFIED/main/live/whole-paper/Goal completion credit. Focused compilation is local evidence; independent proof/source/decoder review, serialized aggregate and reader delivery remain separate.
Sources, dependencies, and reuse
Source and reuse
Samplinglib parents called
AutoSamplingTheory.ExampleCases.ProximalBPS.ActualHarmonicFlow.actual_harmonic_flow_lawsAutoSamplingTheory.ExampleCases.ProximalBPS.ActualBounceRate.actual_bounce_rate_energy_laws
Mathlib API called (external library)
- intervalIntegral.continuous_parametric_primitive_of_continuous
- Continuous.intervalIntegrable
- intervalIntegral.integral_nonneg_of_forall
- intervalIntegral.integral_mono_interval
- intervalIntegral.integral_mono_on
- IsClosed.csInf_mem
- csInf_le
- intermediate_value_Icc
- MeasureTheory.hittingAfter_eq_top_iff
- measurable_of_Iic
- measurableSet_le
- MeasureTheory.Measure.isProbabilityMeasure_map
- MeasureTheory.Measure.map_apply
- ProbabilityTheory.cdf_expMeasure_eq
- measureReal_compl
- Real.toNNReal_le_iff_le_coe
Mathematical sources
- arXiv2609.06905v1 Algorithm1, Proposition3.1, AppendixA.1 equation(A.1), Ex1-8; one-segment prerequisites for recursive equation(A.2). — Only one actual flow-segment hazard and first waiting-time probability law, including infinite waits and e=0. No recursive PDMP path, iid recursion/SLLN/nonexplosion, Markov memorylessness, invariant/reversed or terminal kernel, hypocoercivity/main, implementation error, expected query cost, actual-input composition, full Exposition/PURIFIED/main/live/whole-paper/Goal completion credit. Focused compilation is local evidence; independent proof/source/decoder review, serialized aggregate and reader delivery remain separate.
Samplinglib prose is not a quotation or a source-equivalence certificate. Definitions and aliases are explained as constructions, not counted as new mathematical proofs.