Samplinglib
Lean gate not recorded for this source state main · 9bb7a7394ab0
Samplinglib mathematical lesson

Actual PBPS weighted density under finite path reversal

AutoSamplingTheory.ExampleCases.ProximalBPS.ActualPrescribedWeightedDensity.actual_prescribed_weighted_density_balance · theorem · Teaching coverage

Read this first

Mathematical statement

Let E be a finite-dimensional real inner-product space equipped with its Borel sigma algebra; zero dimension is allowed. Let alpha,beta≥0, eta be real, V:E→R. Assume exactly alpha>0, alpha≤beta, V is C2, alpha||v||^2≤D2V(x)[v,v]≤beta||v||^2 for every x,v, eta>0 and beta*eta≤1. All conclusions hold for every y,r in E, initial phase z0=(x0,p0), integer n≥0 and finite T≥0. Set c=y-eta*grad V(r). For z=(x,p), define Phi_u(z)=(c+cos(u)(x-c)+sqrt(eta)sin(u)p, -sin(u)/sqrt(eta)(x-c)+cos(u)p). Define h_r(x)=grad V(x)-grad V(r), S_r(x,p)=(x,p-[2<p,h_r(x)>/||h_r(x)||^2]h_r(x)) with real division totalized by 0/0=0, lambda_r(x,p)=sqrt(eta)max(0,<p,h_r(x)>), and Lambda_z(u)=integral from0 to u of lambda_r(Phi_s(z)) ds for u≥0, using Lebesgue measure. A tagged record is either live(a,z), with a≥0, or stopped; Hist_n is the type of all n+1 records. Let Delta_n(T) be the strict simplex 0<t1<...<tn<T. Write a0=0, ai=ti (1≤i≤n), a_(n+1)=T. Given t in Delta_n(T), define z_i=S_r(Phi_(a_i-a_(i-1))(z_(i-1))) for1≤i≤n and K_n(t)_j=live(a_j,z_j). The literal Lean nonnegative conversions preserve these nonnegative times. Define qReal_n(t)=product_(i=1)^n [lambda_r(Phi_(a_i-a_(i-1))(z_(i-1))) exp(-Lambda_(z_(i-1))(a_i-a_(i-1)))], q_n=ofReal(qReal_n). For arbitrary histories let readTime(live(a,z))=a and readTime(stopped)=0; d_n(T,h)=max(T-readTime(h_n),0). Put W(live(a,z),u)=ofReal(exp(-Lambda_z(u))) and W(stopped,u)=0. Define rho_n(T,t)=q_n(t) W(K_n(t)_n,d_n(T,K_n(t))). Here ofReal(x) is max(x,0) embedded into extended nonnegative reals; no probability law or normalization is assumed in this deterministic identity. Define Path_T as all phase-valued functions on[0,T]. The total interpolation Psi_n(h)(s) starts at z0 and scans records j=0,...,n in order: a live(a,z) record with a≤s replaces the accumulator by Phi_(max(s-a,0))(z); otherwise it is unchanged. Set Gamma_n(t)=Psi_n(K_n(t)). Extend this particular prescribed path to all real times by gamma(s)=Gamma_n(t)(min(max(s,0),T)). This extension agrees with Gamma on[0,T]; no topology on an entire function space is asserted. Define momentum reversal R(x,p)=(x,-p), target energy U_y(x,p)=V(x)+||x-y||^2/(2 eta)+||p||^2/2 and unnormalized Gibbs weight w_y(z)=exp(-U_y(z)). For any actual initial state z and strict event tuple t, let P_(y,r,z,n,T)(t)=product_(i=1)^n lambda_r(Phi_(a_i-a_(i-1))(z_(i-1))), I_(y,r,z,n,T)(t)=integral_0^T lambda_r(gamma(s)) ds and dReal_(y,r,z,n,T)(t)=exp(-I_(y,r,z,n,T)(t))*P_(y,r,z,n,T)(t). The incoming-rate product excludes the terminal arrival. The original ENNReal density rho_n(T,t) remains q_n times the terminal live survival factor defined above; it is not redefined as ofReal(dReal). For each n≥0 and T≥0 there exists a single reversal map rho:Prefix_n(T)→Prefix_n(T), with (rho(t))_i=T-t_(n+1-i) in one-based coordinates. For every y,r,z and strict tuple t, let A=Gamma_(y,r,z,n,T,t)(T). Then both identities hold: w_y(z) dReal_(y,r,z,n,T)(t) = w_y(R(A)) dReal_(y,r,R(A),n,T)(rho(t)), ofReal(w_y(z)) rho_(y,r,z,n,T)(t) = ofReal(w_y(R(A))) rho_(y,r,R(A),n,T)(rho(t)). The reversal map and all internal identities are produced, not assumed. The six original analytic assumptions are the only analytic premises. There is no positivity/nonzero-rate premise and no cancellation of event rates. The conclusions include n=0 with empty product1, T=0, zero-dimensional phase space, zero normals and zero rates; for T=0 and n>0 the strict event subtype is empty. This is unnormalized pointwise weighted density matching in Appendix A.1, not a weighted integral/sector identity, normalized invariant probability, Markov property, hypocoercivity, implementation error, actual expected cost, paper main result or PBPS/SPHMC composition.

