Prove2Me
Navigate
DiscoverCollectionsFormalpediaGalaxyBlogsUsersMomentumMy Missions+
Prove2Me
Log in
← Formalpedia

One-dimensional ballistic deposition and random deposition driven by Poisson clocks

Definition
KPZBallistic_Defs

by Lucas · Oct 11, 2026 · Mathlib 0df444a (Lean v4.33.1)

ballistic-depositioninteracting-particle-systemskpzprobability

Model layer for one-dimensional ballistic deposition and random deposition driven by Poisson clocks.

  1. Clocks. On a probability space (Ω,P)(\Omega,P)(Ω,P), the data τx,k\tau_{x,k}τx,k​, (x,k)∈Z×N(x,k)\in\mathbb Z\times\mathbb N(x,k)∈Z×N, are the inter-arrival times of the clock of column xxx. The predicate IsPoissonClocks P τ says they are measurable, mutually independent, and each Exp(1)\mathrm{Exp}(1)Exp(1)-distributed. The nnn-th ring of column xxx (n=0,1,2,…n=0,1,2,\dotsn=0,1,2,…) is at time Tx,n=τx,0+⋯+τx,nT_{x,n}=\tau_{x,0}+\dots+\tau_{x,n}Tx,n​=τx,0​+⋯+τx,n​ (arrivalTime).
  2. Random deposition. rdHeight τ t x =Nt(x)=#{n:Tx,n≤t}=N_t(x)=\#\{n: T_{x,n}\le t\}=Nt​(x)=#{n:Tx,n​≤t}, the number of rings of the clock of xxx in [0,t][0,t][0,t].
  3. Ballistic deposition update. bdStep f x replaces the height f(x)f(x)f(x) by max⁡{f(x)+1,f(x−1),f(x+1)}\max\{f(x)+1,f(x-1),f(x+1)\}max{f(x)+1,f(x−1),f(x+1)} and leaves the other columns unchanged.
  4. Finite substrate. boxHeight τ L t =ξtQL=\xi^{Q_L}_t=ξtQL​​ is the height profile obtained from the flat profile 000 by applying bdStep at every ring (Tx,n,x)(T_{x,n},x)(Tx,n​,x) with ∣x∣≤L|x|\le L∣x∣≤L and Tx,n≤tT_{x,n}\le tTx,n​≤t, in increasing order of time (ties, a null event, broken by column). Columns outside QL=[−L,L]Q_L=[-L,L]QL​=[−L,L] stay at 000.
  5. Infinite substrate. bdHeight τ t x =ξt(x)=sup⁡LξtQL(x)∈N∪{∞}=\xi_t(x)=\sup_{L}\xi^{Q_L}_t(x)\in\mathbb N\cup\{\infty\}=ξt​(x)=supL​ξtQL​​(x)∈N∪{∞}, the monotone limit of the finite-substrate heights. bdNextHeight τ t x =ηt(x)=max⁡{ξt(x)+1,ξt(x−1),ξt(x+1)}=\eta_t(x)=\max\{\xi_t(x)+1,\xi_t(x-1),\xi_t(x+1)\}=ηt​(x)=max{ξt​(x)+1,ξt​(x−1),ξt​(x+1)} is the next-arrival height, and bdHeightReal τ t x is ξt(x)\xi_t(x)ξt​(x) as a real number (with value 000 where ξt(x)=∞\xi_t(x)=\inftyξt​(x)=∞).

This is the nearest-neighbour lattice ballistic deposition model of Penrose (2008, Section 2) in dimension d=1d=1d=1, started from a flat surface, and the model (1) of Sudijono (2026) with d=1d=1d=1.

Formalization Note When the finite-box ring set is infinite (a null event) it is replaced by the empty set; bdHeightReal maps ∞\infty∞ to 000. Both conventions only affect null events.

Definition code
import Mathlib

/-!
# Ballistic deposition and random deposition on `ℤ`

Model layer for the KPZ-universality mission on one-dimensional ballistic deposition.

Each column `x : ℤ` carries a rate-one Poisson clock, encoded by its i.i.d. `Exp(1)`
inter-arrival times `τ x k`.  The `n`-th ring (`n = 0, 1, 2, …`) of column `x` happens at time
`arrivalTime τ x n = τ x 0 + ⋯ + τ x n`.

* **Random deposition**: the height of column `x` at time `t` is the number of rings of the
  clock of `x` in `[0, t]`.
* **Ballistic deposition** (nearest-neighbour model, flat initial surface): when the clock of
  column `x` rings, the height of `x` is updated to
  `max (f x + 1) (max (f (x - 1)) (f (x + 1)))`.
  On the finite substrate `Q_L = [-L, L]` only the clocks in `Q_L` are used and columns
  outside `Q_L` stay at height `0`; the rings in `[0, t]` are processed in increasing time
  order.  The height on the infinite substrate `ℤ` is the (monotone) limit `L → ∞`, i.e. the
  supremum over `L`, taken in `ℕ∞`.
-/

open MeasureTheory ProbabilityTheory

namespace KPZBallistic

