Skip to content

Add formal learning theory kernel - #28

Merged
Vilin97 merged 4 commits into
mainfrom
codex/formal-learning-theory-pr36
May 10, 2026
Merged

Vilin97 merged 4 commits into
mainfrom
codex/formal-learning-theory-pr36

Conversation

@Vilin97

@Vilin97 Vilin97 commented May 10, 2026 •

Copy link
Copy Markdown
Collaborator

Ports merely-true/merely-true#36 into Lean Pool as LeanPool.FormalLearningTheory.

CI-oriented changes included in the port:

  • split the largest generalization module so file-size and build behavior stay deterministic
  • fixed warning-producing Lean patterns and added targeted linter annotations for imported API declarations
  • removed stale proof-size waiver comments from the imported Lean files
  • decomposed oversized ported proofs into smaller checked lemmas so they fit the 200-line proof policy on main

Local checks run on the branch:

  • lake exe mk_all --check
  • lake build LeanPool
  • lake exe runLinter LeanPool
  • lake exe lint-style LeanPool
  • cd python && uv run python -m lean_pool.quality --repo ..
  • cd python && uv run python -m lean_pool.quality --repo .. --skip-lean-axioms
  • cd python && uv run ruff check
  • cd python && uv run ruff format --check
  • cd python && uv run --group test pytest

