[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"9Rdcy1c7Qj":3},"# Formal Statistical Learning Theory in Lean 4\n\n[![CI](https://github.com/Robby955/FormalSLT/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Robby955/FormalSLT/actions/workflows/ci.yml)\n[![Lean 4](https://img.shields.io/badge/Lean-4.30.0--rc2-blue.svg)](https://lean-lang.org/)\n[![Mathlib](https://img.shields.io/badge/Mathlib-25b7ac7-blueviolet.svg)](https://github.com/leanprover-community/mathlib4)\n[![Zero sorry](https://img.shields.io/badge/sorry-0-brightgreen.svg)](#audit-commands)\n[![Axioms](https://img.shields.io/badge/axioms-propext%2C%20Classical.choice%2C%20Quot.sound-brightgreen.svg)](#audit-commands)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)\n\nFormalSLT is a Lean 4 library for checking finite-sample statistical learning\ntheory proof chains. The current v0.1 surface is organized around two checked\nendpoints:\n\n1. a finite-class, countable-time Hoeffding confidence sequence for `[0,1]`\n   losses; and\n2. a finite-net Dudley bridge for a concrete process indexed by the non-finite\n   unit interval `[0,1]`.\n\nThe repository also packages reusable dyadic Dudley API instances for a\ntwo-point metric space and for finite discrete spaces `Fin n`. Those examples\nare API checks: they show that the finite-net wrapper is reusable outside the\nunit-interval file.\n\nThe concentration layer now carries the sharp McDiarmid bounded-differences\ninequality over a homogeneous product measure. For a function whose value\nchanges by at most `c k` when coordinate `k` is altered, the library proves the\none-sided tail `exp(-2ε²/∑ₖcₖ²)` (`mcdiarmid_of_hasBoundedDifferences_sharp`),\nits lower-tail form (`mcdiarmid_of_hasBoundedDifferences_sharp_lower`), and the\ntwo-sided bound `2·exp(-2ε²/∑ₖcₖ²)`\n(`mcdiarmid_twoSided_of_hasBoundedDifferences_sharp`). The sharp `2B²` exponent\nis propagated into the high-probability Rademacher, finite-class, VC, and\nalgorithmic-stability wrappers listed below, replacing the looser Azuma `8B²`\nconstant on those paths. The localized-Rademacher wrapper still uses the older\nAzuma constant. The bounded-differences theorem is stated for the same product\nlaw in each coordinate, not for arbitrary non-iid product spaces.\n\nThe PAC-Bayes layer now includes a finite Bernstein margin-proxy shell. It\nadds a supplied per-hypothesis variance proxy, a normalized Bernstein\nprior-moment certificate, fixed-`λ` finite bad-event bounds, and a\nposterior-dependent square-root-plus-linear wrapper. This is a supplied-proxy\nfinite shell: it is not yet a concrete classifier-margin extractor, an\nall-real-`λ` optimization theorem, or a continuous hypothesis-space theorem.\n\n**60 `FormalSLT/` Lean files. 85 checked Lean files under `FormalSLT/` and\n`examples/`. 33,427 lines. Zero `sorry`. Zero `admit`. Zero custom axioms.**\n\nCounts are generated with `find FormalSLT -name '*.lean'`, `find FormalSLT\nexamples -name '*.lean'`, and `find FormalSLT examples -name '*.lean' -print0 |\nxargs -0 wc -l`.\n\nThe printed axiom profile for the v0.1 headline surface stays inside:\n`[propext, Classical.choice, Quot.sound]`.\n\n![FormalSLT theorem chain](./docs/theorem-chain.svg)\n\n## What v0.1 Proves\n\n| Surface | Main checked endpoint | Checker |\n|---|---|---|\n| Finite-class Hoeffding confidence sequence | `FiniteClassConfidenceSequence.failure_probability_le` | `examples/CheckUniformConvergence.lean` |\n| Unit-interval finite-net Dudley bridge | `unitIntervalRademacherLinearSup_roundedDyadicGrid_dudley_m_bound_prefixFree` | `examples/CheckUnitIntervalDudley.lean` |\n| Packaged finite dyadic Dudley API | `FiniteDyadicDudleyInstance.suppliedSup_dudley_bound` | `examples/CheckV01Usability.lean` |\n| Two-point dyadic Dudley instance | `twoPointDudleyInstance` | `examples/CheckTwoPointDudley.lean` |\n| `Fin n` discrete dyadic Dudley instance | `finDiscreteDudleyInstance` | `examples/CheckFiniteDiscreteDudley.lean` |\n| Two-sided sharp McDiarmid over a homogeneous product measure | `mcdiarmid_twoSided_of_hasBoundedDifferences_sharp` | `FormalSLT/Test/SharpMcDiarmidTest.lean` |\n| PAC-Bayes Bernstein supplied margin-proxy shell | `finitePACBayesBernsteinMargin_badEventMass_le_delta` | `examples/CheckPACBayesBernstein.lean` |\n\nThe confidence-sequence chain makes the finite-class and countable-time union\nbound explicit. The Dudley chain connects finite sub-Gaussian chaining to a\nnon-finite metric index space by constructing rounded dyadic finite nets and\nchecking the supplied supremum for the concrete process\n`X(b,t) = signOfBool b * t`.\n\n## Fast Verification\n\nFrom the repository root:\n\n```bash\nlake exe cache get\nlake build FormalSLT\nlake env lean examples/CheckV01Usability.lean\nlake env lean examples/CheckUniformConvergence.lean\nlake env lean examples/CheckUnitIntervalDudley.lean\nlake env lean examples/CheckTwoPointDudley.lean\nlake env lean examples/CheckFiniteDiscreteDudley.lean\nlake env lean examples/CheckPACBayesBernstein.lean\npython3 scripts/generate_proof_frontier_manifest.py --check\n```\n\nIf `lake` is not on the shell path, use `~/.elan/bin/lake`.\n\n## What v0.1 Does Not Prove\n\n- No full continuous Dudley entropy-integral theorem.\n- No arbitrary measurable-supremum construction over non-finite classes.\n- No general separability theorem.\n- No infinite-class confidence sequence.\n- No martingale or e-process stopping theorem in the v0.1 confidence-sequence\n  surface.\n- No neural-network generalization theorem.\n\n## Where to start\n\n- **For the v0.1 proof surface:** start with\n  [FormalSLT v0.1 quickstart](./docs/formalslt-v0.1-quickstart.md).\n- **For the v0.1 technical note:** read\n  [FormalSLT v0.1 technical note](./docs/formalslt-v0.1-technical-note.md).\n- **For TheoremPath packaging:** read\n  [TheoremPath FormalSLT v0.1 draft](./docs/theorempath-formalslt-v0.1-page-draft.mdx).\n- **For the live walkthrough:** see\n  [theorempath.com/theorems/formalslt-v0-1](https://theorempath.com/theorems/formalslt-v0-1).\n- **For ML readers:** start with [How to read the proofs](./docs/how-to-read-the-proofs.md),\n  then [Intuition](./docs/intuition.md).\n- **For proof structure:** see [Diagrams](./docs/diagrams.md).\n- **For exact theorem names:** use [Theorem map](./docs/theorem-map.md).\n- **For the conditional sub-Gamma extractor:** see\n  [Conditional Sub-Gamma Extractor](./docs/subgamma-extractor.md).\n- **For the non-finite unit-interval Dudley example:** see\n  [Unit-Interval Dudley Example](./docs/unit-interval-dudley.md).\n- **For reusable dyadic Dudley API packaging:** see\n  [FormalSLT v0.1 quickstart](./docs/formalslt-v0.1-quickstart.md).\n- **For the finite discrete dyadic-net family:** see\n  [FormalSLT v0.1 quickstart](./docs/formalslt-v0.1-quickstart.md).\n- **For a generated proof-surface index:** see\n  [Proof frontier manifest](./docs/proof-frontier.md).\n- **For scope and assumptions:** read\n  [Scope and assumptions](./docs/assumptions-and-nonclaims.md).\n- **For contributors:** read [Contributing](./CONTRIBUTING.md), then\n  [Good first issues](./docs/good-first-issues.md).\n- **For related Lean projects:** see [Related work](./docs/related-work.md).\n  FormalSLT is scoped as a finite-class theorem spine and is complementary to\n  existing empirical-process and Rademacher-generalization formalizations.\n\n## Library Map\n\nFormalSLT records finite-sample statistical learning bounds as Lean theorems\nwith explicit hypotheses and constants. Beyond the v0.1 headline chains, the\nlibrary contains checked finite routes for:\n\n- finite-class ERM, Rademacher symmetrization, Massart, Sauer-Shelah, and\n  VC-style sample-complexity wrappers;\n- high-probability Rademacher and VC sample-complexity bounds carrying the\n  sharp McDiarmid `2B²` exponent;\n- the sharp bounded-differences/McDiarmid concentration module\n  (`Concentration.SharpMcDiarmid`): one-sided, lower-tail, and two-sided\n  homogeneous product-measure tails, plus the additive independent special case;\n- finite contraction and linear-predictor Rademacher bounds;\n- finite Bennett/Bernstein and localized-Rademacher scaffolding;\n- conditional sub-Gamma MGF extraction for bounded, conditionally centered\n  increments with an explicit conditional second-moment proxy;\n- finite covering, finite sub-Gaussian chaining, and finite Dudley\n  entropy-budget wrappers;\n- finite algorithmic stability expected-gap and high-probability wrappers;\n- finite PAC-Bayes KL/DV/MGF, bounded-loss confidence bounds, and finite-grid\n  peeling wrappers;\n- finite PAC-Bayes Bernstein margin-proxy bounds with a supplied\n  per-hypothesis variance proxy.\n\n## Scope and assumptions\n\nThe main generalization theorems are intentionally finite and explicit.\n\n| Scope item | Current state |\n|---|---|\n| Hypothesis classes | Finite index types unless a theorem states a separate finite net/family |\n| Samples | Finite iid samples through product measures |\n| Losses/processes | Scalar real-valued, with boundedness or finite sub-Gaussian MGF assumptions |\n| Conditional MGF layer | Bounded, conditionally centered real increments with an explicit conditional second-moment proxy |\n| Constants | High-probability Rademacher and VC sample-complexity bounds use the sharp McDiarmid `2B²` exponent; the localized-Rademacher wrapper still cites the Azuma `8B²` constant |\n| PAC-Bayes Bernstein layer | Finite posterior/prior setting with supplied variance proxy and normalized prior-moment certificate |\n| Chaining | Finite nets/images, finite support/outcome spaces, finite entropy sums; the unit-interval example instantiates the bridge on a non-finite metric index space with explicit finite meshes |\n| Public axiom target | `[propext, Classical.choice, Quot.sound]` only |\n\n## Open work\n\nShort version:\n\n- The main Rademacher and VC results are finite-class and finite-sample\n  theorems.\n- The sharp McDiarmid constant `exp(-2t²/∑cᵢ²)` is proved for the additive\n  independent case (`mcdiarmid_additive_independent`), for Doob martingale\n  increments with conditional sub-Gaussian MGF control\n  (`sharp_mcdiarmid_of_doob_increments`), and for a general bounded-differences\n  function over a homogeneous product measure, one-sided\n  (`mcdiarmid_of_hasBoundedDifferences_sharp`) and two-sided\n  (`mcdiarmid_twoSided_of_hasBoundedDifferences_sharp`). The high-probability\n  Rademacher and VC sample-complexity wrappers now use this sharp `2B²`\n  exponent; the localized-Rademacher wrapper still uses the older Azuma `8B²`\n  constant. The bounded-differences theorem is stated for the same product law\n  in each coordinate, not for arbitrary non-iid product spaces.\n- The chaining layer proves finite entropy-budget infrastructure and an initial\n  total-bounded finite-net extraction bridge, not the continuous Dudley\n  integral.\n- PAC-Bayes includes a finite `[0,1]` bounded-loss Catoni-style confidence\n  bound, a closed high-confidence good-event theorem, a fixed-budget\n  McAllester-style square-root corollary, a finite-grid peeling wrapper for\n  posterior-dependent penalties, and a finite Bernstein margin-proxy shell with\n  a supplied per-hypothesis variance proxy. Exact all-real-`λ`, concrete\n  classifier-margin extractors, infinite-hypothesis, and continuous-posterior\n  variants are not yet implemented.\n- Algorithmic stability includes finite iid and measure-theoretic iid\n  expected-gap wrappers, plus bounded-loss high-probability wrappers for\n  finite measurable hypothesis interfaces.\n\nFor the full scope statement, see\n[Scope and assumptions](./docs/assumptions-and-nonclaims.md).\n\n## Installation\n\nThis project requires [elan](https://github.com/leanprover/elan), the Lean\ntoolchain manager. `elan` will read [`lean-toolchain`](./lean-toolchain) and\nfetch the pinned Lean version automatically.\n\n```bash\ngit clone https://github.com/Robby955/FormalSLT.git\ncd FormalSLT\nlake exe cache get      # download pre-built Mathlib oleans\nlake build FormalSLT    # build the library\n```\n\nIf `lake` is not on your shell path, use the elan binary directly:\n\n```bash\n~/.elan/bin/lake exe cache get\n~/.elan/bin/lake build FormalSLT\n```\n\nThe first build takes a few minutes (downloading the Mathlib cache); after\nthat, builds are incremental.\n\n## Release-candidate checks\n\nRun these before treating a branch as a release candidate:\n\n```bash\nlake exe cache get\nlake build FormalSLT\nlake env lean examples/CheckV01Usability.lean\nlake env lean examples/CheckSubGammaExtractor.lean\nlake env lean examples/CheckUnitIntervalDudley.lean\nlake env lean examples/CheckTwoPointDudley.lean\nlake env lean examples/CheckFiniteDiscreteDudley.lean\nlake env lean examples/CheckPACBayesBernstein.lean\npython3 scripts/generate_proof_frontier_manifest.py --check\npython3 scripts/check_doc_anchors.py \\\n  docs/formalslt-v0.1-technical-note.md \\\n  docs/formalslt-v0.1-artifact-map-2026-06-01.md \\\n  docs/formalslt-v0.1-release-review-2026-06-01.md \\\n  docs/theorempath-formalslt-v0.1-page-draft.mdx\n```\n\n## Audit commands\n\nUse the release-candidate checks above, then run the proof-debt and whitespace\naudits:\n\n```bash\nrg -n --pcre2 '^\\s*(?:by\\s+)?(?:sorry|admit)\\b|:=\\s*(?:by\\s+)?(?:sorry|admit)\\b' FormalSLT examples\nrg -n --pcre2 '^\\s*(?:axiom|constant)\\s+[A-Za-z_]' FormalSLT examples\npython3 scripts/generate_proof_frontier_manifest.py --check\npython3 scripts/check_doc_anchors.py \\\n  docs/formalslt-v0.1-technical-note.md \\\n  docs/formalslt-v0.1-artifact-map-2026-06-01.md \\\n  docs/formalslt-v0.1-release-review-2026-06-01.md \\\n  docs/theorempath-formalslt-v0.1-page-draft.mdx\ngit diff --check\n```\n\nThe expected result is:\n\n- `lake build FormalSLT` exits successfully;\n- `examples/CheckV01Usability.lean` resolves the v0.1 citation targets and\n  prints standard Lean/Mathlib axioms for the bundled confidence-sequence API,\n  the dyadic-net sequence API, and the concrete dyadic-net instances;\n- `examples/CheckShowcaseTheorems.lean` prints standard Lean/Mathlib axioms\n  for selected public theorems;\n- `examples/CheckSubGammaExtractor.lean` prints standard Lean/Mathlib axioms\n  for the conditional sub-Gamma extractor and its helper lemmas;\n- `examples/CheckUnitIntervalDudley.lean` prints standard Lean/Mathlib axioms\n  for the concrete unit-interval Dudley example;\n- `examples/CheckTwoPointDudley.lean` prints standard Lean/Mathlib axioms\n  for the second dyadic-net example;\n- `examples/CheckFiniteDiscreteDudley.lean` prints standard Lean/Mathlib\n  axioms for the finite discrete embedded Rademacher dyadic-net family;\n- the `rg` commands find no executable `sorry`, no executable `admit`, and no\n  custom axioms/constants in `FormalSLT` or `examples`;\n- the proof-frontier manifest is in sync with the theorem map and source counts;\n- documented `FormalSLT/...lean:line` anchors point at the named declarations;\n- `git diff --check` reports no whitespace errors.\n\n## Module map\n\n| Layer | Modules |\n|---|---|\n| Core definitions | `Risk`, `ERM`, `UniformConvergence`, `GhostSample` |\n| Probability utilities | `Probability.Concentration`, `Probability.FiniteUnionBound`, `Probability.FiniteExpectation` |\n| Conditional sub-Gamma infrastructure | `Concentration.SubGamma.BennettBound`, `Concentration.SubGamma.BoundedExpIntegrable`, `Concentration.SubGamma.CondExpProduct`, `Concentration.SubGamma.CondJensen`, `Concentration.SubGamma.CondMarkov`, `Concentration.SubGamma.CondVarianceFromSquare`, `Concentration.SubGamma.Extractor` |\n| Rademacher route | `Rademacher.FiniteSample`, `Rademacher.FiniteSampleSymmetrization`, `Rademacher.ProbabilityBridge`, `Rademacher.Decoupling`, `Rademacher.Symmetrization`, `Rademacher.Massart`, `Rademacher.HighProbability`, `Rademacher.FiniteClassHighProb`, `Rademacher.UniformDeviation`, `Rademacher.ERMGeneralization`, `Rademacher.Contraction`, `Rademacher.LinearPredictor`, `Rademacher.Localized` |\n| Azuma infrastructure | `Azuma.ExposureMartingale`, `Azuma.BoundedDifferences`, `Azuma.BoundedDiffMartingale`, `Azuma.BoundedDiffsAzumaInput`, `Azuma.BoundedIncrementBound`, `Azuma.HasBoundedDifferences`, `Azuma.ExposureIncrementHoeffding`, `Azuma.ExposureIncrementCondMGF`, `Azuma.GenGapTail` |\n| VC route | `VC.Dimension`, `VC.PACBridge`, `VC.SauerShelah`, `VC.Rademacher`, `VC.SampleComplexity`, `VC.BinaryVCBridge` |\n| Covering and chaining | `Covering.Rademacher`, `Covering.DudleyChaining`, `Covering.FiniteSubGaussianChaining`, `Covering.TotalBoundedDudley`, `Covering.UnitIntervalDudley`, `Covering.TwoPointDudley`, `Covering.FiniteDiscreteDudley` |\n| Stability and PAC-Bayes foundations | `AlgorithmicStability`, `Stability.BousquetElisseeff`, `PACBayesKL`, `PACBayesMcAllester`, `PACBayesFiniteProductMGF`, `PACBayesBoundedLoss`, `PACBayesBernstein` |\n\n## Roadmap\n\n- [x] Finite-sample Rademacher definitions\n- [x] Rademacher symmetrization\n- [x] Massart finite-class bound\n- [x] Azuma-Hoeffding genGap tail\n- [x] High-probability Rademacher bound\n- [x] Sauer-Shelah polynomial bound\n- [x] VC-style pointwise Rademacher\n- [x] VC uniform deviation and ERM excess-risk tail\n- [x] VC closed-form ERM sample-complexity theorem\n- [x] Binary-class VC to effective loss-pattern bridge\n- [x] Finite-sample scalar contraction\n- [x] Finite-dimensional linear predictor Rademacher bound\n- [x] Finite localized Rademacher/Bernstein variance-localization scaffold\n- [x] Conditional sub-Gamma MGF extractor from boundedness, conditional\n  centering, and a conditional second-moment proxy\n- [x] Covering number peeling and two-scale chaining\n- [x] Finite sub-Gaussian max and finite chaining entropy budgets\n- [x] Algorithmic stability bounded-differences scaffold\n- [x] Finite algorithmic stability expected-gap adapter under coordinate-swap identity\n- [x] Finite iid coordinate-swap identity and literal expected-generalization-gap specialization\n- [x] Finite iid two-sided algorithmic stability expected-gap wrappers\n- [x] PAC-Bayes KL divergence and Donsker-Varadhan variational inequality\n- [x] PAC-Bayes finite iid product MGF bridge for empirical-risk deviations\n- [x] PAC-Bayes bounded-loss MGF, Markov confidence, and finite Catoni-style bound\n- [x] PAC-Bayes closed high-confidence generalization payoff theorem\n- [x] PAC-Bayes fixed-budget McAllester-style square-root corollary\n- [x] PAC-Bayes finite-grid McAllester peeling and optimized finite-grid wrapper\n- [x] PAC-Bayes finite Bernstein margin-proxy wrapper with supplied variance\n  proxy and normalized prior-moment certificate\n- [x] Finite Dudley discrete entropy-bound refinements: annulus, integral-budget,\n  and prefix-envelope wrappers\n- [x] Total-bounded finite-net extraction bridge for the continuous Dudley lane\n- [x] Projected-sup total-bounded dyadic Dudley wrapper\n- [x] Projected finite-net total-bounded dyadic Dudley wrapper without finite\n  ambient index type\n- [x] Finite dyadic-budget to entropy-at-radius upper-sum comparison\n- [x] Shifted finite-annulus entropy budget collapsed to one truncated interval\n  integral\n- [x] Supplied-supremum boundary adapter with explicit terminal approximation\n  error\n- [x] Finite-skeleton/dense-net boundary adapter with explicit separability and\n  terminal projection errors\n- [x] Pathwise-modulus and finite-skeleton witness lemmas that discharge the\n  continuous-boundary adapter hypotheses\n- [x] Epsilonized finite-choice boundary adapter: every positive error budget\n  can be discharged by a finite skeleton and terminal dyadic scale certificate\n- [x] Finite-cover/pathwise-modulus certificate for the epsilonized\n  total-bounded Dudley boundary layer\n- [x] Dudley boundary epsilon elimination under a uniform global finite-budget\n  hypothesis\n- [x] Separable-terminal Dudley boundary adapter under explicit finite-skeleton\n  and terminal-projection hypotheses\n- [x] Pathwise terminal-modulus constructor for separable-terminal Dudley\n  boundary certificates\n- [x] Finite-cover/pathwise-modulus bridge into the separable-terminal Dudley\n  boundary interface\n- [x] Finite-terminal total-bounded dyadic Dudley wrapper\n- [x] Concrete unit-interval Dudley example with explicit half/quarter meshes\n  and a supplied-supremum projected-mesh bound\n- [ ] Continuous Dudley entropy-integral theorem over total-bounded classes\n- [x] Measure-theoretic iid algorithmic stability expected bound, with explicit\n  integrability assumptions\n- [x] Bounded-loss measurability adapters for the measure-theoretic stability\n  expected-gap theorem\n- [x] Bounded-loss high-probability stability wrappers for finite measurable\n  hypothesis interfaces\n- [ ] PAC-Bayes concrete margin-loss Bernstein extractor, all-real-`λ`, or\n  continuous-posterior extensions\n- [x] Sharp McDiarmid constant for the additive independent case and for Doob\n  martingale increments with conditional sub-Gaussian MGF control\n- [x] Sharp McDiarmid for a general bounded-differences function over a\n  homogeneous product measure: one-sided, lower-tail, and two-sided\n  (`mcdiarmid_twoSided_of_hasBoundedDifferences_sharp`), with the sharp `2B²`\n  exponent propagated into the high-probability Rademacher and VC wrappers\n- [ ] Sharp McDiarmid over arbitrary non-iid product spaces (different law per\n  coordinate)\n- [ ] Continuous Dudley-style entropy integral\n\n## Dependencies\n\n- [Lean 4](https://lean-lang.org/) v4.30.0-rc2\n- [Mathlib4](https://github.com/leanprover-community/mathlib4) @ `25b7ac7`\n\n## Contributing\n\nContributions are welcome. Please read [CONTRIBUTING.md](./CONTRIBUTING.md)\nbefore opening a PR. The short version: one theorem per PR, no `sorry` / no\n`admit`, only the standard `[propext, Classical.choice, Quot.sound]` axioms,\nand assumptions stated in the type signature rather than buried in\nhypotheses.\n\nFor ideas, see the [open-formalization-problems](./docs/open-formalization-problems.md)\nlist, [good first issues](./docs/good-first-issues.md), and the unchecked items\nin the roadmap above. Before a public release, maintainers can use the\n[public release checklist](./docs/public-release-checklist.md).\n\n## Citation\n\nIf you use FormalSLT in academic work, please cite:\n\n```bibtex\n@software{formal_slt,\n  title  = {FormalSLT: Formal Statistical Learning Theory in Lean 4},\n  author = {Sneiderman, Robert},\n  year   = {2026},\n  url    = {https://github.com/Robby955/FormalSLT},\n  note   = {Lean 4 formalization of finite-sample SLT bounds.}\n}\n```\n\n## License\n\nThis project is released under the [MIT License](./LICENSE).\n",1780846762241]