Skip to main content

Verification dashboard

Lean verification in TheoremPath.

TheoremPath publishes a scoped set of Lean-verified theorems governed by a manifest. Statements in the manifest are the canonical claims; page prose is informal exposition. Verification is per-claim, not per-page.

Source repository: github.com/Robby955/FormalSLT. Public source links point to exact qualified declarations at the audited revision. Rows without a reviewed public mapping do not use an inferred file link.

Library scale

FormalSLT at revision 5e41e98ed3 (September 4, 2026, which builds with leanprover/lean4:v4.32.2) is 358 Lean modules and 221,010 lines carrying 8,579 theorem and lemma declarations. Once comments and string literals are blanked it records 0 occurrences of sorry and 0 of admit, which is a property of the source text and not a build result. A declaration count is not a verification record: the 56 entries in the status table below are the subset wrapped as governed TheoremPath claims, and only those carry a scope and a check date.

Modules
358 .lean files under FormalSLT/
Lines
221,010 across FormalSLT/ and examples/, of which 184,769 are library
Declarations
8,579 carrying the theorem or lemma keyword
Counted
September 14, 2026, from the source tree at that revision with no Lean build

Modules count .lean files under FormalSLT/ only. Lines and theorem counts span FormalSLT/ and examples/. That asymmetry is the rule FormalSLT's own badge generator uses, kept here so the two sets of numbers stay comparable. FormalSLT's committed docs/badges JSON at this revision reads the same 358 modules, 221,010 lines, and 8,579 theorems.

Build and axiom check

On September 14, 2026, public FormalSLT at 5e41e98ed3 was built with leanprover/lean4:v4.32.2, starting from an empty library build directory: lake build finished 4,097 jobs in about 3 minutes. #print axioms was then run on the 53 public declarations the statement-source audit maps: 53 of 53 depend on nothing beyond propext, Classical.choice, Quot.sound. This checks public FormalSLT at that revision. It does not rebuild the tree under verification/lean, and it does not fill the manifest's per-entry axioms arrays described below. The record, with each command's wall time, is data/verification/formalslt-build-receipt.json.

Theorem statements
56
Manifest entries, all at status lean_verified. 56 of 56 record sorryCount 0 and admitCount 0.
Public mapping: text equal
51 of 56
The reviewed qualified declaration is present, and its normalized unelaborated statement text before the proof assignment equals the normalized source text of the legacy declaration referenced by the manifest.
Public mapping: text different
2 of 56
The reviewed public qualified declaration is present, but its normalized unelaborated statement text before the proof assignment is different.
No reviewed public mapping
3 of 56
The legacy manifest records this entry as checked. It has no reviewed public FormalSLT qualified-name/path mapping at the audited revision.

Axiom profile. Every entry carries an axioms array. Entries recording a profile: 1 of 56, and what is recorded is the mathlib core set: propext, Classical.choice, Quot.sound. The other 55 arrays are empty. An empty array does not separate a profile that was taken and came back with core axioms only from one that was never taken. Nothing here runs #print axioms on the vendored tree: the Lean CI job runs lake build, and the re-check scope line below states that axiom profiles were not checked. The status table reports those entries as having no recorded profile, which is what the manifest holds. The build and axiom check above covers the mapped public FormalSLT declarations, a different tree, and is not copied into these arrays.

Pins. Toolchain leanprover/lean4:v4.30.0-rc2, mathlib 25b7ac7d0cf8eef34ced5525f4a62b7613ad649b. Every manifest entry carries those two values, and the Lean tree committed under verification/lean pins the same pair.

Which revision governs which claim. Two trees are in play and they are not interchangeable. The 56 entries were checked in the tree committed under verification/lean at the pins above, and that tree is what the Lean CI job rebuilds. Public FormalSLT 5e41e98ed3 (September 4, 2026) is the other: the statement-source split below and the scale figures above read its source text, and the build and axiom check above compiled it on September 14, 2026. The pins above have not moved, because moving them means rebuilding the vendored tree across two mathlib releases.

Why the clone command builds a different toolchain. FormalSLT sets its own. At the audited revision it is leanprover/lean4:v4.32.2 with mathlib 905b95818eb32af7874a58b427f50c1711a5e96c, which is not the pair the manifest records. Running the command checks that the public library compiles at the audited revision, which is what the build and axiom check above records. It does not re-run the 56 entries, which were checked in the vendored tree under the pins above. Moving those pins means rebuilding that tree, which is a rebuild rather than an edit, and it has not been done. If lake exe cache get warns that some files were not found in the cache, lake build compiles the missing modules from source.

git clone https://github.com/Robby955/FormalSLT.git
cd FormalSLT
git checkout 5e41e98ed3e1c270efe3089a4eb86ee6dd920995
lake exe cache get
lake build

What the statement-source audit checks. For each of the 56 entries: a reviewed qualified name and path in public FormalSLT at the audited revision, and the normalized source text of that declaration up to the top-level proof assignment against the same normalization of the declaration the manifest names. Normalization drops comments and layout, replaces the theorem or lemma keyword with one marker, and keeps declaration modifiers, other non-layout source characters, and string contents. Of the 56 entries, 51 have identical normalized statement text, 2 do not, and 3 have no reviewed public mapping to compare against. Every row in the status table below carries its class, so the entries in the second and third groups can be read off by claim.

What it does not check. Proof bodies, since the comparison stops at the proof assignment. Elaborated Lean expressions, and semantic equivalence between the two repositories: this is source text, and two statements with different text can still mean the same thing. Anything that is not a theorem or a lemma, so definitions, axioms, instances, classes, and abbreviations are unclassified. The scanner tracks strings, line comments, and nested block comments and is not Lean's parser or elaborator; no corpus-wide parser error rate has been measured, and source forms it does not support are left unclassified rather than guessed.

What makes it fail. A reviewed declaration missing at the revision, a mapping that drifts, source syntax the parser rejects, or normalized statement source that changes. The negative control alters the denominator constant in the mapped Hoeffding statement and produces a different hash. Further regressions separate nested comments from comment and assignment markers inside strings, and cover tactic-valued top-level lets, declaration modifiers, same-line attributes, escaped or Unicode names, and private or unsafe targets.

Manifest 2026-05-07, generated May 7, 2026 (141 days old at this site build) · most recent per-entry check May 7, 2026 · audited FormalSLT revision dated September 4, 2026 (22 days old at this site build): 5e41e98ed3. The public split is generator-checked against that commit, which was built and had #print axioms run on September 14, 2026; manifest theorem checks retain their recorded dates and pins.