Copilot AI review requested due to automatic review settings May 10, 2026 01:35

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR ports the formal-learning-theory kernel (from merely-true#36) into Lean Pool as LeanPool.FormalLearningTheory, adding a substantial Lean development around PAC/Gold/online learning criteria, complexity measures (VC/Littlestone/mind-change/ordinal extensions), and supporting measure-theoretic/descriptive-set-theoretic infrastructure; it also updates the Python “quality” tooling to correctly parse Lean declaration names ending in prime (') and adds a regression test.

Fit: good_fit
Level: research
Branch: formal learning theory / descriptive set theory / probability
Mode: theory_building
Obscure problem: false
Code quality: 3/5
Significance: Introduces a broad, reusable kernel for formal learning theory (definitions + major structural theorems), plus tooling needed to keep the new Lean surface area CI-auditable.
Verdict: request_changes

Findings:

  • splitFirst/splitSecond do not use ValidSplit and therefore do not implement the intended split-by-assignment semantics (critical correctness issue).
  • A knowingly incorrect “branch-wise” shattering predicate is exported under the generic name MistakeTree.isShattered, increasing risk of downstream misuse.

Changes:

  • Add LeanPool.FormalLearningTheory kernel: core types, learning criteria, complexity measures, and key theorems (e.g., Gold/mind-change characterization) plus pure-math support modules.
  • Extend Python quality checker regexes to preserve prime-suffixed Lean names and relax axiom-audit output parsing accordingly.
  • Add a regression test ensuring the quality checker parses prime-suffixed declarations.

Reviewed changes

Copilot reviewed 56 out of 59 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
python/tests/test_quality.py Adds regression test for parsing declarations ending in '.
python/lean_pool/quality.py Fixes declaration/axiom-output parsing to preserve prime suffixes.
LeanPool/FormalLearningTheory/Theorem/Gold.lean Adds Gold’s theorem proof and mind-change characterization theorem.
LeanPool/FormalLearningTheory/Theorem.lean New theorem index for the learning theory module.
LeanPool/FormalLearningTheory/PureMath/ReaderMonad.lean Adds a pure Reader-selection monad used for learner composition.
LeanPool/FormalLearningTheory/PureMath/KLDivergence.lean Introduces finite-PMF infrastructure and KL/cross-entropy/expectation defs.
LeanPool/FormalLearningTheory/PureMath/FiniteVCApprox.lean Adds finite-distribution approximation lemmas (TV → test expectation bounds).
LeanPool/FormalLearningTheory/PureMath/Exchangeability.lean Adds exchangeability/double-sample infrastructure (merged samples, splits, split measure).
LeanPool/FormalLearningTheory/PureMath/Concentration.lean Adds concentration inequality infrastructure (Chebyshev-majority bound).
LeanPool/FormalLearningTheory/PureMath/BinaryMatrix.lean Adds binary-matrix VC dimension + Sauer–Shelah + dual VC bound infrastructure.
LeanPool/FormalLearningTheory/PureMath/AnalyticMeasurability.lean Adds analytic→null-measurable bridge via Choquet capacity arguments.
LeanPool/FormalLearningTheory/Process.lean Adds process-level/application-layer structures and markers (grammar induction, CEGIS, etc.).
LeanPool/FormalLearningTheory/Learner/VersionSpace.lean Adds version-space learner and measurability proof via countable decomposition.
LeanPool/FormalLearningTheory/Learner/Properties.lean Adds learner property predicates and a helper lemma for MeasurableBatchLearner.
LeanPool/FormalLearningTheory/Learner/Monad.lean Adds measurable learner monad wrapper and evaluation-level monad laws.
LeanPool/FormalLearningTheory/Learner/Core.lean Defines core learner types and MeasurableBatchLearner regularity class.
LeanPool/FormalLearningTheory/Learner/Closure.lean Proves closure of measurable learners under combiners/boosting/selection.
LeanPool/FormalLearningTheory/Learner/Bayesian.lean Adds Bayesian learner/inference structures and a Gibbs posterior wrapper.
LeanPool/FormalLearningTheory/Learner/Active.lean Adds active learning/teacher/meta-learning interfaces and related predicates.
LeanPool/FormalLearningTheory/Learner.lean New learner index module.
LeanPool/FormalLearningTheory/Data.lean Adds data/presentation interfaces (streams, texts, IID samples, oracles).
LeanPool/FormalLearningTheory/Criterion/PAC.lean Defines PAC/agnostic PAC/exact learning criteria.
LeanPool/FormalLearningTheory/Criterion/Online.lean Defines online criteria and helpers (mistakes/loss/regret).
LeanPool/FormalLearningTheory/Criterion/Gold.lean Defines Gold-style success criteria (EX/BC/etc.) and dataUpTo.
LeanPool/FormalLearningTheory/Criterion/Extended.lean Adds cross-paradigm/extended criteria (drift, universal learning, advice, Bayesian).
LeanPool/FormalLearningTheory/Criterion.lean New criteria index module.
LeanPool/FormalLearningTheory/Computation.lean Adds computability/formal-language substrate and information-theoretic primitives.
LeanPool/FormalLearningTheory/Complexity/VCDimension.lean Adds core VC dimension/shattering/growth/star-number definitions.
LeanPool/FormalLearningTheory/Complexity/Structures.lean Adds structured complexity notions (compression, multiclass dims, SQ, etc.).
LeanPool/FormalLearningTheory/Complexity/Ordinal.lean Adds ordinal-valued extensions and embedding lemmas.
LeanPool/FormalLearningTheory/Complexity/MindChange.lean Adds mind-change count/ordinal definitions for Gold learners.
LeanPool/FormalLearningTheory/Complexity/Littlestone.lean Adds a branch-wise Littlestone infrastructure and helper lemmas.
LeanPool/FormalLearningTheory/Complexity/Interpolation.lean Adds interpolation constructions and well-behavedness descent results.
LeanPool/FormalLearningTheory/Complexity/Generalization.lean Adds an index module for generalization infrastructure.
LeanPool/FormalLearningTheory/Complexity/GameInfra.lean Adds corrected depth-indexed Littlestone trees + SOA/game infrastructure.
LeanPool/FormalLearningTheory/Complexity/DualVC.lean Adds dual-class construction and Assouad-style dual VC bound.
LeanPool/FormalLearningTheory/Complexity/BorelAnalyticBridge.lean Adds Borel→analytic→null-measurable bridge for learning-theory bad events.
LeanPool/FormalLearningTheory/Complexity/Amalgamation.lean Adds amalgamation construction and well-behavedness result.
LeanPool/FormalLearningTheory/Complexity.lean New complexity index module.
LeanPool/FormalLearningTheory/Basic.lean Adds foundational learning-theory types (concepts, classes, loss, etc.).
LeanPool/FormalLearningTheory.lean New top-level module entry for the learning theory kernel.
LeanPool.lean Extends the root import surface to include the new learning theory hierarchy.

Comment on lines +118 to +128
/-- Given a merged sample z and a valid split, extract the first group (training sample). -/
def splitFirst {X : Type u} {m : ℕ} (z : MergedSample X m) (_vs : ValidSplit m) :
Fin m → X := by
-- The first group consists of the m indices where assign = true
-- We need to enumerate them and index into z
exact fun i => z (Fin.castAdd m i |>.cast (two_mul m).symm)

/-- Given a merged sample z and a valid split, extract the second group (ghost sample). -/
def splitSecond {X : Type u} {m : ℕ} (z : MergedSample X m) (_vs : ValidSplit m) :
Fin m → X := by
exact fun i => z (Fin.natAdd m i |>.cast (two_mul m).symm)
Comment on lines +36 to +53
The correct definition (used in `Theorem/Online.lean`) restricts C at each branch:
| .branch x l r =>
(∃ c ∈ C, c x = true) ∧ (∃ c ∈ C, c x = false) ∧
isShattered X {c ∈ C | c x = true} l ∧
isShattered X {c ∈ C | c x = false} r

The characterization theorem uses the corrected version. -/
def MistakeTree.isShattered (X : Type u) (C : ConceptClass X Bool) :
MistakeTree X → Prop
| .leaf => True
| .branch x l r =>
(∃ c ∈ C, c x = true ∧ MistakeTree.isShattered X C l) ∧
(∃ c ∈ C, c x = false ∧ MistakeTree.isShattered X C r)

/-- Littlestone dimension (branch-wise variant): see `Theorem/Online.lean` for the
corrected path-consistent version used in the characterization theorem. -/
noncomputable def BranchWiseLittlestoneDim (X : Type u) (C : ConceptClass X Bool) : WithTop ℕ :=
⨆ (T : MistakeTree X) (_ : T.isShattered X C), (T.depth : WithTop ℕ)
@Vilin97
Vilin97 force-pushed the codex/formal-learning-theory-pr36 branch 3 times, most recently from 52c53c7 to a728f94 Compare May 10, 2026 01:46
@github-actions

github-actions Bot commented May 10, 2026 •

Copy link
Copy Markdown
Contributor

Proof profile (new / modified Lean files)

File Cumulative (ms) Phases Errors
LeanPool/FormalLearningTheory/Complexity/Symmetrization.lean 3352.2 18 0
LeanPool/FormalLearningTheory/Theorem/Online.lean 3130.7 20 0
LeanPool/FormalLearningTheory/Complexity/GeneralizationResults.lean 2724.5 22 0
LeanPool/FormalLearningTheory/Complexity/Rademacher.lean 2546.1 18 0
LeanPool/FormalLearningTheory/Theorem/Separation.lean 2522.6 21 0
LeanPool/FormalLearningTheory/Complexity/Generalization/Core.lean 2509.7 18 0
LeanPool/FormalLearningTheory/PureMath/ApproxMinimax.lean 2360.4 21 0
LeanPool/FormalLearningTheory/PureMath/Concentration.lean 1937.5 19 0
LeanPool/FelConjecture/Solution.lean 1835.8 18 0
LeanPool/FormalLearningTheory/PureMath/BinaryMatrix.lean 1823.7 21 0
LeanPool/FormalLearningTheory/Complexity/Compression.lean 1788.3 20 0
LeanPool/FormalLearningTheory/Bridge.lean 1747.0 20 0
LeanPool/FormalLearningTheory/Theorem/Gold.lean 1629.7 16 0
LeanPool/FormalLearningTheory/PureMath/ChoquetCapacity.lean 1484.1 23 0
LeanPool/FormalLearningTheory/Complexity/FiniteSupportUC.lean 1419.0 20 0
LeanPool/FormalLearningTheory/Theorem/BorelAnalyticSeparation.lean 1297.2 22 0
LeanPool/FormalLearningTheory/Complexity/GameInfra.lean 1296.1 21 0
LeanPool/FormalLearningTheory/Theorem/Extended.lean 1264.9 18 0
LeanPool/FormalLearningTheory/Theorem/PACBayes.lean 1238.7 20 0
LeanPool/FormalLearningTheory/Complexity/Generalization/Tail.lean 1100.0 20 0
LeanPool/FormalLearningTheory/Complexity/Interpolation.lean 944.4 17 0
LeanPool/FormalLearningTheory/PureMath/FiniteVCApprox.lean 935.0 22 0
LeanPool/FormalLearningTheory/Theorem/PAC.lean 931.9 22 0
LeanPool/FormalLearningTheory/Complexity/BorelAnalyticBridge.lean 907.4 20 0
LeanPool/FormalLearningTheory/Complexity/Measurability.lean 894.5 21 0
LeanPool/FormalLearningTheory/Complexity/Structures.lean 827.0 22 0
LeanPool/FormalLearningTheory/Learner/VersionSpace.lean 686.6 20 0
LeanPool/FormalLearningTheory/Complexity/DualVC.lean 605.8 20 0
LeanPool/FormalLearningTheory/Learner/Closure.lean 552.6 17 0
LeanPool/FormalLearningTheory/Computation.lean 540.1 16 0
LeanPool/FormalLearningTheory/Complexity/Littlestone.lean 525.3 21 0
LeanPool/FormalLearningTheory/PureMath/AnalyticMeasurability.lean 518.4 23 0
LeanPool/FormalLearningTheory/PureMath/Exchangeability.lean 427.6 21 0
LeanPool/FormalLearningTheory/Complexity/Ordinal.lean 416.8 17 0
LeanPool/FormalLearningTheory/Process.lean 413.5 16 0
LeanPool/FormalLearningTheory/Data.lean 409.5 16 0
LeanPool/FormalLearningTheory/Complexity/Amalgamation.lean 394.3 16 0
LeanPool/FormalLearningTheory/Learner/Active.lean 370.9 20 0
LeanPool/FormalLearningTheory/Basic.lean 335.1 16 0
LeanPool/FormalLearningTheory/Learner/Monad.lean 309.6 17 0
LeanPool/FormalLearningTheory/Criterion/Extended.lean 302.3 13 0
LeanPool/FormalLearningTheory/Criterion/Online.lean 261.8 13 0
LeanPool/FormalLearningTheory/Learner/Properties.lean 260.0 16 0
LeanPool/FormalLearningTheory/Criterion/Gold.lean 257.7 17 0
LeanPool/FormalLearningTheory/Learner/Core.lean 245.8 11 0
LeanPool/FormalLearningTheory/Learner/Bayesian.lean 244.0 11 0
LeanPool/FormalLearningTheory/Criterion/PAC.lean 242.8 13 0
LeanPool/FormalLearningTheory/PureMath/KLDivergence.lean 237.3 16 0
LeanPool/FormalLearningTheory/Complexity/MindChange.lean 233.9 17 0
LeanPool/FormalLearningTheory/Complexity/VCDimension.lean 215.2 13 0
LeanPool/FormalLearningTheory.lean 214.8 5 0
LeanPool/FormalLearningTheory/PureMath/ReaderMonad.lean 213.8 22 0
LeanPool/FormalLearningTheory/Complexity.lean 208.0 5 0
LeanPool/FormalLearningTheory/Theorem.lean 205.8 5 0
LeanPool/FormalLearningTheory/Complexity/Generalization.lean 201.0 5 0
LeanPool/FormalLearningTheory/Criterion.lean 172.0 5 0
LeanPool/FormalLearningTheory/Learner.lean 157.4 5 0
Per-file profile output

LeanPool/FelConjecture/Solution.lean

import took 1.7s
simp took 140ms
tactic execution of Lean.Parser.Tactic.congr took 117ms
tactic execution of Lean.Parser.Tactic.congr took 751ms
interpretation of Mathlib.Tactic.RingNF._aux_Mathlib_Tactic_Ring_RingNF___elabRules_Mathlib_Tactic_RingNF_ringNF_1._boxed took 157ms
simp took 231ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 318ms
simp took 788ms
simp took 134ms
tactic execution of Lean.Parser.Tactic.contradiction took 207ms
tactic execution of Lean.Parser.Tactic.contradiction took 212ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 315ms
tactic execution of Mathlib.Tactic.RingNF.ringNF took 111ms
tactic execution of Mathlib.Tactic.RingNF.ringNF took 100ms
simp took 225ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 365ms
cumulative profiling times:
	aesop 93ms
	attribute application 2.52ms
	blocked (unaccounted) 28.8ms
	compilation (IR) 2.64ms
	compilation (LCNF base) 35ms
	compilation (LCNF impure) 14.3ms
	compilation (LCNF mono) 39.4ms
	congr simp thm 55.3ms
	elaboration 1.23s
	fix level params 14.5ms
	import 1.7s
	initialization 33.8ms
	instantiate metavars 38.1ms
	interpretation 6.88s
	let-to-have transformation 5.48ms
	linting 306ms
	norm_num 237ms
	parsing 257ms
	process pre-definitions 172ms
	ring 344ms
	share common exprs 157ms
	simp 4.11s
	tactic execution 5.45s
	type checking 1.71s
	typeclass inference 9.76s

LeanPool/FormalLearningTheory.lean

import took 1.53s
cumulative profiling times:
	elaboration 0.138ms
	import 1.53s
	initialization 30.4ms
	interpretation 184ms
	linting 0.276ms
	parsing 0.03ms

LeanPool/FormalLearningTheory/Basic.lean

import took 1.16s
cumulative profiling times:
	attribute application 0.238ms
	blocked (unaccounted) 4.42ms
	congr simp thm 3.96ms
	elaboration 38.1ms
	fix level params 0.126ms
	import 1.16s
	initialization 30.8ms
	instantiate metavars 0.0989ms
	interpretation 217ms
	let-to-have transformation 0.0386ms
	linting 4.55ms
	parsing 6.1ms
	process pre-definitions 1.83ms
	share common exprs 0.166ms
	simp 0.694ms
	type checking 17.4ms
	typeclass inference 9.54ms

LeanPool/FormalLearningTheory/Bridge.lean

import took 1.51s
tactic execution of Mathlib.Tactic.nlinarith took 1.04s
cumulative profiling times:
	attribute application 0.697ms
	compilation (IR) 1.15ms
	compilation (LCNF base) 11.7ms
	compilation (LCNF impure) 5.8ms
	compilation (LCNF mono) 13.1ms
	congr simp thm 11.7ms
	elaboration 86.9ms
	fix level params 3.98ms
	import 1.51s
	initialization 46.2ms
	instantiate metavars 7.88ms
	interpretation 867ms
	let-to-have transformation 0.426ms
	linting 56.1ms
	norm_num 4.47ms
	parsing 42.8ms
	process pre-definitions 28.9ms
	ring 30.3ms
	share common exprs 15.9ms
	simp 332ms
	tactic execution 1.65s
	type checking 180ms
	typeclass inference 1.07s

LeanPool/FormalLearningTheory/Complexity.lean

import took 1.52s
cumulative profiling times:
	elaboration 0.0842ms
	import 1.52s
	initialization 30.8ms
	interpretation 177ms
	linting 0.0952ms
	parsing 0.00162ms

LeanPool/FormalLearningTheory/Complexity/Amalgamation.lean

import took 1.51s
cumulative profiling times:
	attribute application 0.0675ms
	congr simp thm 1.05ms
	elaboration 16.2ms
	fix level params 0.431ms
	import 1.51s
	initialization 31ms
	instantiate metavars 0.436ms
	interpretation 267ms
	let-to-have transformation 0.0529ms
	linting 5.58ms
	parsing 5.28ms
	process pre-definitions 1.89ms
	share common exprs 1.37ms
	simp 12.1ms
	tactic execution 32.3ms
	type checking 5.74ms
	typeclass inference 13.8ms

LeanPool/FormalLearningTheory/Complexity/BorelAnalyticBridge.lean

import took 1.51s
cumulative profiling times:
	attribute application 0.278ms
	compilation (IR) 0.0659ms
	compilation (LCNF base) 0.579ms
	compilation (LCNF impure) 0.346ms
	compilation (LCNF mono) 0.511ms
	congr simp thm 2.69ms
	elaboration 54.7ms
	fix level params 1.48ms
	import 1.51s
	initialization 30.6ms
	instantiate metavars 1.36ms
	interpretation 401ms
	let-to-have transformation 0.254ms
	linting 17.9ms
	parsing 17.5ms
	process pre-definitions 6.32ms
	share common exprs 2.94ms
	simp 48.2ms
	tactic execution 126ms
	type checking 25.7ms
	typeclass inference 169ms

LeanPool/FormalLearningTheory/Complexity/Compression.lean

import took 1.49s
tactic execution of Lean.Parser.Tactic.contradiction took 267ms
tactic execution of Lean.Parser.Tactic.contradiction took 318ms
tactic execution of Lean.Parser.Tactic.contradiction took 315ms
tactic execution of Lean.Parser.Tactic.contradiction took 265ms
interpretation of Mathlib.Tactic.Tauto._aux_Mathlib_Tactic_Tauto___elabRules_Mathlib_Tactic_Tauto_tauto_1._boxed took 227ms
typeclass inference of Nonempty took 126ms
typeclass inference of Nonempty took 130ms
typeclass inference of Nonempty took 132ms
typeclass inference of Nonempty took 126ms
typeclass inference of Nonempty took 130ms
typeclass inference of Nonempty took 127ms
typeclass inference of Nonempty took 127ms
tactic execution of Mathlib.Tactic.nlinarith took 146ms
interpretation of Mathlib.Meta.Positivity.evalMul._lam_3._boxed took 145ms
cumulative profiling times:
	attribute application 1.1ms
	blocked (unaccounted) 80.1ms
	compilation (IR) 1.77ms
	compilation (LCNF base) 30ms
	compilation (LCNF impure) 9.32ms
	compilation (LCNF mono) 21.9ms
	congr simp thm 72.7ms
	dsimp 72.8ms
	elaboration 278ms
	fix level params 12.1ms
	import 1.49s
	initialization 30.3ms
	instantiate metavars 29.1ms
	interpretation 2.21s
	let-to-have transformation 2.92ms
	linting 178ms
	norm_num 234ms
	parsing 101ms
	process pre-definitions 71.7ms
	ring 80.5ms
	share common exprs 51ms
	simp 3.38s
	tactic execution 3.61s
	type checking 430ms
	typeclass inference 8.99s

LeanPool/FormalLearningTheory/Complexity/DualVC.lean

import took 1.15s
cumulative profiling times:
	attribute application 0.0516ms
	compilation (IR) 0.0587ms
	compilation (LCNF base) 0.308ms
	compilation (LCNF impure) 0.276ms
	compilation (LCNF mono) 0.333ms
	congr simp thm 1.78ms
	elaboration 17.3ms
	fix level params 0.537ms
	import 1.15s
	initialization 30.2ms
	instantiate metavars 1.25ms
	interpretation 246ms
	let-to-have transformation 0.0741ms
	linting 9.51ms
	parsing 8.03ms
	process pre-definitions 3.98ms
	share common exprs 2.14ms
	simp 32.2ms
	tactic execution 101ms
	type checking 30.8ms
	typeclass inference 120ms

LeanPool/FormalLearningTheory/Complexity/FiniteSupportUC.lean

import took 1.48s
cumulative profiling times:
	attribute application 0.0973ms
	compilation (IR) 0.218ms
	compilation (LCNF base) 2.19ms
	compilation (LCNF impure) 1.22ms
	compilation (LCNF mono) 2.4ms
	congr simp thm 21.8ms
	elaboration 34.9ms
	fix level params 2.79ms
	import 1.48s
	initialization 30.4ms
	instantiate metavars 7.94ms
	interpretation 613ms
	let-to-have transformation 0.0747ms
	linting 31.8ms
	norm_num 6.63ms
	parsing 33.3ms
	process pre-definitions 15.9ms
	ring 7.75ms
	share common exprs 10.5ms
	simp 1.18s
	tactic execution 516ms
	type checking 80.1ms
	typeclass inference 2.42s

LeanPool/FormalLearningTheory/Complexity/GameInfra.lean

import took 1.44s
cumulative profiling times:
	attribute application 4.65ms
	blocked (unaccounted) 1.27ms
	compilation (IR) 0.262ms
	compilation (LCNF base) 2.06ms
	compilation (LCNF impure) 1.45ms
	compilation (LCNF mono) 4.9ms
	congr simp thm 6.44ms
	elaboration 73.9ms
	fix level params 0.443ms
	import 1.44s
	initialization 30.4ms
	instantiate metavars 1.16ms
	interpretation 332ms
	let-to-have transformation 2.44ms
	linting 15.6ms
	parsing 13.8ms
	process pre-definitions 12.7ms
	share common exprs 2.47ms
	simp 198ms
	tactic execution 180ms
	type checking 52.2ms
	typeclass inference 360ms

LeanPool/FormalLearningTheory/Complexity/Generalization.lean

import took 1.46s
cumulative profiling times:
	elaboration 0.127ms
	import 1.46s
	initialization 30.6ms
	interpretation 170ms
	linting 0.2ms
	parsing 0.027ms

LeanPool/FormalLearningTheory/Complexity/Generalization/Core.lean

import took 1.45s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 704ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 610ms
tactic execution of Lean.Parser.Tactic.congr took 1.22s
typeclass inference of Nonempty took 189ms
tactic execution of Lean.Parser.Tactic.congr took 152ms
typeclass inference of Nonempty took 202ms
typeclass inference of Nonempty took 191ms
typeclass inference of Nonempty took 204ms
tactic execution of Mathlib.Tactic.nlinarith took 200ms
typeclass inference of Nonempty took 183ms
typeclass inference of Nonempty took 137ms
cumulative profiling times:
	attribute application 0.715ms
	blocked (unaccounted) 1.39s
	compilation (IR) 4.17ms
	compilation (LCNF base) 54.6ms
	compilation (LCNF impure) 22.7ms
	compilation (LCNF mono) 62.6ms
	congr simp thm 40.3ms
	elaboration 308ms
	fix level params 16.3ms
	import 1.45s
	initialization 30.8ms
	instantiate metavars 33.2ms
	interpretation 4.53s
	let-to-have transformation 3.05ms
	linting 230ms
	norm_num 244ms
	parsing 153ms
	process pre-definitions 116ms
	ring 188ms
	share common exprs 88.3ms
	simp 2.22s
	tactic execution 4.08s
	type checking 914ms
	typeclass inference 8.46s

LeanPool/FormalLearningTheory/Complexity/Generalization/Tail.lean

import took 1.44s
typeclass inference of Nonempty took 130ms
typeclass inference of Nonempty took 119ms
cumulative profiling times:
	attribute application 0.143ms
	compilation (IR) 0.182ms
	compilation (LCNF base) 2.45ms
	compilation (LCNF impure) 0.896ms
	compilation (LCNF mono) 2ms
	congr simp thm 4.78ms
	elaboration 35.2ms
	fix level params 1.56ms
	import 1.44s
	initialization 30.6ms
	instantiate metavars 2.94ms
	interpretation 406ms
	let-to-have transformation 0.153ms
	linting 19.6ms
	norm_num 16ms
	parsing 17.2ms
	process pre-definitions 9.25ms
	share common exprs 5.07ms
	simp 148ms
	tactic execution 280ms
	type checking 118ms
	typeclass inference 1.05s

LeanPool/FormalLearningTheory/Complexity/GeneralizationResults.lean

import took 1.5s
cumulative profiling times:
	attribute application 0.427ms
	compilation (IR) 0.172ms
	compilation (LCNF base) 1.73ms
	compilation (LCNF impure) 1.03ms
	compilation (LCNF mono) 1.95ms
	congr simp thm 10.6ms
	elaboration 81.8ms
	fix level params 3.02ms
	import 1.5s
	initialization 30.7ms
	instantiate metavars 3.74ms
	interpretation 575ms
	let-to-have transformation 1.44ms
	linting 31.2ms
	norm_num 22.5ms
	parsing 23.8ms
	process pre-definitions 14.6ms
	ring 2.92ms
	share common exprs 7.84ms
	simp 432ms
	tactic execution 333ms
	type checking 191ms
	typeclass inference 954ms

LeanPool/FormalLearningTheory/Complexity/Interpolation.lean

import took 1.5s
cumulative profiling times:
	attribute application 0.794ms
	blocked (unaccounted) 70.3ms
	congr simp thm 7.46ms
	elaboration 66.9ms
	fix level params 1.94ms
	import 1.5s
	initialization 30.2ms
	instantiate metavars 1.89ms
	interpretation 379ms
	let-to-have transformation 0.171ms
	linting 16.7ms
	parsing 15ms
	process pre-definitions 7.36ms
	share common exprs 3.75ms
	simp 156ms
	tactic execution 94.7ms
	type checking 30.1ms
	typeclass inference 62.1ms

LeanPool/FormalLearningTheory/Complexity/Littlestone.lean

import took 1.15s
cumulative profiling times:
	attribute application 0.11ms
	blocked (unaccounted) 17.2ms
	compilation (IR) 0.388ms
	compilation (LCNF base) 3.4ms
	compilation (LCNF impure) 2.15ms
	compilation (LCNF mono) 3.49ms
	congr simp thm 2.38ms
	elaboration 37.6ms
	fix level params 0.508ms
	import 1.15s
	initialization 30.3ms
	instantiate metavars 0.678ms
	interpretation 209ms
	let-to-have transformation 0.114ms
	linting 7.07ms
	parsing 6.57ms
	process pre-definitions 11.4ms
	share common exprs 1.17ms
	simp 53ms
	tactic execution 94.5ms
	type checking 20.4ms
	typeclass inference 23.9ms

LeanPool/FormalLearningTheory/Complexity/Measurability.lean

import took 1.51s
cumulative profiling times:
	attribute application 1.23ms
	blocked (unaccounted) 0.902ms
	compilation (IR) 0.0367ms
	compilation (LCNF base) 0.447ms
	compilation (LCNF impure) 0.172ms
	compilation (LCNF mono) 0.419ms
	congr simp thm 3.85ms
	elaboration 83.6ms
	fix level params 0.884ms
	import 1.51s
	initialization 30.6ms
	instantiate metavars 0.971ms
	interpretation 472ms
	let-to-have transformation 0.309ms
	linting 20.4ms
	parsing 21.8ms
	process pre-definitions 8.93ms
	share common exprs 2.56ms
	simp 52.3ms
	tactic execution 81ms
	type checking 25ms
	typeclass inference 87.1ms

LeanPool/FormalLearningTheory/Complexity/MindChange.lean

import took 1.19s
cumulative profiling times:
	attribute application 0.0451ms
	compilation (IR) 0.112ms
	compilation (LCNF base) 1.44ms
	compilation (LCNF impure) 0.531ms
	compilation (LCNF mono) 0.912ms
	elaboration 7.07ms
	fix level params 0.0594ms
	import 1.19s
	initialization 30.6ms
	instantiate metavars 0.0489ms
	interpretation 173ms
	let-to-have transformation 0.208ms
	linting 1.73ms
	parsing 2.58ms
	process pre-definitions 1.12ms
	share common exprs 0.114ms
	type checking 0.573ms
	typeclass inference 13.8ms

LeanPool/FormalLearningTheory/Complexity/Ordinal.lean

import took 1.15s
cumulative profiling times:
	attribute application 0.074ms
	blocked (unaccounted) 9.68ms
	congr simp thm 0.337ms
	elaboration 26.5ms
	fix level params 0.53ms
	import 1.15s
	initialization 30.6ms
	instantiate metavars 0.251ms
	interpretation 223ms
	let-to-have transformation 0.0547ms
	linting 5.26ms
	parsing 5.93ms
	process pre-definitions 2.1ms
	share common exprs 0.776ms
	simp 0.405ms
	tactic execution 43.9ms
	type checking 29.7ms
	typeclass inference 37.7ms

LeanPool/FormalLearningTheory/Complexity/Rademacher.lean

import took 1.45s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 223ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 226ms
tactic execution of Lean.Parser.Tactic.exact took 1.75s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 390ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 1.13s
simp took 161ms
simp took 162ms
simp took 106ms
simp took 106ms
tactic execution of Lean.Parser.Tactic.congr took 232ms
tactic execution of Lean.Parser.Tactic.congr took 381ms
tactic execution of Lean.Parser.Tactic.congr took 2.96s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 714ms
tactic execution of Mathlib.Tactic.nlinarith took 1.03s
typeclass inference of Nonempty took 116ms
typeclass inference of Nonempty took 119ms
typeclass inference of Nonempty took 118ms
typeclass inference of Nonempty took 117ms
typeclass inference of Nonempty took 119ms
typeclass inference of Nonempty took 117ms
typeclass inference of Nonempty took 120ms
typeclass inference of Nonempty took 118ms
typeclass inference of Nonempty took 119ms
typeclass inference of Nonempty took 118ms
typeclass inference of Nonempty took 118ms
typeclass inference of Nonempty took 118ms
typeclass inference of Nonempty took 117ms
typeclass inference of Nonempty took 118ms
typeclass inference of Nonempty took 117ms
typeclass inference of Nonempty took 118ms
typeclass inference of Nonempty took 118ms
typeclass inference of Nonempty took 119ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 213ms
tactic execution of Mathlib.Tactic.nlinarith took 235ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 881ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 1.37s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 1.88s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 1.52s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 1.37s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_linarith_1._boxed took 122ms
tactic execution of Mathlib.Tactic.nlinarith took 164ms
tactic execution of Mathlib.Tactic.nlinarith took 185ms
tactic execution of Mathlib.Tactic.nlinarith took 368ms
tactic execution of Mathlib.Tactic.nlinarith took 292ms
cumulative profiling times:
	attribute application 0.709ms
	blocked (unaccounted) 1.61ms
	compilation (IR) 5.27ms
	compilation (LCNF base) 71.3ms
	compilation (LCNF impure) 30ms
	compilation (LCNF mono) 83.3ms
	congr simp thm 86.3ms
	elaboration 266ms
	fix level params 13ms
	import 1.45s
	initialization 30.2ms
	instantiate metavars 35.7ms
	interpretation 14.4s
	let-to-have transformation 2.68ms
	linting 337ms
	norm_num 1.24s
	parsing 143ms
	process pre-definitions 140ms
	ring 419ms
	share common exprs 136ms
	simp 5.72s
	tactic execution 11.2s
	type checking 745ms
	typeclass inference 31.9s

LeanPool/FormalLearningTheory/Complexity/Structures.lean

import took 1.37s
cumulative profiling times:
	attribute application 0.533ms
	blocked (unaccounted) 2.85ms
	compilation (IR) 0.18ms
	compilation (LCNF base) 2.37ms
	compilation (LCNF impure) 0.918ms
	compilation (LCNF mono) 3.48ms
	congr simp thm 13.1ms
	dsimp 0.627ms
	elaboration 129ms
	fix level params 0.387ms
	import 1.37s
	initialization 30.6ms
	instantiate metavars 0.413ms
	interpretation 369ms
	let-to-have transformation 0.101ms
	linting 14.1ms
	parsing 15.7ms
	process pre-definitions 7.84ms
	share common exprs 0.993ms
	simp 2.52ms
	tactic execution 67ms
	type checking 66.1ms
	typeclass inference 99.2ms

LeanPool/FormalLearningTheory/Complexity/Symmetrization.lean

import took 1.48s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 275ms
tactic execution of Lean.Parser.Tactic.exact took 161ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 1.84s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_linarith_1._boxed took 147ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 1.7s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 2.03s
interpretation of Lean.Elab.Tactic._aux_Mathlib_Tactic_Widget_Calc___elabRules_Lean_calcTactic_1._boxed took 166ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 2.94s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 2.97s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 3.26s
interpretation of Lean.Elab.Tactic._aux_Mathlib_Tactic_Widget_Calc___elabRules_Lean_calcTactic_1._boxed took 126ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 457ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 822ms
simp took 114ms
cumulative profiling times:
	aesop 74.9ms
	attribute application 0.332ms
	compilation (IR) 5.91ms
	compilation (LCNF base) 79.6ms
	compilation (LCNF impure) 33.1ms
	compilation (LCNF mono) 91.8ms
	congr simp thm 63.2ms
	elaboration 346ms
	fix level params 19.8ms
	import 1.48s
	initialization 30.3ms
	instantiate metavars 52.5ms
	interpretation 23.1s
	let-to-have transformation 4.77ms
	linting 433ms
	norm_num 1.57s
	parsing 205ms
	process pre-definitions 185ms
	ring 587ms
	share common exprs 273ms
	simp 2.68s
	tactic execution 5.85s
	type checking 867ms
	typeclass inference 13.2s

LeanPool/FormalLearningTheory/Complexity/VCDimension.lean

import took 1.15s
cumulative profiling times:
	attribute application 0.0287ms
	elaboration 9.13ms
	fix level params 0.0875ms
	import 1.15s
	initialization 30.3ms
	instantiate metavars 0.048ms
	interpretation 160ms
	let-to-have transformation 0.0287ms
	linting 1.81ms
	parsing 2.52ms
	process pre-definitions 1.57ms
	share common exprs 0.189ms
	type checking 0.769ms
	typeclass inference 8.7ms

LeanPool/FormalLearningTheory/Computation.lean

import took 1.18s
cumulative profiling times:
	attribute application 0.385ms
	blocked (unaccounted) 2.85ms
	congr simp thm 2.55ms
	elaboration 112ms
	fix level params 0.235ms
	import 1.18s
	initialization 30.9ms
	instantiate metavars 0.21ms
	interpretation 301ms
	let-to-have transformation 0.0839ms
	linting 9.11ms
	parsing 14.4ms
	process pre-definitions 4.55ms
	share common exprs 0.455ms
	simp 2.21ms
	type checking 38.1ms
	typeclass inference 21.1ms

LeanPool/FormalLearningTheory/Criterion.lean

import took 1.28s
cumulative profiling times:
	elaboration 0.0877ms
	import 1.28s
	initialization 30.8ms
	interpretation 141ms
	linting 0.0928ms
	parsing 0.00156ms

LeanPool/FormalLearningTheory/Criterion/Extended.lean

import took 1.28s
cumulative profiling times:
	attribute application 0.0737ms
	elaboration 24.5ms
	fix level params 0.179ms
	import 1.28s
	initialization 30.8ms
	instantiate metavars 0.142ms
	interpretation 207ms
	let-to-have transformation 0.606ms
	linting 3.93ms
	parsing 5.69ms
	process pre-definitions 3.75ms
	share common exprs 0.515ms
	type checking 2.36ms
	typeclass inference 22.8ms

LeanPool/FormalLearningTheory/Criterion/Gold.lean

import took 1.17s
cumulative profiling times:
	attribute application 0.0573ms
	compilation (IR) 0.0967ms
	compilation (LCNF base) 1.12ms
	compilation (LCNF impure) 0.446ms
	compilation (LCNF mono) 0.734ms
	elaboration 24.3ms
	fix level params 0.173ms
	import 1.17s
	initialization 30.6ms
	instantiate metavars 0.129ms
	interpretation 177ms
	let-to-have transformation 0.0509ms
	linting 3.72ms
	parsing 5.7ms
	process pre-definitions 3.37ms
	share common exprs 0.377ms
	type checking 1.67ms
	typeclass inference 8.18ms

LeanPool/FormalLearningTheory/Criterion/Online.lean

import took 1.18s
cumulative profiling times:
	attribute application 0.102ms
	elaboration 22ms
	fix level params 0.147ms
	import 1.18s
	initialization 30.6ms
	instantiate metavars 0.123ms
	interpretation 184ms
	let-to-have transformation 0.529ms
	linting 3.51ms
	parsing 4.08ms
	process pre-definitions 7.71ms
	share common exprs 0.377ms
	type checking 3.32ms
	typeclass inference 5.33ms

LeanPool/FormalLearningTheory/Criterion/PAC.lean

import took 1.18s
cumulative profiling times:
	attribute application 0.0459ms
	elaboration 10.7ms
	fix level params 0.0964ms
	import 1.18s
	initialization 30.4ms
	instantiate metavars 0.0416ms
	interpretation 180ms
	let-to-have transformation 1.19ms
	linting 2.36ms
	parsing 3.41ms
	process pre-definitions 1.92ms
	share common exprs 0.255ms
	type checking 1.23ms
	typeclass inference 11.2ms

LeanPool/FormalLearningTheory/Data.lean

import took 1.14s
cumulative profiling times:
	attribute application 0.347ms
	blocked (unaccounted) 11.7ms
	congr simp thm 6.87ms
	elaboration 72.3ms
	fix level params 0.11ms
	import 1.14s
	initialization 30.3ms
	instantiate metavars 0.0405ms
	interpretation 225ms
	let-to-have transformation 0.0309ms
	linting 3.84ms
	parsing 6.61ms
	process pre-definitions 0.923ms
	share common exprs 0.0956ms
	simp 1.87ms
	type checking 35.9ms
	typeclass inference 13.6ms

LeanPool/FormalLearningTheory/Learner.lean

import took 1.17s
cumulative profiling times:
	elaboration 0.0965ms
	import 1.17s
	initialization 30.2ms
	interpretation 127ms
	linting 0.0963ms
	parsing 0.0018ms

LeanPool/FormalLearningTheory/Learner/Active.lean

import took 1.24s
cumulative profiling times:
	attribute application 0.103ms
	blocked (unaccounted) 1.85ms
	compilation (IR) 0.0585ms
	compilation (LCNF base) 0.757ms
	compilation (LCNF impure) 0.293ms
	compilation (LCNF mono) 0.765ms
	congr simp thm 2.26ms
	elaboration 63.5ms
	fix level params 0.154ms
	import 1.24s
	initialization 30.1ms
	instantiate metavars 0.0978ms
	interpretation 218ms
	let-to-have transformation 0.291ms
	linting 4.62ms
	parsing 6.61ms
	process pre-definitions 4.88ms
	share common exprs 0.272ms
	simp 1.37ms
	type checking 21.8ms
	typeclass inference 13.1ms

LeanPool/FormalLearningTheory/Learner/Bayesian.lean

import took 1.16s
cumulative profiling times:
	attribute application 0.0148ms
	blocked (unaccounted) 1.13ms
	congr simp thm 2.59ms
	elaboration 31.6ms
	import 1.16s
	initialization 30.4ms
	interpretation 153ms
	linting 1.19ms
	parsing 1.86ms
	simp 0.842ms
	type checking 15.3ms
	typeclass inference 6.05ms

LeanPool/FormalLearningTheory/Learner/Closure.lean

import took 1.43s
cumulative profiling times:
	attribute application 0.421ms
	blocked (unaccounted) 40.8ms
	congr simp thm 0.412ms
	elaboration 40.8ms
	fix level params 0.418ms
	import 1.43s
	initialization 30.7ms
	instantiate metavars 0.752ms
	interpretation 313ms
	let-to-have transformation 0.133ms
	linting 7.91ms
	parsing 10.3ms
	process pre-definitions 4.27ms
	share common exprs 1.08ms
	simp 4.65ms
	tactic execution 49.8ms
	type checking 13.1ms
	typeclass inference 34.1ms

LeanPool/FormalLearningTheory/Learner/Core.lean

import took 1.17s
cumulative profiling times:
	attribute application 0.0508ms
	blocked (unaccounted) 1.38ms
	congr simp thm 1.56ms
	elaboration 29.8ms
	import 1.17s
	initialization 30.3ms
	interpretation 160ms
	linting 1.48ms
	parsing 2.71ms
	simp 0.761ms
	type checking 14.2ms
	typeclass inference 3.59ms

LeanPool/FormalLearningTheory/Learner/Monad.lean

import took 1.53s
cumulative profiling times:
	attribute application 0.0901ms
	blocked (unaccounted) 0.29ms
	congr simp thm 0.513ms
	elaboration 29ms
	fix level params 0.12ms
	import 1.53s
	initialization 30.5ms
	instantiate metavars 0.0521ms
	interpretation 221ms
	let-to-have transformation 0.0508ms
	linting 3.62ms
	parsing 5.34ms
	process pre-definitions 1.77ms
	share common exprs 0.294ms
	simp 0.25ms
	tactic execution 2.6ms
	type checking 8.34ms
	typeclass inference 5.74ms

LeanPool/FormalLearningTheory/Learner/Properties.lean

import took 1.15s
cumulative profiling times:
	attribute application 0.0488ms
	blocked (unaccounted) 0.315ms
	congr simp thm 0.135ms
	elaboration 30.5ms
	fix level params 0.112ms
	import 1.15s
	initialization 30.2ms
	instantiate metavars 0.0714ms
	interpretation 178ms
	let-to-have transformation 0.0707ms
	linting 2.44ms
	parsing 3.62ms
	process pre-definitions 1.35ms
	share common exprs 0.209ms
	simp 0.487ms
	type checking 6.99ms
	typeclass inference 5.47ms

LeanPool/FormalLearningTheory/Learner/VersionSpace.lean

import took 1.16s
cumulative profiling times:
	attribute application 0.353ms
	compilation (IR) 0.107ms
	compilation (LCNF base) 1.12ms
	compilation (LCNF impure) 0.533ms
	compilation (LCNF mono) 0.987ms
	congr simp thm 4.03ms
	elaboration 26.4ms
	fix level params 0.683ms
	import 1.16s
	initialization 30.4ms
	instantiate metavars 1.01ms
	interpretation 284ms
	let-to-have transformation 0.0958ms
	linting 12.4ms
	parsing 13.4ms
	process pre-definitions 4.86ms
	share common exprs 2.12ms
	simp 90.3ms
	tactic execution 78.1ms
	type checking 14.7ms
	typeclass inference 121ms

LeanPool/FormalLearningTheory/Process.lean

import took 1.49s
cumulative profiling times:
	attribute application 0.0656ms
	blocked (unaccounted) 2.08ms
	congr simp thm 2.95ms
	elaboration 66.6ms
	fix level params 0.0273ms
	import 1.49s
	initialization 30.2ms
	instantiate metavars 0.02ms
	interpretation 257ms
	let-to-have transformation 0.019ms
	linting 3.68ms
	parsing 5.85ms
	process pre-definitions 0.697ms
	share common exprs 0.0517ms
	simp 1.81ms
	type checking 27.5ms
	typeclass inference 14.9ms

LeanPool/FormalLearningTheory/PureMath/AnalyticMeasurability.lean

import took 1.19s
cumulative profiling times:
	aesop 30ms
	attribute application 0.0256ms
	compilation (IR) 0.0923ms
	compilation (LCNF base) 1.14ms
	compilation (LCNF impure) 0.464ms
	compilation (LCNF mono) 1.1ms
	congr simp thm 1.2ms
	elaboration 9.65ms
	fix level params 0.866ms
	import 1.19s
	initialization 30.5ms
	instantiate metavars 0.889ms
	interpretation 249ms
	let-to-have transformation 0.0255ms
	linting 9ms
	norm_num 6.72ms
	parsing 5.08ms
	process pre-definitions 3.16ms
	ring 6.87ms
	share common exprs 2.7ms
	simp 3.31ms
	tactic execution 60ms
	type checking 18.6ms
	typeclass inference 78ms

LeanPool/FormalLearningTheory/PureMath/ApproxMinimax.lean

import took 1.23s
simp took 318ms
interpretation of Mathlib.Tactic.FieldSimp._aux_Mathlib_Tactic_FieldSimp___elabRules_Mathlib_Tactic_FieldSimp_fieldSimp_1._boxed took 120ms
simp took 127ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 360ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 464ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 953ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 1.23s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 254ms
cumulative profiling times:
	attribute application 1.03ms
	blocked (unaccounted) 218ms
	compilation (IR) 1.24ms
	compilation (LCNF base) 14.6ms
	compilation (LCNF impure) 6.3ms
	compilation (LCNF mono) 14.7ms
	congr simp thm 48.6ms
	dsimp 1.69ms
	elaboration 233ms
	fix level params 5.04ms
	import 1.23s
	initialization 30.6ms
	instantiate metavars 10.1ms
	interpretation 5.21s
	let-to-have transformation 13.6ms
	linting 84ms
	norm_num 346ms
	parsing 50.9ms
	process pre-definitions 85.8ms
	ring 133ms
	share common exprs 53.2ms
	simp 1.2s
	tactic execution 761ms
	type checking 248ms
	typeclass inference 3.11s

LeanPool/FormalLearningTheory/PureMath/BinaryMatrix.lean

import took 895ms
cumulative profiling times:
	attribute application 0.142ms
	compilation (IR) 0.148ms
	compilation (LCNF base) 1.74ms
	compilation (LCNF impure) 0.675ms
	compilation (LCNF mono) 1.15ms
	congr simp thm 3.66ms
	elaboration 29.7ms
	fix level params 0.382ms
	import 895ms
	initialization 30.7ms
	instantiate metavars 1.87ms
	interpretation 291ms
	let-to-have transformation 0.0916ms
	linting 19.6ms
	parsing 13.6ms
	process pre-definitions 6.2ms
	share common exprs 2.34ms
	simp 62.4ms
	tactic execution 149ms
	type checking 48.3ms
	typeclass inference 266ms

LeanPool/FormalLearningTheory/PureMath/ChoquetCapacity.lean

import took 1.15s
cumulative profiling times:
	attribute application 0.272ms
	blocked (unaccounted) 0.524ms
	compilation (IR) 0.0397ms
	compilation (LCNF base) 0.416ms
	compilation (LCNF impure) 0.23ms
	compilation (LCNF mono) 0.409ms
	congr simp thm 2.55ms
	dsimp 2.74ms
	elaboration 64.3ms
	fix level params 1.34ms
	import 1.15s
	initialization 30.3ms
	instantiate metavars 3.45ms
	interpretation 530ms
	let-to-have transformation 0.215ms
	linting 26.8ms
	norm_num 0.694ms
	parsing 28ms
	process pre-definitions 10.7ms
	share common exprs 5.44ms
	simp 74.8ms
	tactic execution 325ms
	type checking 89.9ms
	typeclass inference 286ms

LeanPool/FormalLearningTheory/PureMath/Concentration.lean

import took 1.4s
tactic execution of Mathlib.Tactic.nlinarith took 129ms
cumulative profiling times:
	attribute application 0.143ms
	blocked (unaccounted) 0.401ms
	congr simp thm 3.32ms
	elaboration 16.9ms
	fix level params 1.18ms
	import 1.4s
	initialization 30.3ms
	instantiate metavars 1.94ms
	interpretation 590ms
	let-to-have transformation 0.0321ms
	linting 15.4ms
	norm_num 132ms
	parsing 11.8ms
	process pre-definitions 8.41ms
	ring 24.7ms
	share common exprs 10.7ms
	simp 68ms
	tactic execution 308ms
	type checking 46.3ms
	typeclass inference 668ms

LeanPool/FormalLearningTheory/PureMath/Exchangeability.lean

import took 1.41s
cumulative profiling times:
	attribute application 0.491ms
	blocked (unaccounted) 4.57ms
	compilation (IR) 0.208ms
	compilation (LCNF base) 3.15ms
	compilation (LCNF impure) 0.93ms
	compilation (LCNF mono) 1.65ms
	congr simp thm 1.99ms
	elaboration 46.9ms
	fix level params 0.172ms
	import 1.41s
	initialization 30.5ms
	instantiate metavars 0.263ms
	interpretation 250ms
	let-to-have transformation 0.885ms
	linting 4.48ms
	parsing 6.2ms
	process pre-definitions 6.93ms
	share common exprs 0.719ms
	simp 2.56ms
	tactic execution 8.57ms
	type checking 32.2ms
	typeclass inference 24.2ms

LeanPool/FormalLearningTheory/PureMath/FiniteVCApprox.lean

import took 1.24s
cumulative profiling times:
	attribute application 0.172ms
	compilation (IR) 0.321ms
	compilation (LCNF base) 4.35ms
	compilation (LCNF impure) 1.46ms
	compilation (LCNF mono) 3.42ms
	congr simp thm 2.56ms
	elaboration 47.8ms
	fix level params 1.04ms
	import 1.24s
	initialization 30.8ms
	instantiate metavars 0.578ms
	interpretation 327ms
	let-to-have transformation 0.353ms
	linting 11.7ms
	norm_num 6.13ms
	parsing 10.9ms
	process pre-definitions 5.61ms
	ring 6.15ms
	share common exprs 2.84ms
	simp 73ms
	tactic execution 87.1ms
	type checking 29.7ms
	typeclass inference 282ms

LeanPool/FormalLearningTheory/PureMath/KLDivergence.lean

import took 1.22s
cumulative profiling times:
	attribute application 0.0752ms
	blocked (unaccounted) 0.458ms
	congr simp thm 0.788ms
	elaboration 18.2ms
	fix level params 0.0626ms
	import 1.22s
	initialization 30.3ms
	instantiate metavars 0.0305ms
	interpretation 168ms
	let-to-have transformation 0.0165ms
	linting 1.69ms
	parsing 2.13ms
	process pre-definitions 0.795ms
	share common exprs 0.11ms
	simp 0.305ms
	type checking 5.2ms
	typeclass inference 9.15ms

LeanPool/FormalLearningTheory/PureMath/ReaderMonad.lean

import took 145ms
cumulative profiling times:
	attribute application 0.0488ms
	blocked (unaccounted) 0.174ms
	compilation (IR) 0.154ms
	compilation (LCNF base) 0.843ms
	compilation (LCNF impure) 0.878ms
	compilation (LCNF mono) 1.6ms
	congr simp thm 0.0585ms
	elaboration 16.4ms
	fix level params 0.098ms
	import 145ms
	initialization 30.7ms
	instantiate metavars 0.0467ms
	interpretation 3.05ms
	let-to-have transformation 0.0341ms
	linting 2.08ms
	parsing 2.99ms
	process pre-definitions 0.842ms
	share common exprs 0.189ms
	simp 0.239ms
	tactic execution 3.51ms
	type checking 4.51ms
	typeclass inference 0.322ms

LeanPool/FormalLearningTheory/Theorem.lean

import took 1.52s
cumulative profiling times:
	elaboration 0.0568ms
	import 1.52s
	initialization 30.6ms
	interpretation 175ms
	linting 0.0965ms
	parsing 0.00175ms

LeanPool/FormalLearningTheory/Theorem/BorelAnalyticSeparation.lean

import took 1.51s
cumulative profiling times:
	attribute application 0.175ms
	compilation (IR) 0.0474ms
	compilation (LCNF base) 0.653ms
	compilation (LCNF impure) 0.236ms
	compilation (LCNF mono) 0.38ms
	congr simp thm 3.36ms
	elaboration 26.1ms
	fix level params 0.67ms
	import 1.51s
	initialization 30.3ms
	instantiate metavars 3.15ms
	interpretation 537ms
	let-to-have transformation 0.103ms
	linting 21.9ms
	norm_num 43.7ms
	parsing 24.4ms
	process pre-definitions 10.2ms
	ring 15.3ms
	share common exprs 6.67ms
	simp 132ms
	tactic execution 203ms
	type checking 38.9ms
	typeclass inference 199ms

LeanPool/FormalLearningTheory/Theorem/Extended.lean

import took 1.5s
typeclass inference of Nonempty took 186ms
tactic execution of Mathlib.Tactic.nlinarith took 295ms
tactic execution of Mathlib.Tactic.nlinarith took 295ms
typeclass inference of Nonempty took 149ms
simp took 343ms
typeclass inference of Nonempty took 149ms
typeclass inference of Nonempty took 101ms
simp took 261ms
typeclass inference of Nonempty took 107ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Convert___elabRules_Mathlib_Tactic_convert_1._boxed took 571ms
tactic execution of Lean.Parser.Tactic.congr took 1.49s
cumulative profiling times:
	attribute application 0.488ms
	blocked (unaccounted) 6.14s
	compilation (IR) 0.613ms
	compilation (LCNF base) 8.03ms
	compilation (LCNF impure) 3.12ms
	compilation (LCNF mono) 7.31ms
	congr simp thm 32.7ms
	elaboration 223ms
	fix level params 9.1ms
	import 1.5s
	initialization 30.2ms
	instantiate metavars 14.5ms
	interpretation 2.6s
	let-to-have transformation 6.23ms
	linting 133ms
	norm_num 150ms
	parsing 106ms
	process pre-definitions 58.2ms
	ring 88.5ms
	share common exprs 39.9ms
	simp 1.6s
	tactic execution 3.58s
	type checking 354ms
	typeclass inference 4.05s

LeanPool/FormalLearningTheory/Theorem/Gold.lean

import took 1.17s
cumulative profiling times:
	attribute application 0.0261ms
	congr simp thm 5.78ms
	elaboration 16.4ms
	fix level params 1.75ms
	import 1.17s
	initialization 31ms
	instantiate metavars 6.61ms
	interpretation 289ms
	let-to-have transformation 0.0244ms
	linting 24ms
	parsing 16.3ms
	process pre-definitions 8.91ms
	share common exprs 6.92ms
	simp 130ms
	tactic execution 554ms
	type checking 403ms
	typeclass inference 136ms

LeanPool/FormalLearningTheory/Theorem/Online.lean

import took 1.43s
cumulative profiling times:
	attribute application 0.196ms
	compilation (IR) 0.361ms
	compilation (LCNF base) 3.16ms
	compilation (LCNF impure) 1.72ms
	compilation (LCNF mono) 2.85ms
	congr simp thm 12.3ms
	elaboration 62.8ms
	fix level params 1.24ms
	import 1.43s
	initialization 30.5ms
	instantiate metavars 7.55ms
	interpretation 570ms
	let-to-have transformation 1.21ms
	linting 45.8ms
	parsing 34.8ms
	process pre-definitions 16.3ms
	share common exprs 8.93ms
	simp 585ms
	tactic execution 786ms
	type checking 136ms
	typeclass inference 824ms

LeanPool/FormalLearningTheory/Theorem/PAC.lean

import took 1.5s
cumulative profiling times:
	attribute application 0.162ms
	compilation (IR) 0.0339ms
	compilation (LCNF base) 0.417ms
	compilation (LCNF impure) 0.189ms
	compilation (LCNF mono) 0.413ms
	congr simp thm 1.22ms
	elaboration 85.1ms
	fix level params 1.6ms
	import 1.5s
	initialization 30.7ms
	instantiate metavars 1.11ms
	interpretation 451ms
	let-to-have transformation 0.347ms
	linting 17.5ms
	norm_num 16.6ms
	parsing 18.1ms
	process pre-definitions 5.45ms
	ring 3.35ms
	share common exprs 3.73ms
	simp 11.7ms
	tactic execution 81ms
	type checking 37.2ms
	typeclass inference 165ms

LeanPool/FormalLearningTheory/Theorem/PACBayes.lean

import took 1.48s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 139ms
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 351ms
cumulative profiling times:
	attribute application 0.12ms
	compilation (IR) 0.685ms
	compilation (LCNF base) 9.05ms
	compilation (LCNF impure) 3.73ms
	compilation (LCNF mono) 10.3ms
	congr simp thm 6.3ms
	elaboration 64ms
	fix level params 3ms
	import 1.48s
	initialization 30.5ms
	instantiate metavars 5.78ms
	interpretation 1.81s
	let-to-have transformation 0.193ms
	linting 51.9ms
	norm_num 118ms
	parsing 31.9ms
	process pre-definitions 22.8ms
	ring 92.1ms
	share common exprs 23.3ms
	simp 198ms
	tactic execution 455ms
	type checking 112ms
	typeclass inference 1.16s

LeanPool/FormalLearningTheory/Theorem/Separation.lean

import took 1.49s
tactic execution of Mathlib.Tactic.nlinarith took 236ms
interpretation of Mathlib.Tactic.Tauto._aux_Mathlib_Tactic_Tauto___elabRules_Mathlib_Tactic_Tauto_tauto_1._boxed took 228ms
tactic execution of Mathlib.Tactic.nlinarith took 130ms
cumulative profiling times:
	attribute application 0.773ms
	blocked (unaccounted) 14.8ms
	compilation (IR) 0.95ms
	compilation (LCNF base) 11.5ms
	compilation (LCNF impure) 5.03ms
	compilation (LCNF mono) 12.3ms
	congr simp thm 24.2ms
	dsimp 4.11ms
	elaboration 167ms
	fix level params 6.39ms
	import 1.49s
	initialization 30.5ms
	instantiate metavars 15ms
	interpretation 2.29s
	let-to-have transformation 1ms
	linting 135ms
	norm_num 283ms
	parsing 107ms
	process pre-definitions 58.1ms
	ring 65ms
	share common exprs 39.9ms
	simp 950ms
	tactic execution 2.42s
	type checking 591ms
	typeclass inference 3.88s

Advisory only — never blocks merge. Full log uploaded as the proof-profile artifact.

@Vilin97

Vilin97 commented May 10, 2026

Copy link
Copy Markdown
Collaborator Author

/review

@github-actions

Copy link
Copy Markdown
Contributor

🤖 LLM review (gpt-5.5)

Verdict: ✅ approve

This PR adds a large formal learning theory development: PAC/VC infrastructure, Sauer–Shelah bridges to mathlib, Littlestone/online learning, Gold learning, compression with side information, Rademacher complexity, measurability regularity including a Borel-analytic/Choquet route, and several separation and characterization theorems. It is source-anchored across the files to standard learning-theory results and papers, and the main contributions are named graduate/research-level theorems rather than isolated lemmas.

Aspect Value
Fit ✅ good_fit
Level research
Branch statistical learning theory
Mode theory_building
Obscure problem no
Code quality 3 / 5

The contribution is a broad Lean kernel for formal learning theory, including the PAC/VC characterization, Littlestone online characterization, compression-with-side-information equivalence, Rademacher and measurability bridges, and paradigm separation results.


Tokens: 402,313 in / 764 out · Tier: standard · Cost: $2.0345
Automated review against .github/REVIEW_RULES.md. Disagree? Reply on the PR; rules can be updated in a PR of their own.

@Vilin97
Vilin97 force-pushed the codex/formal-learning-theory-pr36 branch from 6c86015 to ffbd231 Compare May 10, 2026 07:38
@Vilin97
Vilin97 requested a review from Copilot May 10, 2026 07:43

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 56 out of 58 changed files in this pull request and generated 3 comments.

Comment on lines +118 to +128
/-- Given a merged sample z and a valid split, extract the first group (training sample). -/
def splitFirst {X : Type u} {m : ℕ} (z : MergedSample X m) (_vs : ValidSplit m) :
Fin m → X := by
-- The first group consists of the m indices where assign = true
-- We need to enumerate them and index into z
exact fun i => z (Fin.castAdd m i |>.cast (two_mul m).symm)

/-- Given a merged sample z and a valid split, extract the second group (ghost sample). -/
def splitSecond {X : Type u} {m : ℕ} (z : MergedSample X m) (_vs : ValidSplit m) :
Fin m → X := by
exact fun i => z (Fin.natAdd m i |>.cast (two_mul m).symm)
Comment on lines +37 to +50
/-- KL divergence between two FinitePMFs over a finite type.
KL(Q‖P) = ∑_h Q(h) · log(Q(h)/P(h)).
Convention: 0 · log(0/p) = 0. -/
noncomputable def klDivFinitePMF {H : Type*} [Fintype H]
(Q P : FinitePMF H) : ℝ :=
∑ h : H, if Q.prob h = 0 then 0
else Q.prob h * Real.log (Q.prob h / P.prob h)

/-- Cross-entropy: ∑_h Q(h) · log(1/P(h)).
Equals KL(Q‖P) + H(Q) where H(Q) is Shannon entropy. -/
noncomputable def crossEntropyFinitePMF {H : Type*} [Fintype H]
(Q P : FinitePMF H) : ℝ :=
∑ h : H, if Q.prob h = 0 then 0
else Q.prob h * Real.log (1 / P.prob h)
Comment on lines +10 to +14
# Measurable Batch Learner Monad

MeasurableBatchLearner is a measurable instance of the pure ReaderSel monad
(MathLib/ReaderMonad.lean). The algebraic structure (pure, bind, monad laws)
lives in the pure math layer. This file adds the measurability certificate.
@Vilin97

Vilin97 commented May 10, 2026

Copy link
Copy Markdown
Collaborator Author

/review

@github-actions

Copy link
Copy Markdown
Contributor

🤖 LLM review (gpt-5.5)

Verdict: 🛑 request_changes

This PR adds a large formal-learning-theory development: VC dimension, PAC learning, Littlestone/online learning, Gold-style learning, compression with side information, Rademacher bounds, measurability infrastructure, and a Borel-analytic separation. The subject and headline theorems are research-level and paper-anchored in many module docstrings, but the submitted project mixes substantial formalization with exported overclaimed placeholder/trivial statements and broad marker definitions, so the current diff is not yet a clean completed project for Lean Pool.

Aspect Value
Fit 🟡 borderline
Level research
Branch statistical learning theory
Mode theory_building
Obscure problem no
Code quality 2 / 5

A cleaned version would be a significant formalization of the fundamental theorem of statistical learning and related learning-theory characterizations, but the current export surface contains too many theorem names whose statements do not match their mathematical claims.

Findings (3)

  • statement-mismatch — PR-wide
    Several exported declarations have theorem names and surrounding prose that claim substantive learning-theory results while the Lean statement is trivial or much weaker, for example gold_does_not_imply_pac : True, the weak sauer_shelah existential bound, and meta_pac_bound with mf := 0. These should either be removed from the public project, renamed as explicit placeholders/markers, or replaced by the actual mathematical statements before merging.
  • project-card — LeanPool/FormalLearningTheory.lean:10
    The entry-point project card only says this is a port from a GitHub repository. It should identify the main formalized theorems intended as the project deliverables and cite the mathematical sources for them; the detailed paper references scattered through submodules do not substitute for a usable project card.
  • export-surface — PR-wide
    The PR imports and exposes a large number of scope markers, open-question definitions, alternative interfaces, and application skeletons alongside the main theorems. For a Lean Pool project, the public surface should be trimmed to the completed formalization: keep the definitions and lemmas consumed by the main results, and move non-consuming markers or speculative future-work scaffolding out of the imported project.

Tokens: 389,765 in / 1,610 out · Tier: flex · Cost: $0.9986
Automated review against .github/REVIEW_RULES.md. Disagree? Reply on the PR; rules can be updated in a PR of their own.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 LLM review (gpt-5.5)

Verdict: 🛑 request_changes

This PR adds a large formal-learning-theory development: PAC/VC theory, Littlestone/online learning, Gold learning, compression with side information, Rademacher complexity, measurable-selection infrastructure, and Borel-analytic measurability results. The mathematical target is research-level and recognizably theory-building, but the submitted project is not in a curated state: several public theorem statements are explicitly vacuous or weakened scaffolding, some named results are proved only by routing through stronger unrelated hypotheses, and the entry-point project card does not state a stable source/status/main-theorem inventory.

Aspect Value
Fit 🟡 borderline
Level research
Branch statistical learning theory
Mode theory_building
Obscure problem no
Code quality 2 / 5

A clean formalization of VC/PAC/Littlestone/compression/measurability theory would be significant, but this PR currently mixes substantial theorems with public placeholder and vacuous statements.

Findings (4)

  • project-card-incomplete — LeanPool/FormalLearningTheory.lean:10
    The entry-point module docstring only says this is a formal learning theory kernel ported from a GitHub repository. For a project of this size it should state the main formalized theorems, the paper/textbook sources for each major component, authorship, and which parts are complete versus scaffolding or exploratory.
  • vacuous-public-theorem — LeanPool/FormalLearningTheory/Complexity/Generalization/Core.lean
    gold_does_not_imply_pac : True is not a separation theorem and should not be part of the public project API. Replace it with the actual quantified separation statement or remove it in favor of the real result in the separation file.
  • vacuous-public-theorem — LeanPool/FormalLearningTheory/Theorem/Extended.lean
    meta_pac_bound is explicitly noted in the proof as trivial via mf = 0; as stated it does not formalize a meta-learning bound. Remove it or strengthen the statement so the produced sample-complexity function is required to achieve PAC and the claimed comparison is mathematically meaningful.
  • statement-mismatch — LeanPool/FormalLearningTheory/Theorem/PAC.lean
    occam_algorithm is presented as an Occam theorem but the proof only invokes finite VC dimension and ignores the description-length content except as an unused hypothesis. Either rename it as a corollary of VC learnability or replace it with the quantitative Occam bound using the description-length assumption.

Tokens: 389,765 in / 1,943 out · Tier: flex · Cost: $1.0036
Automated review against .github/REVIEW_RULES.md. Disagree? Reply on the PR; rules can be updated in a PR of their own.

@github-actions

github-actions Bot commented May 10, 2026 •

Copy link
Copy Markdown
Contributor

🤖 LLM review (gpt-5.5)

Reviewed head: 5801b9f6e0f30a1520d6bbf2fcbf3fac047f07f0

Verdict: ✅ approve

This PR adds a large formal-learning-theory project with definitions and theorem layers for PAC/VC theory, uniform convergence, Rademacher complexity, compression with finite side information, Gold identification, online learning via Littlestone dimension, measurability infrastructure, and a Borel-analytic separation. It has a project card, named main theorems, and source anchors to standard learning-theory texts and papers including Gold, Littlestone, Shalev-Shwartz–Ben-David, Moran–Yehudayoff, and Krapp–Wirth.

Aspect Value
Fit ✅ good_fit
Level research
Branch statistical learning theory
Mode theory_building
Obscure problem no
Code quality 3 / 5

The contribution is a self-contained Lean development of the main structural equivalences and separations in formal learning theory, including named PAC/VC, compression, Gold, online, Rademacher, and measurability results.


Tokens: 386,444 in / 551 out · Tier: flex · Cost: $0.9744
Automated review against .github/REVIEW_RULES.md. Disagree? Reply on the PR; rules can be updated in a PR of their own.

@Vilin97
Vilin97 merged commit 9ef4175 into main May 10, 2026
2 checks passed
@Vilin97
Vilin97 deleted the codex/formal-learning-theory-pr36 branch May 10, 2026 20:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants