Repository navigation
feat: upgrade AlgoLib to Lean 4.35.0 and document installation - #27
Merged
Merged
Conversation
sorrachai
marked this pull request as ready for review
November 9, 2026 23:05
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrade AlgoLib from Lean 4.30.0-rc2 to stable 4.35.0, with Mathlib and CSLib pinned to their matching v4.35.0 releases and a regenerated dependency manifest. Pin checkdecls to its existing revision, which builds and runs on the new toolchain.
Migrate the library to Lean's module system so a downstream
modulefile canimport AlgoLib. Most changed files only gain module headers, public imports, and exposed public declarations. Port the binary-tree and splay-tree APIs from Mathlib's deprecatedTreename toBinaryTree, make the cycle-constructor helpers available to exposed definitions, and repair graph proofs affected by changes to simplification, transparency, and numeric casts. No theorem statements are weakened or proof placeholders added.Rewrite the README with new-project setup, TOML and Lean dependency declarations, cache downloads, imports, builds, revision pinning, and migration notes. Add a CI smoke test for public graph, BFS, and splay-tree APIs and update the import-style check to cover
public import.Validation on Lean 4.35.0:
lake buildpasses (3,249 jobs).lake env lean tests/Import.leanpasses.fee4f48dfb9df57be44042e6947b837a43d61d30as a Git dependency, runs the README cache command, and builds successfully (3,251 jobs), reusing the downloaded third-party dependency cache.lakefile.leandependency forms resolve successfully; the README example and module-system graph/BFS/splay-tree examples compile in the consumer projects.checkdeclsbuilds and verifies representative exported declarations.git diff --checkpasses; all 83 Lean source/test files were scanned for active proof placeholders and trust exceptions, with none found.Migration note: downstream tree code should use
BinaryTree,open BinaryTree, andBinaryTree.*instead ofTree,open Tree, andTree.*. Import paths are unchanged. Existing style and deprecation warnings remain.GitHub Actions run #105 passed: full project build, public-import/declaration-checker smoke test, and import-style check.