You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Noisy proofs relying on loopholes in flexible-tactic linter #724
LeanPool's policies require code to pass the mathlib standard linter set without warnings, including the "flexible tactic" linter. However, due to an oversight in mathlib, while simp counts as flexible, its variant simp? does not; and some LeanPool projects uses this to smuggle unreliable code past the linter (since the output of simp? is classed as info, not warning, and thus does not cause a CI fail). For example in LeanPool/PolynomialMethodRestrictedSums/CompressedSizesRestrictedSum.lean we have
refine le_antisymm ?_ ?_ <;> simp_all? +decide [Finset.max']
· exact fun i hi => not_lt.1fun contra => not_lt_of_ge (right i contra) hi
· exact ⟨j, left, le_rfl⟩
This produces an info message in CI; but deleting the question-mark on simp_all? produces a flexible-tactic warning. So this code should not have passed the quality gate.
Activity
grunweg commentedon Oct 28, 2026
How about a third fix, preventing noisy files in CI at all? If I leave e.g. a
#checkin the code, that is not appropriate for polished code.loefflerd commentedon Oct 28, 2026
Sounds good to me, but that is up to Vasily to decide, he's the boss around here 😄