LeanMachineLearning

What This Library Claims🔗

These are the declarations written with the theorem keyword, as opposed to lemma. The distinction is the author's own: by the usual convention a theorem is a result worth stating for its own sake, while a lemma is a step towards one. This page takes that convention at face value.

So this list is only as good as the library's discipline about the two keywords. Where a project uses them interchangeably, read this as "all results" rather than as a statement of intent.

6 of 930 declarations are stated as theorems, ranked within each chapter by how much machinery they rest on.

Against each one is what you have made of it. A declaration is accepted when you have read it and judged that it says what its name claims — and covered when, in addition, every declaration its statement rests on is accepted too. The gap between those two is the point: accepting a theorem whose definitions you have not read accepts a sentence, not a theorem.

Whether something is proved is a separate question. A sorry is flagged below but never blocks acceptance, because accepting is a judgement about what a statement means; Sorries and assumptions reports the rest.

For Mathlib
Online
  • Bandits.TS.integral_regret_le23 beneath

    If Thompson sampling has the correct prior over environments and every environment has K actions, each of which has a corresponding reward between l and u that is sub-Gaussian with variance proxy σ2 after its mean is subtracted, then the Bayesian regret at time n is at most (2 * K + 1) * (u - l) + 8 * √(σ2 * K * n * Real.log n).

  • Bandits.UCB.regret_le20 beneath

    Regret bound for the UCB algorithm.

  • Bandits.ETC.regret_le18 beneath

    Regret bound for the ETC algorithm.

Sequential Learning

Verdicts remember what they were about. Each verdict is recorded against the declaration's meaning at the moment you set it — a structural hash of the elaborated term, not of how it prints. So a later build of a revised library can tell you which of your acceptances are of something that has since changed, and it needs neither the old build nor a --baseline to do it: the exported file carries its own reference points. Those acceptances are listed above, and they are excluded from every count on this page rather than quietly inflating it.

What this is not. Nothing here is checked or authenticated. The exported file is plain JSON that anyone can edit, and an accepted declaration is one that a human said says what its name claims — no more. It is a work aid for the reader who made it, and it should never be offered to anyone else as evidence that a library was audited.

Where it is kept. In this browser, under this project's name. Clearing your browser data deletes it, and a second reader on another machine shares none of it — so export the file, which is the artifact that actually travels.