Import IMO 2026 Question 6 formalization - #401
Conversation
Proof profile (new / modified Lean files)
This build covers the changed modules and their dependency cones on top of the restored cache. The serial per-file sums below are useful for ranking slow files, not as a build budget. Total heartbeats: 72 maxHeartbeats units across 2 files (818 added LOC). Sum of Count-heartbeats wall-clock total: 6.32 s. Repeated import cost inside Heartbeat values come from Mathlib's LOC counts added lines in the profiled Lean files from this PR diff.
Aggregate phase totals
Slowest changed modules (from
|
| Changed module | Lake time |
|---|---|
LeanPool.IMO2026.Q6 |
6.10 s |
LeanPool.IMO2026 |
1.30 s |
Per-file `lean --profile` output
LeanPool/IMO2026.lean
import took 1.01s
cumulative profiling times:
elaboration 0.139ms
import 1.01s
initialization 30.4ms
interpretation 126ms
linting 0.283ms
module linting 0.00147ms
overlappingInstancesLinter 0.297ms
parsing 0.0304ms
tacticAnalysis 1.01ms
real 1.82
user 1.03
sys 0.80
LeanPool/IMO2026/Q6.lean
import took 1s
interpretation of Mathlib.Tactic._aux_Mathlib_Tactic_Linarith_Frontend___elabRules_Mathlib_Tactic_nlinarith_1._boxed took 457ms
cumulative profiling times:
attribute application 0.373ms
compilation (IR) 0.267ms
compilation (LCNF base) 3.9ms
compilation (LCNF impure) 1.3ms
compilation (LCNF mono) 2.64ms
congr simp thm 6.2ms
elaboration 113ms
fix level params 1.75ms
import 1s
initialization 34ms
instantiate metavars 12.3ms
interpretation 1.1s
let-to-have transformation 0.332ms
linting 105ms
module linting 0.00134ms
norm_num 10.1ms
overlappingInstancesLinter 13.9ms
parsing 64.1ms
process pre-definitions 38.9ms
ring 19.2ms
share common exprs 15ms
simp 166ms
tactic execution 1.25s
tacticAnalysis 167ms
type checking 1.04s
typeclass inference 463ms
real 3.89
user 5.49
sys 0.81
Advisory only — never blocks merge. Full log uploaded as the proof-profile artifact.
Greptile SummaryThe PR imports a verified formalization of IMO 2026 Question 6 and exposes its global translation-periodicity theorem through Lean Pool.
|
| Filename | Overview |
|---|---|
| LeanPool/IMO2026/Q6.lean | Adds the complete proof pipeline from finite small-prime supports through eventual and global translation periodicity. |
| LeanPool/IMO2026.lean | Adds the project entry module and imports the Question 6 formalization. |
| LeanPool/projects.yml | Registers the IMO 2026 Question 6 project and its principal declarations. |
| LeanPool.lean | Exposes the new project modules through the repository-wide aggregate import. |
Reviews (2): Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." | Re-trigger Greptile
| informal: >- | ||
| The common-factor predicate for a valid sequence is controlled by a | ||
| finite prefix prime product and therefore has a stable profile. |
There was a problem hiding this comment.
Misstated stabilization mechanism
The description attributes good_stabilizes_core to control by a finite prefix product, but the declaration derives stabilization from the finite range of small-prime supports; the prefix product belongs to the subsequent periodicity construction. This conflates two proof stages in the generated project catalog.
File Used: .github/REVIEW_RULES.md (source)
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
# Conflicts: # LeanPool/projects.yml
Changes requested by automated reviewReviewed exact head |
Summary
Imports the verified Lean solution of IMO 2026 Question 6 from AxiomMath/IMO2026 at commit
c5a6a089d06d3619afe7ff45c5ccab9e2a30d5d2(2026-07-17). The project provesIMO2026Q6.main_theorem: every valid common-factor sequence has positiveT,Lwitha (n + T) = a n + Lfor alln.The source solution is preserved as one namespaced module and is licensed MIT. The upstream problem statement files were not copied because they contain open
sorryplaceholders; Question 3 targets an older Mathlib API and was intentionally excluded. The import uses targeted Mathlib/Lean modules, has noset_option,nolint, unchecked declarations, diagnostics, or broadimport Mathlib.Discovery and selection
The exact automation window was
[2026-07-05T09:01:03Z, 2026-08-29T09:01:03Z). GitHub, Zulip, and the monitored X discovery cache were queried. Other serious candidates were rejected for duplicate pool coverage (Distance Geometry), missing/invalid licensing (Crouzeix draft), forbidden compiler overrides or excessive generated certificates (Sendov and Erdős-Simonovits), legacy API drift (IMO Question 3), or incompleteness/size (Conway refinement and large solver projects).Verification
lake build LeanPool— 9,660 jobs, exit 0, 0 warnings.lake exe mk_all --check --lib LeanPool/Challenge/Solution— pass.scripts/ci/build-challenges.sh— pass; only expected challengesorrynotices.lake exe runLinter LeanPool.IMO2026andlake exe lint-style LeanPool.IMO2026— pass.python -m lean_pool.quality --repo ..— pass (including axiom/backdoor audit).propext,Classical.choice, andQuot.sound.pytest --covreports “no tests ran”.Optimization profile
The upstream source used umbrella
import Mathliband one elaborator option. Removing the option and replacing the umbrella import with 12 targeted imports reduced the standalone module check from about 6.0s to about 2.3s on the same workspace cache; the final full-pool rebuild completed in 43.1s wall time.