THE SITE DIAGNOSIS TABLE

the sites that did not come out, and what stopped each one

The Cleanable Table lists what came out. On its own that is a numerator with no denominator, and a numerator with no denominator is how a removal rate gets quoted as though it were a possibility rate. This is the rest.

Of 765 sites examined, 340 — 44.4% — were never testable. The occurrence is not in a position where an instance would be supplied, so there is no proposition to hand to synthesis and nothing to substitute. That is a fact about the shape of the proof term rather than about whether the mathematics needs choice.

Measured with gonzalgo · Lean 4.32.1 with Mathlib v4.32.1 · instance synthesis attempted per occurrence, inside the declaration's own context

verdictwhat stopped itlibrarydeclarationproposition
choice-neededinstance exists but needs choiceMathlibNonneg.conditionallyCompleteLinearOrder._aux_1Classical.propDecidable (sSup (Subtype.val '' t) ∈ Set.Ici a)
choice-neededinstance exists but needs choiceMathlibNonneg.conditionallyCompleteLinearOrder._aux_3Classical.propDecidable (sInf (Subtype.val '' t) ∈ Set.Ici a)
choice-neededinstance exists but needs choiceMathlibPi.Lex.linearOrderClassical.decRel fun x1 x2 => x1 < x2
choice-neededinstance exists but needs choiceMathlibLowerSet.instLinearOrderClassical.propDecidable (a = b)
choice-neededinstance exists but needs choiceMathlibLowerSet.instLinearOrderClassical.propDecidable (a ≤ b)
choice-neededinstance exists but needs choiceMathlibLowerSet.instLinearOrderClassical.propDecidable (a < b)
choice-neededinstance exists but needs choiceMathlibUpperSet.instLinearOrderClassical.propDecidable (a = b)
choice-neededinstance exists but needs choiceMathlibUpperSet.instLinearOrderClassical.propDecidable (a ≤ b)
choice-neededinstance exists but needs choiceMathlibUpperSet.instLinearOrderClassical.propDecidable (a < b)
choice-neededinstance exists but needs choiceMathlibHahnSeries.instLinearOrderLexClassical.decRel LE.le a b
choice-neededinstance exists but needs choiceMathlibHahnSeries.instLinearOrderLexClassical.decRel LE.le
choice-neededinstance exists but needs choiceMathlibValuationRing.instLinearOrderIdealOfDecidableLEClassical.propDecidable (a < b)
choice-neededinstance exists but needs choiceMathlibValuationSubring.instLinearOrderedCommGroupWithZeroValueGroup._aux_25Classical.decRel LE.le a b
choice-neededinstance exists but needs choiceMathlibValuationSubring.instLinearOrderedCommGroupWithZeroValueGroup._aux_27Classical.decRel LE.le a b
choice-neededinstance exists but needs choiceMathlibValuationSubring.instLinearOrderedCommGroupWithZeroValueGroup._aux_29Classical.decRel LE.le
choice-neededinstance exists but needs choiceMathlibValuationSubring.instLinearOrderedCommGroupWithZeroValueGroup._aux_32Classical.decRel LE.le
choice-neededinstance exists but needs choiceMathlibValuationSubring.instLinearOrderedCommGroupWithZeroValueGroup._aux_34Classical.decRel LE.le
choice-neededinstance exists but needs choiceMathlibValuationSubring.instLinearOrderedCommGroupWithZeroValueGroup._aux_36Classical.decRel LE.le
no-instanceno Decidable instance foundBatteriesList.Sublist.erase_diff_erase_sublist._fClassical.propDecidable (b = a)
no-instanceno Decidable instance foundInitList.count_erase._fClassical.propDecidable (c = b)
no-instanceno Decidable instance foundInitList.count_erase._fClassical.propDecidable (b = a)
no-instanceno Decidable instance foundInitList.erase_eq_eraseP._fClassical.propDecidable (a = b)
no-instanceno Decidable instance foundInitList.isSublist_iff_sublist._fClassical.propDecidable (head✝¹ = head✝)
no-instanceno Decidable instance foundInitLean.Grind.Field.noNatZeroDivisors.ofIsCharPZeroClassical.propDecidable (b = 0)
no-instanceno Decidable instance foundInit_private.Init.While.0.whileM.PredClassical.propDecidable (∃ g, whileM.body f g = g)
no-instanceno Decidable instance foundMathlibCommRingCat.Under.tensorProductFanIsLimitClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibField.DirectLimit.invClassical.propDecidable (p = 0)
no-instanceno Decidable instance foundMathlibfinsuppLEquivDirectSumClassical.decPred fun m => m ≠ 0
no-instanceno Decidable instance foundMathlibIsField.toSemifieldClassical.propDecidable (a = 0)
no-instanceno Decidable instance foundMathlibMonoidWithZeroHom.ValueGroup₀.embeddingClassical.decPred fun b => b = 0
no-instanceno Decidable instance foundMathlibMonoidWithZeroHom.ValueGroup₀.restrict₀Classical.decPred (fun b => b = 0) (f a)
no-instanceno Decidable instance foundMathlibRing.inverseClassical.propDecidable (∃ u, ↑u = x)
no-instanceno Decidable instance foundMathlibgroupWithZeroOfIsUnitOrEqZeroClassical.propDecidable (a = 0)
no-instanceno Decidable instance foundMathlibHomologicalComplex.dgoToHomologicalComplexClassical.propDecidable (i + b = j)
no-instanceno Decidable instance foundMathlibHomologicalComplex.doubleClassical.propDecidable (k = i₀)
no-instanceno Decidable instance foundMathlibHomologicalComplex.doubleClassical.propDecidable (k = i₁)
no-instanceno Decidable instance foundMathlibHomologicalComplex.doubleClassical.propDecidable (k' = i₀)
no-instanceno Decidable instance foundMathlibHomologicalComplex.doubleClassical.propDecidable (k' = i₁)
no-instanceno Decidable instance foundMathlibHomologicalComplex.doubleClassical.propDecidable (i₀ = i₁)
no-instanceno Decidable instance foundMathlibHomologicalComplex.evalCompCoyonedaCorepresentableClassical.propDecidable (∃ k, c.Rel j k)
no-instanceno Decidable instance foundMathlibHomologicalComplex.evalCompCoyonedaCorepresentableClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibHomologicalComplex.evalCompCoyonedaCorepresentativeClassical.propDecidable (∃ k, c.Rel j k)
no-instanceno Decidable instance foundMathlibHomologicalComplex.evalCompCoyonedaCorepresentativeClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibHomologicalComplex.mkHomFromDoubleClassical.propDecidable (k = i₀)
no-instanceno Decidable instance foundMathlibHomologicalComplex.mkHomFromDoubleClassical.propDecidable (k = i₁)
no-instanceno Decidable instance foundMathlibComplexShape.Embedding.rClassical.propDecidable (∃ i, e.f i = i')
no-instanceno Decidable instance foundMathlibComplexShape.Embedding.liftExtend.fClassical.propDecidable (∃ i, e.f i = i')
no-instanceno Decidable instance foundMathlibLieAlgebra.LoopAlgebra.toFinsuppClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibLieModule.chainTopCoeffClassical.propDecidable (α = 0)
no-instanceno Decidable instance foundMathlibLieModule.chainTopCoeffClassical.propDecidable (LieModule.genWeightSpace M (a • α + ⇑β) = ⊥)
no-instanceno Decidable instance foundMathlibAddMonoidAlgebra.modOfClassical.decPred (fun g₁ => ∃ g₂, g₁ = g + g₂) a
no-instanceno Decidable instance foundMathlibMvPolynomial.coeffsClassical.decEq R
no-instanceno Decidable instance foundMathlibMvPolynomial.degreeOfClassical.decEq σ
no-instanceno Decidable instance foundMathlibMvPolynomial.degreesClassical.decEq σ
no-instanceno Decidable instance foundMathlibMvPolynomial.pderivClassical.decEq σ
no-instanceno Decidable instance foundMathlibMvPolynomial.varsClassical.decEq σ
no-instanceno Decidable instance foundMathlibNonneg.conditionallyCompleteLinearOrder._aux_1Classical.propDecidable t.Nonempty
no-instanceno Decidable instance foundMathlibNonneg.conditionallyCompleteLinearOrder._aux_1Classical.propDecidable (BddAbove t)
no-instanceno Decidable instance foundMathlibNonneg.conditionallyCompleteLinearOrder._aux_3Classical.propDecidable t.Nonempty
no-instanceno Decidable instance foundMathlibNonneg.conditionallyCompleteLinearOrder._aux_3Classical.propDecidable (BddBelow t)
no-instanceno Decidable instance foundMathlibPolynomial.coeffsClassical.decEq R
no-instanceno Decidable instance foundMathlibPolynomial.cardPowDegreeClassical.decEq Fq
no-instanceno Decidable instance foundMathlib_private.Mathlib.Algebra.Polynomial.Derivative.0.Polynomial.iterate_derivative_prod_X_sub_C.match_1_4Classical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlib_private.Mathlib.Algebra.Polynomial.Derivative.0.Polynomial.iterate_derivative_prod_X_sub_C.match_1_6Classical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibPolynomial.divByMonicClassical.decEq R
no-instanceno Decidable instance foundMathlibPolynomial.divModByMonicAux._unaryClassical.decEq R
no-instanceno Decidable instance foundMathlibPolynomial.modByMonicClassical.decEq R
no-instanceno Decidable instance foundMathlibPolynomial.rootMultiplicityClassical.decEq R
no-instanceno Decidable instance foundMathlibPolynomial.rootMultiplicityClassical.decPred fun n => ¬(Polynomial.X - Polynomial.C a) ^ (n + 1) ∣ p
no-instanceno Decidable instance foundMathlibprodXSubSMulClassical.decEq R
no-instanceno Decidable instance foundMathlibPolynomial.recOnHorner._unaryClassical.decEq R
no-instanceno Decidable instance foundMathlibPolynomial.recOnHorner._unaryClassical.decEq R (p.coeff 0) 0
no-instanceno Decidable instance foundMathlibPolynomial.nthRootsFinsetClassical.decEq R
no-instanceno Decidable instance foundMathlibPolynomial.rootSetClassical.decEq S
no-instanceno Decidable instance foundMathlibPolynomial.rootSetFintypeClassical.decEq S
no-instanceno Decidable instance foundMathlibPolynomial.rootsClassical.dec (p = 0)
no-instanceno Decidable instance foundMathlibPolynomial.rootsClassical.decEq R
no-instanceno Decidable instance foundMathlibWeierstrassCurve.Jacobian.Point.toAffineClassical.propDecidable (W.Nonsingular P)
no-instanceno Decidable instance foundMathlibWeierstrassCurve.Jacobian.Point.toAffineClassical.propDecidable (P 2 = 0)
no-instanceno Decidable instance foundMathlibWeierstrassCurve.Projective.Point.toAffineClassical.propDecidable (W.Nonsingular P)
no-instanceno Decidable instance foundMathlibWeierstrassCurve.Projective.Point.toAffineClassical.propDecidable (P 2 = 0)
no-instanceno Decidable instance foundMathlib_private.Mathlib.AlgebraicGeometry.Morphisms.Basic.0.AlgebraicGeometry.HasAffineProperty.of_iSup_eq_top.match_1_2Classical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibAlgebraicGeometry.Scheme.instFieldCarrierResidueField._aux_1Classical.propDecidable (a✝ = 0)
no-instanceno Decidable instance foundMathlibAlgebraicGeometry.Scheme.instFieldCarrierResidueField._aux_3Classical.propDecidable (a = 0)
no-instanceno Decidable instance foundMathlibAlgebraicGeometry.Scheme.instFieldCarrierResidueField._aux_5Classical.propDecidable (a = 0)
no-instanceno Decidable instance foundMathlibAlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMonoClassical.propDecidable (Δ = Δ')
no-instanceno Decidable instance foundMathlibAlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMonoClassical.propDecidable (AlgebraicTopology.DoldKan.Isδ₀ i)
no-instanceno Decidable instance foundMathlibCategoryTheory.SimplicialObject.Splitting.πSummandClassical.propDecidable (B = A)
no-instanceno Decidable instance foundMathlibBoxIntegral.Prepartition.biUnionClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibBoxIntegral.Prepartition.disjUnionClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibBoxIntegral.Prepartition.restrictClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibBoxIntegral.Box.splitLowerClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibBoxIntegral.Box.splitUpperClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibBoxIntegral.Prepartition.splitClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibBoxIntegral.TaggedPrepartition.disjUnionClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibBoxIntegral.unitPartition.prepartitionClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibBoxIntegral.unitPartition.prepartitionClassical.propDecidable (I = BoxIntegral.unitPartition.box n a)
no-instanceno Decidable instance foundMathlibdefinition._@.Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.NonUnital.2216632569._hygCtx._hyg.8Classical.propDecidable (p a)
no-instanceno Decidable instance foundMathlibdefinition._@.Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.NonUnital.2216632569._hygCtx._hyg.8Classical.propDecidable (ContinuousOn f (quasispectrum R a))
no-instanceno Decidable instance foundMathlibdefinition._@.Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.NonUnital.2216632569._hygCtx._hyg.8Classical.propDecidable (f 0 = 0)
no-instanceno Decidable instance foundMathlibdslopeClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibValueDistribution.logCountingClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibValueDistribution.proximityClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibOrientation.definition._@.Mathlib.Analysis.InnerProductSpace.Orientation.2114562672._hygCtx._hyg.2Classical.propDecidable (o = positiveOrientation)
no-instanceno Decidable instance foundMathlibOrthonormalBasis.instFunLikeClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibHilbertBasis.instFunLikeClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibHilbertBasis.instFunLike.match_1Classical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlib_private.Mathlib.Analysis.Matrix.Normed.0.Matrix.unitOfClassical.propDecidable (a = 0)
no-instanceno Decidable instance foundMathlibtoMeromorphicNFAtClassical.propDecidable (MeromorphicAt f x)
no-instanceno Decidable instance foundMathlibtoMeromorphicNFAtClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibGeneralSchauderBasis._sizeOf_1Classical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibGeneralSchauderBasis.casesOnClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibGeneralSchauderBasis.mk._flat_ctorClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibGeneralSchauderBasis.mk.noConfusionClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibGeneralSchauderBasis.noConfusionClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibGeneralSchauderBasis.noConfusionTypeClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibGeneralSchauderBasis.recOnClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlib_private.Mathlib.Analysis.Normed.Module.Bases.0.GeneralSchauderBasis.ext.match_1Classical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibContinuousMultilinearMap.iteratedFDerivClassical.propDecidable (a = b)
no-instanceno Decidable instance foundMathlibCategoryTheory.IsGrothendieckAbelian.generatingMonomorphisms.largerSubobjectClassical.propDecidable (A = ⊤)

Showing the first 120 of 765 rows. Grouped by verdict, so the head of the table is one category. The full set is in the JSON and the CSV.

proposition is the goal an instance would have had to be found for, where there was one. A not-a-goal row often shows Classical.propDecidable bare or partly applied, which is the case where there is nothing to decide.

Get the data

site-diagnosis.json · site-diagnosis.csv · CC-BY-4.0 · version 2026-08-12

One of the gonzalgo indexes — standing measurements of what formal libraries rest on, remeasured as the libraries move. Cite the series as 10.5281/zenodo.21900625, which resolves to the current deposit.

Reproduce it

lake env lean -D maxErrors=4000 lean/Substitute.lean

Method: 10.5281/zenodo.21769846.

What the four verdicts mean for a repair

no instance (395, 51.6%) is the honest negative: the proposition is there, synthesis was asked, and Lean has no constructive way to decide it. These are the sites where the classical dependence is doing real work.

not an instance position (340, 44.4%) is not a negative at all. Nothing was tested. Counting these as failures understates removability and counting them as successes overstates it, which is why they are their own category rather than folded into either.

needs choice anyway (18) is the sharpest case: an instance exists, and it depends on choice itself, so substituting it moves the dependence rather than removing it. Any measure that stops at whether an instance exists would score these as wins.

timed out (12) is unknown, not negative. It is small here, which is the improvement this run represents.

Why an earlier pass is not used

A previous run over the same question returned 404 synthesis timeouts against this run's 12, and had no not-a-goal category at all, so nearly every site it could not clean was recorded as a time limit being hit. It was measuring its own budget. Its numbers are not reproduced here.

Reading it with the Cleanable Table

Together the two tables give the shape of the problem rather than a single rate. Removal succeeded where a decidable proposition sat in an instance position and the constructive instance existed. Where any of those three fails it fails for a different reason, and only one of the three is about mathematics.