This project distinguishes two claims:
- Backend verification coverage: active Lean code checks successfully.
- Faithful theorem formalization: the checked statement closely matches the course theorem AND the proof is a real derivation, not a structural projection from an axiomatized conclusion.
The first claim is useful engineering evidence. The second is the academic claim. Do not collapse them.
full: a faithful formal derivation of the textbook theorem from its hypotheses. The hypotheses must be encoded honestly (not the conclusion in disguise) and the proof must do real work —ring/simp/rflon a structure-projection target does NOT qualify.library_wrapper: the active code directly invokes a named Lean library theorem whose statement matches the benchmark theorem. The library does the real work.reduced_core: the active code is honest but narrower than the textbook theorem. This includes:- Algebraic / analytic / distributional core checks (e.g., a constant-θ MGF identity behind Wald's exponential).
- Lean specifications where the textbook conclusion is encoded as a structure field and the proof reads it off via projection. The structure pins down the textbook STATEMENT but does not derive the conclusion.
placeholder: active prover code verifies but does not yet encode a meaningful formal statement of the textbook theorem.
For delivery claims, count only:
full + library_wrapper
Report reduced_core and placeholder separately. Spec-with-axiomatized-conclusion is reduced_core, not full.
Live status (2026-08-17): corpus 367, 336 full + 18 wrappers = 354/367 delivery-ready, 13 reduced cores, 0 placeholders. Ledger 367 fresh / 0 stale / 0 missing;
lake build MathFinandlake lintgreen,pytest50/50,AxiomAuditGenat 327 guards (231 curated). The contracts tower below is the new round; the Itô chain rule and its coherence pass are the two blocks after it.2026-08-17 — the contracts tower: a reified payoff language, closed to Black–Scholes (358 → 367). Five new modules under
MathFin/Contracts/, nine entriesmf-contract-*.Core.leanreifies a payoff as data —Payoff ι/Contract ιinductives over a typed underlying indexι(ι = Unitfor the single-asset instances below), not the inline lambda every other payoff in the library is written as.Adapted.leanproves the reification pays for itself, against a future rung:Payoff.measurable_eval_of_obsTimes_leis the adaptedness hypothesis aPayoffwill need to be a legitimate stochastic-integral integrand —𝓕 u-measurability follows from every observation time inobsTimes(a syntactic, sufficient-not-necessary over-approximation) being≤ u. No theorem in this round consumes it yet —Pricing.leanintegrates against a fixed measure, never a filtration, so it has nothing to discharge this hypothesis against.Pricing.leanintegratespathPVagainst a measure intoContract.value, proves it linear (value_scaleunconditional,value_bothneeding both integrability hypotheses —integral_addis false without them), and provesvalue_deliverAsset/value_process_martingalefromMartingale.condExp_ae_eqandmartingale_condExpalone — deliberately noIsEMMhypothesis anywhere in the file, since neither theorem touches the mutual-absolute-continuity content (ac/ac') that turns a martingale measure into an equivalent one.BlackScholes.leanandCappedCall.leanclose the loop:value_pay_eqreducesContract.valueon any single-cashflow contract to exactly the payoff integral, sovalue_europeanCall/value_europeanPut/value_digitalCallreachbs_call_formula/bs_put_formula/bs_cash_or_nothing_formulaby onerweach, andvalue_cappedCallreaches the bull-spread difference by composingvalue_europeanCalltwice throughContract.value_both/value_scale— no third integral.cappedCall_payoff_eqis a separate theorem (mf-contract-capped-call) transporting the existing pointwise identitycappedCall_eq_bull_spreadonto the composed contract'spathPV; it, not the definition's name, is what earnscappedCallits name, and the corpus keeps the payoff and value claims as two entries (mf-contract-capped-call/mf-contract-capped-call-value) rather than one that would silently attach the pricing result to whichever entry a reader opens first.The honest ceiling, stated once for the whole tower.
Payoffis a finite inductive walked byList-valuedobsTimes, so every instance here is a payoff kernel over a finite observation grid — no continuously-monitored barrier is expressible. Rung (c) (theBlackScholes.lean/CappedCall.leanreductions) is single-asset,ι = Unit, under theBSCallHyphypothesis bundle each closed form already needed; nothing here prices under a model that is not separately assumed. The martingale rung (value_deliverAsset,value_process_martingale) is the value process, not the hedge: it does not identifyContract.valuewith the initial wealth of a replicating strategy (that primitive,MarketCompletenessInPrice.exists_replicating_strategy_in_price, landed onmainthe day before this round and is the natural next rung, deferred). And none of it is a term-sheet formalisation — no calendar, business-day convention, disruption, corporate action or issuer credit exists at any instantiation, and no entry'sdescriptionorformalization_scopeclaims one. Consulted as a source, not a template: Bilokon, The Contract Is Not the Model (working paper, 2026); seedocs/sources.mdfor what was taken and what was not. All nine entries axioms-clean,full. Net: corpus 358 → 367, 327 full → 336 full + 18 = 354/367 delivery-ready, 13 reduced, 0 placeholders.2026-08-17 — coherence pass over the chain-rule tower (corpus unchanged at 358). No new entries; the round is about what the previous one asserted rather than proved.
- The uniqueness clause now says what it should. The band identity is summed over a whole simple process (
itoIntegralAgainst_simpleProcess), soitoIntegralAgainst_unique_of_riemannStieltjestakes agreement with the written-out sums∑ₚ V(p)·(M_{p.2} − M_{p.1})— a hypothesis naming no stochastic integral — rather than agreement with the object being characterised. Closes #195.- A theorem that may have been vacuous is now known not to be.
Martingalerequires adaptedness pointwise;pricePath, built fromLpclasses, supplies only its a.e. version, soPricingMeasureL2Density's martingale hypothesis had no exhibited witness. The statements are now carried on an abstract adaptedSagreeing a.e. with the price — the formContinuousMarket.IsEMMalready used, for the same reason — andexists_density_price_martingalesupplies the witness viapricePathCondExp, the price rebuilt fromμ[· | 𝓕_t]. This is the price-side counterpart ofpricesGainsAtZero_self. Nothing in the gate stack could see this: the theorem was true, axiom-clean and green.- A duplicated proof removed and a definition deduplicated.
ItoIntegralL2.uncurry_ae_eq_sum_rectTerm_of_ae_fst_ne_zerostates the band decomposition for any measure charging the time origin nothing — generalised over theMeasurableSpacetoo, which is the part that lets a trimmed measure reuse it.elemIntegrandbecame the primitive andrectTermitsrfl-equal instance. Closes #197.- A hypothesis deleted and one weakened.
hDmeas : Measurable ⇑Dwas derivable (Lp.stronglyMeasurable) and was carried through five theorems and out into the corpus;hDis now a.e. rather than pointwise.lake lintthen foundbracketMeasure_mulLI's[IsProbabilityMeasure μ]unused.d⟨ψ●M⟩ = ψ² d⟨M⟩(bracketMeasure_mulLI): the construction is closed under itself.- Prose corrected.
bracketMeasureis defined asφ²·trim_T; the repo constructs no quadratic variation, so the identification withd⟨M⟩is motivation, and the docstrings andleaps.mdnow say so. Earning the name is #200; #199 and #201 carry the other deferrals.2026-08-16 — the chain rule, the integral against a price, and the pricing measure (353 → 358). For a predictable
L²driverφandM = φ●B, the integrands square-integrable againstMare the bracket-weightedL²(φ²·trim_T), andItoIntegralAgainstMartingale.itoIntegralAgainstCLMisitoIntegralCLM_Tprecomposed with multiplication byφ. Both factors are isometries, so‖∫ψ dM‖ = ‖ψ‖_{L²(⟨M⟩)}— the Itô isometry againstM, and the reason the weighted space is the right domain. Five entries:sc-ito-chain-rule(∫ψ dM = ∫ψφ dB),sc-ito-integral-band(∫ Z·1_{(a,b]} dM = Z·(M_b − M_a), the Riemann–Stieltjes agreement that identifies the construction),sc-simple-dense-bracket(simple processes dense in the weightedL²),gir-replication-in-price,gir-pricing-measure-density.What changed for the pricing measure.
gir-pricing-measure-unique(2026-08-07) assumedPricesGainsAtZero.gir-pricing-measure-densityderives it: forS = S₀ + (σ●B)withσ ≠ 0a.e., a probability measureQ = D·μwithD ∈ L²(μ)under whichSis a martingale prices the traded gains at zero, hence agrees withμon all of𝓕ᴮ_T. The functionalψ ↦ 𝔼_Q[∫ψ dS]is an inner product against the density composed with an isometry, so continuity isinnerSL's; it vanishes on a band because that integral is a bounded predictable weight against aQ-martingale increment, then on simple processes by linearity and theLpband decomposition, then everywhere by density.Scope, stated plainly, and unchanged where it was already honest. Square-integrability of the density is not removable by this argument — it is exactly what buys continuity. The price is driftless by construction; a drift term is additive and is what the HJM bond dynamics need.
σ ≠ 0a.e. is required (only that — no uniform lower bound; the weighted norm rescales). Onlycomplete ⟹ uniqueis delivered, the Jacod–Yor converse being untouched, and the agreementQ = μis on𝓕ᴮ_T, saying nothing off that σ-algebra. The single-band identity does not come with a stated summed version over a general simple process: what exists is theLpdecompositionsimpleAssemblyOfMeasure_eq_sum_bandsit would follow from, anditoIntegralAgainst_uniquecorrespondingly takes agreement on simple processes rather than on written-out sums. Degenne's axiomaticIsStochasticIntegralcharacterisation is the right frame for that uniqueness clause but exists only onv4.33.0-rc1, so instantiating it waits for a stable pin.Superseded status (2026-08-07): corpus 353, 322 full + 18 wrappers = 340/353 delivery-ready, 13 reduced cores, 0 placeholders. Ledger 353 fresh / 0 stale / 0 missing;
lake buildandlake lintgreen with no#guard_msgsfailure. The round covered martingale representation + market completeness, then the localized Itô formula naming its integrand, then the description-semantics fix below; the last two entries are the downside-performance-metrics work of #173 and the von Neumann–Morgenstern lotteries of #178.itoIntegralCLM_Twas already aLinearIsometryfrom the predictableL²(dt⊗dμ)integrands intoL²(μ).MathFin/Foundations/MartingaleRepresentation.leanidentifies its image exactly:itoIntegralCLM_T_surjective_onto_centeredsays the Itô integrals together with the constants exhaustlpMeas ℝ ℝ 𝓕ᴮ_T 2 μ, anditoIsometryEquivbundles the isometry as an equivalence onto the centered part. The route is orthogonal decomposition against the (closed, because isometric) range, plus totality of the step-integrand Doléans exponentials (WienerExponentialTotality.eq_zero_of_orthogonal_stepDoleans,DoleansStepRepresentation.stepDoleans_sub_one_mem_range), settled on the dyadic cylinder σ-algebras ofBrownianCylinderGeneration, whose supremum is the natural filtration (iSup_cylinderFiltration_eq_natFiltration). No Malliavin calculus and no adapted-integrand Itô formula. Centering,𝔼[∫₀ᵀ φ dB] = 0, is proved a floor down asItoIntegralProcessGeneral.integral_itoIntegralCLM_T, not assumed.gir-thm-9.3.4flipsreduced_core → full(14 → 13 reduced cores): it had been aPropstructure whose conclusion was a bundled field read off by projection, and it now re-exportsmartingale_representation, the process form the entry states. Three new entries.gir-mrt-range-surjectiveis the submodule form above.gir-market-completeness(MathFin/Foundations/MarketCompleteness.lean,exists_replicating_strategy) is the finance reading: everyL²𝓕ᴮ_T-claim is the terminal wealth𝔼_μ[H] + ∫₀ᵀ φ dBof a strategy, with a unique hedge.gir-pricing-measure-unique(measure_eq_of_pricesGainsAtZero) is uniqueness of the pricing measure on the Brownian filtration, for measures that price the traded gains at zero.Scope of the uniqueness result, stated plainly.
gir-pricing-measure-uniqueis not the unconditional second FTAP, and it does not follow fromIsEMMalone. The textbook argument needs the replicating wealth to be a stochastic integral against the priceS, hence a martingale under every EMM; the wealth process martingale representation builds is an integral againstB, andSandBshare only a filtration. That fair-game step is therefore a named hypothesis,PricesGainsAtZero Q: every terminal Itô integral isQ-integrable with zeroQ-mean. What is hypothesised is step (i) of the textbook proof; what is proved is step (ii). The hypothesis is guarded by two proved facts rather than asserted:pricesGainsAtZero_self(μsatisfies it, so nothing here is vacuous) andpricesGainsAtZero_of_gains_martingale(it follows from the textbook gains-martingale condition). The corollaryemm_unique_of_completeconsumes only theisProbandacfields ofIsEMM; itsmartingalefield rides along unused, kept so the statement stays in the vocabulary a reader looks it up under. Onlycomplete ⟹ uniqueis delivered — the converse needs the Jacod–Yor extreme-point characterisation and is out of scope. The companionsuperReplication_eq_emm_priceis the continuous-time superreplication duality, and its "EMM price" is𝔼_μ[H]. It does not close #39:Foundations/SuperhedgingDualityis a finite-state one-period matrix model whose Farkas gate is untouched. The two equalities hold for structurally different reasons, separation there and martingale representation here, and neither implies the other. The hedging strategy class is the Itô-integrable predictable integrands, wider thanContinuousMarket.SimpleStrategy; the widening is forced, since a generalL²claim is not the terminal value of any piecewise-constant holding.ContinuousMarketitself is untouched apart from a scope paragraph. All four entries axioms-clean.The localized Itô formula now names its integrand (#183, closed 2026-08-07; no corpus entries added, five strengthened). The chain
ito_formula_td_L2_bddDeriv → cutoff_bddDeriv → ito_formula_td_localized → ito_formula_itoProcess → ito_formula_gbm/ito_formula_expBrownian → discountedGBM_eq_itoIntegralwas a run of bare existentials, so no consumer could identify the diffusion coefficient — the library could not say "the delta isσŜ". Every link now carriesgfx =ᵐ [the integrand], ending atgfx =ᵐ [σ·Ŝ(·)]for the discounted GBM, andsc-thm-7.1.2,sc-ito-formula-localized,sc-ito-formula-gbm,sc-discounted-gbm-itoandsc-ito-formula-ito-processstate it. This closed a fidelity gap, not just a convenience one: all five entries'descriptionand docstring already wrote the integral as∫₀ᵀ f_x(s,B_s) dB_s/∫₀ᵀ σŜ(s) dB_swhile the Lean said only∃ gfx— the prose was ahead of the statement. The identification argument is a generalLpfact (ae_eq_of_tendsto_Lp_of_tendsto: anL²limit agrees a.e. with a pointwise limit of a.e. representatives, via subsequence a.e. convergence) applied to the observation that each cutoff's chain-rule integrand is eventually constant atf_x(·, B)at every point.L²membership off_x(·, B_·)comes out of the identification rather than being a prerequisite. The forgetful wrapperito_formula_td_L2_bddDeriv, whose only job was to drop the conjunctito_formula_td_L2_bddDeriv_explicitalready carried — the mechanism that created the gap — is merged away: the two are one theorem under the shorter name.The audit that followed (2026-08-07, corpus unchanged). Two overstatements in one day stopped being a one-off, so the class was swept repo-wide.
sc-thm-7.1.1had the identical defect one tower over — description writing∫₀ᵗ f'(B_s) dB_sover an∃ gf'— now fixed throughitoIntegralCLM_T_of_bdd_cont → ito_formula_L2_bddDeriv → _mk. Four descriptions corrected where they claimed the textbook theorem and the entry delivers less (cm-thm-4.3.10noL^pconvergence,sc-thm-8.2.5uniqueness not existence,sc-thm-7.4.5constantσ,sc-thm-9.2.1the Feynman–Kac identification not PDE uniqueness). The README's landmark row forito_formula_unrestrictedwas rendering a local-martingale theorem as an integral identity. Andae_fst_mem_Ioc_trimMeasure_Texisted six times across five files; five retired. The mechanical slice is now gated (test_prose_does_not_outrun_statement, negative-controlled against the three conjuncts it exists to protect); the judgment slice is a standing first pass in the values-review protocol and inCLAUDE.md.
descriptionnow has one job (2026-08-07, closing that open item). All 36 textbook-framed descriptions were read against their statements and 15 — 42% — claimed more than the Lean proved. Beyond the five already corrected: a sign error (mart-prop-2.5.5wrote(X_n−a)⁻where the theorem proves the submartingale(X_N−a)⁺); a stale description contradicting its own status (gir-thm-9.1.8said "Kept reduced_core" on afullentry); a multivariate claim delivered only in 1-D (dist-thm-B.1.2-affine);[B,B]_t = twhere the theorem proves the L¹-meanE[Σ(ΔB)²] → t(sc-thm-6.1.1); plus local-vs-global Hölder, one of two tower equalities, unclaimed continuity of a stopped process, and two Poisson entries stating increment laws for a pair where the prose said "process" and "family".The rule is now:
descriptionstates the theorem as this entry proves it; where an entry delivers less than the source theorem it is named after, the description says so. The structural cause was an asymmetry —formalization_scope, the honest per-entry disclosure, exists on every entry and was not exported, whiledescriptionwas. The claim shipped and the disclosure stayed home.tools/verify/hf_dataset.pynow publishes both.Record correction (2026-08-04, drafter attribution — no theorem changed): corpus 348, 316 full + 18 wrappers = 334/348 delivery-ready, 14 reduced cores, 0 placeholders — all unchanged; this touched
metadata.provenanceonly, and the ledger stayed 348 fresh because the input-hash covers snippet + imports + pins, not metadata.mf-performance-gain_to_painandmf-performance-upside_capturerecordedstatement_source: magistral-autoform. They landed 2026-07-31; Magistral left the drafter on 2026-07-27 (foundry17ac296), so they cannot have been drafted by it. The name was baked in at ENQUEUE rather than written by the stage that ran — the defectassemble.py::sanitize_provenanceexists to stop, added after these had already merged. Both are scrubbed to the drafter-agnosticautoformvia that same function, so theirformalization_scopeprose now reads "autoformalized statement" rather than "magistral-drafted statement".mf-fixedincome-swap(#66) andmf-insurance-premium-principles(#85) landed 2026-07-18, genuinely in the Magistral era, and keep their attribution — the correction is not a rename.formalization.yamlhad a second fault of the same family: it derived the drafter from provenance correctly and then attached it to the TOTAL, crediting one drafter with all four entries. It now tallies per drafter ("Magistral (2) and an unnamed drafter (2)"), withtest_the_disclosure_does_not_generalize_one_drafter_to_every_entryasserting the property. Full rationale invalues-review.md.Prior (2026-07-31, speed greeks + caplet/floorlet parity — closes #8, #27): corpus 348, 316 full + 18 wrappers = 334/348 delivery-ready, 14 reduced cores, 0 placeholders. Three entries finishing two contributions that had been open since June (#36, #38, mertunsall) and had gone stale against the pin bump.
mf-bs-speed(BlackScholes/HigherGreeks): speed∂³V/∂S³ = ∂Γ/∂S = -ϕ(d₁)(d₁ + σ√τ)/(S²σ²τ). Placed beside vanna/volga/charm rather than in the PDE file — gamma is the quotientϕ(d₁)/(S σ √τ)(hasDerivAt_bsV_SS), so speed is one quotient rule away, withϕ'(d₁) = -d₁ϕ(d₁)supplying the numerator derivative. The contribution also corrected the formula in issue #8, which was algebraically wrong.mf-black76-speed(Futures/Black76Greeks): the discount factor isF-independent, so the Black-76 speed is a bare-termconst_mulof ther = 0BS speed, withe^{-rT}live in both the function and the value — matching the sibling greeks, so therbinder is load-bearing.mf-caplet-floorlet-parity(Futures/Black76):V^caplet - V^floorlet = α·(F - K), derived by applyingswaption_payer_receiver_parityrather than re-running the samePhi-symmetry argument —blackCaplet_eq_blackPayerSwaptionrecords that a caplet is the payer swaption's formula with the accrual factor where the annuity sits. The caplet and floorlet price definitions carry no benchmark entry of their own: price-equals-definition closes byrfl, so they are exercised through the parity identity and the ledger instead, and the definitional-rflallowlist stays empty. Axioms-clean.Prior (2026-07-31, forward-rate agreement — closes #67): corpus 345, 313 full + 18 wrappers = 331/345 delivery-ready, 14 reduced cores, 0 placeholders.
mf-fixedincome-fra(FixedIncome/FRA, closes #67; the first outside contribution to the corpus): the simple forward rateF = (P(0,T₁)/P(0,T₂) - 1)/δ, FRA valueV = δ·P(0,T₂)·(F-K), its expanded discount-factor identity, and the fair-rate equivalenceV = 0 ↔ K = F. The generic discount-factor algebra is stated once and instantiated on the existingzcbcurve;P(0,T₂) ≠ 0is derived fromzcb_posrather than assumed, leavingδ ≠ 0as the only hypothesis — the natural-generality discipline applied without prompting. The proof structurally consumesMathFin.zcb; it does not encode the conclusion in aletbinding or close a benchmark withrfl.Prior (2026-07-31, gain-to-pain + upside capture — closes #161, #162): corpus 344, 312 full + 18 wrappers = 330/344 delivery-ready, 14 reduced cores, 0 placeholders.
mf-performance-gain_to_painandmf-performance-upside_capture(Performance/RatiosExtended): the two realised-path ratios join the four moment ratios already in that module.gainToPainis written on Mathlib's positive/negative parts (r⁺,r⁻) rather than open-codedmax _ 0, which buysposPart_sub_negPartand henceone_le_gainToPain_iff— the ratio clears 1 exactly when the period was profitable, the statement that makes the definition worth having.upCapture_smulis degree-one homogeneity in the portfolio leg.Both landed as one refined change consolidating four duplicate autoform PRs (#163/#165 for #161, #164/#167 for #162 — the pipeline drafted each target twice). Each draft carried a spurious division guard (
0 < ∑ r⁻,∑ b ≠ 0) that neither issue asked for and neither proof needs: in Leanx / 0 = 0, so nonnegativity and homogeneity both hold unconditionally. The guards are dropped, so the merged statements are strictly stronger than the drafted ones. Each draft also created a new one-lemma module instead of theRatiosExtendedmodule both issues named; consolidated. Axioms-clean.Prior (2026-07-18, in-out barrier parity — closes #53): corpus 342, 310 full + 18 wrappers = 328/342 delivery-ready, 14 reduced cores, 0 placeholders.
mf-barrier-inout-parity(BlackScholes/BarrierParity, closes #53): knock-in / knock-out in-out parityV_in + V_out = V_vanilla— the barrier-hit eventAand its complement partition every path, so the discounted expected payoffs add to the vanilla price (pure linearity of expectation; no barrier density, in the register ofchooser_integral_decomp). The proof lifts the pathwise payoff splitbarrier_payoff_partition(𝟙_A·f + 𝟙_{Aᶜ}·f = f,Set.indicator_self_add_compl) throughintegral_indicator+integral_add_compl. New defdiscountedValue D Q g = D·E_Q[g]— the present-value functional the pricing files had only ever written inline, now named so the three barrier values (knockInValue/knockOutValue/vanillaValue) are thin specialisations and parity reads as an identity about values. Axioms-clean. Provenance: the target the autoform pipeline repeatedly failed to draft (depth-gate, then a hallucinatedMathFin.zcb); authored by hand as the bottleneck-locating control.Prior (2026-07-18, second refined autoform PR — loaded premium principles): corpus 341, 309 full + 18 wrappers = 327/341 delivery-ready, 14 reduced cores, 0 placeholders.
mf-insurance-premium-principles(Actuarial/ActuarialInsurance, closes #85; the second autoform-pipeline PR — the generalization run's output, Leanstral-drafted and -proved, human-refined at review): the three classical loaded premium principles — expected-value(1+θ)·μ, varianceμ + α·σ², standard-deviationμ + β·σ— each with its own named nonnegative-loading bound (expectedValuePremium_ge_meanviale_mul_of_one_le_left,variancePremium_ge_mean/stdDevPremium_ge_meanvia one-termmul_nonnegcertificates), and the bundlepremium_ge_meanassembled from them. The loadings sit on top of the net premium ofActuarial/Insurance.lean(prose seam; the net-premium algebra there is Mathlib'seq_div_iffconsumed directly, same certificate family as the swap par identity). Refinery diff vs the draft: signature-bound def arguments + docstrings (thedocBlamered), the never-used coupling hypothesishσ_eq : σ = √σ²dropped, the unusedInsuranceimport dropped, per-principle lemmas extracted so the bundle is a⟨…, …, …⟩of certificates rather than threenlinarithcalls.Prior (2026-07-18, first refined autoform PR — the vanilla swap par identity): corpus 340, 308 full + 18 wrappers = 326/340 delivery-ready, 14 reduced cores, 0 placeholders.
mf-fixedincome-swap(FixedIncome/InterestRateSwap, closes #66; the first autoform-pipeline PR to land — Leanstral-drafted and -proved, human-refined at review): the par identitypayerSwapValue P₀ Pₙ K A = 0 ↔ K = parSwapRate P₀ Pₙ A, proved abstractly for any nonzero annuity (payerSwapValue_eq_zero_iff, a two-rewritesub_eq_zero/eq_div_iffcertificate) and instantiated on thezcbcurve (payerSwapValue_zcb_eq_zero_iff) where positivity is discharged byzcb_pos+annuity_pos— assumed nowhere. New defsannuity(A = δ·∑ P(0,Tᵢ)— the numéraire slotblackPayerSwaptionconsumes),payerSwapValue,parSwapRate. The refinery diff vs the drafted statement: derivable positivity hypothesis dropped, member-witness binders replaced bys.Nonempty, flat-curve specialization demoted from theorem to corollary, snake_case def names and missing docstrings fixed (the classes the pipeline now gates itself).Prior (2026-07-18, jump calculus — the Itô–Lévy integral CLM): corpus 339, 307 full + 18 wrappers = 325/339 delivery-ready, 14 reduced cores, 0 placeholders. The jump/Lévy axis now carries the compensated-Poisson (Itô–Lévy) stochastic integral all the way to a continuous linear operator and its
L²isometry —cgarryZA/LevyStochCalc's (Apache-2.0, cited) axiom #6 in full generality (sc-levy-integral-clm-isometry,Foundations/PoissonCompensatedIntegralOperator). The integralH ↦ ∫ H dÑis built on marked simple integrands (levySimpleModule, aFinsuppsubmodule of adapted bounded space-time-box coefficients), shown an isometry there (assembly_isometry, summing the overlapping-box bilinear pairingsc-levy-bilinear-pairing:𝔼[(φa·Ñ(boxa))(φb·Ñ(boxb))] = 𝔼[φa·φb]·ν̂(boxa∩boxb)), then extended by continuity (LinearMap.extendOfNorm) to its wholeL²(dP⊗dν̂)closure —itoLevyIntegralL2 : levyClosure N →L[ℝ] L²(P)with‖itoLevyIntegralL2 H‖ = ‖H‖. Design win: defining the target astopologicalClosure(range emb)makes the density hypothesis a softIsInducing.subtypeVal.dense_ifffact — no from-scratch marked-predictableσ-algebra (the route the continuous Itô CLM needed a bespoke trimmed measure for). The simple-integrand rungssc-levy-isometry-compensated-simple(the grid double sum𝔼[(∑ⱼ∑ₗ φⱼₗ·Ñ((tⱼ,tⱼ₊₁]×Aₗ))²] = ∑ⱼ∑ₗ 𝔼[φⱼₗ²]·(tⱼ₊₁−tⱼ)·ν(Aₗ),Foundations/PoissonCompensatedIntegralL2) andsc-levy-isometry-normform(norm form𝔼[(∫ H dÑ)²] = ‖H‖²_{L²(dP⊗dt⊗dν)}) proved axiom #6 at the simple level via the single independent-scattering PRM fieldindep_of_disjoint_region(with the diagonal Poisson second moment𝔼[Ñ(B)²]=ν̂(B), a Mathlib gap-fill via the pmf index-shift(n+1)·c_r(n+1)=r·c_r(n)); the integral CLM closes their declared dense-extension follow-up. Honest scope: all foursc-levy-*entries are axiom-cleanfull; PRM existence (LevyStochCalc's axiom #2 — Mathlib has no PRM substrate) remains a declared, deferred Summit.Prior (2026-07-16, multi-asset matrix Riccati): the two matrix-Riccati
fullentriesmf-mm-matrix-riccati/mf-mm-matrix-value(Foundations/MatrixMarketMakingRiccati, BEGV Proposition 2): the spectral-reduction closed forma(t) = U·diag(riccatiCoeff(λᵢ))·Uᴴsolvinga'(t) = a(t)·a(t) − ·Âand its market-making instantiationA' = 2·A·D₊·A − (γ/2)·Σ; theB/Ccoefficients, general-dvalue verification, and optimal-control substrate remain deferred.Prior (2026-07-16, single-asset market-making Riccati): corpus 333, 301 full + 18 wrappers = 319/333 delivery-ready, 14 reduced cores, 0 placeholders. Three new
fullentries open optimal market making (Foundations/MarketMakingRiccati) — the single-asset (d = 1) closed-form approximation of Bergault–Evangelista–Guéant–Vieira (arXiv:1810.04383): the Riccati coefficientmf-mm-riccati(a(t) = ·tanh(Â(T−t))solvesa' = a² − ²; thetanhderivative is derived locally, Mathlib carrying none at this pin), the value-function verificationmf-mm-value-function(the quadratic ansatzθ̌ = −Aq² − Bq − Csolves the approximate quadratic-Hamiltonian Hamilton–Jacobi equation given the Riccati/linear ODE system — Prop. 1 atd = 1, theB/Ccoefficients certified by theringclosure), and the closed-form quotesmf-mm-quotes(constant half-spread + inventory-linear skew, instantiated at the Model-AquoteConstAand Model-BquoteConstBconstants). Honest scope (mirroringmf-almgren-chriss-EL): we verify the closed-form solution of the approximate HJ equation only; the stochastic optimal-control substrate (existence of the true value function, the verification theorem linkingθto optimal quotes), the approximation-to-truth (numerical in the paper), the multi-asset matrix-Riccati case, and theT → ∞ergodic limit are out of scope / deferred follow-ups.Prior (2026-07-12, continuous first-FTAP frame): corpus 330, 298 full + 18 wrappers = 316/330 delivery-ready, 14 reduced cores, 0 placeholders. Four new
fullentries land the model-agnostic continuous-market EMM frame (Foundations/ContinuousMarket): the general forward FTAPgir-continuous-emm-forward(isEMM_noArbitrageSimple— an equivalent martingale measure precludes arbitrage against simple piecewise-constant predictable bounded strategies, proved directly via the bilinear conditional-expectation pull-outcondExp_bilin_of_stronglyMeasurable_leftwithinnerSL ℝand a vanishing primitiveae_zero_of_nonneg_of_integral_zeroshared with the discrete FTAP); itsF = ℝinstancegir-discounted-gbm-emm(discountedGBM_isEMM, Q = P: the discounted GBM is already a full-horizonP-martingale, soPis its own EMM); the corollarygir-discounted-gbm-no-arbitrage; and the standalone foundational lemmagir-martingale-reindex(aQ-martingale sampled along a monotone schedule is a discreteQ-martingale). Honest scope: meaning-1 (simple strategies). The physical-measure Girsanov EMMQ ≠ Pis intrinsically bounded-horizon (Q = withDensity Z_Tis a martingale measure only on[0,T]), so a horizon-aware EMM is tracked as follow-up; general admissible strategies / NFLVR / the converse (Delbaen–Schachermayer) are the deferred meaning-2.Prior (2026-07-11, survival-model foundation): corpus 326, 294 full + 18 wrappers = 312/326 delivery-ready, 14 reduced cores, 0 placeholders. Two new
fullentries open the life-contingencies foundation (issue #112): the survival-ratio keystonemf-survival-ccdf-ratio(tpₓ = S_X(x+t)/S_X(x)fort ≥ 0— the conditional-probability definition ofsurvive, built on Mathlib's conditional measurecond, collapses to the ratio) andmf-survival-ccdf-zero(S_X(0) = 1), inActuarial/SurvivalModel. Provenance: the design and proofs are our own, in this library's Mathlib idiom; Yosuke Ito's Isabelle/HOL AFP entry Actuarial Mathematics (Survival_Model, BSD) was consulted as a source for the classical result set and is cited, with the author's kind permission. The disclosure is mechanical —metadata.provenance.source == afp-actuarial-mathematics, counted informalization.yaml.Prior (2026-07-11, finance-breadth sprint): corpus 324, 292 full + 18 wrappers = 310/324 delivery-ready, 14 reduced cores, 0 placeholders. Five new
fullfinance entries land and onereduced_coreflips tofull, somathematical_financeis now 224/225 full: (1) the n-date geometric-Asian option — driver lawmf-asian-geom-n-driver((1/n)∑ B_{τᵢ} ~ N(0, (1/n²)∑∑min(τᵢ,τⱼ))) and closed-form pricemf-asian-geom-n-price(reduction to one effective BS driver),BlackScholes/AsianGeometricN; (2) binomial barrier/lookback via the reflection principle — the counting identitymf-barrier-reflection-countand the running-maximum lawmf-barrier-maximal-distribution(#{max ≥ a} = 2·#{end > a} + #{end = a}), consuming the previously-strandedreflectionPrincipleEquiv_below,Binomial/BarrierReflection; (3) the Girsanov-grounded quanto forwardmf-quanto-forward-grounded— the−ρ σ_S σ_FXdrift adjustment derived from a joint-Gaussian FX model + change of measure rather than posited,BlackScholes/QuantoGrounding; and (4) the compound-Poisson aggregate-loss MGFmf-compound-poisson-mgf(reduced_core → full), the n-claim iid-sum MGF composed with the Poisson pgf,Actuarial/CompoundPoissonMGF. Honestly deferred: the fully general 2D Itô formulasc-thm-7.5.2staysreduced_core— its continuous-time covariation form is a summit-scale build, not a breadth item.
Prior (2026-07-10, bounded-PREDICTABLE Girsanov — Rung 1): corpus 319, 286 full + 18 wrappers = 304/319 delivery-ready, 15 reduced cores, 0 placeholders. New
fullentrygir-thm-9.1.8-predictable(girsanov_predictable_qbm,Foundations/GirsanovPredictableTheta.Btheta_isQBrownianMotion_predictable_of_bdd) strengthens the continuous-adaptedgir-thm-9.1.8to a bounded predictableθ— the honest domain of the ItôL²integral, dropping the path-continuity assumption.B^θ_u = B_u + driftContinuousMod θ̂ u(the genuinely-𝓕-adapted modification of∫₀ᵘθ ds) is aQ-Brownian motion underQ = μ.withDensity(exp(−∫₀ᵀθ dB − ½∫₀ᵀθ² ds)). Still spine-free, over a Route-B marshalled density approximation:θis approximated inL²by clamped dense simple processes marshalled into single-partition(s,c)form (soisExpQMartingale_BthetaSimpleapplies pern); the stochastic integral, drift, AND quadratic variation each converge inμ-measure (via the drift-modification tower'sL²-slice energy identity), fused through a common a.e.-subsequence (exists_subseq_tendsto_ae₂) into the same set-integral enginetendsto_setIntegral_of_subseq_ae_of_sq_boundplus a generic Fatou-L²limit (memLp_two_of_subseq_ae_of_sq_bound), with the partition-generic uniform L⁴/L² moment bounds ofGirsanovSimpleDoleansMoments. Axioms-clean,lake buildgreen (8860 jobs), gates + ledger fresh. Girsanov ladder: constant → simple-adapted → continuous-adapted → predictable (Rung 1); only the strictly more generalL²/progressive-θunder Novikov (unbounded, Rung 2) remainsreduced_core, atsc-thm-9.1.8.Prior (2026-07-09, continuous-adapted Girsanov closes
gir-thm-9.1.8): corpus 318, 285 full + 18 wrappers = 303/318 delivery-ready, 15 reduced cores, 0 placeholders.gir-thm-9.1.8flipsreduced_core → full:girsanov_adapted_continuous_qbm(Foundations/GirsanovAdaptedTheta.Btheta_isQBrownianMotion_adapted) derives the complete Q-Brownian motion — zero start, Gaussian𝒩(0,t−s)increments, independence of disjoint increments — for a bounded (|θ| ≤ C),𝓕-adapted, path-continuousθ, underQ = μ.withDensity(exp(−∫₀ᵀθ dB − ½∫₀ᵀθ² ds))withB^θ_u = B_u + ∫₀ᵘθ ds. Spine-free: rather than a continuous Doléans stochastic exponential proved to be a martingale (a Novikov crux), the simple-θ exponential-martingale identityisExpQMartingale_BthetaSimple(uniform-partition approximantsc⁽ⁿ⁾_i = θ(tᵢ)) is passed to the limit — the stochastic exponentWⁿ = ∑θ(tᵢ)ΔBᵢ → ∫θ dBinL², the drift parts converge everywhere, and the mixed-time set-integral limit∫_A exp(a·Yⁿ−½)·Zⁿ_T → ∫_A exp(a·Y−½)·Z_Tgoes through the a.e.-subsequence enginetendsto_setIntegral_of_subseq_ae_of_sq_boundwith a route-A L⁴/AM-GM uniformL²bound, thenisQBrownianMotion_of_expMartingalereads off the three properties (no adapted-integrand Itô formula). Axioms-clean,lake buildgreen, gates + ledger fresh. This is the culmination of the Girsanov Track-α arc (constant → simple → continuous adapted). Only the strictly more generalL²/progressive-θunder Novikov (unbounded) remainsreduced_core, atsc-thm-9.1.8.Prior (2026-07-08, geometric-Asian lognormality + the Wiener-indicator identity): corpus 318, 284 full + 18 wrappers = 302/318 delivery-ready, 16 reduced cores, 0 placeholders. One new
fullentry plus a reusable foundational brick, both axioms-clean (lake buildgreen, gates + ledger fresh).mf-asian-geom-driver-gaussian(BlackScholes/AsianGeometric.asianGeom_driver_hasLaw): the two-date geometric-Asian log-driver(B_s + B_t)/2— the Gaussian part oflog √(S_s·S_t)under GBM — is GaussianN(0, (3s+t)/4), the variance the Brownian covariance sum(s + 2·min(s,t) + t)/4. This turns the geometric average into a priceable lognormal, complementing the AM-GM payoff boundmf-asian-geom-le-arith-two. The enabling brick isFoundations/WienerIntegralIndicator.wienerIntegralLp_stepIndicator(∫ 𝟙_{(s,t]} dB = B_t − B_s, fromLinearMap.extendOfNorm_eqon the single-basis coefficient), which lets a sum of Brownian values be read as a single Wiener integral of a deterministic step kernel — the same route the Vasicek bond price takes for the integrated rate; here the kernel is a sum of indicators. The law then comes fromwienerIntegralLp_hasLaw_gaussian, its variance the kernelL²-norm evaluated on the Ω-side throughintegral_mul_eval(∫ B_u·B_v = min(u,v)) and zero startB_0 = 0a.s. Honest scope: two dates (matching the AM-GM entry); the n-date extension is the Finset covariance sum(1/n²)∑∑min(tᵢ,tⱼ), unblocked by the same crux. This closes the geometric-Asian item flagged open by the 2026-07-07 note below.Live status (2026-07-07, finance breadth — the Vasicek affine bond price + the T-forward measure): corpus 317, 283 full + 18 wrappers = 301/317 delivery-ready, 16 reduced cores, 0 placeholders. Two new
fullfixed-income entries, both consuming machinery already load-bearing (no new frontier;lake build8852 green, all 19 gates + ledger 317 fresh, both axioms-clean). (1)mf-vasicek-bond-price(FixedIncome/VasicekBondPrice.vasicekBondPrice_affine): the Vasicek zero-coupon bond priceP(0,T) = 𝔼[exp(−∫₀ᵀ r_s ds)]as the Gaussian Laplace transform of the integrated short rate, collapsing to the affine term structureP(0,T) = A(T)·exp(−B(T)·r₀),B(T) = (1−e^{−κT})/κ. The integrated rate∫₀ᵀ r_s ds = M(T) + σ∫₀ᵀ g dBis carried in its Wiener representation (integrated OU kernelg(u) = (1−e^{−κ(T−u)})/κ; the deterministic time-order swap is the modelling bridge, cited — parity with the OU-solution model ofmf-vasicek-sde-terminal-gaussian), its Gaussian lawN(M, σ²V)fromwienerIntegralLp_hasLaw_gaussian+ the FTC variance integral∫₀ᵀ g² = V(T), and the price factorsexp(−M)·𝔼[exp(−σ∫g dB)] = exp(−M + σ²V/2)by the centred Gaussian MGFintegral_exp_mul_gaussianReal_zeroat−σ. Second deterministic-integrand-Wiener consumer in FixedIncome. (2)mf-forward-measure-spot(FixedIncome/ForwardMeasure.forwardMeasure_bs_expected_terminal): the T-forward measureQ^T(zero-coupon bond as numéraire) with𝔼^{Q^T}[S_T] = S_0·e^{rT} = S_0/P(0,T) = F(0,T)— the forward price — as achangeOfNumeraireinstance (bond slotsN_T = P(T,T) = 1,N_0 = P(0,T) = e^{−rT}), the natural next numéraire instance after the stock andS²-numéraires. Honest scope: under the constant-rate ZCB the densitydQ^T/dQ = 1soQ^T = Qcoincides with the risk-neutral measure; the construction carries verbatim to a stochastic short rate. CVaR's Rockafellar–Uryasev variational theorem + the coherence quartet were found already complete (RockafellarUryasev,CoherentAxioms); the geometric-Asian closed-form price (only the AM-GM inequality bound exists) remains a genuine open item (needs the BM joint-Gaussian covariance).Prior (2026-07-03, SDE existence made pathwise — the E-fixed point as a sample-path process, #19 → existence bridge): corpus 312 (unchanged — a Foundations-level formalization advance, not a new benchmark entry). The strong solution, previously banked only as the abstract
L²-fixed pointpicardSolution ∈ E, is now realized as a genuine pathwise process:Foundations/SDEPathwise.sde_pathwise_decompositionslices the fixed-point equationX = Φ(X)(which holds inE) into the sample-path identityX_t(ω) = η(ω) + driftContinuousMod(b∘X)_t(ω) + itoContinuousMod(σ∘X)_t(ω)for a.e.(t, ω). The enabling crux isFoundations/DriftProcessModification.driftProcessAssembled_coeFn: the abstractextendOfNormdrift operator'scoeFnequals the honest pointwise-limUnderprocessdriftContinuousModa.e. It is proved (not, as on the Itô side, true by construction) via two convergences ofdriftSimpleProcessLp Vₙ— CLM-continuity to the operator and a.e. to the pathwise limit (driftContinuousMod_tendsto, a direct Chebyshev maximal bound — no martingale — plus Borel–Cantelli, the drift analog ofitoContinuousMod_tendsto) — unique in measure on the finite trim space, the a.e. convergence lifted from per-slice to the trim measure through the predictable-measurable convergence set. All axiom-clean ([propext, Classical.choice, Quot.sound], pinned inAxiomAudit). The drift term is now the honest single Lebesgue integral (#33, this session):DriftProcessModification.driftContinuousMod_eq_setIntegralprovesdriftContinuousMod g t ω = ∫₀ᵗ ⇑g(s,ω) dsa.e. for everyt ≤ T— the elementary drifts∫₀ᵗ Vₙ dsconverge todriftContinuousMod, and the ω-slice energiesDₙ(ω) = ∫₀ᵀ(⇑Vₙ − ⇑g)² dsdecay inL¹(μ)(= ‖simpleAssembly_T Vₙ − g‖²), so a subsequence hasDₙₖ(ω) → 0a.e., whence the interval Cauchy–Schwarz|∫₀ᵗ(⇑Vₙₖ − ⇑g)| ≤ √(T·Dₙₖ(ω)) → 0matches the two limits.SDEPathwise.sde_pathwise_drift_eq_setIntegralspecializes it tob∘X, so the strong solution's drift term is the recognizable SDE integral∫₀ᵗ b(X_s(ω)) ds, not merely an abstract limit. All axiom-clean.sc-thm-8.2.5's existence half stays the conditional-c < 1Eresult; this bridge makes that solution's sample paths — and now its drift integral — explicit.Prior (2026-07-03, SDE strong-solution uniqueness — the L²-energy Grönwall keystone, #19): corpus 312, 278 full + 18 wrappers = 296/312 delivery-ready, 16 reduced cores, 0 placeholders. The uniqueness half of Theorem 8.2.5 is now a genuinely derived theorem, not an assumed field.
Foundations/SDEUniqueness.IsL2SolutionPair.uniqueness(entrysc-thm-8.2.5, flippedreduced_core→full) proves twoL²strong solutions ofdX = μ(X)dt + σ(X)dBsharing the driver agree a.s. at every time, via the classicalL²-energy argument:E t = 𝔼[(Xₜ−Yₜ)²]satisfiesE t ≤ (2·Cdrift·t + 2·Cdiff)·∫₀ᵗ E, andgronwall_zero_of_le_const_mul_integral(a reusable integral Grönwall, built from Mathlib's differential form via the FTC primitiveG t = ∫₀ᵗ E) forcesE ≡ 0. The drift energy bound is derived from Lipschitzμ(drift_energy_le: Cauchy–Schwarz in time + Tonelli), the diffusion from the Itô isometry. Honest scope: (i) this is the uniqueness half — existence stays the separately-banked conditional-L²Picard result (sde-picard-existence-uniqueness); (ii) the diffusion enters through an operatorIσwhose sole assumed property is the Itô isometry energy bound (theisometryfield ofIsL2SolutionPair) — a genuine, proven property of the Itô integral (itoProcessCLM_norm_sq), not the conclusion in disguise; (iii) a non-vacuity guard (the zero solution) certifies theIsL2SolutionPairfield set is satisfiable. This replaces the priorreduced_coreencoding, whoseuniquenesswas an assumed structural field read off by projection.Prior (2026-07-03, the change of numéraire — the IV↔I seam): corpus 312, 277 full + 18 wrappers = 295/312 delivery-ready, 17 reduced cores, 0 placeholders. The library now has a general change-of-numéraire theorem plus both of its seam directions. (1)
Foundations/Numeraire.changeOfNumeraire(entrymf-change-of-numeraire,full) proves price is numéraire-invariant: withQ^N = Q.withDensity((N_T·B₀)/(N₀·B_T)), every terminal claimXsatisfiesN₀·𝔼^{Q^N}[X/N_T] = B₀·𝔼^Q[X/B_T]— a pure measure-transport identity plus cancellation ofN_T, needing no integrability hypothesis. The backbone is consumed, not orphaned:StockNumeraire.stockNumeraireMeasure_eq_numeraireMeasureexhibits the BS stock numéraire as the instanceB_T = e^{rT},B₀ = 1,N = S, andExchangeOption.exchangeOption_numeraire_price(entrymf-exchange-numeraire,full) exhibits Margrabe'sS²-numéraire valuation as the instanceX =exchange payoff,N = S². (2)Performance/KellyNumeraire.kellyNumeraire_isRiskNeutral(entrymf-kelly-numeraire-emm,full) delivers the numéraire-portfolio ⟹ EMM direction: the growth-optimal (Kelly) wealth, used as deflator, turns the physical measure into the risk-neutral one (q₊·b + q₋·(−1) = 0), thep-independence being exactly the Kelly first-order condition. Honest scope: the portfolio⟹EMM direction is the discrete, two-outcome market — the elementary shadow of the continuous Long/Platen benchmark theorem (deflated prices areP-martingales, EMM density∝ 1/N*), which still needs a state-price-density / market model absent from the Itô tower. Garman's normal form is post-integration closed-form algebra (no measure), so it is not anumeraireMeasureinstance and none was fabricated.Prior (2026-07-02, SDE existence — the Picard fixed point, #44): corpus 309, 274 full + 18 wrappers = 292/309 delivery-ready, 17 reduced cores, 0 placeholders. The strong solution of
dX = b(X)dt + σ(X)dBis now constructed as a Picard fixed point.Foundations/SDEExistence.picardMap_exists_unique_fixedPoint(entrysde-picard-existence-uniqueness,full) builds the Picard iterateΦ(X) = η + ∫₀ᵗ b(X)ds + ∫₀ᵗ σ(X)dBas a self-map of the predictableL²spaceE = Lp 2 (trimMeasure_T T)— its diffusion term the actual Itô integral assembled in the tower — proves the a priori contraction estimate‖Φ X − Φ Y‖ ≤ (T·L_b + √T·L_σ)‖X − Y‖(drift operator normT× Cauchy–Schwarz, Itô operator norm√T× the isometry), and obtains existence and uniqueness of the fixed point via Banach's theorem. Honest scope: theL²/Eformulation, conditional on the small-horizon contraction constant< 1. The abstract-operator benchmarksc-thm-8.2.5(ℝ-time,intervalIntegraldrift, opaqueIσ) staysreduced_corepending theℝ≥0↔ℝ-time translation + a Bielecki all-Textension.Prior (2026-06-30, Phase 2 — Girsanov: the EMM as an explicit change of measure): corpus 308, 273 full + 18 wrappers = 291/308 delivery-ready, 17 reduced cores, 0 placeholders. The Black–Scholes risk-neutral measure is now constructed as a Girsanov density change, not taken as given.
Foundations/Girsanov.bs_discounted_isQMartingale(entrygir-bs-emm-girsanov,full) tilts the physical measure byQ = withDensity(exp(−θX_T − ½θ²T))(constant market price of riskθ = (μ−r)/σ) and proves the discounted stock is aQ-martingale on[0,T]— retiring the Wald shortcut ofdiscountedGBM_isMartingale, which tookQ = Pfrom the start. It stands on a reusable Bayes change-of-measure engineFoundations/ChangeOfMeasure.changeOfMeasure_setIntegral_eq(entrygir-change-of-measure-engine,full): ifZandZ·Dare bothP-martingales thenDis aQ-martingale on[0,T]— no stochastic calculus, only conditional expectations (a Bayes pull-out and a martingale set-integral). The one new estimate is the mixed-time integrability ofD_u·Z_T, via AM–GM (exp(σX_u)exp(−θX_T) ≤ exp(2σX_u)+exp(−2θX_T), each Gaussian-MGF-integrable). This partially wires the architecture doc's Girsanov seam (I↔II, the martingale side; seemathematical-architecture.md). The distributional side is now fully closed for constantθ(2026-07-05):Foundations/GirsanovConstantTheta.Btheta_isQBrownianMotionproves the drift-correctedB^θ_t = X_t + θ tis a genuineQ-Brownian motion — zero start, Gaussian incrementsB^θ_t − B^θ_s ~ N(0, t−s), and independence of disjoint increments (corpusgir-const-theta-qbm,full; the marginal law isgir-const-theta-marginal,full). All three properties are now read off in one application of the process-agnostic exponential characterizationFoundations/ExpMartingaleQBrownian.isQBrownianMotion_of_expMartingale(2026-07-06): the const-θ exponential martingaleexp(a·B^θ − ½a²·)(expBtheta_isQMartingale, from the Bayes engine + two Wald exponentials) is packaged asIsExpQMartingale, and the characterization derives the marginal law, the increment law, and independence — the same reusable module now scheduled to power the simple-/continuous-θ cases (Route α). The increment independence, previously flagged as a Mathlib gap ("conditional-MGF ⟹ independence" is absent — only the reversecondExp_indep_eqexists), is reached WITHOUT that lemma: via Mathlib'sindepFun_iff_charFun_prod, the joint characteristic function atw = (w₁, w₂)is the charFun-at-1of the Gaussian law of the linear combinationw₁·I₁ + w₂·I₂(from the joint-MGF factorisation — acondExp_mul_of_stronglyMeasurable_leftpull-out), so it factors into the two marginal Gaussian characteristic functions (charFun_gaussianReal) — no adapted-integrand Itô formula.Simple (piecewise-constant) adapted θ — now
full(2026-07-06):gir-simple-adapted(Foundations/GirsanovSimpleTheta.Btheta_simple_isQBrownianMotion) provesB^θ_t = X_t + ∑_i c_i (s_{i+1}∧t − s_i∧t)is aQ-Brownian motion underQ = P.withDensity(E^{−c}_T)for bounded𝓕_{s i}-measurable multipliers — the general bounded-adapted-θ Girsanov for the simple case, strictly beyond constant θ, via one application ofisQBrownianMotion_of_expMartingale(no charFun chain re-derived). The two simple-θ-specific ingredients: the spinesimple_spine_ae(E^{−c}·exp(a·B^θ − ½a²·) =ᵐ E^{a−c}) and the mixed-time integrabilityintegrable_expBthetaSimple_mul_density(anL²Hölder:Z_T² = E^{−2c}_T·exp(∑ c_i²Δτ_i)with∑ c_i²Δτ_i ≤ K²T).Continuous adapted θ — now
full(2026-07-09):gir-thm-9.1.8(Foundations/GirsanovAdaptedTheta.Btheta_isQBrownianMotion_adapted) closes the bounded adapted continuous case by exactly theL²-approximation route anticipated here: the simple-θ identityisExpQMartingale_BthetaSimple(on the uniform-partition approximantsc⁽ⁿ⁾_i = θ(tᵢ)) passed to the limit through the a.e.-subsequence set-integral enginetendsto_setIntegral_of_subseq_ae_of_sq_bound(route-A L⁴/AM-GM uniformL²bound on the mixed-time productexp(a·Yⁿ−½)·Zⁿ_T), then one application ofisQBrownianMotion_of_expMartingale— no adapted-integrand Itô formula, no continuous stochastic-exponential-is-a-martingale (Novikov) crux. Open (stillreduced_core): only the strictly more generalL²/progressive-θunder Novikov (unbounded, merely progressively measurable), atsc-thm-9.1.8.
Prior round (2026-06-29, Phase 1 — the convex-duality unification: pricing = risk): corpus 306, 271 full + 18 wrappers = 289/306 delivery-ready, 17 reduced cores, 0 placeholders. The FTAP (pricing) and the coherent-risk representation (risk) are now proved to be the same Hahn–Banach theorem. A shared cone-separation root lives in
Foundations/ConvexDuality.lean— the cone↔simplex separationexists_pos_separating_of_cone_disjoint_simplex+ the point↔cone companionexists_separating_of_not_mem_cone, sharing two atoms (functional_eq_sum_single,functional_nonneg_on_cone). Four newfullcorpus entries stand on it:mf-convex-duality-root(the root); the FTAP kernelexists_pos_dual_of_disjoint_stdSimplexre-derived in place from it (signature byte-identical → no consumer churn);mf-coherent-risk-representation(RiskMeasures/AcceptanceSet.coherentRisk_isLUB, the finite-state ADEH representation stated as anIsLUB, acceptance-set closedness derived from the four axioms, not assumed);mf-worstcase-risk-representation(RiskMeasures/WorstCaseRisk.worstCase_isLUB, a concrete instance — worst-case loss = sup over the whole probability simplex); andmf-superhedging-emm-bound(Foundations/SuperhedgingDuality.emm_le_superReplication, every equivalent martingale measure prices a claim ≤ its super-replication cost). This realizes the architecture doc's #1 seam (I↔IV; seemathematical-architecture.md). Open: the superhedging strong-duality equality (superhedge = sup_{EMM}), blocked on a finite-dimensional Farkas / polyhedral-cone closedness absent from Mathlib at this pin; the Gaussian CVaR robust form.
Prior round (2026-06-29, Summit C in Degenne's
IsLocalMartingaletypeclass — the wrapper completed): corpus 302, 267 full + 18 wrappers = 285/302 delivery-ready, 17 reduced cores, 0 placeholders. The unrestricted-C³residualMis now a genuineIsLocalMartingale(Foundations/ItoFormulaUnrestrictedLocMart.lean, entrysc-ito-formula-unrestricted-islocalmartingale,full): the one ingredient beyond the explicit form — adaptedness ofM(residual_stronglyMeasurable), i.e. of the drift primitiveD_t = ∫₀ᵗ drift(driftPrimitive_stronglyMeasurable, time-clamp + Carathéodory +StronglyMeasurable.integral_prod_right) — discharged; thenStronglyAdapted.stoppedProcess_indicator+ the all-time agreement assembleLocally (Martingale ∧ cadlag)with the exit-time localizerσ_N. Itô's formula now holds for a generalC³fwith NO growth/boundedness hypothesis (Foundations/ItoFormulaUnrestricted.lean, entrysc-ito-formula-unrestricted-local,full): the residualM_t = f(t,B_t) − f(0,B_0) − ∫₀ᵗ(f_t+½f_xx)dsis a continuous local martingale in explicit form — a localizing sequenceσ_N = min(τ_N, N) ↑ ⊤(exit times capped in time) plus per-Ncontinuous true martingales agreeing withMon{t ≤ σ_N}. The engine is the double cutofff(φₙ·,φₙ·)(time and space), whose globally-bounded derivatives letito_formula_td_processapply; the all-time agreement isindistinguishable_on_stochInterval. The Degenne-IsLocalMartingale-typeclass packaging remains as drift-integral-adaptedness plumbing. The time-dependent Itô formula now holds as a process identity for everyt ≤ Tsimultaneously (Foundations/ItoFormulaProcess.lean, entrysc-ito-formula-td-process,full):f(t,B_t) − f(0,B_0) =ᵐ (itoProcessL2Inf t F) + ∫₀ᵗ (f_t + ½f_xx)(s,B_s) ds, the stochastic term the genuine Itô-integral process(f_x(·,B) ● B)_t— a continuousL²martingale admitting an everywhere-continuous local-martingale modification on the null-augmented Brownian filtration. So the compensated processf(t,B_t)−f(0,B_0)−∫₀ᵗ driftis (a modification of) a continuous local martingale: Itô's lemma as a semimartingale decomposition. This makes the[0,∞)continuous-local-martingale tower load-bearing as an Itô-formula consumer for the first time, and is the prerequisite for the unrestricted-C²(stopping-time localization) Itô formula. The construction is entirely inside the Itô tower — no Markov property, no PDE: the terminal formula's witness is now canonical (ito_formula_td_L2_bddDerivexposesgfx =ᵐ [f_x(·,B)]), zero-extended to a[0,∞)integrandF(exists_fullHorizon_extension) and matched to each horizon via the existing consistencyitoProcessL2Inf_eq_itoProcessCLM. Earlier (corpus 298): the Itô formula decomposesf(X)for a generalC³exp-growthfagainst a constant-coefficient Itô processX_t = X₀ + b·t + σ B_t(Foundations/ItoFormulaItoProcess.lean,sc-ito-formula-ito-process,full),f(X_T) − f(X₀) =ᵐ itoIntegralCLM_T gfx + ∫₀ᵀ (f'(X)·b + ½f''(X)·σ²) ds,gfx =ᵐ [σ·f'(X_·)]. Earlier: Geometric Brownian motion is decomposed by the genuine continuous Itô integral (Foundations/ItoFormulaGBM.lean, entriessc-ito-formula-gbmandsc-discounted-gbm-ito, bothfull) — the first pricing-ward consumer of the analytic Itô tower, which until now had none (GBM/BS pricing ran via separate algebraic towers and the Wald exponential).ito_formula_gbmgivesŜ(T) − Ŝ(0) =ᵐ itoIntegralCLM_T gfx + ∫₀ᵀ m·Ŝ dswithgfx =ᵐ [σ·Ŝ(·)]for the GBM valueŜ(t)=S₀ exp((m−σ²/2)t+σ B_t), the stochastic term the real Itô integral. The route is the classic one — localization in time: the GBM value ist-exponential (fails the localized formula'st-uniform growth), so the localized formula is applied to the time-localized exponentS₀ exp((m−σ²/2)·φₙ(t)+σx)(φₙ= smooth cutoff,n=⌈T⌉₊), the identity on[0,T]yet globally bounded; thereφₙ=id,φₙ'=1, so the localization drift(m−σ²/2)·Ŝand the Itô correction½σ²·Ŝcollapse tom·Ŝ. Settingm=0(discountedGBM_eq_itoIntegral) makes the drift vanish — the Itô-integral content of the discounted-GBM martingale (discountedGBM_isMartingale, there via the Wald exponential). Axioms-clean[propext, Classical.choice, Quot.sound]. Earlier: The time-dependent Itô formula reaches at-most-exponential growth (Foundations/ItoFormulaLocalized.lean, entrysc-ito-formula-localized,full):ito_formula_td_localizedlifts the bounded-derivativeito_formula_td_L2_bddDerivtofwith|f_• t x| ≤ C·exp(λ|x|), so it reaches the Black–Scholes/GBM value functionf(t,x)=S₀ exp((r−σ²/2)t+σx)— the named out-of-scope gap of 7.1.1/7.1.2. An L²-cutoff localization consumes the bounded engine: smooth truncationφₙ(aContDiffBumpantiderivative), the cutofffₙ=f(t,φₙ(x))throughcutoff_bddDeriv, thenn→∞— boundary and drift converge inL²(μ)(Brownian marginals have every exponential moment,BrownianExpMoment; the drift dominator is the new base stonepathIntegral_expGrowth_memLp), soaₙ=itoIntegralCLM_T gfxₙis Cauchy, the Itô isometry transfers Cauchy-ness to the integrands, completeness gives the witness, CLM continuity identifies the limit, and an a.e.-identification pass names it (gfx =ᵐ [f_x(·,B_·)]). Axioms-clean[propext, Classical.choice, Quot.sound]. Earlier: The unbounded-horizon Itô integral is a continuous local martingale on the whole half-lineℝ≥0(Foundations/ItoIntegralProcessLocalMartingaleInfinite.lean, entrysc-ito-infinite-local-martingale,full): an everywhere-continuous representative modifying the process at everyt. The per-horizon[0,T=n]continuous local martingales are glued — horizon consistency (itoProcessL2Inf_eq_itoProcessCLM, resting on a hand-built[0,T]clamp of Degenne'sSimpleProcess) makes each a modification of the same unbounded-horizon process andindistinguishable_of_modification_onagrees them on overlaps — into one path continuous on all ofℝ≥0; with no horizon clamp, the martingale property is the globalitoProcessL2Inf_isMartingalethroughcondExp_sup_nulls. This crowns the pathwise-regularity layer (2026-06-26): the L²-valued process(φ●B)_thas a continuous modification on[0,T](Foundations/ItoIntegralProcessContinuousModification.lean, entrysc-ito-general-continuous-modification,full) — the first sample-path result for the general integrand, via Degenne's continuous-time Doob maximal inequality + Borel–Cantelli on a fast subsequence — upgraded to a genuine continuous local martingale (Foundations/ItoIntegralProcessLocalMartingaleGeneral.lean, entrysc-ito-general-local-martingale,full): the everywhere-continuous representative, adapted to the null-augmented Brownian filtration𝓕ᴮ ⊔ 𝓝, meets Degenne'sIsLocalMartingaleinterface. The measure-theoretic core iscondExp_sup_nulls(cond-expectation invariance under the null augmentation, its σ-algebra crux consuming Mathlib'seventuallyMeasurableSpace); both are axioms-clean and non-redundant with Degenne's sorry-backed general càdlàg modification. Earlier this day: the d-asset one-period FTAPftap_one_period_vector(Foundations/FTAPOnePeriodVector.lean, entrymf-ftap-one-period-vector,full) is the unrestricted Föllmer–Schied 1.6 for a discounted excess return valued in any finite-dimensional inner-product spaceF(theℝᵈmarket isF = EuclideanSpace ℝ (Fin d)) — no non-redundancy hypothesis. The explicit Esscher / minimal-divergence EMM minimises the convex softplus potentialθ ↦ ∫ log(1 + exp⟪θ,Y⟫); it is constant along the gains kernelN = {θ : ⟪θ,Y⟫ = 0 a.e.}and coercive onNᗮ, so a minimiser onNᗮis automatically global (redundant directions are absorbed, dropping the earlier non-redundancy assumption), and its first-order condition (differentiation under the integral) hands back the strictly-positive bounded densityσ⟪θ₀,Y⟫. No Hahn–Banach, no L⁰-closedness, no measurable selection — those remain only for the general-Ω multi-period DMW. General-Ω one-period Fundamental Theorem of Asset Pricing (Föllmer–Schied 1.55 / one-period Dalang–Morton–Willinger):ftap_one_period— for a scalarL⁰excess return on an arbitrary probability space, no arbitrage ⟺ ∃ equivalent martingale measureQ ~ PwithYintegrable andE_Q[Y] = 0(Foundations/FTAPOnePeriod.lean, entrymf-ftap-one-period-general), backward via a bounded-density reduction toL¹, the scalar no-arbitrage dichotomy, and a two-region balancingwithDensity— no Hahn–Banach, no Kreps–Yan. This is the genuine measure-theoretic step beyond the finite-Ω Harrison–Pliskaftap_discrete(no arbitrage ⟺ ∃ EMM, multi-period, finite Ω, scalar discounted asset;Foundations/FTAPDiscrete.lean, entrymf-ftap-discrete-complete), itself backward via a global geometric Hahn–Banach separation of the attainable-gains subspace from the standard simplex (the reusable kernelFoundations/ConvexSeparation.lean) and forward via martingale-transform telescoping; plus the single-period multi-state biconditionalhasEMM_multi_iff_not_hasArbitrage(entrymf-ftap-single-period-complete). Open follow-on: the general-Ω multi-period DMW (L⁰-closedness + measurable selection, absent from the pin) — the d-asset one-period case is now closed in full (ftap_one_period_vector, redundant assets included). Since B3: D1 (the bilinear Itô isometry — the[0,T]Itô CLM bundled as aLinearIsometry, so it preserves the L²-inner product by polarization:𝔼[(∫φ dB)(∫ψ dB)] = ⟪φ, ψ⟫, the diagonal recovering the isometry;Foundations/ItoIntegralCovariation.lean, entrysc-ito-covariation-bilinear-isometry). Earlier on the Itô tower: B2 (unbounded-horizon[0,∞)σ-finite Itô integral CLMitoIntegralL2,Foundations/ItoIntegralL2Dense.lean, entrysc-ito-infinite-horizon-isometry) and B3 (the elementary Itô integral as a continuous local martingale — pathwise continuity + Degenne'sMartingale.IsLocalMartingale,Foundations/ItoIntegralProcessLocalMartingale.lean, entrysc-ito-simple-process-local-martingale). The figures further below are the historical 2026-05-20 audit record, kept as provenance.Summit B / B1b round (2026-06-12). The general-integrand Itô integral
(φ●B)_t = ∫₀ᵗ φ dBfor a general predictableφ ∈ L2Predictable[0,T], as a continuous L² martingale on[0,T](Foundations/ItoIntegralProcessGeneral.lean). It extends B1a (simple integrands) by density along the samesimpleAssembly_Tembedding that builds the terminal CLMitoIntegralCLM_T, so the bridge to B1a is definitional (extendOfNorm_eq). The key identity(φ●B)_t = E[∫₀ᵀ φ dB | 𝓕_t](thecondExpL2projection of the terminal integral) yields the L² martingale property (condExp tower), a.e.-adaptedness, the Itô contraction‖(φ●B)_t‖ ≤ ‖φ‖, the terminal isometry‖(φ●B)_T‖ = ‖φ‖, and L²-continuity (uniform approximation via the t-free contraction). 3 newfullentries:sc-ito-general-martingale/-terminal-isometry/-l2-continuity. Honest scope: finite-horizon[0,T], L² sense.Isometry round (2026-06-12). The explicit per-t isometry
E[(φ●B)_t²] = ∫₀ᵗ E[φ²] ds— deferred at B1b — is now proved (itoProcessCLM_norm_sq,Foundations/ItoIntegralProcessIsometry.lean, entrysc-ito-general-time-isometry): the band-restricted simple-process isometry (B1a's per-endpoint-∧t-truncated rectangle double sum = the joint-overlap-∩(0,t]double sum, equal by a pure-ℝ interval-length identity) transfers to all predictableφbyDenseRange.equalizer— both‖(φ●B)_t‖²and∫_{(0,t]}φ²(= ‖truncCLM φ‖², the band-truncation CLM) are continuous and agree on the dense simple processes. The genericlp_two_norm_sqwas de-privatised inItoIntegralL2and reused (no duplication). Net: corpus 280 → 281, 245 → 246 full; lake build 8724 jobs green, axioms-clean. (B2 — the infinite-horizon[0,∞)σ-finite extension — landed 2026-06-13:itoIntegralL2/itoIntegralL2_norminFoundations/ItoIntegralL2Dense.lean, corpus entrysc-ito-infinite-horizon-isometry.)
Refresh with:
python3 -m tools.verify.coverage_reportCoverage as of 2026-06-22 (extended mathematical-finance pass: put greeks, higher-order BS greeks including charm, Bachelier greeks, digital greeks, BS-Merton with dividends, Garman-Kohlhagen FX, Black-76 greeks; second pass: Bachelier γ/θ, asset-or-nothing γ, BS-Merton δ/γ/vega, American options in binomial tree; third pass: CRR drift-quotient limit closing the analytic content of CRR-to-BS; fifth pass: cash-or-nothing digital gamma closing the previously deferred quotient-rule item; sixth pass: full digital ρ/vega/θ matrix for cash and asset variants — 6 theorems closing the remaining digital Greek gap; seventh pass: Black-76 ρ and θ closing the futures-options Greek set; eighth pass: CRR drift limit n-form n·(2p_n−1)·σ·√(T/n) → (r−σ²/2)T closing the previously deferred substitution work; ninth pass: Phase 5 broader mathematical-finance — fixed-income ZCB pricing/yield/duration/convexity, two-asset Markowitz portfolio theory with completing-the-square factorization, CAPM beta + portfolio linearity — 12 theorems extending the project beyond derivatives pricing into fixed income and portfolio theory; tenth pass: Phase 6 quant-risk + N-asset portfolio + bond immunization — Gaussian VaR/CVaR closed forms with affine/scaling identities, bond portfolio rate sensitivity + Redington-style first-order immunization, N-asset Markowitz variance via Finset double sum with diagonal/iid/PSD/two-asset specializations — 15 theorems; eleventh pass: Phase 7 performance / coherent risk / fixed-income depth / static bounds / two-fund separation — Sharpe (√T scaling + scale invariance) + Kelly criterion, gaussian VaR/CVaR coherent risk-measure axioms (translation, homogeneity, monotonicity, gaussian subadditivity via joint-stdev triangle inequality), annuity geometric-series closed form + forward/spot consistency + coupon-bond YTM monotonicity, Phi ≤ 1 + BS call/put price upper bounds + box-spread arbitrage identity, capital market line equation + Sharpe invariance + two-fund decomposition — 23 theorems extending the project into performance measurement, axiomatic risk, and multi-fund portfolio theory; twelfth pass: Phase 8 extended performance / second-order immunization / Asian option inequality — Sortino/Treynor/Information ratios + tracking-error decomposition, second-derivative bond rate sensitivity ∂²P/∂r² = C_P·P + Redington second-order convexity-matching immunization, two-element and equal-weight n-element AM-GM with two-date geometric ≤ arithmetic Asian payoff bound — 13 theorems; thirteenth pass: Phase 9 credit-risk + strike Greeks + multi-period Kelly — reduced-form credit spread under constant hazard with survival monotonicity, BS strike-direction derivatives (∂_K bsV, ∂_K bsP, ∂²_K bsV) via magic-identity collapse + put-call parity, multi-period Kelly criterion with myopia + fraction sign analysis — 14 theorems):
267 / 284 delivery-ready (249 full + 18 library wrappers), 17 reduced cores, 0 placeholders.
2026-08-07 — vNM expected-utility round (#178). Added one
fullbenchmark entry covering the mixture algebra of finite-outcome lotteries, affinity of expected utility in the mixture, the von Neumann–Morgenstern axioms verified for the expected-utility preference (completeness, transitivity, independence, Archimedean continuity with the indifference weight exhibited), and invariance of the preference under positive affine rescaling of the utility. Soundness direction only — the representation theorem (axioms ⟹ ∃u) is deliberately out of scope and the module doc records it.
2026-08-02 — downside-performance round (#73). Added one
fullbenchmark entry covering finite-state Omega nonnegativity and its threshold identity, maximum-drawdown nonnegativity and nonnegative scaling on finite price paths, and positive-scaling invariance of the Calmar ratio. The corrected drawdown theorem deliberately assumes0 ≤ c; negative scaling reverses peak-to-trough order and is not claimed.
Poisson cluster + Itô-QV upgrade round (2026-06-05). Four reduced cores earned
fullby replacing statement-level specs with genuine derivations, each backed by a newFoundations/module:pp-thm-3.3.9(superposition — the Poisson convolution identityPoisson(a) ∗ Poisson(b) = Poisson(a+b), absent from Mathlib, proved by singleton-ext + binomial collapse;PoissonSuperposition.lean),pp-thm-3.3.10(thinning — the binomial-marking factorisation intoPoisson(pr) ×ₘ Poisson((1−p)r), so the thinned marginals AND the independence of the streams are derived;PoissonThinning.lean),pp-thm-3.3.5(marginal law re-earned via the interarrival-construction route this file had flagged: Erlang arrival law composed with the new Gamma-CDF difference identity∫₀ᵗ γ_k − ∫₀ᵗ γ_{k+1} = e^{−rt}(rt)ᵏ/k!;PoissonCounting.lean), andsc-thm-7.4.5(QV of an Itô process in the constant-σ/Lipschitz-drift regime — drift contributes nothing, with explicit1/nL² rates;ItoProcessQV.lean; the previous spec was degenerate — its "stochastic piece" was a Lebesgue integral of σ).pp-prop-3.3.6staysreduced_corehonestly but its core is now derived, not assumed: the FIRST interarrival is proved exponential from the counting axioms and the memoryless survival factorisation is proved from independent increments (PoissonInterarrival.lean); the full-sequence iid claim still needs the strong Markov property (upstream-gated). Net: 225 full + 18 wrappers = 243 / 261 delivery-ready, 18 reduced cores.
Finance layer over the Poisson/QV track (2026-06-06). Six new
fullentries make the freshly-derived foundations load-bearing in the pricing layer:mf-variance-swap-drift-immunity(realized variance of GBM log-returns →σ²Tin L² for ANY drift — the variance-swap fair strike is a QV functional, immune to the physical-vs-risk-neutral drift; strengthens the phase-34 expectation-level limit;VarianceSwapDriftImmunity.lean, first pricing consumer ofItoProcessQV),mf-first-to-default-spread(FtD basket spread = Σ single-name hazards under independence —ExpMin.minimum_survivalbridged into theCredit.leanvocabulary;FirstToDefault.lean),dist-poisson-pgf(the Poisson pgfE[x^N] = e^{r(x−1)}for every realx, absent from Mathlib;PoissonPgf.lean), and the Merton (1976) jump-diffusion trio (mf-merton-call-series,mf-merton-spot-recombination,mf-merton-put-call-parity): the price is defined as the expectation over the Poisson jump count, so the textbook series, the compensation identityE[spot_N] = S₀(the pgf at1+k), and parityC − P = S₀ − Ke^{−rT}are theorems — and every series term is separately proved equal to a discounted conditional expected payoff (bs_call_formulaon(ℝ, gaussianReal 0 1)). Terminal-mixture-law scope, exactly parallel toBSCallHyp: the compound-Poisson jump SDE is upstream-gated and not claimed (MertonJumpDiffusion.lean). Net: 231 full + 18 wrappers = 249 / 267 delivery-ready, 18 reduced cores (corpus 261 → 267).
Merton dominance + classic display; Markov path law (2026-06-06, second round). Two new
fullentries deepen the Merton layer:mf-merton-dominance— jump risk is never free,C_BS(S₀,σ) ≤ C_Merton(S₀,σ,k,δ,Λ)for everyΛ,δ,k > −1, proved by pricing the two jump channels separately: per-term vol-monotonicity (bsV_strictMonoOn_sigma, vega) lowers the jump vol toδ = 0, and there a Jensen floor comes from the new spot-direction convexitybsV_spot_convexOn(gamma ≥ 0 second-derivative test, the S-direction dual ofbsV_strike_convexOn;SpotConvexity.lean) whose supporting tangent atS₀has its linear term integrate to zero by the compensation identityintegral_mertonSpot(MertonDominance.lean). Andmf-merton-classic-display— the textbookΛ′ = Λ(1+k)form, driven by the rate-shift invariancebsV K r σ (S·e^{cτ}) τ = e^{cτ}·bsV K (r+c) σ S τ(bsV_spot_exp_rate_shift) atc_n = r_n − rplus Poisson-weight absorption (MertonClassicDisplay.lean). One reduced core earnedfull:mc-thm-1.1.2(path distribution of a Markov chain) — the chain's law is now constructed via the pin's Ionescu–Tulcea trajectory kernels (Kernel.trajMeasure) from kernels that read only the last history coordinate, andP(X₀=i₀,…,Xₙ=iₙ) = init(i₀)·∏ P(iₖ,iₖ₊₁)is derived by induction through the comp-product recursion of the marginals, replacing the prior definitionalrfl(Foundations/MarkovPathMeasure.lean; the converse characterization is not claimed). The sameKernel.trajre-cost found the other five Markov reduced cores still honestly gated: recurrence needs renewal theory / fundamental-matrix algebra, convergence needs Perron–Frobenius, the ergodic theorem needs both, stationarity-uniqueness needs recurrence, and the strong Markov property needs stopping-time kernels — none in the pin. Net: 234 full + 18 wrappers = 252 / 269 delivery-ready, 17 reduced cores (corpus 267 → 269).
Values-gates round (2026-06-06, evening). The honesty conventions this file documents became mechanically enforced:
tests/test_values.pyadds (1) a forbidden-text scan overMathFin/sources (no sorry/admit/native_decide/polyrith/?-suggestion tactics/hammer/loogle/ leansearch outside comments), (2) a definitional-rfltripwire — nofullentry may cite a theorem whose proof is barerfl/unfold; rfl(the reduced_core pattern in disguise), (3) blueprint-spine ⊆ curated audit, (4) byte-freshness of the new GENERATED exhaustive auditMathFin/AxiomAuditGen.lean, which#guard_msgs-pins every proof-position MathFin constant cited by the corpus (222 names vs the curated file's headliners). CI (build.yml) now runs pytest +ledger statusbefore the Lean build, so these gates and ledger freshness are push-enforced, not session discipline. First-run catches: the tripwire demotedmf-kelly-n-periods-linearityfull→reduced_core(its cited lemma statesT·kellyGrowth = T·(unfolded formula)byrfl; the genuine multi-period iid model is not formalized — same class as the 2026-05-29 newton-raphson demotion, now pinned inEXPECTED_REDUCED_CORE_THEOREMS), and the blueprint-coverage check found seven spine headliners unguarded (includingbs_identity), now pinned in the curated audit. Net: 233 full + 18 wrappers = 251 / 269 delivery-ready, 18 reduced cores.
Summit A′ round (2026-06-07). Two reduced cores earned
full, each by replacing the named gap with the actual mathematics. (1)mf-kelly-n-periods-linearity— repairing the previous round's definitional-rfldemotion: the n-period iid model is now real measure theory (Performance/Kelly.lean): one period's wealth multiplier is the two-point lawkellyReturnMeasure p b f, n periods are its n-foldMeasure.pi, andE[∑ log Rᵢ] = n·kellyGrowth p b fis computed via linearity of expectation through the product measure's coordinate evaluations. (2)sc-thm-7.1.2— the time-dependent Itô formula (Summit A′):f(T,B_T) − f(0,B₀) = ∫₀ᵀ f_x(s,B_s) dB_s + ∫₀ᵀ (f_t + ½f_xx)(s,B_s) dsa.e., the classicaldf = f_x dB + (f_t + ½f_xx) dt, with the stochastic integral the genuineitoIntegralCLM_T. The three Summit-A limit arguments redone with(t,x)-dependence:WeightedQuadraticVariationgeneralized to bounded adapted weight processes (the fluctuation engine never cared the weight wasg(B_s);tendsto_riemann_L2_processexported standalone for the drift term), the 2D Itô–Taylor remainder vanishing atO(1/n)(ItoFormulaTDRemainder.lean— time/cross/space split bounded byC_tt Δt² + C_tx|ΔB|Δt + C_xxx|ΔB|³), and the time-dependent Riemann↔CLM bridge (ItoIntegralRiemannBridgeTD.lean). Assembly inFoundations/ItoFormulaTD.lean;f_t's joint continuity is derived from its bounded partials (jointly Lipschitz), not assumed; unbounded coefficients stay the named gap, as in 7.1.1. All four new headliners axiom-pinned in the curated audit and the spine nodethm:ito-formula-td-l2added. Net: 235 full + 18 wrappers = 253 / 269 delivery-ready, 16 reduced cores.
Deferred-cleanup round (2026-06-09). Executed the round-5 values-review follow-up catalogue. (1) Corpus faithfulness —
sc-thm-8.2.5(SDE existence/uniqueness) encoded its diffusion as a Lebesgue∫σ ds, leaving the Brownian driverBdead (a random-IC ODE, not an SDE); fixed to an opaque adapted stochastic-integral processIσX(=∫₀ᵗ σ dB), mirroringsc-thm-7.5.2's opaque Itô-integral fields. Staysreduced_core, now faithful. (Round-6 correction, 2026-06-09: that rewrite's uniqueness clause quantified a free per-candidate integralIσY, which made the spec uninhabitable — any process discharges the solution premise by taking its own residual as "integral". Repaired with an opaque integral-operator encodingIσ : (ℝ → Ω → ℝ) → ℝ → Ω → ℝconsumed asIσ X/Iσ Y, the uniqueness conclusion scoped to0 ≤ t, a: Propascription, and an in-snippet inhabitantexampleguarding non-vacuity.) (2) Orphan wiring — three documented-but-unwired Foundations bridges becamefullcorpus entries:mf-ftap-multi-state-forward(Phase 42 forward FTAP, EMM ⟹ no-arbitrage in arbitrary finite state + assets),mf-pricing-kernel-butterfly(Phase 53 FTAP state-price butterfly no-arbitrage),mf-variance-swap-equivalence(Phase 45 log-payoff strike = realised-variance QV limit). The literal anti-wrapper re-exportvarianceSwap_equivalence(subsumed by the genuine two-functional theorem) was removed.StochasticIntervalwas reflected on and kept — it is the Degenne #440 upstream-PR body, anchored by two AxiomAudit entries and named as theElementaryPredictableSetgap in the deferred Itô-CLM coherence record. (3) Blueprint — the keystonebsV_satisfies_bs_pde_via_feynmanKacand the kernel heat equationfeynmanU_heat_equationare now@[blueprint]spine nodes (with curated AxiomAudit guards); the regenerated spine shows the FK tower linking into the existingbsCallnode. Net: 239 full + 18 wrappers = 257 / 273 delivery-ready, 16 reduced cores (corpus 270 → 273). lake build 8708 jobs, axiom-clean; ledger 273/273 fresh; gate tests green.
2026-06-09 — values round 6 (whole-repo, 8-lens panel). Three blockers found and fixed:
sc-thm-8.2.5's round-5 rewrite was uninhabitable (free per-candidateIσY; repaired with the opaque integral-operator encoding + conclusion scoped to0 ≤ t+ an in-snippet inhabitant guard — refutation and inhabitant both daemon-checked); Vasicek's claimed-but-absent limit theorem (added for real:vasicekDeterministic_tendsto_mean); RatiosExtended's claimed-but- absent variance expansion (de-claimed). Corpus honesty:mf-compound-poisson-mgfdemoted toreduced_core(exp-algebra core only);mf-credit-spread-time-avg-hazardnow exports the definitional identity and the substantive FTC recovery; André's reflection principle wired as the newfullentrymf-reflection-principle-counting. PricingKernel recomposed so its FTAP lineage andstatePricePricingconsumption are definitional. Net: corpus 273 → 274, 239 full + 18 wrappers = 257 / 274 delivery-ready, 17 reduced. lake build 8708 jobs green, ledger 274/274 fresh, 19 gate tests green. Full findings ledger:docs/values-review.md.
Feynman–Kac → Black–Scholes-PDE keystone round (2026-06-08). The new
fullentrysc-bs-pde-feynman-kac(bsV_satisfies_bs_pde_via_feynmanKac) re-derives the Black–Scholes PDE−∂_τV + ½σ²S²∂_SSV + rS∂_SV − rV = 0from the Feynman–Kac representation — through the heat kernel's joint Fréchet-differentiability (hasFDerivAt_heatKernel) and a parametric differentiate-under-the-integral skeleton, not from Itô — closing the long-standing two-tower gap between the deep heat-kernel/Itô foundations and the pricing layer (the orphanedfeynmanUheat flow is now load-bearing for pricing;Foundations/FeynmanKacHeatEquation.lean+BlackScholes/PDEFromFeynmanKac.lean). In the same pass the Feynman–Kac scope note onsc-thm-9.2.1was de-staled: its "~300–500 lines left as upstream work" claim was false — that infrastructure is now built and consumed by the keystone. Net: 236 full + 18 wrappers = 254 / 270 delivery-ready, 16 reduced cores (corpus 269 → 270).
Duplication + status audit (2026-06-03). A five-reviewer sweep of all 216 then-
fullentries asked two questions: does any MathFin module re-derive content already in pinned Mathlib / Degenne's BrownianMotion package, and is anyfullreally a wrapper? The foundations tower came back clean — the package at pinfa590b1has no sorry-free L²-adapted stochastic integral (it stops at the elementary simple-process integral), no strong-type Doob L^p (weak-type only — same as Mathlib, whose own docstring defers the L^p version), no Wald/X²−t martingales, no Itô formula; our Wiener-vs-Itô division and the BrownianMartingale division-of-labor header were re-verified accurate. The Portfolio/Performance/Risk/FixedIncome slice had zero findings (geometric series, Cauchy–Schwarz etc. are consumed from Mathlib, never re-proved). Verified findings, all applied:full→library_wrapper:ce-prop-2.1.11-jensen(Mathlib'sConvexOn.map_condExp_le_of_finiteDimensionalproves textbook Jensen from bare convexity; our explicit-subgradient derivation was strictly weaker —Foundations/CondExpJensen.leandeleted, benchmark now wraps Mathlib),mf-carr-madan-log(was aReal.log_divalias; alias lemma deleted),cv-prob-space(measure_univ/measure_empty).full→reduced_core:pp-thm-3.3.5andmc-thm-1.1.2(THEOREM-named entries whose conclusion is a projected structure field / definitionalrfl; definition entriesbm-def-5.1.1/cv-poisson-def/mc-def-1.1.1keep the documented definitional-fullconvention). Coherence fix:am_gm_twonow specializes Mathlib'sReal.geom_mean_le_arith_mean2_weightedinstead of re-proving it; documented-distinction cross-references added for the Carr–Madan second-order remainder (then = 1case of Mathlib'staylor_integral_remainder, kept in explicit-HasDerivAtform) and the StandardNormal MGF (pdf-form vs Mathlib's measure-formmgf_gaussianReal). New guardrail:test_expected_reduced_cores_stay_reduced_core. Upstream opportunity recorded indocs/bridges.md(our L² martingale convergence could discharge the package's sorry'dSquareIntegrabletargets).
Honesty re-audit (2026-05-29). A dedicated benchmark-
formalization_statussweep (four adversarial reviewers over all 11 files / 251 theorems, every finding source-verified) reclassified 13 over-credited entries, dropping delivery-ready from 235→222. The pattern was the same one found in the Itô stack: a benchmark named after a deep theorem but proving only an algebraic shadow / a conclusion read off a hypothesis / an unfaithful library wrapper. Reclassifiedfull→reduced_core:mf-tangent-portfolio-foc(FOC byring, no calculus),mf-american-supermartingale+mf-american-intrinsic-bound(le_maxon the Bellman def, not the measure-theoretic supermartingale),mf-kmv-merton-pd(only the ≤1 bound proved),mf-markowitz-n-psd(conclusion-in-hypothesis),mf-newton-raphson-fixed-at-root(definitional unfold),mart-thm-2.3.6(wraps the bounded-time submartingale inequality, not the UI optional-stopping equality).full→library_wrapper:bm-thm-5.1.5(one-line Degenne re-export).library_wrapper→reduced_core: the 5markov_chainsentries whoselibrary_wrappercredit rested on a since-removed second backend while the active Lean code is a structural specification (matching howpoisson_processesalready tiers its structural entries). Seedocs/deep-review-2026-05-29.md.Upgrade-properly round (2026-05-29). Rather than only relabel down, two of those entries were earned back to
fullby re-pointing the benchmark at the genuine derivation that already existed in the library (the benchmark had been wrapping the shallow algebraic lemma instead):mf-tangent-portfolio-focnow wrapssharpeSqTwo_critical_iff_crossProduct_FOC(the Sharpe FOC as a genuineHasDerivAtcritical-point characterisation), andmf-kmv-merton-pdnow wrapskmvPD_eq_one_sub_survival_probability(KMV PD = the actual risk-neutral default probability1 − Q(V_T>F), viariskNeutralProb_S_T_gt_K). Both re-pointed snippets were compile-verified. Balancing this, the algebraic shadowmf-kmv-survival-Phi-d2(the normal-CDF symmetry1 − Φ(−x) = Φ(x), previouslyfull) was demoted toreduced_core. Net: 222→223 delivery-ready, but now backed by the genuine theorems. The remaining reduced_core entries are either inherently one-line facts (no deeper theorem exists) or gated on machinery not yet in Lean — relabeling those up would re-introduce the overclaim.
Summit A — continuous-time Itô formula (2026-06-02). Promoted
sc-thm-7.1.1(Itô's Formula)reduced_core→full: the bounded-derivative continuous-time L² Itô formulaf(B_T)−f(B_0) = itoIntegralCLM_T gf' + ½∫₀ᵀ f″(B_s) dsis now derived from foundational primitives, with the stochastic integral the genuine continuous Itô integralitoIntegralCLM_T gf'(the L²-limit of the Riemann–Itô sums). The proof chain (Summit A):tendsto_weighted_qv(weighted quadratic variation) +tendsto_ito_remainder(vanishing Itô–Taylor remainder) +itoIntegralCLM_T_of_bdd_cont(Riemann↔CLM bridge), assembled inito_formula_L2_bddDeriv. Scope:f ∈ C³with boundedf′,f″,f‴— a faithful but strictly C³-bounded specialization of the C² textbook statement (the gap to unrestricted C² is Summit C localization, not yet formalized). All four Summit-A theorems are#print axioms-clean (AxiomAudit-pinned).coverage_report:stochastic_calculus.json4→5 full, 7→6 reduced.
Engine→pricing coherence — deliberate stop (2026-06-03). The continuous Itô engine
itoIntegralCLM_Thas its flagship consumer (itoIntegralCLM_T_brownian:∫₀ᵀ B dB = ½(B_T²−B₀²−T)through the CLM), and the operational continuous-time pricing result — the discounted GBM is aQ-martingale (discountedGBM_isMartingale, via the Wald exponential) — is already proved (an AxiomAudit-pinned library theorem). The one missing link, identifying the discounted price with the engine (e^{−rt}S_t = S₀ + itoIntegralCLM_T(σ·e^{−r·}S_·)), was scoped and declined: the GBM exponential is unbounded, so it is not a short argument but a second keystone (~400 lines — a parallel clamp-truncation layer plus the martingale-difference L² limit∑σM_{t_k}ΔB → M_T−1). It would yield an alternative derivation route to a theorem already held, not a new result, so it is recorded here as a known, bounded, not-pursued build. See Geometric Brownian motion / Continuous-time first FTAP inblueprint.md.
Path-1 upgrades (2026-06-04). Seven reduced cores earned
fullby the upgrade-properly discipline (build the genuinely deeper theorem; never relabel):mart-thm-2.3.6— the conditional-expectation-form optional sampling inequality for submartingales (Foundations/OptionalSamplingInequality.lean), absent from Mathlib, derived as optional sampling equality + monotone compensator through the Doob decomposition;mf-markowitz-n-psd— PSD derived from genuine L² random returns via the self-dot variance identity, consuming Mathlib'svariance_sum'(Portfolio/CovariancePSD.lean);mf-cvar-rockafellar-uryasev— the genuine Rockafellar–Uryasev variational theorem (IsLeast) for the Gaussian loss, minimality by the pointwise tail certificate (RiskMeasures/RockafellarUryasev.lean, which previously recorded only the additive identity and explicitly deferred this);mf-newton-raphson-fixed-at-root— genuine local quadratic convergence at the sharp Newton–Kantorovich constant(L/(2m))·e²(integral form of the Taylor remainder) + basin convergence of the Newton iterates (BlackScholes/NewtonConvergence.lean);mf-kmv-survival-Phi-d2— re-pointed at the probabilistic survival statementQ(V_T > F) = Φ(DD)through the lognormal tail;mf-american-supermartingale+mf-american-intrinsic-bound— the path-space Snell envelope (Binomial/SnellEnvelope.lean): payoff dominance, supermartingale property, adaptedness, and minimality over arbitrary path-processes, plus the identification theoremsnell = e^{−rk}·americanPriceexhibiting the scalar Bellman recursion as the Markov instance (the conditional expectation is the explicit node average, which on a finite tree it is — same pathwise idiom asBinomial/MartingaleRepresentation.lean). All new load-bearing theorems are AxiomAudit-pinned.
Post-audit values sweep (2026-06-04, follow-up). A second adversarial audit (four fresh reviewers over the Path-1 commit) confirmed the load-bearing layer — counts, statuses, scope notes, axiom pins, and the absence of all five headline theorems from Mathlib/BrownianMotion all re-verified independently — and surfaced finishing work, applied in full:
submartingale_optional_samplingnow consumes Mathlib'sSubmartingale.monotone_predictablePart(the local helper had re-derived it verbatim) and documents the BrownianMotion package'ssorry-stubbed⊓-form sibling as an upstream-donation candidate;portfolioVarN_covariance_eq_varianceconsumesvariance_sum'instead of re-tracing its bilinearity chain; Newton sharpened to the textbook constant —(L/(2m))·e²via the integral form of the Taylor remainder, basin relaxed toL·δ ≤ m(the uniform mean-value bound had silently cost a factor 2); two deadhaves and an orphaned@[simp]lemma removed; the seven upgraded entries' staledescriptionfields rewritten (four still asserted pre-upgrade "NOT the stronger result" disclaimers); and the build log swept clean — sixring-falls-back-to-ring_nfinfo sites and onesimpalint fixed at root (congr/convertdepth bumps soringsees a genuine ring goal instead ofexp A = exp B).
Headline-theorem wiring (2026-06-04, same day). The library's deepest results were benchmark-orphaned — proved on main since 2026-05-30 and AxiomAudit-pinned, but visible in no benchmark entry. Three entries added, each verified L5 in-container before landing:
mf-crr-gaussian-limit(crr_tendsto_gaussian_inDistribution— the distributional CLT for the CRR tree: per-step charFun computed exactly, upgraded to weak convergence by Lévy's continuity theorem),mf-crr-bs-call-convergence(binomialPrice_call_tendsto_bs_closed— the n-step binomial call price converges to the literalS₀·Φ(d₁) − K·e^{−rT}·Φ(d₂); bounded-put + put-call-parity route, no uniform-integrability machinery), andgir-continuous-ftap(discountedGBM_isMartingale— the discounted GBM is a martingale under the risk-neutral measure: the EMM property, i.e. the operational continuous-time first FTAP). The stalemf-crr-prob-halfscope sentence claiming the distributional convergence "is upstream-gated on triangular-array CLT" (false since 2026-05-30) was corrected to point at the new entries. In the same pass, all 157 stalelean/MathFin/<X>.leanprose path references (the pre-reorg flat layout) were remapped to the realMathFin/<Section>/<X>.leanpaths, using each entry's own compiled imports as the authoritative mapping (the old combined files that were split in the reorg — e.g.StrikeConvexityAndRiskAdditivity.lean— map to different targets per entry, which a global rename table would have gotten wrong); the ten entries whose snippet docstrings changed were re-verified in-container.
FTAP tower (2026-06-24 through 2026-06-26, corpus 285→289). Three new FTAP rungs, each
full, built in sequence: (1) finite-Ω multi-period FTAPftap_discrete(mf-ftap-discrete-complete) — Harrison–Pliska for a scalar discounted excess return on a full-support finite probability space and a finite discrete filtration; backward via a global geometric Hahn–Banach separation of the attainable-gains subspace from the standard simplex (the reusable kernelFoundations/ConvexSeparation.lean) and forward via martingale-transform telescoping (Foundations/FTAPDiscrete.lean). (2) General-Ω one-period scalar FTAPftap_one_period(mf-ftap-one-period-general) — Föllmer–Schied 1.55 for an arbitrary probability space and a single scalarL⁰excess return; backward via a bounded-density reduction toL¹, the scalar no-arbitrage dichotomy, and a two-region balancingwithDensity— no Hahn–Banach, no Kreps–Yan (Foundations/FTAPOnePeriod.lean). (3) D-asset one-period FTAPftap_one_period_vector(mf-ftap-one-period-vector) — Föllmer–Schied 1.6 for any finite-dimensional inner-product spaceF; the Esscher/minimal-divergence EMM minimises the convex softplus potentialθ ↦ ∫ log(1 + exp⟪θ,Y⟫), which is coercive onNᗮ(the orthogonal complement of the gains kernelN = {θ : ⟪θ,Y⟫ = 0 a.e.}), so its minimiser onNᗮis automatically global; the first-order condition (differentiation under the integral) produces the strictly-positive bounded density; redundant assets are absorbed byN, dropping the earlier non-redundancy assumption (Foundations/FTAPOnePeriodVector.lean).isEquivProbMeasure_withDensityde-duplicated intoFoundations/EquivMeasure.lean. Net: corpus 285 → 289, 254 full + 18 = 272/289 delivery-ready, 17 reduced. Open rung: general-Ω multi-period DMW (L⁰-closedness + measurable selection).
Itô pathwise regularity arc (2026-06-25 through 2026-06-26, corpus 289→292). Three full entries complete the pathwise-regularity layer. (1) Continuous modification on
[0,T](sc-ito-general-continuous-modification,exists_continuous_modification_itoProcess,Foundations/ItoIntegralProcessContinuousModification.lean, corpus 290): the general-integrand Itô processt ↦ (φ●B)_tadmits an a.s.-continuous representative agreeing a.e. with the L² value at eacht ≤ T. Route: Degenne's continuous-time Doob maximal inequality → Chebyshev on simple-process maxima → Borel–Cantelli on a fast subsequence (geometric2⁻ⁿbounds) → pathwise uniform convergence on the subsequence → continuous limit processitoContinuousMod. The running-max keystone binds the pathwise norm under the supremum over[0,T]. (2) Continuous local martingale on[0,T](sc-ito-general-local-martingale,exists_continuous_localMartingale_modification,Foundations/ItoIntegralProcessLocalMartingaleGeneral.lean, corpus 291): the continuous modification is upgraded to a genuineIsLocalMartingaleon the null-augmented Brownian filtration𝓕ᴮ ⊔ 𝓝. The measure-theoretic core iscondExp_sup_nulls(conditioning on the null augmentation agrees a.e. with conditioning on𝓕ᴮ, its σ-algebra crux consuming Mathlib'seventuallyMeasurableSpace); the null-augmentation setup shows every(𝓕 ⊔ 𝓝)-measurable set is a.e. a𝓕-set. Non-redundant with Degenne's (sorry-backed) general càdlàg modification. (3) Continuous local martingale on[0,∞)(sc-ito-infinite-local-martingale,exists_continuous_localMartingale_modification_infinite,Foundations/ItoIntegralProcessLocalMartingaleInfinite.lean, corpus 292): the per-horizon[0,T=n]continuous local martingales are glued into one path continuous on all ofℝ≥0. Horizon consistency (itoProcessL2Inf_eq_itoProcessCLM, resting on a hand-built[0,T]clamp of Degenne'sSimpleProcessand the band-restriction CLMrestrictToBand) makes each finite-horizon local martingale a modification of the same unbounded-horizon process;indistinguishable_of_modification_onagrees them on overlaps. With no horizon clamp, the martingale property is the globalitoProcessL2Inf_isMartingaledelivered throughcondExp_sup_nulls. All three entries are axioms-clean and values-panel PASS. Net: corpus 289 → 292, 257 full + 18 = 275/292 delivery-ready, 17 reduced, 0 placeholders.
Itô → pricing bridge: the deterministic-integrand Wiener integral is Gaussian, and the Vasicek terminal law derived (2026-06-27, corpus 292→294). The deep Itô tower (complete through the
[0,∞)continuous local martingale) gained its first deterministic-integrand pricing consumer.sc-wiener-integral-gaussian(wienerIntegralLp_map_eq_gaussianReal,Foundations/WienerIntegralGaussian.lean): a deterministic-integrand Wiener integral isgaussianReal 0 ‖f‖²— the distribution the isometry construction left open — by the characteristic-function route (simple-process Gaussianity viaIsGaussianProcess.of_isGaussianProcess+map_eq_gaussianReal, lifted to allL²by a|t|-Lipschitz-charFunDenseRange.induction_on+Measure.ext_of_charFun). Its consumermf-vasicek-sde-terminal-gaussian(vasicekShortRate_hasLaw_gaussian,FixedIncome/VasicekSDEGaussian.lean) derives the Vasicek terminal lawr_T ~ N(vasicekSDEMean, σ²(1−e^{−2κT})/(2κ))thatVasicekSDE.leanpreviously only posited — variance via the FTC integral∫₀ᵀ e^{−2κ(T−s)} ds, affine transport viagaussianReal_const_mul/gaussianReal_const_add. First Itô-tower consumer in FixedIncome. Both axioms-clean. Net: corpus 292 → 294, 259 full + 18 = 277/294 delivery-ready, 17 reduced, 0 placeholders.
The line below is the pre-re-audit historical record (kept for provenance): 235 / 251 delivery-ready (211 full + 24 library wrappers), 16 reduced cores, 0 placeholders.
Per-pass session logs and the pre-2026-05 hybrid-backend validation records
were removed from this file on 2026-05-30, when the SymPy and Isabelle backends
were stripped (the project is Lean-only). They remain in git history. The
2026-05-29 honesty re-audit — the basis for the current counts above — is also
recorded in docs/deep-review-2026-05-29.md.