Declaration names re-checked August 29, 2026. The audit found each name in leanTheoremName, seedDeclarations, proofDeclarations and bridgeProofDeclarations declared in the verification/lean file its entry points at, outside comments and string literals. A qualified name must equal a resolved declaration name; a bare name matches a final segment, and any declaration keyword counts, axiom included. Statement text, axiom profiles, the toolchain and mathlib pins, supportingLeanDeclarations and mathlibTheoremNames were not checked. Nothing in the manifest moved with it: the per-entry check dates are still the ones Lean wrote on May 7, 2026, and the vendored tree those entries point at is rebuilt by the Lean CI job on every change to it. Comparing a manifest statement against its public FormalSLT source is the statement-source audit above, not this re-check, and that comparison is measured rather than open: against 5e41e98ed3, of the 56 entries, 51 have identical normalized statement text, 2 do not, and 3 have no reviewed public mapping. Inside this repository the statements are pinned by content as well: 56 of 56 entries record the SHA-256 of their declaration's normalized statement source in the vendored tree, and the Lean CI job recomputes them, so a statement rewritten under an unchanged declaration name fails there rather than passing quietly.

FormalSLT package

FormalSLT is a public Lean 4 / Mathlib4 library for finite-sample statistical learning theory.

The library records explicit theorem statements, constants, and scope boundaries for finite learning-theory proof routes, with every hypothesis and constant in the type signature rather than buried in tactic blocks. Its sorry and admit token counts are in the scale block above, taken from source text at the counted revision. No axiom profile of the whole library has been taken here; the build and axiom check above covers the 53 mapped declarations only. The checked surface spans PAC-Bayes (Donsker-Varadhan, Catoni, McAllester, finite Bernstein margin-proxy), VC and finite-class routes (Sauer-Shelah, Massart, the binary-VC bridge, ERM excess-risk sample complexity), sharp McDiarmid with the 2B² exponent, Dudley-to-Rademacher chaining to a covering-number entropy-integral endpoint, and anytime-valid sub-Gamma confidence sequences.

The contribution is complementary breadth. It does not claim to be the first or the only such library. FormalSLT is one of the known Lean 4 SLT formalizations and is built to compose with the others: peers hold the continuous empirical-process priority (Zhang et al., 2026; Sonoda et al., 2025), while FormalSLT targets the finite PAC-VC, PAC-Bayes, and Bousquet-Elisseeff stability chains.

Explore the library

FormalSLT theorem families with concrete Lean declarations.

These entries summarize the public-facing surface and the adjacent checked families in the FormalSLT README. Each card has a theorem statement and a scope line. No axiom profile is recorded for these declarations, so none is shown.

Rademacher

High-probability Rademacher bound

Bounds the event that the one-sided generalization gap exceeds twice the expected empirical Rademacher complexity plus ε by exp(−ε²n/(2B²)).

Scope: finite nonempty class, bounded measurable loss, iid product sample, one-sided gap.

FormalSLT.Rademacher.HighProbability.genGap_highProb_rademacher

VC

Effective-growth ERM excess-risk tail

Bounds the exact-ERM excess-risk event at threshold 4B√(2d log(en/d)/n) + 2ε by 2 exp(−ε²n/(2B²)).

Scope: finite nonempty class, bounded measurable loss, iid product sample, supplied growth bounds for loss and negated loss.

FormalSLT.VC.SampleComplexity.vc_erm_excessRisk_tail

Stability

Uniform-stability corollary

Given c₀/n uniform stability and an explicit expected-gap bound, derives a finite-sample tail bound for the one-sided generalization gap.

Scope: finite sample, bounded and integrable loss, strongly measurable and integrable gap, explicit expected-gap premise.

FormalSLT.AlgorithmicStability.bousquet_elisseeff_uniform_stability_corollary

Measure stability

Bounded-loss measurable stability wrapper

Routes bounded measurable losses through the iid product-measure stability expected-gap theorem.

Scope: iid product measure, bounded loss, expected one-sided gap.

FormalSLT.AlgorithmicStability.expectedStabilityGap_le_uniformStability_piMeasure_of_boundedLoss

PAC-Bayes finite

Finite Catoni bad-event bound

Bounds the mass of finite bounded-loss samples where a Catoni-style posterior certificate fails.

Scope: finite hypotheses, finite PMFs, bounded loss in [0,1].

FormalSLT.PACBayesBoundedLoss.finiteCatoni_badEventMass_le_delta

Confidence sequence

Finite-class dyadic confidence sequence

Bounds the event that any finite-class hypothesis crosses a dyadic Hoeffding radius at any counted time.

Scope: finite class, countable dyadic time budget, zero-one range.

FormalSLT.UniformConvergence.FiniteClassConfidenceSequence.failure_probability_le

Dudley

Unit-interval finite-net Dudley bridge

Routes a concrete non-finite unit-interval index example through rounded finite dyadic grids and finite chaining.

Scope: concrete process X(b,t) = sign(b) * t, finite-net bridge, supplied supremum.

FormalSLT.Covering.UnitIntervalDudley.unitIntervalRademacherLinearSup_roundedDyadicGrid_dudley_m_bound_prefixFree

Verified SLT spine

These cards form the learning-theory front door: selected topic claims mapped to governed Lean declarations, with scope and proof boundaries shown beside the theorem. The complete audit log remains the manifest table below, one row per entry with its public statement-source mapping class. This section highlights 13 entries.

ERM

Finite-class ERM tail

Lean verified

No reviewed public mapping

finite-class ERM excess-risk tail under bounded loss

Legacy declaration

TheoremPath.LearningTheory.ERMGeneralization.finiteClass_hoeffding_exactERM_excessRisk_tailNo reviewed public declaration mapping at the audited revision.

Scope

finite class, bounded loss, iid sample, exact ERM

Boundary

finite class, bounded loss, iid sample, exact ERM

Symmetrization

Finite-sample Rademacher symmetrization

Lean verified

Normalized statement text equal

E[genGap] <= 2 * E[empirical Rademacher complexity]

Public declaration

FormalSLT.Rademacher.Symmetrization.expected_genGap_le_two_expected_empiricalRademacherComplexityFormalSLT/Rademacher/Symmetrization.lean:197

Scope

finite index class, iid sample, bounded measurable losses

Boundary

finite index class, iid sample, bounded measurable losses

Rademacher

High-probability Rademacher bound

Lean verified

Normalized statement text equal

P(genGap >= 2 * E[Rad] + eps) has Azuma tail

Public declaration

FormalSLT.Rademacher.HighProbRademacher.genGap_highProb_rademacherFormalSLT/Rademacher/HighProbRademacher.lean:33

Scope

finite class, bounded loss, one-sided genGap, Azuma constant

Boundary

Lean formalization proves the one-sided genGap bound with Azuma constant (factor-of-4 looser than sharp McDiarmid). The governed page claim states the full two-sided uniformDeviation form with sharp McDiarmid constant and confidence-delta parametrization. The Lean result is a strict subset of the page claim.

Rademacher

Massart finite-class bound

Lean verified

Normalized statement text equal

empirical Rademacher complexity <= B * sqrt(2 log card / n)

Public declaration

FormalSLT.VC.Rademacher.empiricalRademacherComplexity_le_massart_effectiveFormalSLT/VC/Rademacher.lean:85

Scope

finite effective class, bounded loss, nontrivial cardinality case

Boundary

finite effective class, bounded loss, nontrivial cardinality case

VC

VC-style Rademacher bound

Lean verified

Normalized statement text equal

Rad <= B * sqrt(2d log(en/d) / n)

Public declaration

