Skip to content

Verify end-to-end against real Lean 4.30.0; fix installer and ELAN_HOME bugs#34

Merged
Cuuper22 merged 1 commit into
mainfrom
claude/batch-lean-e2e
Jun 10, 2026
Merged

Verify end-to-end against real Lean 4.30.0; fix installer and ELAN_HOME bugs#34
Cuuper22 merged 1 commit into
mainfrom
claude/batch-lean-e2e

Conversation

@Cuuper22

Copy link
Copy Markdown
Owner

What

Proves the pipeline end-to-end against a real Lean 4.30.0 toolchain and fixes the bugs that were in the way. Full report in VERIFICATION.md.

  • environment.py: elan binary install decoupled from toolchain install; GitHub-release toolchain fallback for networks that block release.lean-lang.org (resolves latest tag via the releases/latest redirect, downloads the official zip, extracts preserving Unix exec bits — ZipFile.extractall drops them — and registers via elan toolchain link).
  • sandbox.py real bug: elan proxies resolve toolchains via ELAN_HOME, so PATH alone fails with the app-isolated install ("no default toolchain configured"). New _elan_env() sets both, used by lake init and run_lake_build.
  • tests/test_real_data_validation.py: uses the sandbox's own discovery instead of hardcoding ~/.elan/bin, so the project's installer makes the project's tests run.

Verification (executed, not inferred)

  • python -m src.environment --install → Lean 4.30.0 via the GitHub fallback (826 MB).
  • 323 passed, 0 skipped (was 314 + 9 skipped): the SHA-256 modified-theorem rejection and the full provider→hash→compile→critic→artifact pipeline now verified against the real compiler.
  • Mock-mode mining run: all 4 example problems attempted; every candidate correctly killed at the integrity gate (mock output is scaffolding by design).

Part of the project-wide polish batch.

https://claude.ai/code/session_01KAKnLjpFZ9oF74GNW9QNtN


Generated by Claude Code

…env bugs

environment.py:
- Split elan binary install from toolchain install
  (--default-toolchain none) so a blocked toolchain download can't
  fail the elan install.
- Add GitHub-release toolchain fallback for networks that block
  release.lean-lang.org: resolve latest tag via the releases/latest
  redirect, download the official zip, extract preserving Unix
  permission bits (ZipFile.extractall drops the exec bit), register
  via elan toolchain link + elan default.

sandbox.py:
- Fix real bug: elan proxies resolve toolchains via ELAN_HOME, so
  PATH alone fails with app-isolated installs ('no default toolchain
  configured'). New _elan_env() sets both; used by lake init and
  run_lake_build.

tests/test_real_data_validation.py:
- Use the sandbox's discovery instead of hardcoding ~/.elan/bin so
  the 9 Lean-gated tests run against the repo's own install.

Verified in this container: 323 passed, 0 skipped (was 314+9skip);
full report in VERIFICATION.md.

https://claude.ai/code/session_01KAKnLjpFZ9oF74GNW9QNtN
@Cuuper22 Cuuper22 merged commit 85c563a into main Jun 10, 2026
0 of 5 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