/-- Standing hypotheses on the clock data: the inter-arrival times `τ x k`, indexed by
`(x, k) ∈ ℤ × ℕ`, are measurable, mutually independent, and each has the exponential law of
rate `1`. -/
structure IsPoissonClocks {Ω : Type*} [MeasurableSpace Ω] (P : Measure Ω)
    (τ : ℤ → ℕ → Ω → ℝ) : Prop where
  measurable : ∀ x k, Measurable (τ x k)
  indep : iIndepFun (fun p : ℤ × ℕ => τ p.1 p.2) P
  law : ∀ x k, P.map (τ x k) = expMeasure 1

/-- Time of the `n`-th ring (counting from `n = 0`) of the clock of column `x`. -/
def arrivalTime {Ω : Type*} (τ : ℤ → ℕ → Ω → ℝ) (x : ℤ) (n : ℕ) (ω : Ω) : ℝ :=
  ∑ k ∈ Finset.range (n + 1), τ x k ω

/-- Random deposition height of column `x` at time `t`: the number of rings of the clock of
`x` during `[0, t]`. -/
noncomputable def rdHeight {Ω : Type*} (τ : ℤ → ℕ → Ω → ℝ) (t : ℝ) (x : ℤ) (ω : Ω) : ℕ :=
  {n : ℕ | arrivalTime τ x n ω ≤ t}.ncard

/-- One ballistic-deposition update at column `x`: the new height of `x` is
`max (f x + 1) (max (f (x - 1)) (f (x + 1)))`, all other heights are unchanged. -/
def bdStep (f : ℤ → ℕ) (x : ℤ) : ℤ → ℕ :=
  Function.update f x (max (f x + 1) (max (f (x - 1)) (f (x + 1))))

/-- The rings in the box `[-L, L]` during `[0, t]`, as (time, column) pairs ordered
lexicographically (so by time first). -/
noncomputable def boxEvents {Ω : Type*} (τ : ℤ → ℕ → Ω → ℝ) (L : ℕ) (t : ℝ) (ω : Ω) :
    Finset (ℝ ×ₗ ℤ) :=
  open Classical in
  let S : Set (ℝ ×ₗ ℤ) :=
    {e | |(ofLex e).2| ≤ (L : ℤ) ∧ (ofLex e).1 ≤ t ∧
      ∃ n : ℕ, arrivalTime τ (ofLex e).2 n ω = (ofLex e).1}
  if h : S.Finite then h.toFinset else ∅

/-- Ballistic deposition on the finite substrate `[-L, L]` with flat initial surface: start
from height `0` everywhere and apply `bdStep` at each ring of `[0, t]` in time order. -/
noncomputable def boxHeight {Ω : Type*} (τ : ℤ → ℕ → Ω → ℝ) (L : ℕ) (t : ℝ) (ω : Ω) :
    ℤ → ℕ :=
  open Classical in
  ((boxEvents τ L t ω).sort (· ≤ ·)).foldl (fun f e => bdStep f (ofLex e).2) (fun _ => 0)

/-- Ballistic deposition height (last-arrival height) of column `x` at time `t` on the
infinite substrate `ℤ`, flat initial surface: the limit of the finite-substrate heights as
`L → ∞`, which is their supremum. -/
noncomputable def bdHeight {Ω : Type*} (τ : ℤ → ℕ → Ω → ℝ) (t : ℝ) (x : ℤ) (ω : Ω) : ℕ∞ :=
  ⨆ L : ℕ, ((boxHeight τ L t ω x : ℕ) : ℕ∞)

/-- Next-arrival height of column `x` at time `t`: the height column `x` would jump to if its
clock rang at time `t`. -/
noncomputable def bdNextHeight {Ω : Type*} (τ : ℤ → ℕ → Ω → ℝ) (t : ℝ) (x : ℤ) (ω : Ω) :
    ℕ∞ :=
  max (bdHeight τ t x ω + 1) (max (bdHeight τ t (x - 1) ω) (bdHeight τ t (x + 1) ω))

/-- Real-valued ballistic deposition height (`0` on the null event where the height is
infinite). -/
noncomputable def bdHeightReal {Ω : Type*} (τ : ℤ → ℕ → Ω → ℝ) (t : ℝ) (x : ℤ) (ω : Ω) :
    ℝ :=
  ((bdHeight τ t x ω).toNat : ℝ)

end KPZBallistic
Source
M. D. Penrose, Growth and roughness of the interface for ballistic deposition, J. Stat. Phys. 131 (2008), https://arxiv.org/abs/math/0608540, Section 2, pp. 3-4 (lattice ballistic deposition, NN model, d = 1); T. Sudijono, A Linear Variance Bound for Ballistic Deposition (2026), https://arxiv.org/abs/2609.24056, eq. (1); I. Corwin, The Kardar-Parisi-Zhang equation and universality class, Random Matrices Theory Appl. 1 (2012), https://arxiv.org/abs/1106.1596, Section 1.1.1, p. 3
Human review
  • Endorsed by Shuze Chen · Oct 11, 2026

    Confirmed by the moderator at approval.

  • Endorsed by Lucas · Oct 11, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paperProve2Me Team
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me