FormalSLT.VC.SampleComplexity.vcRademacher_pointwiseFormalSLT/VC/SampleComplexity.lean:140

Scope

finite class, user-supplied effective-growth assumption

Boundary

User supplies the effective-growth assumption for generic losses. For binary classifiers with 0-1 loss, the bridge is closed (BinaryVCBridge.lean).

VC

VC uniform-deviation bound

Lean verified

Normalized statement text different

two-sided uniform deviation via VC growth and Azuma

Public declaration

FormalSLT.VC.SampleComplexity.uniformDeviation_highProb_vcClassFormalSLT/VC/SampleComplexity.lean:288

Scope

finite class, bounded loss, growth assumptions for loss and negated loss

Boundary

Azuma constant (8B² not 2B²). Binary VC bridge now closed for 0-1 loss. Generic losses still need user-supplied growth.

VC

Binary VC bridge

Lean verified

Normalized statement text equal

0-1 loss effective class card = binary trace card

Public declaration

FormalSLT.VC.BinaryVCBridge.effectiveClass_zeroOneLoss_card_eq_binaryClassTraceFormalSLT/VC/BinaryVCBridge.lean:137

Scope

binary classifiers, 0-1 loss, finite class

Boundary

Binary classifiers with 0-1 loss only. Does not cover real-valued loss or multi-class. No contraction. The Lean sample is unlabeled and the loss is 1[h(x) ≠ true], so the machine-checked result is the fixed-label instance of the page statement. The general labeled-sample statement on the page is proved on paper, not in Lean.

Rademacher

Finite scalar contraction

Lean verified

Normalized statement text equal

Rad_S(phi o F) <= L * Rad_S(F)

Public declaration

FormalSLT.Rademacher.Contraction.empiricalRademacherComplexity_contraction_lipschitzFormalSLT/Rademacher/Contraction.lean:477

Scope

finite sample, finite class, scalar-valued functions

Boundary

Finite sample, finite nonempty hypothesis class, scalar outputs only; not full general Talagrand contraction.

PAC-Bayes

Finite Catoni bound

Lean verified

Normalized statement text equal

finite bounded-loss Catoni bad-event mass <= delta

Public declaration

FormalSLT.PACBayesBoundedLoss.finiteCatoni_badEventMass_le_deltaFormalSLT/PACBayesBoundedLoss.lean:393

Scope

finite hypotheses, finite prior/posterior PMFs, [0,1] losses

Boundary

Finite data domain, finite nonempty hypothesis index, finite prior/posterior PMFs, scalar [0,1] losses, positive n/lambda/delta, and fixed lambda only. The fixed-budget and finite-grid square-root corollaries are separate finite claims; continuous posterior PAC-Bayes and infinite hypothesis classes remain outside this claim.

PAC-Bayes

Fixed-budget McAllester bound

Lean verified

Normalized statement text equal

R(rho) <= Rhat_S(rho) + sqrt(C / (2n)) outside a delta event

Public declaration

FormalSLT.PACBayesBoundedLoss.finiteMcAllesterBoundedComplexity_badEventMass_le_deltaFormalSLT/PACBayesBoundedLoss.lean:558

Scope

finite hypotheses, finite PMFs, [0,1] losses, fixed budget C

Boundary

Finite data domain, finite nonempty hypothesis index, finite prior/posterior PMFs, scalar [0,1] losses, positive n/delta, and one fixed positive complexity budget C. The finite-grid theorem removes the single-budget restriction under an explicit grid-cover certificate; continuous posteriors and infinite hypothesis classes remain outside this claim.

PAC-Bayes

Finite-grid McAllester bound

Lean verified

Normalized statement text equal

finite lambda-grid peeling removes the single-budget restriction

Public declaration

FormalSLT.PACBayesBoundedLoss.finiteMcAllesterGridOptimized_badEventMass_le_deltaFormalSLT/PACBayesBoundedLoss.lean:841

Scope

finite hypotheses, finite PMFs, [0,1] losses, explicit grid cover

Boundary

Finite data domain, finite nonempty hypothesis index, finite prior/posterior PMFs, scalar [0,1] losses, positive n and grid confidence allocations, and an explicit finite grid-cover certificate. Does not prove continuous posterior PAC-Bayes, infinite hypothesis classes, or all-real-lambda optimization.

Stability

Expected uniform-stability gap

Lean verified

Normalized statement text equal

uniform stability beta => E[genGap(A(S), S)] <= beta

Public declaration

FormalSLT.AlgorithmicStability.expectedFiniteGeneralizationGap_le_uniformStability_finiteProductFormalSLT/AlgorithmicStability.lean:1601

Scope

finite iid product sample weights, scalar loss, one-sided expectation

Boundary

The Lean wrapper proves the finite one-sided expected bound E_S[R(A(S)) - Rhat_S(A(S))] <= beta. The page theorem also discusses an absolute-value expected form and a high-probability Bousquet-Elisseeff concentration bound, which remain outside this Lean entry.

Status table

One row per manifest entry, sorted by claim ID. Public declarations link to their exact lines in github.com/Robby955/FormalSLT. The table shows exact qualified declaration names. Entries without a reviewed public mapping are labeled directly and receive no guessed source link.

