Skip to content

Allow solutions to depend on Lean Pool - #653

Merged
kim-em merged 9 commits into
leanprover:mainfrom
Vilin97:codex/lean-pool-solutions
Sep 28, 2026
Merged

kim-em merged 9 commits into
leanprover:mainfrom
Vilin97:codex/lean-pool-solutions

Conversation

@Vilin97

@Vilin97 Vilin97 commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Make Lean Pool available to submitted solutions while keeping trusted problem statements and their local helpers independent of it. The generator includes the pinned package in every workspace and rejects statement imports from its LeanPool, Challenge, and Solution roots.

Generator support is merged upstream in leanprover/lean-eval-generator#9 and leanprover/lean-eval-generator#11. The latter explicitly permits the existing legacy workspace files to import module-system dependencies without compatibility warnings, preserving their visibility rules and all other warning checks. Production isolation is merged and deployed in leanprover/lean-eval-submissions#1840: imported LeanPool modules compile inside comparator in private workspace caches, while shared package sources and other dependencies remain read-only.

This preserves main’s Lean 4.35.0-rc3 upgrade and pins LeanPool at e9d53e9cbcff8dfd0cc816ba94db7a26b082929f, the compatible revision whose ten build shards and assembled-library lint passed in LeanPool CI. The scoring smoke test uses the existing submission format, imports LeanPool.Basic, and runs the proof through comparator.

Validation:

  • All 155 Lean generation and module-coverage tests pass without warnings on Lean 4.35.0-rc3.
  • Cold solution imports pass in the Linux sandbox with private build caches and unchanged shared caches.
  • The entire pinned LeanPool library builds without warnings against LeanEval’s exact current dependencies in a private Linux sandbox (13,892 jobs).
  • A fresh workspace emitted by the pinned generator accepts a cold LeanPool proof and its unchanged solution bridge without warnings.
  • Required full-catalog and scoring CI is rerunning for the final commit.

@kim-em

kim-em commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

The production dependency-isolation fix is leanprover/lean-eval-submissions#1840. That PR and leanprover/lean-eval-generator#9 need to merge before this PR; the submissions deployment must also promote the new dispatch ref. Production will give LeanPool a private build directory so only imported modules are compiled inside comparator’s sandbox. I am handling the fix, validation, and upstream generator repin.

@kim-em

kim-em commented Sep 28, 2026

Copy link
Copy Markdown
Collaborator

Both prerequisites are merged. Generator #9 is pinned to its upstream merge commit, and submissions #1840 is deployed successfully through staging, the dispatch canary, and production (workflow run 36377540838). The production dispatch tag is lean-eval-dispatch/fc441e8362ee91bb05a88e9c099055cdc0834bb3. The cold Git-dependency sandbox regression, 1109 Python tests, and a warning-free sandboxed build of a real LeanPool module importing Mathlib passed; the upstream repin also passes all 155 Lean unit tests. Waiting for this PR’s remaining catalog checks before merging.

@kim-em kim-em left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Approved. LeanPool is pinned and available to solutions while its library roots are rejected in statements and local statement helpers. Generator support is merged and pinned upstream. The production fix in leanprover/lean-eval-submissions#1840 is merged and deployed: imported LeanPool modules compile inside comparator in private per-workspace caches, while shared dependencies remain read-only. Cold sandbox tests and a real LeanPool/Mathlib import pass without warnings; all 155 Lean unit tests pass. Merge once the remaining required catalog CI passes.

@kim-em kim-em left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Re-reviewed after merging the new main toolchain upgrade. The generator pin includes both the Lean 4.35 String API fix and solution-only dependency support. All 155 Lean unit tests, the cold private-cache sandbox fixture, and an actual LeanPool/Mathlib import pass on Lean 4.35.0-rc3 without warnings. Production dependency isolation is already merged and deployed in leanprover/lean-eval-submissions#1840. Approved pending the rerun of required catalog CI.

@kim-em kim-em left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Approved at 78a3333. Generator support and legacy/module interoperability are merged upstream in #9 and #11; production private sandboxed caches are merged and deployed in lean-eval-submissions#1840. The complete pinned LeanPool library builds without warnings against LeanEval exact current dependencies inside a private Linux sandbox (13,892 jobs). A fresh workspace emitted by the pinned generator accepts a cold LeanPool proof and its unchanged solution bridge without warnings. All 155 Lean unit tests pass. Independent review found no blockers. Merge after required catalog/scoring CI passes.

@kim-em
kim-em merged commit f0fd178 into leanprover:main Sep 28, 2026
13 checks passed
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