Conversation
Proof profile (new / modified Lean files)Statement changes✅ No statements changed — all 1 tracked declaration across 1 modified file kept their type; only proofs / definition bodies changed. Statements are compared textually against the merge base (comments and whitespace ignored; Compile cost of modified files — base → headHeartbeats: 0 → 0 (+0, —). Declarations: 0 → 0. Per-file wall sum: 0.7 s → 0.8 s (+13.7%). Wall clock is measured under parallel load and is noisy; heartbeats are deterministic and are the regression signal. Files: 1 compared — 0 cheaper, 0 costlier, 1 within noise (threshold: |Δ heartbeats| ≥ 1,000 and ≥ 1%). Measurement errors: 1 base-side / 1 head-side file(s), marked ⚠; their heartbeat counts are partial. Both sides are elaborated against the merge-base build of the pool — sound when only proofs and definition bodies change; a file whose statements changed may fail there and is flagged ⚠. Heartbeats come from Mathlib's
Advisory only — never blocks merge. Full log uploaded as the |
Vilin97
left a comment
There was a problem hiding this comment.
Reviewed f7e0dbc3d904410e145e075e1b3508466331e798 under the refactor rubric. The current one-line change removes definition-body exposure from LeanPool.Basic while retaining the public hello declaration and its signature. The change is consistent with the stated API goal; I found no actionable defect in this increment.
This review covers the committed Basic.lean change only. The PR body describes a pool-wide migration that is still in progress, so it should remain a draft until that implementation is finished and the final head has passed the full build, linters, and quality checks. Current full-pool CI is still running.
🤖 LLM review — refactor (
|
| Aspect | Value |
|---|---|
| Scope | module exposure/API refactor |
| Introduces tech debt | 🛑 yes |
| Maintainability | 🛑 regressed |
| Brittleness | 🛑 more_brittle |
| Risk | 🟡 medium |
The selective interfaces improve some dependencies, but remaining public API gaps need fixing before merge.
Findings (2)
- reusability-lost —
LeanPool/RungeKuttaOrderConditions/ButcherOrder.lean:29
The public butcherCheck and gaussCheck macros still explicitly unfold Phi, gamma, order, the tableaux, and related definitions, whose bodies this change hides. An importing-module test using the exact tree definitions passes with the original exposure and fails after removal: decide +kernel gets stuck on order leaf, and simp only rejects gamma and its dependencies. Restoring targeted exposure makes the test pass. Preserve exposure for the checkers’ computational dependencies and verify both macros from a separate importing module; certificates inside this file do not exercise that boundary. - reusability-lost —
LeanPool/PointwiseBirkhoff/Main.lean:19
Removing exposure hides invCondexp without providing an equation identifying it with μ[φ | invariants f]. Both main Birkhoff theorems conclude convergence to this wrapper, so ordinary importing callers can no longer unfold it to obtain the conditional-expectation conclusion or apply Mathlib’s conditional-expectation lemmas. This follows Lean’s module visibility rules. Expose invCondexp individually or export its defining equality, then check the conditional-expectation formulation from an importing module.
Tokens: 1,753,751 in / 9,513 out · Tier: codex-subscription · Effort: xhigh · Billing: Codex subscription quota (no API credits) · Estimated cost: $35.7885 (Standard API equivalent; uncached input) (long-context rate)
Automated review against .github/REFACTOR_REVIEW_RULES.md. Disagree? Reply on the PR; rules can be updated in a PR of their own.
request_changes is an ask, not a close: of the reviewer's past request_changes verdicts, 39% were merged after a human looked. Read the findings before acting on the verdict.
Changes requested by automated reviewReviewed head The exposure cleanup breaks the exported Runge–Kutta proof API. A separate module importing Acceptance condition: expose the definitions intentionally used by the public macros, or rewrite the macros against public equation lemmas, and verify both The large exposure delta was audited file by file with a reproducible inventory; the remaining proof/API edits were inspected separately. The finding is a reproduced client failure, not an objection to the diff's size. |
… into feature/reduce-blanket-exposure
Changes requested by automated reviewReviewed exact head The exported Runge–Kutta checker API still fails from an importing module. After compiling Acceptance condition: give the public checkers access to the intended computational definitions (targeted exposure or public equations), export the required tactic implementation, and make both separate-module examples pass. Obtain all build shards and the unchanged aggregate lint/quality/trust gates at the resulting head. The current build is pending; the preceding head's nine failed shards are historical, not proof that these new repairs fail. The complete follow-up was partitioned into 454 mechanically compared attribute/ |
Changes requested by automated reviewReviewed exact head The selective-exposure migration still breaks computational public interfaces and required CI. The Runge–Kutta Acceptance condition: Restore the exported computation and tactic implementation interfaces, add or retain separate-module client checks, and make all ten migration shards pass under the unchanged gates. Draft status does not excuse these defects. Preceding completed CI on unchanged project source evidence: full job log. Formal self-review is unavailable for this account; this is the changes-requested disposition, not an approval. Successor-head reconciliation ( |
Blanket
@[expose] public sectionexports implementation bodies throughout Lean Pool. This WIP removes blanket section exposure while retaining the named computational interfaces and public equations that callers require.Compilation failures remain. This PR is a draft and is not ready to merge. This update contains repairs in 164 source files; main is integrated through
30ac0ffae.Progress at 2026-09-26 10:35 UTC:
moduleheaders and zero blanket exposed sections. These source counts do not imply a successful build.bv_decidesteps with UInt64 kernel lemmas. The earlier Erdos97ConvexOctagon verification includes all 267 source modules and 1,998 audited declarations.ed1f25d59had nine failing build shards and one passing shard. Fresh CI must validate this update. Larger-project repairs remain in progress. BrauerGroupNew now builds, with independent review pending; it is not yet counted. SardMoreira built before a review correction restored its original generated public APIs and simp metadata; its rebuild is pending and it is also excluded. More Navier/Euler leaf batches pass, including H6NonlinearProduct, FiveProfileMoments, TerminalCompensation, NaturalEntrance, UniformFourierAlias, and PeriodicResidualLimits; the whole project remains unverified.Progress is updated at least hourly while work continues.