Claim IDTopic pagePublic / legacy declarationLegacy modePublic source auditLegacy axiom profileLegacy check
claim:algorithmic-stability::uniform-stability-generalizationalgorithmic-stability
FormalSLT.AlgorithmicStability.expectedFiniteGeneralizationGap_le_uniformStability_finiteProductLegacy manifest: TheoremPath.LearningTheory.AlgorithmicStability.expectedFiniteGeneralizationGap_le_uniformStability_finiteProductFormalSLT/AlgorithmicStability.lean:1601
scoped bridgeNormalized statement text equalpropext, Classical.choice, Quot.soundMay 7, 2026
claim:asymptotic-statistics::continuous-mapping-theoremasymptotic-statistics
FormalSLT.Statistics.AsymptoticStatistics.continuousMappingTheoremContinuousLegacy manifest: TheoremPath.Statistics.AsymptoticStatistics.continuousMappingTheoremContinuousFormalSLT/Statistics/AsymptoticStatistics.lean:17
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:asymptotic-statistics::slutsky-theoremasymptotic-statistics
FormalSLT.Statistics.AsymptoticStatistics.slutskyTheoremPairLegacy manifest: TheoremPath.Statistics.AsymptoticStatistics.slutskyTheoremPairFormalSLT/Statistics/AsymptoticStatistics.lean:44
exact wrapperNormalized statement text equalno recorded profileMay 2, 2026
claim:common-inequalities::cauchy-schwarz-inequalitycommon-inequalities
FormalSLT.LinearAlgebra.CommonInequalities.cauchySchwarzRealInnerLegacy manifest: TheoremPath.LinearAlgebra.CommonInequalities.cauchySchwarzRealInnerFormalSLT/LinearAlgebra/CommonInequalities.lean:20
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:common-inequalities::jensen-inequalitycommon-inequalities
FormalSLT.LinearAlgebra.CommonInequalities.jensenIntegralAverageConvexLegacy manifest: TheoremPath.LinearAlgebra.CommonInequalities.jensenIntegralAverageConvexFormalSLT/LinearAlgebra/CommonInequalities.lean:34
exact wrapperNormalized statement text equalno recorded profileApril 30, 2026
claim:concentration-inequalities::chebyshev-inequalityconcentration-inequalities
FormalSLT.Probability.Concentration.chebyshevInequalityVarianceLegacy manifest: TheoremPath.Probability.Concentration.chebyshevInequalityVarianceFormalSLT/Probability/Concentration.lean:63
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:concentration-inequalities::hoeffding-one-sided-finite-sumconcentration-inequalities
FormalSLT.Probability.Concentration.hoeffdingBoundedFiniteSumTailLegacy manifest: TheoremPath.Probability.Concentration.hoeffdingBoundedFiniteSumTailFormalSLT/Probability/Concentration.lean:170
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:concentration-inequalities::markov-inequalityconcentration-inequalities
FormalSLT.Probability.Concentration.markovInequalityRealIntegrableLegacy manifest: TheoremPath.Probability.Concentration.markovInequalityRealIntegrableFormalSLT/Probability/Concentration.lean:48
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:concentration-inequalities::sub-gaussian-sum-tail-boundconcentration-inequalities
FormalSLT.Probability.Concentration.subGaussianFiniteSumTailBoundLegacy manifest: TheoremPath.Probability.Concentration.subGaussianFiniteSumTailBoundFormalSLT/Probability/Concentration.lean:75
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:empirical-risk-minimization::finite-class-hoeffding-approx-erm-excess-risk-tailempirical-risk-minimization
TheoremPath.LearningTheory.ERMGeneralization.finiteClass_hoeffding_approxERM_excessRisk_tailNo reviewed public declaration mapping at the audited revision.
scoped bridgeNo reviewed public mappingno recorded profileMay 3, 2026
claim:empirical-risk-minimization::finite-class-hoeffding-erm-excess-risk-tailempirical-risk-minimization
TheoremPath.LearningTheory.ERMGeneralization.finiteClass_hoeffding_exactERM_excessRisk_tailNo reviewed public declaration mapping at the audited revision.
scoped bridgeNo reviewed public mappingno recorded profileMay 3, 2026
claim:empirical-risk-minimization::vc-style-erm-excess-risk-tailempirical-risk-minimization
FormalSLT.VC.SampleComplexity.vc_erm_excessRisk_tailLegacy manifest: TheoremPath.LearningTheory.VCSampleComplexity.vc_erm_excessRisk_tailFormalSLT/VC/SampleComplexity.lean:360
scoped bridgeNormalized statement text differentno recorded profileMay 5, 2026
claim:expectation-variance-covariance-moments::law-of-total-varianceexpectation-variance-covariance-moments
FormalSLT.Probability.Moments.lawOfTotalVarianceLegacy manifest: TheoremPath.Probability.Moments.lawOfTotalVarianceFormalSLT/Probability/Moments.lean:54
exact wrapperNormalized statement text equalno recorded profileApril 30, 2026
claim:expectation-variance-covariance-moments::linearity-of-expectationexpectation-variance-covariance-moments
FormalSLT.Probability.FiniteExpectation.linearityOfExpectationIntegrableLegacy manifest: TheoremPath.Probability.FiniteExpectation.linearityOfExpectationIntegrableFormalSLT/Probability/FiniteExpectation.lean:31
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:expectation-variance-covariance-moments::variance-of-sumexpectation-variance-covariance-moments
FormalSLT.Probability.Moments.varianceOfFiniteSumWithCovarianceLegacy manifest: TheoremPath.Probability.Moments.varianceOfFiniteSumWithCovarianceFormalSLT/Probability/Moments.lean:18
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:kolmogorov-probability-axioms::probability-measure-basic-identitieskolmogorov-probability-axioms
FormalSLT.Probability.KolmogorovAxioms.probabilityMeasureBasicIdentitiesLegacy manifest: TheoremPath.Probability.KolmogorovAxioms.probabilityMeasureBasicIdentitiesFormalSLT/Probability/KolmogorovAxioms.lean:18
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:kolmogorov-probability-axioms::probability-measure-complement-rulekolmogorov-probability-axioms
FormalSLT.Probability.KolmogorovAxioms.probabilityMeasureComplementRuleLegacy manifest: TheoremPath.Probability.KolmogorovAxioms.probabilityMeasureComplementRuleFormalSLT/Probability/KolmogorovAxioms.lean:60
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:kolmogorov-probability-axioms::probability-measure-continuity-from-abovekolmogorov-probability-axioms
FormalSLT.Probability.KolmogorovAxioms.probabilityMeasureContinuityFromAboveLegacy manifest: TheoremPath.Probability.KolmogorovAxioms.probabilityMeasureContinuityFromAboveFormalSLT/Probability/KolmogorovAxioms.lean:116
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:kolmogorov-probability-axioms::probability-measure-continuity-from-belowkolmogorov-probability-axioms
FormalSLT.Probability.KolmogorovAxioms.probabilityMeasureContinuityFromBelowLegacy manifest: TheoremPath.Probability.KolmogorovAxioms.probabilityMeasureContinuityFromBelowFormalSLT/Probability/KolmogorovAxioms.lean:102
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:kolmogorov-probability-axioms::probability-measure-countable-additivitykolmogorov-probability-axioms
FormalSLT.Probability.KolmogorovAxioms.probabilityMeasureCountableAdditivityLegacy manifest: TheoremPath.Probability.KolmogorovAxioms.probabilityMeasureCountableAdditivityFormalSLT/Probability/KolmogorovAxioms.lean:46
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:kolmogorov-probability-axioms::probability-measure-countable-union-boundkolmogorov-probability-axioms
FormalSLT.Probability.KolmogorovAxioms.probabilityMeasureCountableUnionBoundLegacy manifest: TheoremPath.Probability.KolmogorovAxioms.probabilityMeasureCountableUnionBoundFormalSLT/Probability/KolmogorovAxioms.lean:88
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:kolmogorov-probability-axioms::probability-measure-finite-additivitykolmogorov-probability-axioms
FormalSLT.Probability.KolmogorovAxioms.probabilityMeasureFiniteAdditivityLegacy manifest: TheoremPath.Probability.KolmogorovAxioms.probabilityMeasureFiniteAdditivityFormalSLT/Probability/KolmogorovAxioms.lean:33
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:kolmogorov-probability-axioms::probability-measure-finite-union-boundkolmogorov-probability-axioms
FormalSLT.Probability.KolmogorovAxioms.probabilityMeasureFiniteUnionBoundLegacy manifest: TheoremPath.Probability.KolmogorovAxioms.probabilityMeasureFiniteUnionBoundFormalSLT/Probability/KolmogorovAxioms.lean:74
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:law-of-large-numbers::strong-law-of-large-numberslaw-of-large-numbers
FormalSLT.Probability.LawOfLargeNumbers.strongLawAverageTendstoAlmostSureLegacy manifest: TheoremPath.Probability.LawOfLargeNumbers.strongLawAverageTendstoAlmostSureFormalSLT/Probability/LawOfLargeNumbers.lean:19
exact wrapperNormalized statement text equalno recorded profileApril 30, 2026
claim:law-of-large-numbers::weak-law-of-large-numberslaw-of-large-numbers
FormalSLT.Probability.LawOfLargeNumbers.weakLawAverageTendstoInMeasureLegacy manifest: TheoremPath.Probability.LawOfLargeNumbers.weakLawAverageTendstoInMeasureFormalSLT/Probability/LawOfLargeNumbers.lean:42
exact wrapperNormalized statement text equalno recorded profileApril 30, 2026
claim:martingale-theory::azuma-hoeffdingmartingale-theory
FormalSLT.Probability.Concentration.azumaHoeffdingConditionalSubGaussianTailLegacy manifest: TheoremPath.Probability.Concentration.azumaHoeffdingConditionalSubGaussianTailFormalSLT/Probability/Concentration.lean:116
exact wrapperNormalized statement text equalno recorded profileApril 30, 2026
claim:martingale-theory::doob-weak-maximal-inequalitymartingale-theory
FormalSLT.Probability.Martingale.doobWeakMaximalInequalityLegacy manifest: TheoremPath.Probability.Martingale.doobWeakMaximalInequalityFormalSLT/Probability/Martingale.lean:18
exact wrapperNormalized statement text equalno recorded profileApril 30, 2026
claim:measure-theoretic-probability::borel-cantelli-firstmeasure-theoretic-probability
FormalSLT.Probability.BorelCantelli.borelCantelliFirstLimsupMeasureZeroLegacy manifest: TheoremPath.Probability.BorelCantelli.borelCantelliFirstLimsupMeasureZeroFormalSLT/Probability/BorelCantelli.lean:19
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:measure-theoretic-probability::borel-cantelli-secondmeasure-theoretic-probability
FormalSLT.Probability.BorelCantelli.borelCantelliSecondIndependentLimsupMeasureOneLegacy manifest: TheoremPath.Probability.BorelCantelli.borelCantelliSecondIndependentLimsupMeasureOneFormalSLT/Probability/BorelCantelli.lean:45
exact wrapperNormalized statement text equalno recorded profileApril 29, 2026
claim:measure-theoretic-probability::dominated-convergence-theoremmeasure-theoretic-probability
FormalSLT.Probability.MeasureConvergence.dominatedConvergenceIntegralLegacy manifest: TheoremPath.Probability.MeasureConvergence.dominatedConvergenceIntegralFormalSLT/Probability/MeasureConvergence.lean:52
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:measure-theoretic-probability::fatou-lemmameasure-theoretic-probability
FormalSLT.Probability.MeasureConvergence.fatouLemmaLIntegralLegacy manifest: TheoremPath.Probability.MeasureConvergence.fatouLemmaLIntegralFormalSLT/Probability/MeasureConvergence.lean:37
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:measure-theoretic-probability::monotone-convergence-theoremmeasure-theoretic-probability
FormalSLT.Probability.MeasureConvergence.monotoneConvergenceLIntegralLegacy manifest: TheoremPath.Probability.MeasureConvergence.monotoneConvergenceLIntegralFormalSLT/Probability/MeasureConvergence.lean:21
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026
claim:pac-bayes-bounds::donsker-varadhan-finite-change-of-measurepac-bayes-bounds
FormalSLT.PACBayesKL.donsker_varadhanLegacy manifest: TheoremPath.LearningTheory.PACBayesKL.donsker_varadhanFormalSLT/PACBayesKL.lean:238
scoped bridgeNormalized statement text equalno recorded profileMay 6, 2026
claim:pac-bayes-bounds::finite-catoni-bounded-loss-pac-bayes-boundpac-bayes-bounds
FormalSLT.PACBayesBoundedLoss.finiteCatoni_badEventMass_le_deltaLegacy manifest: TheoremPath.LearningTheory.PACBayesBoundedLoss.finiteCatoni_badEventMass_le_deltaFormalSLT/PACBayesBoundedLoss.lean:393
scoped bridgeNormalized statement text equalno recorded profileMay 7, 2026
claim:pac-bayes-bounds::finite-grid-mcallester-optimized-pac-bayes-boundpac-bayes-bounds
FormalSLT.PACBayesBoundedLoss.finiteMcAllesterGridOptimized_badEventMass_le_deltaLegacy manifest: TheoremPath.LearningTheory.PACBayesBoundedLoss.finiteMcAllesterGridOptimized_badEventMass_le_deltaFormalSLT/PACBayesBoundedLoss.lean:841
scoped bridgeNormalized statement text equalno recorded profileMay 7, 2026
claim:pac-bayes-bounds::finite-mcallester-fixed-budget-pac-bayes-boundpac-bayes-bounds
FormalSLT.PACBayesBoundedLoss.finiteMcAllesterBoundedComplexity_badEventMass_le_deltaLegacy manifest: TheoremPath.LearningTheory.PACBayesBoundedLoss.finiteMcAllesterBoundedComplexity_badEventMass_le_deltaFormalSLT/PACBayesBoundedLoss.lean:558
scoped bridgeNormalized statement text equalno recorded profileMay 7, 2026
claim:pac-bayes-bounds::finite-pmf-kl-nonnegativitypac-bayes-bounds
FormalSLT.PACBayesKL.klDiv_nonnegLegacy manifest: TheoremPath.LearningTheory.PACBayesKL.klDiv_nonnegFormalSLT/PACBayesKL.lean:133
scoped bridgeNormalized statement text equalno recorded profileMay 6, 2026
claim:pac-bayes-bounds::posterior-gap-finite-change-of-measurepac-bayes-bounds
FormalSLT.PACBayesKL.posterior_generalization_gap_change_of_measureLegacy manifest: TheoremPath.LearningTheory.PACBayesKL.posterior_generalization_gap_change_of_measureFormalSLT/PACBayesKL.lean:263
scoped bridgeNormalized statement text equalno recorded profileMay 6, 2026
claim:pac-bayes-bounds::posterior-risk-finite-lambda-rearrangementpac-bayes-bounds
FormalSLT.PACBayesKL.posterior_risk_le_empiricalRisk_plus_of_log_moment_boundLegacy manifest: TheoremPath.LearningTheory.PACBayesKL.posterior_risk_le_empiricalRisk_plus_of_log_moment_boundFormalSLT/PACBayesKL.lean:359
scoped bridgeNormalized statement text equalno recorded profileMay 6, 2026
claim:pac-bayes-bounds::prior-exp-moment-finite-markov-confidence-adapterpac-bayes-bounds
FormalSLT.PACBayesKL.priorExpMoment_tailMass_le_delta_of_expected_boundLegacy manifest: TheoremPath.LearningTheory.PACBayesKL.priorExpMoment_tailMass_le_delta_of_expected_boundFormalSLT/PACBayesKL.lean:460
scoped bridgeNormalized statement text equalno recorded profileMay 6, 2026
claim:rademacher-complexity::finite-sample-contractionrademacher-complexity
FormalSLT.Rademacher.Contraction.empiricalRademacherComplexity_contraction_lipschitzLegacy manifest: TheoremPath.LearningTheory.RademacherContraction.empiricalRademacherComplexity_contraction_lipschitzFormalSLT/Rademacher/Contraction.lean:477
scoped bridgeNormalized statement text equalno recorded profileMay 6, 2026
claim:rademacher-complexity::high-probability-rademacher-gengap-boundrademacher-complexity
FormalSLT.Rademacher.HighProbRademacher.genGap_highProb_rademacherLegacy manifest: TheoremPath.LearningTheory.HighProbRademacher.genGap_highProb_rademacherFormalSLT/Rademacher/HighProbRademacher.lean:33
scoped bridgeNormalized statement text equalno recorded profileMay 4, 2026
claim:rademacher-complexity::linear-predictor-rademacher-boundrademacher-complexity
FormalSLT.Rademacher.LinearPredictor.linearPredictor_rademacherLegacy manifest: TheoremPath.LearningTheory.LinearPredictorRademacher.linearPredictor_rademacherFormalSLT/Rademacher/LinearPredictor.lean:267
scoped bridgeNormalized statement text equalno recorded profileMay 6, 2026
claim:rademacher-complexity::massart-finite-class-boundrademacher-complexity
FormalSLT.VC.Rademacher.empiricalRademacherComplexity_le_massart_effectiveLegacy manifest: TheoremPath.LearningTheory.VCRademacher.empiricalRademacherComplexity_le_massart_effectiveFormalSLT/VC/Rademacher.lean:85
scoped bridgeNormalized statement text equalno recorded profileMay 5, 2026
claim:rademacher-complexity::one-lipschitz-empirical-rademacher-contractionrademacher-complexity
FormalSLT.Rademacher.Contraction.contraction_empiricalLegacy manifest: TheoremPath.LearningTheory.RademacherContraction.contraction_empiricalFormalSLT/Rademacher/Contraction.lean:454
scoped bridgeNormalized statement text equalno recorded profileMay 6, 2026
claim:rademacher-complexity::vc-style-rademacher-boundrademacher-complexity
FormalSLT.VC.SampleComplexity.vcRademacher_pointwiseLegacy manifest: TheoremPath.LearningTheory.VCSampleComplexity.vcRademacher_pointwiseFormalSLT/VC/SampleComplexity.lean:140
scoped bridgeNormalized statement text equalno recorded profileMay 5, 2026
claim:subgaussian-random-variables::hoeffding-lemmasubgaussian-random-variables
FormalSLT.Probability.Concentration.hoeffdingLemmaBoundedCenteredSubgaussianMGFLegacy manifest: TheoremPath.Probability.Concentration.hoeffdingLemmaBoundedCenteredSubgaussianMGFFormalSLT/Probability/Concentration.lean:154
exact wrapperNormalized statement text equalno recorded profileApril 29, 2026
claim:subgaussian-random-variables::subgaussian-linear-combinationsubgaussian-random-variables
FormalSLT.Probability.Concentration.subGaussianIndependentFiniteLinearCombinationMGFLegacy manifest: TheoremPath.Probability.Concentration.subGaussianIndependentFiniteLinearCombinationMGFFormalSLT/Probability/Concentration.lean:92
exact wrapperNormalized statement text equalno recorded profileApril 29, 2026
claim:subgaussian-random-variables::subgaussian-mgf-characterizationsubgaussian-random-variables
FormalSLT.Probability.Concentration.subGaussianMGFImpliesRightTailBoundLegacy manifest: TheoremPath.Probability.Concentration.subGaussianMGFImpliesRightTailBoundFormalSLT/Probability/Concentration.lean:139
exact wrapperNormalized statement text equalno recorded profileApril 29, 2026
claim:symmetrization-inequality::finite-sample-rademacher-symmetrizationsymmetrization-inequality
FormalSLT.Rademacher.Symmetrization.expected_genGap_le_two_expected_empiricalRademacherComplexityLegacy manifest: TheoremPath.LearningTheory.RademacherSymmetrization.expected_genGap_le_two_expected_empiricalRademacherComplexityFormalSLT/Rademacher/Symmetrization.lean:197
scoped bridgeNormalized statement text equalno recorded profileMay 4, 2026
claim:symmetrization-inequality::one-sample-finite-class-symmetrizationsymmetrization-inequality
TheoremPath.Statistics.Rademacher.oneSampleFiniteClassSymmetrizationNo reviewed public declaration mapping at the audited revision.
scoped bridgeNo reviewed public mappingno recorded profileMay 3, 2026
claim:uniform-convergence::epsilon-representative-sampleuniform-convergence
FormalSLT.UniformConvergence.epsilonRepresentativeERMWorksLegacy manifest: TheoremPath.LearningTheory.UniformConvergence.epsilonRepresentativeERMWorksFormalSLT/UniformConvergence.lean:24
standaloneNormalized statement text equalno recorded profileApril 28, 2026
claim:uniform-convergence::finite-class-uniform-convergenceuniform-convergence
FormalSLT.UniformConvergence.finiteClassEpsilonRepresentativeHighProbabilityFromOneSidedTailsLegacy manifest: TheoremPath.LearningTheory.UniformConvergence.finiteClassEpsilonRepresentativeHighProbabilityFromOneSidedTailsFormalSLT/UniformConvergence.lean:524
scoped bridgeNormalized statement text equalno recorded profileApril 30, 2026
claim:uniform-convergence::vc-style-uniform-deviation-bounduniform-convergence
FormalSLT.VC.SampleComplexity.uniformDeviation_highProb_vcClassLegacy manifest: TheoremPath.LearningTheory.VCSampleComplexity.uniformDeviation_highProb_vcClassFormalSLT/VC/SampleComplexity.lean:288
scoped bridgeNormalized statement text differentno recorded profileMay 5, 2026
claim:vc-dimension::binary-vc-zero-one-loss-bridgevc-dimension
FormalSLT.VC.BinaryVCBridge.effectiveClass_zeroOneLoss_card_eq_binaryClassTraceLegacy manifest: TheoremPath.LearningTheory.BinaryVCBridge.effectiveClass_zeroOneLoss_card_eq_binaryClassTraceFormalSLT/VC/BinaryVCBridge.lean:137
scoped bridgeNormalized statement text equalno recorded profileMay 5, 2026
claim:vc-dimension::sauer-shelah-lemmavc-dimension
FormalSLT.VC.Dimension.sauerShelahFiniteSetFamilyLegacy manifest: TheoremPath.LearningTheory.VCDimension.sauerShelahFiniteSetFamilyFormalSLT/VC/Dimension.lean:15
exact wrapperNormalized statement text equalno recorded profileApril 28, 2026

