Comparator certificate

Shallow Learning Tends to Ridgelet Transform · Sho Sonoda

Latest verification result

Lean default kernel accepts the solution / Your solution is okay!

Date
2026-09-27
Commit
817f3a4 (branch main), with the comparator/ files of this certificate
Theorems checked
116 (all of comparator/config.json)
Permitted axioms
propext, Quot.sound, Classical.choice
Toolchain
Lean v4.32.0, Mathlib v4.32.0, lean4export v4.32.0, fake-landrun (macOS)

Last three lines of the output of ./script/comparator.sh:

Running Lean default kernel on solution.
Lean default kernel accepts the solution
Your solution is okay!

What Comparator certifies

Comparator takes a challenge (theorem statements with the proofs replaced by sorry) and a solution (the same statements with proofs), exports both environments with lean4export and checks, for every theorem listed in the configuration, that:

Everything in the import closure of the challenge is the trusted vocabulary of the certificate. comparator/Challenge.lean imports only the definition modules of the library (LeanTends2Ridgelet.Setting.*). The statements are the paper's theorems in their Lean form, that is, with the corrections and generalizations described in the README.

Configuration

comparator/config.json lists the theorems of LeanTends2Ridgelet.Challenge (challenge module Challenge, solution module Solution; both are Lake libraries with srcDir = "comparator") and the three permitted axioms. Each challenge statement is copied verbatim (binders, implicitness, instance arguments, hypothesis order, universe levels) from the library theorem; every section reproduces the open lines and the variable/include block of the source module so that both files elaborate to identical kernel terms, and both files set autoImplicit false.

Two statements are reformulated rather than copied verbatim: the library statements of bounds_of_isMinimizer and moments_of_isMinimizer mention a proof term of the theorem module Structure/GibbsMinimizer (memLp_condMeanAmp_of_isMinimizer, the fact MemLp (condMeanAmp ρ) 2 (hiddenMarginal ρ)); in thm_m1_bounds and thm_m1_moments this fact is an explicit hypothesis, which is definitionally the same statement by proof irrelevance.

Not included (only sorry-free library theorems are certified): thm:m1prime (c) (gradientFlow_convergence, Łojasiewicz argument), the Gaussian log-Sobolev inequality (Gross) used by lem:lsi/cor:uniform-lsi (satisfiesLSIParam_proximalGibbs) and hence cor:mfld-unconditional and thm:mfld-wellposed (thm:mfld-convergence is certified in its conditional form, with a uniform LSI as hypothesis), lem:minimizer (5), cor:joint-schedule-improved (i)(ii), auxiliary lemmas such as lem:operators (2)–(5), and the parts of the paper that are not formalized (Section 9, the homogeneous geometry and general spheres of Section 11, propagation of chaos).

Import closure of the challenge: the 17 modules LeanTends2Ridgelet.Setting.*, whose closure also contains Basic/Operators, ToMathlib/{Pinsker, SignedMeasureIntegral, HalfspaceVC}, ToFoML/{PseudoDimension, SauerShelahCovering}, ToOperatorRidgelet/SpectralPower and, from the dependencies, FoML.Defs, FoML.Entropy.Dudley and OperatorRidgelet.ToMathlib.* (general-purpose material needed by the definitions).

Mapping: paper label → challenge theorem → library declaration

