# Theorem-Dependency Diagrams
Visual companion to [`theorem-map.md`](./theorem-map.md). The README uses the
checked-in SVG asset; this page keeps Mermaid versions for readers who want to
scan the proof graph directly on GitHub.
## Core finite-class spine
```mermaid
%%{init: {'flowchart': {'rankSpacing': 42, 'nodeSpacing': 24}, 'theme':'neutral'}}%%
flowchart BT
risk["Risk / ERM
populationRisk, empiricalRisk"]
ghost["Ghost sample
genGap, piMeasure"]
rad["Empirical Rademacher
Rad(H,S)"]
sym["Symmetrization
E[genGap] <= 2 E[Rad]"]
azuma["Azuma genGap tail
exp(-eps^2 n / 8B^2)"]
hpr["High-probability Rademacher"]
massart["Massart finite-class
Rad <= B sqrt(2 log card(H) / n)"]
finite_hp["Finite-class high-probability bound"]
udev["Uniform deviation"]
erm["ERM excess-risk tail"]
sauer["Sauer-Shelah
sum C(n,k) <= (en/d)^d"]
effective["Effective-class Massart"]
binary["Binary VC bridge
0-1 loss patterns"]
vc_rad["VC pointwise Rademacher"]
vc_erm["VC-style ERM excess-risk tail"]
risk --> ghost --> sym
rad --> sym
sym --> hpr
azuma --> hpr
hpr --> finite_hp
massart --> finite_hp
finite_hp --> udev --> erm
massart --> effective
binary --> effective
sauer --> vc_rad
effective --> vc_rad
vc_rad --> vc_erm
hpr --> vc_erm
erm --> vc_erm
classDef capstone fill:#111827,stroke:#2563eb,color:#f9fafb,stroke-width:2px;
class vc_erm capstone
```
## Extensions now attached to the spine
```mermaid
%%{init: {'flowchart': {'rankSpacing': 40, 'nodeSpacing': 24}, 'theme':'neutral'}}%%
flowchart LR
rad["Empirical Rademacher
finite sample"]
contraction["Finite scalar contraction
Rad(phi o F) <= L Rad(F)"]
linear["Finite-dimensional linear predictors
Rad <= R/n sqrt(sum ||x_i||^2)"]
covering["Finite covering numbers
epsilon-net peeling"]
two_scale["Two-scale finite chaining"]
subg_max["Finite sub-Gaussian max
MGF -> E sup bound"]
finite_chain["Finite multiscale chaining
projection-pair entropy budgets"]
dudley_budget["Finite Dudley-style entropy-budget wrappers
dyadic radius schedule"]
rad --> contraction
rad --> linear
rad --> covering --> two_scale
subg_max --> finite_chain --> dudley_budget
covering --> finite_chain
classDef foundation fill:#ecfeff,stroke:#0891b2,color:#164e63;
classDef verified fill:#f0fdf4,stroke:#16a34a,color:#14532d;
class rad foundation;
class contraction,linear,covering,two_scale,subg_max,finite_chain,dudley_budget verified;
```
## Finite Dudley ladder
The chaining layer is deliberately finite. The current endpoint is a finite
dyadic entropy-budget statement, which is the right foundation before moving
toward integral comparisons.
```mermaid
flowchart TD
mgf["Finite sub-Gaussian increment MGF"]
max_log["Finite-max entropy budget
(log |T| + q) / lambda"]
max_sqrt["Optimized finite max
sqrt(2 sigma^2 log |T|)"]
nets["Finite nets and nearest projections"]
pairs["Realized projection-pair families"]
chain["Finite multiscale chaining decomposition"]
sum["Finite Dudley-style entropy sum"]
dyadic["Geometric radius schedule"]
budget["Per-scale entropy-budget wrapper"]
future["Next: finite discrete entropy-bound refinement"]
mgf --> max_log --> max_sqrt
nets --> pairs --> chain
max_sqrt --> chain --> sum --> dyadic --> budget --> future
```
## Unit-interval Dudley example
```mermaid
flowchart LR
unit["UnitInterval = [0,1]"]
tb["TotallyBounded Set.univ"]
half["half mesh
3 centers, radius 1/4"]
quarter["quarter mesh
5 centers, radius 1/8"]
process["Rademacher linear process
X(b,t)=sign(b)*t"]
mgf["increment MGF"]
inc["projection-pair increment
sqrt(log 15)"]
projected["projected quarter-mesh Dudley bound"]
supplied["supplied supremum bound
E[sup] <= projected bound"]
unit --> tb
unit --> half --> inc
unit --> quarter --> inc
process --> mgf --> inc --> projected --> supplied
classDef index fill:#eff6ff,stroke:#2563eb,color:#1e3a8a;
classDef checked fill:#f0fdf4,stroke:#16a34a,color:#14532d;
class unit,tb index;
class half,quarter,process,mgf,inc,projected,supplied checked;
## Conditional concentration toolkit
The concentration layer now has both the conditional sub-gamma MGF extractor
(`Concentration.SubGamma.*`) and the sharp bounded-differences route through
the exposure martingale.
```mermaid
flowchart TD
bounded["Bounded increment
|X| ≤ b a.s."]
center["Conditional centering
μ[X | m] = 0"]
var["Conditional second moment
μ[X² | m] ≤ σ²"]
bennett["Bennett-Taylor pointwise inequality
exp(λx) ≤ 1 + λx + λ²x²/(2(1−bλ/3))"]
toolkit["Conditional-expectation toolkit
Jensen, Markov, product, variance-from-square"]
extractor["Conditional sub-gamma MGF extractor
μ[exp(λX) | m] ≤ exp(σ²λ²/(2(1−bλ/3))) on b·λ < 3"]
sharp["Sharp McDiarmid genGap tail
exp(-eps^2 n / 2B^2)"]
bounded --> extractor
center --> extractor
var --> extractor
bennett --> extractor
toolkit --> extractor
bounded --> sharp
center --> sharp
toolkit --> sharp
classDef verified fill:#f5f3ff,stroke:#7c3aed,color:#3b0764;
classDef future fill:#f8fafc,stroke:#94a3b8,color:#475569,stroke-dasharray: 5 4;
class bennett,toolkit,extractor,sharp verified;
```
## Total-bounded Dudley boundary adapters
The finite Dudley entropy-budget layer now feeds a chain of total-bounded
boundary adapters (`Covering.TotalBoundedDudley`). Each step discharges more of
the continuous-boundary hypotheses from finite, checkable data; the continuous
Dudley entropy integral remains the open endpoint.
```mermaid
flowchart TD
budgets["Finite Dudley entropy budgets
dyadic radius schedule"]
netsched["Total-bounded dyadic finite-net schedules
projected-sup / projected finite-net wrappers"]
interval["Truncated interval-integral entropy comparison"]
supplied["Supplied-supremum boundary adapter
explicit terminal approximation error"]
skeleton["Finite-skeleton / dense-net boundary adapter
separability + terminal projection errors"]
epsilonized["Epsilonized finite-choice boundary adapter
every ε > 0 dischargeable"]
eliminate["ε-elimination under uniform global finite budget"]
separable["Separable-terminal Dudley boundary adapter"]
pathwise["Pathwise terminal-modulus constructor
+ finite-cover/pathwise-modulus bridge"]
future["Next: continuous Dudley entropy-integral theorem
(open)"]
budgets --> netsched --> interval
interval --> supplied --> epsilonized
interval --> skeleton --> epsilonized
epsilonized --> eliminate --> separable
skeleton --> separable
pathwise --> separable
separable -.-> future
classDef verified fill:#f0fdf4,stroke:#16a34a,color:#14532d;
classDef future fill:#f8fafc,stroke:#94a3b8,color:#475569,stroke-dasharray: 5 4;
class budgets,netsched,interval,supplied,skeleton,epsilonized,eliminate,separable,pathwise verified;
class future future;
```
## PAC-Bayes finite confidence layer
The PAC-Bayes lane runs from the KL/Donsker-Varadhan change of measure through
a finite Catoni-style bound to a finite-grid McAllester peeling wrapper for
posterior-dependent penalties. The Bernstein lane adds a finite margin-proxy
wrapper with a supplied per-hypothesis variance proxy and a normalized
prior-moment certificate.
```mermaid
flowchart TD
kl["KL / Donsker-Varadhan
finite change of measure"]
mgf["Finite iid product MGF bridge"]
catoni["Bounded-loss MGF + Markov
finite Catoni-style bound"]
payoff["Closed high-confidence good-event payoff"]
fixed["Fixed-budget McAllester square-root corollary"]
peeling["Finite-grid McAllester peeling
posterior-dependent penalty"]
optimized["Optimized finite-grid wrapper"]
bernstein["Finite Bernstein margin-proxy shell
supplied variance proxy"]
future["Next: all-real-λ / continuous-posterior extensions
(open)"]
kl --> mgf --> catoni --> payoff --> fixed --> peeling --> optimized
kl --> bernstein
bernstein -.-> future
optimized -.-> future
classDef verified fill:#f0fdf4,stroke:#16a34a,color:#14532d;
classDef future fill:#f8fafc,stroke:#94a3b8,color:#475569,stroke-dasharray: 5 4;
class kl,mgf,catoni,payoff,fixed,peeling,optimized,bernstein verified;
class future future;
```
## Where each definition first appears
```mermaid
flowchart LR
Risk["Risk.lean
populationRisk, empiricalRisk"]
ERM["ERM.lean
ermPolicy, excessRisk"]
GhostSample["GhostSample.lean
genGap, piMeasure"]
RadFS["Rademacher/FiniteSample.lean
empiricalRademacherComplexity"]
VCDim["VC/Dimension.lean
shatters, vcDim"]
VCRad["VC/Rademacher.lean
effectiveClass"]
VCBridge["VC/PACBridge.lean
binaryClassTrace"]
Chain["Covering/FiniteSubGaussianChaining.lean
FiniteNet, finiteSup, entropy budgets"]
Risk --> ERM
Risk --> GhostSample
GhostSample --> RadFS
VCDim --> VCRad
VCDim --> VCBridge
RadFS --> VCRad
```
## See also
- [`theorem-map.md`](./theorem-map.md) for exact theorem names and statements.
- [`proof-spine.md`](./proof-spine.md) for a narrative walkthrough.
- [`assumptions-and-nonclaims.md`](./assumptions-and-nonclaims.md) for scope and assumptions.
- [`intuition.md`](./intuition.md) for plain-English explanations.