Diagram A. Finite-class ERM chain

The probability layer behind the finite-class generalization theorem. Every arrow currently has a manifest entry behind it.

Diagram A. Finite-class ERM chain (probability layer). Solid arrows are Lean-verified. No dashed arrows yet at this layer.

Fixed-hypothesis Hoeffdingone-sided finite sumTwo-sided deviationfrom one-sided tailsFinite union boundprobability measureUniform convergencescoped bridgeExact / approximate ERMexcess-risk tailFinite-class generalizationdeterministic, finite classverifiedplanned

Diagram B. Rademacher chain

The core learning-theory generalization layer. These six nodes are verified end to end (Stages 1, 2, 3 chained by transitivity, plus the high-probability bound via Azuma concentration). The contraction and linear-predictor entries are listed separately in the manifest table and assumption blocks.

Diagram B. Rademacher chain (learning-theory layer). Solid arrows are Lean-verified. Dashed arrows are planned or future.

Finite sign vectorscombinatorialUniform sign PMFtwo-point RademacherEmpirical Rademacherexpectation formGhost-sample replacementStage 1, internalExpected Rademacher boundStage 3, manifest entryHigh-probability boundStage C, Azuma constantverifiedplanned / future

Diagram C. VC sample-complexity chain

Binary-classification VC-style ERM sample-complexity bound for 0-1 loss. Composes Sauer-Shelah polynomial bound, effective-class Massart, pointwise VC-Rademacher, high-probability genGap, two-sided uniform deviation, ERM excess-risk tail, and the binary-class VC bridge that closes the user-supplied growth assumption for 0-1 loss.