\[\operatorname{ofReal}(w(z))\rho_{z,t}=\operatorname{ofReal}(w(RA))\rho_{RA,\rho(t)}.\]
Lean statement · actual_prescribed_weighted_density_balance

Let E be a finite-dimensional real inner-product space equipped with its Borel sigma algebra; zero dimension is allowed. Let alpha,beta>=0, eta be real, V:E->R. Assume exactly alpha>0, alpha<=beta, V is C2, alpha||v||^2<=D2V(x)[v,v]<=beta||v||^2 for every x,v, eta>0 and beta*eta<=1. All conclusions hold for every y,r in E, initial phase z0=(x0,p0), integer n>=0 and finite T>=0. Set c=y-eta*grad V(r). For z=(x,p), define Phi_u(z)=(c+cos(u)(x-c)+sqrt(eta)sin(u)p, -sin(u)/sqrt(eta)(x-c)+cos(u)p). Define h_r(x)=grad V(x)-grad V(r), S_r(x,p)=(x,p-[2<p,h_r(x)>/||h_r(x)||^2]h_r(x)) with real division totalized by 0/0=0, lambda_r(x,p)=sqrt(eta)max(0,<p,h_r(x)>), and Lambda_z(u)=integral from0 to u of lambda_r(Phi_s(z)) ds for u>=0, using Lebesgue measure. A tagged record is either live(a,z), with a>=0, or stopped; Hist_n is the type of all n+1 records. Let Delta_n(T) be the strict simplex 0<t1<...<tn<T. Write a0=0, ai=ti (1<=i<=n), a_(n+1)=T. Given t in Delta_n(T), define z_i=S_r(Phi_(a_i-a_(i-1))(z_(i-1))) for1<=i<=n and K_n(t)_j=live(a_j,z_j). The literal Lean nonnegative conversions preserve these nonnegative times. Define qReal_n(t)=product_(i=1)^n [lambda_r(Phi_(a_i-a_(i-1))(z_(i-1))) exp(-Lambda_(z_(i-1))(a_i-a_(i-1)))], q_n=ofReal(qReal_n). For arbitrary histories let readTime(live(a,z))=a and readTime(stopped)=0; d_n(T,h)=max(T-readTime(h_n),0). Put W(live(a,z),u)=ofReal(exp(-Lambda_z(u))) and W(stopped,u)=0. Define rho_n(T,t)=q_n(t) W(K_n(t)_n,d_n(T,K_n(t))). Here ofReal(x) is max(x,0) embedded into extended nonnegative reals; no probability law or normalization is assumed in this deterministic identity. Define Path_T as all phase-valued functions on[0,T]. The total interpolation Psi_n(h)(s) starts at z0 and scans records j=0,...,n in order: a live(a,z) record with a<=s replaces the accumulator by Phi_(max(s-a,0))(z); otherwise it is unchanged. Set Gamma_n(t)=Psi_n(K_n(t)). Extend this particular prescribed path to all real times by gamma(s)=Gamma_n(t)(min(max(s,0),T)). This extension agrees with Gamma on[0,T]; no topology on an entire function space is asserted. Define momentum reversal R(x,p)=(x,-p), target energy U_y(x,p)=V(x)+||x-y||^2/(2 eta)+||p||^2/2 and unnormalized Gibbs weight w_y(z)=exp(-U_y(z)). For any actual initial state z and strict event tuple t, let P_(y,r,z,n,T)(t)=product_(i=1)^n lambda_r(Phi_(a_i-a_(i-1))(z_(i-1))), I_(y,r,z,n,T)(t)=integral_0^T lambda_r(gamma(s)) ds and dReal_(y,r,z,n,T)(t)=exp(-I_(y,r,z,n,T)(t))*P_(y,r,z,n,T)(t). The incoming-rate product excludes the terminal arrival. The original ENNReal density rho_n(T,t) remains q_n times the terminal live survival factor defined above; it is not redefined as ofReal(dReal). For each n>=0 and T>=0 there exists a single reversal map rho:Prefix_n(T)->Prefix_n(T), with (rho(t))_i=T-t_(n+1-i) in one-based coordinates. For every y,r,z and strict tuple t, let A=Gamma_(y,r,z,n,T,t)(T). Then both identities hold: w_y(z) dReal_(y,r,z,n,T)(t) = w_y(R(A)) dReal_(y,r,R(A),n,T)(rho(t)), ofReal(w_y(z)) rho_(y,r,z,n,T)(t) = ofReal(w_y(R(A))) rho_(y,r,R(A),n,T)(rho(t)). The reversal map and all internal identities are produced, not assumed. The six original analytic assumptions are the only analytic premises. There is no positivity/nonzero-rate premise and no cancellation of event rates. The conclusions include n=0 with empty product1, T=0, zero-dimensional phase space, zero normals and zero rates; for T=0 and n>0 the strict event subtype is empty. This is unnormalized pointwise weighted density matching in Appendix A.1, not a weighted integral/sector identity, normalized invariant probability, Markov property, hypocoercivity, implementation error, actual expected cost, paper main result or PBPS/SPHMC composition.

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_prescribed_weighted_density_balance
    {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_prescribed_weighted_density_statement hα hαβ hV hH hη hβη

Exact module and namespace context

Full Lean proposition (definition) · actual_prescribed_weighted_density_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.

Download module (.lean)
private def actual_prescribed_weighted_density_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 := by
  classical
  exact
    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 S : E → (E × E) → (E × E) := fun xRef z =>
      (z.1, z.2 - (2 * inner ℝ z.2 (gradient V z.1 - gradient V xRef) /
        ‖gradient V z.1 - gradient V xRef‖ ^ 2) • (gradient V z.1 - gradient V xRef))
    let rate : E → (E × E) → ℝ := fun xRef z =>
      Real.sqrt η * max 0 (inner ℝ z.2 (gradient V z.1 - gradient V xRef))
    let Λ : E → E → (E × E) → ℝ≥0 → ℝ := fun y xRef z t =>
      ∫ s in (0 : ℝ)..(t : ℝ), rate xRef (Φ y xRef s z)
    let Rec := (ℝ≥0 × (E × E)) ⊕ Unit
    let Hist : ℕ → Type _ := fun n => Fin (n + 1) → Rec
    let Δ : (n : ℕ) → ℝ≥0 → Set (Fin n → ℝ) := fun n T =>
      {t | StrictMono (Fin.cons (0 : ℝ) t) ∧ ∀ i, t i < (T : ℝ)}
    let Prefix : (n : ℕ) → ℝ≥0 → Type := fun n T => {t : Fin n → ℝ // t ∈ Δ n T}
    let zAt : E → E → (E × E) → (n : ℕ) → (T : ℝ≥0) →
        Prefix n T → Fin (n + 1) → (E × E) := fun y xRef z₀ n T t =>
      Fin.induction z₀ (fun i z =>
        S xRef (Φ y xRef (t.val i - (Fin.cons (0 : ℝ) (t.val : Fin n → ℝ) : Fin (n + 1) → ℝ) i.castSucc) z))
    let K : E → E → (E × E) → (n : ℕ) → (T : ℝ≥0) →
        Prefix n T → Hist n := fun y xRef z₀ n T t j =>
      Sum.inl (Real.toNNReal ((Fin.cons (0 : ℝ) (t.val : Fin n → ℝ) : Fin (n + 1) → ℝ) j), zAt y xRef z₀ n T t j)
    let qReal : E → E → (E × E) → (n : ℕ) → (T : ℝ≥0) →
        Prefix n T → ℝ := fun y xRef z₀ n T t =>
      ∏ i : Fin n,
        rate xRef (Φ y xRef (t.val i - (Fin.cons (0 : ℝ) (t.val : Fin n → ℝ) : Fin (n + 1) → ℝ) i.castSucc)
          (zAt y xRef z₀ n T t i.castSucc)) *
        Real.exp (-Λ y xRef (zAt y xRef z₀ n T t i.castSucc)
          (Real.toNNReal (t.val i - (Fin.cons (0 : ℝ) (t.val : Fin n → ℝ) : Fin (n + 1) → ℝ) i.castSucc)))
    let q : E → E → (E × E) → (n : ℕ) → (T : ℝ≥0) →
        Prefix n T → ℝ≥0∞ := fun y xRef z₀ n T t =>
      ENNReal.ofReal (qReal y xRef z₀ n T t)
    let liveTime : Rec → ℝ≥0 := fun r => r.elim Prod.fst (fun _ => 0)
    let d : (n : ℕ) → ℝ≥0 → Hist n → ℝ≥0 :=
      fun n T h => T - liveTime (h ⟨n, Nat.lt_succ_self n⟩)
    let weight : E → E → Rec → ℝ≥0 → ℝ≥0∞ :=
      fun y xRef r u => r.elim
        (fun a => ENNReal.ofReal (Real.exp (-Λ y xRef a.2 u))) (fun _ => 0)
    let Path : ℝ≥0 → Type _ := fun T => {s : ℝ≥0 // s ≤ T} → E × E
    let Ψ : E → E → (E × E) → (n : ℕ) → (T : ℝ≥0) → Hist n → Path T :=
      fun y xRef z₀ n T h s =>
        Fin.foldl (n + 1) (fun z j => (h j).elim
          (fun a => if a.1 ≤ s.val then Φ y xRef ((s.val - a.1 : ℝ≥0) : ℝ) a.2 else z)
          (fun _ => z)) z₀
    let Γ : E → E → (E × E) → (n : ℕ) → (T : ℝ≥0) → Prefix n T → Path T :=
      fun y xRef z₀ n T t => Ψ y xRef z₀ n T (K y xRef z₀ n T t)
    let ρ : E → E → (E × E) → (n : ℕ) → (T : ℝ≥0) → Prefix n T → ℝ≥0∞ :=
      fun y xRef z₀ n T t => q y xRef z₀ n T t *
        weight y xRef ((K y xRef z₀ n T t) ⟨n, Nat.lt_succ_self n⟩)
          (d n T (K y xRef z₀ n T t))
    let R : E × E → E × E := fun z => (z.1, -z.2)
    let U : E → E × E → ℝ := fun y z =>
      V z.1 + ‖z.1 - y‖ ^ 2 / (2 * η) + ‖z.2‖ ^ 2 / 2
    let w : E → E × E → ℝ := fun y z => Real.exp (-U y z)
    let P : E → E → (E × E) → (n : ℕ) → (T : ℝ≥0) → Prefix n T → ℝ :=
      fun y r z n T t => ∏ i : Fin n,
        rate r (Φ y r (t.val i - (Fin.cons (0 : ℝ) (t.val : Fin n → ℝ) : Fin (n+1) → ℝ) i.castSucc)
          (zAt y r z n T t i.castSucc))
    let I : E → E → (E × E) → (n : ℕ) → (T : ℝ≥0) → Prefix n T → ℝ :=
      fun y r z n T t => ∫ s in (0 : ℝ)..(T : ℝ),
        rate r (Γ y r z n T t ⟨min (Real.toNNReal s) T, min_le_right _ _⟩)
    let dReal : E → E → (E × E) → (n : ℕ) → (T : ℝ≥0) → Prefix n T → ℝ :=
      fun y r z n T t => Real.exp (-I y r z n T t) * P y r z n T t
    ∀ n : ℕ, ∀ T : ℝ≥0, ∃ rho : Prefix n T → Prefix n T,
      (∀ t : Prefix n T, ∀ i : Fin n, (rho t).val i = (T : ℝ) - t.val i.rev) ∧
      ∀ y r : E, ∀ z : E × E, ∀ t : Prefix n T,
        let A : E × E := Γ y r z n T t ⟨T, le_rfl⟩
        w y z * dReal y r z n T t = w y (R A) * dReal y r (R A) n T (rho t) ∧
        ENNReal.ofReal (w y z) * ρ y r z n T t =
          ENNReal.ofReal (w y (R A)) * ρ y r (R A) n T (rho t)

Exact module and namespace context

Proof roadmap

  1. 1Choose one reversed event tuple

    Using zero-based Fin n coordinates (i=0,...,n-1), the path and state reversal producers each return a map with the same exact coordinate formula. Function and subtype extensionality identify the two maps; the resulting witness serves every parameter and initial state.

  2. 2Match the incoming event-rate product

    The finite state reversal result pairs incoming rates after reversing the event order. Simplifying the prepended/appended grid indices gives equality of the literal P products. Zero factors and the empty product remain valid.

  3. 3Identify the reversed survival integral

    Apply the actual off-event path reversal and its proved scalar integral substitution. Internal jumps form a finite null set; no pointwise equality at the jumps is needed in this integral identity.

  4. 4Combine target energy and survival

    The Gibbs survival producer gives w(z) exp(-Iplus)=w(A) exp(-Iminus). Momentum reversal leaves position and squared momentum norm unchanged, so U(RA)=U(A). Substitute the reversed integral from the preceding step.

  5. 5Attach the common rate product

    Multiply the survival identity by the incoming-rate product and reassociate multiplication. This proves the real weighted density identity without division or a positive-rate assumption.

  6. 6Recover the actual algorithmic density

    Apply the actual prescribed-density theorem at both inputs to rewrite q times terminal survival as ofReal(dReal). Apply ofReal to the real identity and distribute it over the products using nonnegativity of exp(-U). The final identity is about the original actual ENNReal density.

Full assumptions and notation

All objects and hypotheses

  • Finite-dimensional real inner-product Borel E, including rank zero.
  • alpha,beta≥0; alpha>0; alpha≤beta; V is C2; alpha||v||^2≤D2V(x)[v,v]≤beta||v||^2 for every x,v; eta>0; beta*eta≤1.
  • Every finite n≥0,T≥0; the same produced event-time reversal works for all y,r,z,t. Zero rates and normals are allowed.
  • Exact actual rho=q*terminalweight, actual finite flow/reflection recursion and clamped path; no supplied reversal, product, energy, density or integrability assumption.

Mathematical proof

1. Choose one reversed event tuple

Using zero-based Fin n coordinates (i=0,...,n-1), the path and state reversal producers each return a map with the same exact coordinate formula. Function and subtype extensionality identify the two maps; the resulting witness serves every parameter and initial state.

\[\rho(t)_i=T-t_{n-1-i},\quad\rho_{99}=\rho_{100}.\]
Corresponding Lean step
theorem actual_prescribed_weighted_density_balance
    {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_prescribed_weighted_density_statement hα hαβ hV hH hη hβη := by
  classical
  unfold actual_prescribed_weighted_density_statement
  intro c Φ S rate Λ Rec Hist Δ Prefix zAt K qReal q liveTime d weight Path Ψ Γ ρ R U w P I dReal n T
  obtain ⟨rho, hrho, h100⟩ :=
    AutoSamplingTheory.ExampleCases.ProximalBPS.ActualPrescribedPathReversal.actual_prescribed_path_reversal_and_survival
      hα hαβ hV hH hη hβη n T
  obtain ⟨rho99, hrho99, h99⟩ :=
    AutoSamplingTheory.ExampleCases.ProximalBPS.ActualPrescribedStateReversal.actual_prescribed_state_reversal_and_rate_product
      hα hαβ hV hH hη hβη n T
  -- The public coordinate equations identify the independently produced witnesses.
  have halign : rho99 = rho := by
    funext t
    apply Subtype.ext
    funext i
    exact (hrho99 t i).trans (hrho t i).symm
  subst rho99
  refine ⟨rho, hrho, ?_⟩
  intro y r z t A

Exact compiled region. Each producer premise is discharged by the original assumptions; no proof ingredient is a new public binder.

2. Match the incoming event-rate product

The finite state reversal result pairs incoming rates after reversing the event order. Simplifying the prepended/appended grid indices gives equality of the literal P products. Zero factors and the empty product remain valid.

\[P_{R A,\rho(t)}=P_{z,t}.\]
Corresponding Lean step
  -- Incoming rates, including zero factors, pair under finite state reversal.
  have hprod : P y r (R A) n T (rho t) = P y r z n T t := by
    simpa only [P, Fin.succ_castSucc, Fin.snoc_castSucc, Fin.cons_succ] using
      (h99 y r z t).2

Exact compiled region. Each producer premise is discharged by the original assumptions; no proof ingredient is a new public binder.

3. Identify the reversed survival integral

Apply the actual off-event path reversal and its proved scalar integral substitution. Internal jumps form a finite null set; no pointwise equality at the jumps is needed in this integral identity.

\[I_{R A,\rho(t)}=\int_0^T\lambda_r(R\gamma(s))\,ds.\]
Corresponding Lean step
  -- The reversed survival integral equals the momentum-flipped forward integral.
  have hint : I y r (R A) n T (rho t) =
      ∫ s in (0 : ℝ)..(T : ℝ), rate r (R (Γ y r z n T t
        ⟨min (Real.toNNReal s) T, min_le_right _ _⟩)) :=
    (h100 y r z t).2.2.2

Exact compiled region. Each producer premise is discharged by the original assumptions; no proof ingredient is a new public binder.

4. Combine target energy and survival

The Gibbs survival producer gives w(z) exp(-Iplus)=w(A) exp(-Iminus). Momentum reversal leaves position and squared momentum norm unchanged, so U(RA)=U(A). Substitute the reversed integral from the preceding step.

\[w(z)e^{-I_{z,t}}=w(RA)e^{-I_{RA,\rho(t)}}.\]
Corresponding Lean step
  -- Gibbs survival balance and invariance of target energy under momentum flip.
  have hbal :=
    (AutoSamplingTheory.ExampleCases.ProximalBPS.ActualPrescribedGibbsSurvival.actual_prescribed_gibbs_survival_balance
      hα hαβ hV hH hη hβη y r z n T t).2.2.2
  have hw : w y (R A) = w y A := by simp only [w, U, R, norm_neg]
  have hs : w y z * Real.exp (-I y r z n T t) =
      w y (R A) * Real.exp (-I y r (R A) n T (rho t)) := by
    rw [hw, hint]
    exact hbal

Exact compiled region. Each producer premise is discharged by the original assumptions; no proof ingredient is a new public binder.

5. Attach the common rate product

Multiply the survival identity by the incoming-rate product and reassociate multiplication. This proves the real weighted density identity without division or a positive-rate assumption.

\[w(z)d^{\mathrm{real}}_{z,t}=w(RA)d^{\mathrm{real}}_{RA,\rho(t)}.\]
Corresponding Lean step
  -- Multiply by the common event product; no rate cancellation is used.
  have hreal : w y z * dReal y r z n T t =
      w y (R A) * dReal y r (R A) n T (rho t) := by
    dsimp only [dReal]
    rw [hprod, ← mul_assoc, ← mul_assoc, hs]
  refine ⟨hreal, ?_⟩

Exact compiled region. Each producer premise is discharged by the original assumptions; no proof ingredient is a new public binder.

6. Recover the actual algorithmic density

Apply the actual prescribed-density theorem at both inputs to rewrite q times terminal survival as ofReal(dReal). Apply ofReal to the real identity and distribute it over the products using nonnegativity of exp(-U). The final identity is about the original actual ENNReal density.

\[\operatorname{ofReal}(w(z))\rho_{z,t}=\operatorname{ofReal}(w(RA))\rho_{RA,\rho(t)}.\]
Corresponding Lean step
  -- Reconnect both real densities to the original algorithmic ENNReal density.
  have hd (a : E × E) (u : Prefix n T) :
      ρ y r a n T u = ENNReal.ofReal (dReal y r a n T u) := by
    simpa only [dReal, I, P, Fin.snoc_castSucc] using
      (AutoSamplingTheory.ExampleCases.ProximalBPS.ActualPrescribedPathDensity.actual_prescribed_path_density_rewrite
      hα hαβ hV hH hη hβη y r a n T u).2.2.2
  rw [hd z t, hd (R A) (rho t), ← ENNReal.ofReal_mul (Real.exp_nonneg _),
    ← ENNReal.ofReal_mul (Real.exp_nonneg _), hreal]

Exact compiled region. Each producer premise is discharged by the original assumptions; no proof ingredient is a new public binder.

Lean verification

The exact proof begins folded immediately after the mathematical argument; the statement is folded beside the claim above.

Lean proof · actual_prescribed_weighted_density_balance

Choose one reversed event tuple; Match the incoming event-rate product; Identify the reversed survival integral; Combine target energy and survival; Attach the common rate product; Recover the actual algorithmic density

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.

Download module (.lean)
theorem actual_prescribed_weighted_density_balance
    {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_prescribed_weighted_density_statement hα hαβ hV hH hη hβη := by
  classical
  unfold actual_prescribed_weighted_density_statement
  intro c Φ S rate Λ Rec Hist Δ Prefix zAt K qReal q liveTime d weight Path Ψ Γ ρ R U w P I dReal n T
  obtain ⟨rho, hrho, h100⟩ :=
    AutoSamplingTheory.ExampleCases.ProximalBPS.ActualPrescribedPathReversal.actual_prescribed_path_reversal_and_survival
      hα hαβ hV hH hη hβη n T
  obtain ⟨rho99, hrho99, h99⟩ :=
    AutoSamplingTheory.ExampleCases.ProximalBPS.ActualPrescribedStateReversal.actual_prescribed_state_reversal_and_rate_product
      hα hαβ hV hH hη hβη n T
  -- The public coordinate equations identify the independently produced witnesses.
  have halign : rho99 = rho := by
    funext t
    apply Subtype.ext
    funext i
    exact (hrho99 t i).trans (hrho t i).symm
  subst rho99
  refine ⟨rho, hrho, ?_⟩
  intro y r z t A
  -- Incoming rates, including zero factors, pair under finite state reversal.
  have hprod : P y r (R A) n T (rho t) = P y r z n T t := by
    simpa only [P, Fin.succ_castSucc, Fin.snoc_castSucc, Fin.cons_succ] using
      (h99 y r z t).2
  -- The reversed survival integral equals the momentum-flipped forward integral.
  have hint : I y r (R A) n T (rho t) =
      ∫ s in (0 : ℝ)..(T : ℝ), rate r (R (Γ y r z n T t
        ⟨min (Real.toNNReal s) T, min_le_right _ _⟩)) :=
    (h100 y r z t).2.2.2
  -- Gibbs survival balance and invariance of target energy under momentum flip.
  have hbal :=
    (AutoSamplingTheory.ExampleCases.ProximalBPS.ActualPrescribedGibbsSurvival.actual_prescribed_gibbs_survival_balance
      hα hαβ hV hH hη hβη y r z n T t).2.2.2
  have hw : w y (R A) = w y A := by simp only [w, U, R, norm_neg]
  have hs : w y z * Real.exp (-I y r z n T t) =
      w y (R A) * Real.exp (-I y r (R A) n T (rho t)) := by
    rw [hw, hint]
    exact hbal
  -- Multiply by the common event product; no rate cancellation is used.
  have hreal : w y z * dReal y r z n T t =
      w y (R A) * dReal y r (R A) n T (rho t) := by
    dsimp only [dReal]
    rw [hprod, ← mul_assoc, ← mul_assoc, hs]
  refine ⟨hreal, ?_⟩
  -- Reconnect both real densities to the original algorithmic ENNReal density.
  have hd (a : E × E) (u : Prefix n T) :
      ρ y r a n T u = ENNReal.ofReal (dReal y r a n T u) := by
    simpa only [dReal, I, P, Fin.snoc_castSucc] using
      (AutoSamplingTheory.ExampleCases.ProximalBPS.ActualPrescribedPathDensity.actual_prescribed_path_density_rewrite
      hα hαβ hV hH hη hβη y r a n T u).2.2.2
  rw [hd z t, hd (R A) (rho t), ← ENNReal.ofReal_mul (Real.exp_nonneg _),
    ← ENNReal.ofReal_mul (Real.exp_nonneg _), hreal]

#print axioms actual_prescribed_weighted_density_balance
end
end AutoSamplingTheory.ExampleCases.ProximalBPS.ActualPrescribedWeightedDensity

Exact module and namespace context

Scope and omitted-condition boundaries
  • Pointwise unnormalized weighted-density matching only; no weighted integral/sector, invariant probability, restart/Markovness, hypocoercivity, implementation error, expected cost, main theorem or composition.
Sources, dependencies, and reuse

Source and reuse

Samplinglib parents called

Mathlib API called (external library)

  • Subtype.ext
  • Fin.snoc_castSucc
  • Fin.cons_succ
  • norm_neg
  • mul_assoc
  • Real.exp_nonneg
  • ENNReal.ofReal_mul

Mathematical sources

Samplinglib prose is not a quotation or a source-equivalence certificate. Definitions and aliases are explained as constructions, not counted as new mathematical proofs.