LeanMachineLearning
LeanMachineLearning has 1189 declarations: 8 theorems, 960 lemmas and 221 definitions. All of them are proved with no sorry anywhere.
It rests on 8 upstream packages, all of them audited.
Project overview
Source: README.md
Lean Machine Learning
The Lean library for machine learning research.
Website: https://leanmachinelearning.org/
Goals
-
A library of high-quality formalization of machine learning definitions.
-
Essential theorems and proofs in machine learning theory.
-
A framework for working on machine learning algorithms in Lean.
-
An extensive documentation, with examples and tutorials.
-
A trusted basis for formalization of machine learning research.
Contributing
Please see our contribution guide and code of conduct.
For discussions, you can reach out to us on the Lean prover Zulip chat.
You can also see the roadmap for ideas on what to work on.
Current state of the library
As a first proof of concept, the repository contains a formalization of regret bounds for several stochastic bandit algorithms.
Main results:
-
Framework for working on (bandit) algorithms in Lean.
-
Regret bound for the Explore-Then-Commit algorithm.
-
Regret bound for the UCB algorithm.
Modules
How the project's 80 modules depend on one another. Colour marks the folder, so the blocks of colour are the folder structure and the edges between them are where it is crossed.
An edge means some declaration in the lower module uses something declared in the upper one. Edges implied by a longer path are not drawn.
Showing the 49 modules that depend on one another; the other 31 are independent of the rest of the project.
For Mathlib (15 definitions, 322 lemmas, 3 theorems)
-
ForMathlib.InformationTheory.KullbackLeibler.ChainRule(0 definitions, 8 lemmas, 0 theorems) -
ForMathlib.Probability.Kernel.Composition.Lemmas(0 definitions, 1 lemmas, 0 theorems) -
ForMathlib.Probability.Kernel.Composition.MapComap(0 definitions, 5 lemmas, 0 theorems) -
ForMathlib.InformationTheory.KullbackLeibler.CompProd(0 definitions, 5 lemmas, 0 theorems) -
ForMathlib.InformationTheory.KullbackLeibler.Convex(0 definitions, 7 lemmas, 0 theorems) -
ForMathlib.InformationTheory.KullbackLeibler.DataProcessing(0 definitions, 1 lemmas, 0 theorems) -
ForMathlib.InformationTheory.KullbackLeibler.MapSequence(0 definitions, 2 lemmas, 0 theorems) -
ForMathlib.InformationTheory.KullbackLeibler.Restrict(0 definitions, 6 lemmas, 0 theorems) -
ForMathlib.MeasureTheory.Measurable(0 definitions, 5 lemmas, 0 theorems) -
ForMathlib.MeasureTheory.MeasurableSpace.Embedding(5 definitions, 14 lemmas, 0 theorems) -
ForMathlib.MeasureTheory.Measure.AbsolutelyContinuous(0 definitions, 1 lemmas, 0 theorems) -
ForMathlib.MeasureTheory.OuterMeasure.Basic(0 definitions, 1 lemmas, 0 theorems) -
ForMathlib.MeasureTheory.Order.Lattice(0 definitions, 0 lemmas, 1 theorems) -
ForMathlib.MeasureTheory.Order.MeasurableArg(4 definitions, 13 lemmas, 0 theorems) -
ForMathlib.Order.Interval.Finset(0 definitions, 1 lemmas, 0 theorems) -
ForMathlib.Probability.ConditionalProbability(0 definitions, 1 lemmas, 0 theorems) -
ForMathlib.Probability.HasCondDistrib(0 definitions, 24 lemmas, 2 theorems) -
ForMathlib.Probability.Independence.CondDistrib(1 definitions, 36 lemmas, 0 theorems) -
ForMathlib.Probability.Kernel.KernelSub(0 definitions, 15 lemmas, 0 theorems) -
ForMathlib.Probability.HasLaw(0 definitions, 5 lemmas, 0 theorems) -
ForMathlib.Probability.Independence.CondIndepFun(0 definitions, 10 lemmas, 0 theorems) -
ForMathlib.Probability.Independence.IndepFun(0 definitions, 16 lemmas, 0 theorems) -
ForMathlib.Probability.Independence.IndepInfinitePi(0 definitions, 3 lemmas, 0 theorems) -
ForMathlib.Probability.Integrable(0 definitions, 1 lemmas, 0 theorems) -
ForMathlib.Probability.Kernel.Basic(0 definitions, 1 lemmas, 0 theorems) -
ForMathlib.Probability.Kernel.Composition.IntegralCompProd(0 definitions, 2 lemmas, 0 theorems) -
ForMathlib.Probability.Kernel.Composition.MeasureCompProd(0 definitions, 1 lemmas, 0 theorems) -
ForMathlib.Probability.Kernel.IonescuTulcea.Traj(2 definitions, 14 lemmas, 0 theorems) -
ForMathlib.Probability.Moments.SubExponential(3 definitions, 104 lemmas, 0 theorems) -
ForMathlib.Probability.Moments.SubGaussian(0 definitions, 9 lemmas, 0 theorems) -
ForMathlib.Probability.WithDensity(0 definitions, 9 lemmas, 0 theorems) -
ForMathlib.Topology.Instances.ENNReal.Lemmas(0 definitions, 1 lemmas, 0 theorems)
Online (30 definitions, 210 lemmas, 3 theorems)
-
Online.Bandit.Algorithms.ETC(2 definitions, 14 lemmas, 1 theorems) -
Online.Bandit.SumRewards(0 definitions, 32 lemmas, 0 theorems) -
Online.Bandit.ArrayProbSpace(9 definitions, 70 lemmas, 0 theorems) -
Online.Bandit.BayesRegret(4 definitions, 13 lemmas, 0 theorems) -
Online.Bandit.Regret(3 definitions, 15 lemmas, 0 theorems) -
Online.Bandit.Algorithms.Regret.BayesRegretTS(2 definitions, 12 lemmas, 1 theorems) -
Online.Bandit.Algorithms.TS(2 definitions, 3 lemmas, 0 theorems) -
Online.Bandit.Algorithms.UCB(5 definitions, 26 lemmas, 1 theorems) -
Online.Bandit.RewardByCountMeasure(3 definitions, 25 lemmas, 0 theorems)
Sequential Learning (59 definitions, 388 lemmas, 2 theorems)
-
SequentialLearning.SumRewards(4 definitions, 24 lemmas, 0 theorems) -
SequentialLearning.FiniteActions(5 definitions, 80 lemmas, 0 theorems) -
SequentialLearning.Algorithm(13 definitions, 59 lemmas, 0 theorems) -
SequentialLearning.StationaryEnv(4 definitions, 26 lemmas, 0 theorems) -
SequentialLearning.BayesStationaryEnv(4 definitions, 17 lemmas, 0 theorems) -
SequentialLearning.IonescuTulceaSpace(7 definitions, 48 lemmas, 1 theorems) -
SequentialLearning.Algorithms.RoundRobin(2 definitions, 9 lemmas, 0 theorems) -
SequentialLearning.Deterministic(8 definitions, 34 lemmas, 0 theorems) -
SequentialLearning.AlgorithmDensityBayes(0 definitions, 3 lemmas, 0 theorems) -
SequentialLearning.AlgorithmDensity(3 definitions, 5 lemmas, 0 theorems) -
SequentialLearning.Algorithms.Uniform(1 definitions, 1 lemmas, 0 theorems) -
SequentialLearning.Algorithms.RandomSampling.Basic(1 definitions, 3 lemmas, 0 theorems) -
SequentialLearning.ActionIndicator(1 definitions, 11 lemmas, 0 theorems) -
SequentialLearning.Algorithms.RandomSampling.Tendsto(0 definitions, 8 lemmas, 1 theorems) -
SequentialLearning.EvaluationEnv(2 definitions, 17 lemmas, 0 theorems) -
SequentialLearning.DivergenceDecomposition(0 definitions, 8 lemmas, 0 theorems) -
SequentialLearning.FeedbackMartingale(2 definitions, 21 lemmas, 0 theorems) -
SequentialLearning.Means(2 definitions, 14 lemmas, 0 theorems)
Tactic (117 definitions, 40 lemmas, 0 theorems)
-
Tactic.EqLift.ForMathlib.Kernel(0 definitions, 3 lemmas, 0 theorems) -
Tactic.EqLift.ForMathlib.MeasurableEquiv(1 definitions, 0 lemmas, 0 theorems) -
Tactic.EqLift.Kernel.Lift(1 definitions, 15 lemmas, 0 theorems) -
Tactic.EqLift.Tactic.Kernel.KernelLift(10 definitions, 0 lemmas, 0 theorems) -
Tactic.EqLift.Tactic.Lift(7 definitions, 0 lemmas, 0 theorems) -
Tactic.EqLift.Tactic.Utils(6 definitions, 0 lemmas, 0 theorems) -
Tactic.EqLift.Tactic.Universe(4 definitions, 0 lemmas, 0 theorems) -
Tactic.EqLift.Tactic.Location(2 definitions, 0 lemmas, 0 theorems) -
Tactic.EqLift.Tactic.Kernel.Utils(4 definitions, 0 lemmas, 0 theorems) -
Tactic.EqLift.Tactic.Kernel.KernelUnlift(10 definitions, 0 lemmas, 0 theorems) -
Tactic.EqLift.Tactic.Unlift(5 definitions, 0 lemmas, 0 theorems) -
Tactic.KernelHom.ForMathlib.LIntegral(0 definitions, 1 lemmas, 0 theorems) -
Tactic.KernelHom.Kernel.Hom(2 definitions, 19 lemmas, 0 theorems) -
Tactic.KernelHom.Kernel.MonoidalComp(6 definitions, 2 lemmas, 0 theorems) -
Tactic.KernelHom.Tactic.Delaborators(4 definitions, 0 lemmas, 0 theorems) -
Tactic.KernelHom.Tactic.HomKernel(10 definitions, 0 lemmas, 0 theorems) -
Tactic.KernelHom.Tactic.KernelHom(23 definitions, 0 lemmas, 0 theorems) -
Tactic.KernelHom.Tactic.Utils(3 definitions, 0 lemmas, 0 theorems) -
Tactic.KernelHom.Tactic.KernelCat(3 definitions, 0 lemmas, 0 theorems) -
Tactic.KernelHom.Tactic.KernelDiagram(10 definitions, 0 lemmas, 0 theorems) -
Tactic.KernelHom.Tactic.Reassoc(6 definitions, 0 lemmas, 0 theorems)