Diagram C. VC sample-complexity chain. All nodes and arrows are Lean-verified, including the binary-class VC bridge for 0-1 loss.

Sauer-Shelah polynomial(en/d)^d boundEffective-class MassartRad ≤ B√(2 log K / n)VC pointwise RademacherRad ≤ B√(2d log(en/d)/n)High-prob VC genGapone-sided, Azuma constantVC uniform deviationtwo-sided, 2·exp(−ε²n/(8B²))VC ERM excess-risk tailO(√(d log(n/d) / n))Binary-class VC bridgetrace → effective class (0-1)Lean-verified

Assumption table

Scope, assumptions, and current boundaries for the finite-class ERM, Rademacher, VC, and finite chaining tracks. The four states are visually distinct and use no badges.

ResultStatusLimitation
Exact ERM oracle inequalityverifieddeterministic
Approximate ERM oracle inequalityverifieddeterministic
Finite-class Hoeffding ERM boundverifiedfinite class, bounded loss
Finite sign-vector Rademacher machineryverifiedcombinatorial
Rademacher probability bridgeverifiedexpectation form only
Expected Rademacher symmetrizationverifiedexpectation form, finite index, bounded loss
High-probability Rademacher boundverifiedone-sided genGap, Azuma constant, finite class, bounded loss
Finite-sample scalar contractionverifiedfinite sample, finite class, scalar-valued
Linear predictor Rademacher boundverifiedfinite-dimensional Euclidean, finite indexed weights
Effective-class Massart boundverifiedfinite class, bounded loss, effective class card > 1
VC pointwise Rademacher boundverifieduser-supplied effective-growth assumption, finite class, bounded loss
VC high-probability genGapverifiedone-sided, Azuma constant, user-supplied growth, finite class
VC two-sided uniform deviationverifiedAzuma constant, user-supplied growth for ℓ and -ℓ, finite class
VC ERM excess-risk tailverifiedAzuma constant, user-supplied growth, finite class, bounded loss
Binary-class VC bridge (trace → effective class, 0-1 loss)verifiedbinary classifiers only, 0-1 loss only, finite class
Experimental finite chaining foundationverifiedfinite support layer only; not a headline governed claim
Generic PAC learnabilityextension targetrequires a separate PAC-learnability framework