§Paper labelLeanTends2Ridgelet.Challenge.Library theorem (LeanTends2Ridgelet.)Module
§2lem:operators (1)lem_operators_norm_synthesis_lenorm_synthesis_leSetting/Operators
§2lem:momentlem_momentintegral_fst_sq_le_of_klDiv_ne_topBasic/Moment
§2lem:gibbs-variationallem_gibbs_variationalgibbs_variationalBasic/GibbsVariational
§2lem:minimizer (2), existencelem_minimizer_existenceexists_freeEnergy_minimizerBasic/Existence
§2lem:minimizer (3)lem_minimizer_gibbseq_gibbs_of_isMinimizerBasic/Minimizer
§2lem:minimizer (4)lem_minimizer_strong_convexityfreeEnergy_sub_eqBasic/Minimizer
§2lem:minimizer (2), uniquenesslem_minimizer_uniquefreeEnergy_minimizer_uniqueBasic/Minimizer
§3thm:m1 (a)thm_m1_hidden_marginalhiddenMarginal_eq_of_isMinimizerStructure/GibbsMinimizer
§3thm:m1 (b)thm_m1_conditional_meancondMeanAmp_eq_of_isMinimizerStructure/GibbsMinimizer
§3thm:m1 (b), coefficient measurethm_m1_coefficientcoeffMeasure_eq_of_isMinimizerStructure/GibbsMinimizer
§3thm:m1 (c)thm_m1_krrkrr_of_isMinimizerStructure/GibbsMinimizer
§3thm:m1 (d), bounds (reformulated)thm_m1_boundsbounds_of_isMinimizerStructure/GibbsMinimizer
§3thm:m1 (d), moments (reformulated)thm_m1_momentsmoments_of_isMinimizerStructure/GibbsMinimizer
§3thm:m1prime (a)thm_m1prime_amplitudestationary_amplitudeStructure/GradientFlow
§3thm:m1prime (a′)thm_m1prime_hiddenstationary_hiddenStructure/GradientFlow
§3thm:m1prime (b), residualthm_m1prime_krrstationary_residual_eqStructure/GradientFlow
§3thm:m1prime (b), lossthm_m1prime_lossstationary_lossStructure/GradientFlow
§3prop:no-regularization (3)prop_no_regularization_lambda_rateIsFixedFeatureFlow.norm_sub_ridgeSolution_leStructure/NoRegularization
§3prop:no-regularization (1)prop_no_regularization_endpointIsFixedFeatureFlow.tendsto_endpointStructure/NoRegularization
§3prop:no-regularization (2)prop_no_regularization_nullspaceendpoint_sub_pseudoInverseStructure/NoRegularization
§3cor:necessity-amplitudecor_necessity_amplitudenecessity_amplitudeStructure/NoRegularization
§5lem:uniform-deviationlem_uniform_deviationuniformDev_tail_boundSampleThreshold/UniformDeviation
§5cor:m3-thresholdcor_m3_thresholdklDiv_le_of_sampleThreshold_leSampleThreshold/Main
§5thm:m3thm_m3main_boundSampleThreshold/Main
§5cor:m3-convergencecor_m3_convergenceconvergence_boundSampleThreshold/Main
§5thm:m3-double-primethm_m3_double_primem3_double_primeSampleThreshold/Linearization
§5cor:m3-convergence-primecor_m3_convergence_primem3_convergence_primeSampleThreshold/Linearization
§5lem:tanh-complexity (b)lem_tanh_complexity_rademachertanh_featureRademacher_leSampleThreshold/Complexity
§5lem:tanh-complexity (a)lem_tanh_complexity_pdimtanhFeature_pdimLESetting/SampleThreshold
§6thm:m4-energy (a)thm_m4_energy_comparisonenergy_comparison_of_isMinimizerRegularizationLimit/Energy
§6thm:m4-energy (d)thm_m4_energy_pythagoraspythagoras_of_isMinimizerRegularizationLimit/Energy
§6thm:m4-strong, L² formthm_m4_strong_l2tendsto_norm_meanAmpLp_sub_canonicalRidgeletRegularizationLimit/Convergence
§6thm:m4-strong, TV formthm_m4_strong_tvtendsto_massNorm_coeffMeasure_subRegularizationLimit/Convergence
§6thm:m4-weakthm_m4_weakcoeffMeasure_tendsto_weakRegularizationLimit/Convergence
§6cor:m4-little-ocor_m4_little_olittle_oRegularizationLimit/Convergence
§6thm:order-of-limits (1)–(2)thm_order_of_limits_two_stagesorder_of_limits_two_stagesRegularizationLimit/OrderOfLimits
§6thm:order-of-limits (3) / cor:order-of-limits-staticthm_order_of_limits_three_stagesorder_of_limits_three_stages_epsRegularizationLimit/OrderOfLimitsStage3
§6prop:tv-reductionprop_tv_reductionsInf_zeroTempEnergy_eq_iInf_tvEnergyRegularizationLimit/TVReduction
§4lem:entropy-sandwichlem_entropy_sandwichentropy_sandwichDynamics/EntropySandwich
§4thm:mfld-convergencethm_mfld_convergencefreeEnergy_sub_le_exp_mul_of_isMFLDFlowDynamics/Convergence
§4thm:static-chaosthm_static_chaosstatic_chaosDynamics/StaticChaos
§4cor:static-chaos-test-functioncor_static_chaos_test_functionintegral_abs_avg_sub_le_of_isMinimizer_constantDynamics/StaticChaos
§4thm:static-chaos-orderthm_static_chaos_ordereventually_integral_abs_avg_sub_le_of_isErgodicDynamics/StaticChaos
§10cor:rate-sinfcor_rate_sinfrates_of_supNormBoundRates/Main
§10cor:rate-high-temperaturecor_rate_high_temperaturerates_highTempRates/Main
§10thm:m4-rate (general (SC_a))thm_m4_raterate_coefficient_powRates/SourcePower
§10thm:joint-schedule (i)thm_joint_schedule_sinfjoint_schedule_sinfRates/JointSchedule
§10thm:joint-schedule (ii)thm_joint_schedule_high_temperaturejoint_schedule_highTempRates/JointSchedule

How to reproduce

git clone https://github.com/shosonoda/lean-tends2ridgelet.git
cd lean-tends2ridgelet
lake exe cache get && lake build

# once: Comparator and lean4export (for this project's Lean version) in ../comparator-tools/
mkdir -p ../comparator-tools && cd ../comparator-tools
git clone https://github.com/leanprover/comparator.git && (cd comparator && lake build comparator)
git clone --branch v4.32.0 https://github.com/leanprover/lean4export.git lean4export-v4.32.0 && (cd lean4export-v4.32.0 && lake build)
cd -

./script/comparator.sh   # about a minute; ends with "Your solution is okay!"

The script builds Challenge and Solution, exports them and runs the checker on comparator/config.json. On Linux it uses landrun for sandboxing when available and Comparator's fake-landrun shim otherwise (always on macOS). The tool locations can be overridden with COMPARATOR_TOOLS, COMPARATOR_BIN, COMPARATOR_LEAN4EXPORT and COMPARATOR_LANDRUN.