# Mathlib / BrownianMotion-Package Bridge Audit **Date:** 2026-05-22 **Scope:** All modules under `MathFin/Foundations/` plus pricing-module consumption of Mathlib's probability surface. ## Executive summary The earlier critique that "4664 LOC of Foundations is dead code from pricing modules" was **half right and half wrong**: - **Right** that the BM/Wiener/martingale machinery is structurally disconnected from pricing modules. `IsBrownianMotion`, `Martingale` (Mathlib class), `wienerIntegral`, `quadraticVariation`, `StoppingTime`, `condExp` are referenced **0 times** in any pricing module. - **Wrong** that Foundations duplicates Mathlib. Of the 9 substantive Foundations files audited below, **8 fill genuine Mathlib gaps** that cannot be replaced by direct Mathlib imports. The right action is **additive bridges** (constructors connecting Foundations to pricing) rather than **destructive replacement** (deleting Foundations in favor of Mathlib equivalents). Phase 30 (Bridge A, `BSCallHypFromBrownian.lean`) is the first such bridge. ## Per-module audit findings ### Foundations/BrownianQuadraticVariation.lean (161 LOC) - **Status:** Fills Mathlib gap. NOT duplicate. - **What it does:** L¹-expectation form of `[B, B]_t = t` for processes with Gaussian increments. Pure marginal-moment computation via `variance_id_gaussianReal`. - **BrownianMotion package equivalent:** `StochasticIntegral/QuadraticVariation.lean` defines `quadraticVariation` via the Doob-Meyer decomposition (`predictablePart` of squared norm). Currently sorry-laden (WIP). - **Bridge opportunity:** Once BM package's path-wise QV is complete, derive our L¹ version as its expectation. For now, **keep both**. ### Foundations/LpContinuousMartingaleConvergence.lean (725 LOC) - **Status:** Fills Mathlib gap. NOT duplicate. - **What it does:** L^p convergence at naturals for continuous-time L^p- bounded martingales (`lp_continuous_martingale_converges_at_naturals`). - **BrownianMotion package equivalent:** `StochasticIntegral/DoobLp.lean` proves Doob's maximal inequality (`maximal_ineq_countable`, `maximal_ineq_ennreal`). Related but not the same theorem. The maximal inequality is *used* in our convergence proof. - **Bridge opportunity:** Replace our internal Doob's maximal inequality (if any) with imports from BM package's `DoobLp.lean`. Low-LOC change, defer until needed. ### Foundations/MartingaleTransform.lean (123 LOC) - **Status:** Fills Mathlib gap. NOT duplicate. - **What it does:** Discrete martingale-transform construction `(A · M)_n := ∑_{k