Headline-theorem assumption blocks

Each block records the informal statement, the literal Lean assumptions, and the verification boundary. The Lean assumptions are reproductions of the declaration signature, not paraphrase.

Finite-class Hoeffding ERM excess-risk tail (exact ERM)

Statement (informal)

For a finite nonempty hypothesis class with iid bounded loss in [a, b], an exact ERM hypothesis, and a population-risk oracle, the excess-risk-tail probability is bounded by delta once the sample size exceeds (b - a)^2 log(2|H|/delta) / (2 epsilon^2).

Lean assumptions

[Fintype H] [Nonempty H] (hLossBounded : ∀ h x y, a ≤ ℓ h x y ∧ ℓ h x y ≤ b) (hOracle : IsERM oracle riskTrue) (hHat : IsERM hhat riskEmp) (hN : (b - a)^2 * Real.log (2 * |H| / delta) / (2 * epsilon^2) ≤ n)

Boundary

  • infinite hypothesis classes
  • Rademacher or VC-based sample complexity
  • optimizer-specific certificates such as SGD or Adam
  • broader learning-rule selection claims

Finite-class Hoeffding ERM excess-risk tail (approximate ERM with optimization slack)

Statement (informal)

Same setup as the exact-ERM theorem, but the empirical minimizer is replaced by a hypothesis whose empirical risk is within an explicit optimization slack of the ERM.

Lean assumptions

[Fintype H] [Nonempty H] (hLossBounded : ...) (hApproxERM : riskEmp hhat ≤ riskEmp (argmin riskEmp) + optError) (hN : ...)

Boundary

  • optimizer certificates for a concrete method such as SGD or Adam
  • end-to-end statistical-plus-optimization guarantees

Empirical Rademacher complexity, expectation form (PR #364)

Statement (informal)

On a finite nonempty index set, the empirical Rademacher complexity expressed as an integral against the uniform sign-vector PMF equals the discrete average over sign vectors of the supremum.

Lean assumptions

[Fintype ι] [Nonempty ι] (f : ι → SignVec n → ℝ) (hf : ∀ σ, BddAbove (Set.range (fun i => f i σ)))

Boundary

  • measure-theoretic Rademacher product measures beyond the iid product used by the symmetrization theorem

Expected finite-sample Rademacher symmetrization

Statement (informal)

For an iid sample S of size n drawn from a probability measure mu on Z, a finite nonempty index set iota of measurable losses ell_i bounded by B in absolute value, the expected supremum of (population risk minus empirical risk) is at most twice the expected empirical Rademacher complexity. Proved by transitivity through ghost-sample replacement (Stage 1) and Rademacher decoupling (Stage 2), with Fubini converting an iterated integral into a joint integral against mu^{⊗n} ⊗ mu^{⊗n}.

Lean assumptions

{ι : Type*} [Fintype ι] [Nonempty ι] {Z : Type*} [MeasurableSpace Z] {n : ℕ} (μ : Measure Z) [IsProbabilityMeasure μ] (ℓ : ι → Z → ℝ) {B : ℝ} (hB : 0 ≤ B) (hℓ_meas : ∀ i, Measurable (ℓ i)) (hℓ_bdd : ∀ i z, |ℓ i z| ≤ B) (hn : 0 < n)

Boundary

  • two-sided uniform deviation and sharp-McDiarmid constants are separate targets
  • infinite hypothesis classes and VC-based sample complexity require later layers
  • Lipschitz-composed real-valued losses use the contraction route
  • algorithm-specific guarantees such as SGD, ERM, or estimator certificates are separate theorem statements

High-probability Rademacher generalization bound (Azuma constant)

Statement (informal)

For a finite nonempty hypothesis class with uniformly B-bounded measurable losses on an iid sample S ~ μⁿ: P(genGap(S) ≥ 2·E_S[empiricalRademacherComplexity] + ε) ≤ exp(-ε²n/(8B²)). Combines expected Rademacher symmetrization with the Azuma-style genGap tail bound via measure monotonicity.

Lean assumptions

{ι : Type*} [Fintype ι] [Nonempty ι] [Nonempty Z] [StandardBorelSpace Z] [IsProbabilityMeasure μ] {ℓ : ι → Z → ℝ} {B : ℝ} (hB : 0 < B) (hℓ_meas : ∀ i, Measurable (ℓ i)) (hℓ_bdd : ∀ i z, |ℓ i z| ≤ B) {n : ℕ} (hn : 0 < n) {ε : ℝ} (hε : 0 ≤ ε)

Boundary

  • two-sided uniform deviation is handled by the VC/uniform-deviation route
  • sharp McDiarmid is a future constant-improvement lane
  • infinite hypothesis classes require measurability and approximation infrastructure
  • contraction, VC/PAC sample complexity, and neural-network results are separate proof layers

Finite-sample scalar contraction

Statement (informal)

For a finite sample, finite nonempty hypothesis class, scalar-valued functions, positive Lipschitz constant L, and φ satisfying |φ s - φ t| ≤ L |s - t|: empiricalRademacherComplexity(φ ∘ ℓ, z) ≤ L · empiricalRademacherComplexity(ℓ, z).

Lean assumptions

{ι : Type*} [Fintype ι] [Nonempty ι] {Z : Type*} {n : ℕ} {φ : ℝ → ℝ} {L : ℝ} (hL : 0 < L) (hφ_lip : ∀ s t : ℝ, |φ s - φ t| ≤ L * |s - t|) (ℓ : ι → Z → ℝ) (z : Fin n → Z)

Boundary

  • not full Talagrand contraction
  • no infinite hypothesis classes
  • no vector-valued contraction
  • no generic stochastic-process comparison theorem

Finite-dimensional linear predictor Rademacher bound

Statement (informal)

For finite weights w_i in EuclideanSpace ℝ (Fin d) with ‖w_i‖ ≤ R and finite sample z : Fin n → EuclideanSpace ℝ (Fin d), empiricalRademacherComplexity({x ↦ ⟪w_i, x⟫}, z) ≤ R · n⁻¹ · sqrt(Σ_k ‖z_k‖²). A bounded-input corollary proves the RB/sqrt(n) form.

Lean assumptions

{d n : ℕ} {ι : Type*} [Fintype ι] [Nonempty ι] (w : ι → EuclideanSpace ℝ (Fin d)) (z : Fin n → EuclideanSpace ℝ (Fin d)) (R : ℝ) (hR : 0 ≤ R) (hw : ∀ i, ‖w i‖ ≤ R) (hn : 0 < (n : ℝ))

Boundary

  • not an arbitrary Hilbert-space theorem
  • not an unindexed infinite weight ball
  • not a neural-network generalization theorem
  • bounded-input RB/sqrt(n) statement is a Lean corollary, not a separate manifest claim here

Effective-growth VC-style sample-complexity theorem (ERM excess-risk tail)

Statement (informal)

For a hypothesis class with effective-class cardinality bounded by the growth function ∑_{k≤d} C(n,k) (for ℓ and -ℓ), B-bounded loss, and an iid sample S ~ μⁿ: P(risk(ERM) - risk(best) ≥ 4B·√(2d·log(en/d)/n) + 2ε) ≤ 2·exp(-ε²n/(8B²)). Chains Sauer-Shelah → Massart → VC Rademacher → Azuma → uniform deviation → ERM.

Lean assumptions

{ι : Type*} [Fintype ι] [Nonempty ι] [MeasurableSpace Z] [Nonempty Z] [StandardBorelSpace Z] {μ : Measure Z} [IsProbabilityMeasure μ] {ℓ : ι → Z → ℝ} {B : ℝ} (hB : 0 < B) (hℓ_meas : ∀ i, Measurable (ℓ i)) (hℓ_bdd : ∀ i z, |ℓ i z| ≤ B) {n d : ℕ} (hn : 0 < n) (hd : 0 < d) (hdn : d ≤ n) (hGrowth_uniform : ∀ z, (effectiveClass ℓ z).card ≤ ∑ k ∈ range (d+1), n.choose k) (hGrowth_neg : ∀ z, (effectiveClass (fun i w => -ℓ i w) z).card ≤ ...) (hhat : (Fin n → Z) → ι) (hERM : ∀ S, IsERM (empiricalRisk S ℓ) (hhat S)) (i_star : ι) {ε : ℝ} (hε : 0 ≤ ε)

Boundary

  • binary-class VC bridge closed for 0-1 loss; generic losses still need user-supplied growth
  • Azuma constant (8B² not sharp 2B²)
  • finite hypothesis classes only (no infinite classes)
  • contraction, generic PAC equivalence, and neural-network generalization are separate proof layers

Verification boundary and proof targets

These entries keep broader theorem ambitions separate from the narrower declarations already compiled by Lean. Boundaries are tracked as next-proof targets rather than inferred from adjacent results.

  • Sharp McDiarmid / two-sided Rademacher generalization bound

    The one-sided high-probability Rademacher generalization bound is verified for finite classes with the Azuma constant. Current boundaries: the two-sided uniformDeviation form, the sharp McDiarmid constant exp(-ε²n/(2B²)), infinite hypothesis classes, and the full textbook confidence-delta parametrization are separate targets.

  • Dudley's entropy integral

    The continuous entropy integral is not a governed manifest claim. The Lean tree has a verified finite chaining support layer, including finite dyadic entropy-budget and uniform entropy-cap bounds, but TheoremPath does not present it as a headline continuous Dudley theorem yet.

  • Full VC-to-PAC equivalence

    The effective-growth VC-style sample-complexity theorem is verified (Sauer-Shelah → Massart → Rademacher → ERM). The binary-class VC bridge for 0-1 loss is closed (effectiveClass.card = binaryClassTrace.card). Current boundaries: generic real-valued-loss VC bridges, the full fundamental theorem of PAC learning, and infinite hypothesis classes remain future work.

  • Generic PAC learnability

    TheoremPath verifies specific finite-class theorem chains today. A generic PAC-learnability framework is a larger formalization lane, not a consequence of a single checked declaration.

  • Page-level verification

    Manifest verification certifies exact theorem statements. Topic prose, examples, diagrams, and citations are outside it. A page carries formal evidence only where it links to a matching Lean claim, and the absence of a link is not a record that anything else was checked.

  • Axiom profiles for every entry

    The manifest records an axiom profile for 1 of 56 entries. The other 55 carry an empty array, which records nothing either way, and no job in this repository runs #print axioms. Taking a profile for every entry means adding that pass to the Lean CI job and writing the result back per entry. It does not need the pins to move.

Cross-references: theorem index, evidence, methodology, and disclaimer.