Skip to content

Narrow ConwaySoifer imports and stage certificate checks - #702

Open
Vilin97 wants to merge 2 commits into
mainfrom
codex/conway-soifer-imports-20261021
Open

Vilin97 wants to merge 2 commits into
mainfrom
codex/conway-soifer-imports-20261021

Conversation

@Vilin97

@Vilin97 Vilin97 commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Current source head: 0e26afd86c06e76007959fc163ed52749d0bf7b5. Review cleanup removes 27 newly introduced, unused private projection wrappers (162 lines in three certificate modules). The shared tail proofs, conjunction bundles, certificate data, public statements and live proof scripts are unchanged.

The measurements, environment-exporter counts and local validation listed below apply to the measured commit 68c6b5cd484976c2e6f3ce8f78f87f5099bb9339. They have not been rerun on the cleanup commit; no new performance measurement or compiled-environment certificate is claimed for the current head. Current-head hosted checks and configured review remain required.

ConwaySoifer's large certificate checks raise peak compiler memory. This refactor lowers the measured maximum compiler-process RSS by 11.72%, from 2,245,080 to 1,981,952 KiB, while preserving every existing declaration. Wall time increased by 12.39% in the clean comparison; this is a memory optimization with a measured time tradeoff.

ConwaySoifer was selected from local size, import and profiling evidence: 841 modules, 559,348 source lines, 101 broad private Mathlib.Tactic imports, and expensive kernel certificate checks. The change narrows those 101 import headers to the tactic modules actually needed and restructures checks in four Aown certificate modules. Private bundled lemmas verify fan tails sequentially and reuse their checked results through projections and explicit simp only lists. All original public imports are retained. Existing certificate data and mathematical statements are untouched.

Base: b634835ce57618a1331f62c3dae458c88df868d8. Validated head: 68c6b5cd484976c2e6f3ce8f78f87f5099bb9339. Immediately before commit, origin/main was verified at 14ed8c6b29fea045ba2d6fab82fd0a289d9301e2; the selected sources, relevant policies and dependency pins are unchanged from the measurement base. The branch was kept at its audited base rather than rebased to follow unrelated main changes. These use the repository's actual unchanged pin, Lean 4.35.0-rc3 / Mathlib c55e6e786f49471c72fbddbec5415808896aec1e.

Before editing, a Lean environment exporter recorded all project-owned declarations, including private and generated declarations. It serializes complete elaborated expression DAGs, types, universe parameters, declaration kinds, safety/partial flags, reducibility metadata, exported visibility, definition values and inductive/recursor metadata. The comparison uses structural SHA-256 fingerprints independent of expression-node numbering and permits only theorem proof-value changes. Result: 257,912 existing declarations retained; zero type/contract changes, zero definition-value changes, zero missing declarations. 59 existing theorem proof bodies differ. All 2,697 additions are private safe theorem declarations, including generated proof auxiliaries; no existing public name is replaced. The source/configuration hashes were frozen for measurement and verified again before publication.

Clean complete-project measurement Base Validated head
Wall time 57:33.25 1:04:41
User CPU seconds 8580.19 8768.28
System CPU seconds 966.26 905.25
Maximum process RSS, KiB 2245080 1981952

Both measurements removed only the isolated worktree's own .lake/build, retained the same pinned dependency cache, and ran /usr/bin/time -v env LEAN_NUM_THREADS=4 lake build LeanPool.ConwaySoifer.Imports. All 841 project modules compiled in each run. GNU time reports the maximum descendant-process RSS, not aggregate concurrent build memory. These are single runs on a shared Azure VM; the wall-time regression is observed, but its precise attribution to source changes versus VM load is uncertain. No speedup or aggregate-memory reduction is claimed.

Validation on the exact measured source:

  • Complete target build, with a zero-warning scan.
  • lake shake --force --keep-public --fix on selected import candidates, followed by manual tactic-import narrowing and full recompilation.
  • lake env lean --run scripts/ci/lint-project.lean with all 841 project modules: all existing CI declaration linters passed.
  • lake exe lint-style LeanPool.ConwaySoifer.Imports: passed.
  • Unchanged repository quality checks scoped to the selected project: headers, forbidden constructs, file/proof sizes, option settings, waiver checks, project card/schema/main declarations, all 57,079 public axiom lookups, and the complete private/generated environment trust/option audit: passed.
  • Existing generated-index checker scoped to ConwaySoifer: all 840 source-module imports and the fixed discovery root match. No files were added or moved, so no index/card update is required.
  • git diff --check, exact source-hash verification, and pre-commit base verification: passed.

Only ConwaySoifer Lean sources change. Repository checks, configuration and metadata are unchanged. Full-pool and hosted protected checks and independent review remain the normal PR requirements. This PR is opened without merging, enabling auto-merge, or entering the merge queue.

@greptile-apps

greptile-apps Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Advisory cross-file review against Lean Pool's supervisory rubric. This is not by itself a significance, source-verification, or merge verdict.

RetriggerView in Greptile

[Medium impact] No blocking issue remains in the reviewed changes.

Summary

The PR narrows private tactic imports and splits large certificate checks into reusable private proofs. The latest update removes 27 unused private projection theorems.

  • ConwaySoifer builds use less peak compiler memory.

Reviews (2) · Last reviewed commit: "Remove unused private ConwaySoifer proje..." · Reviewed by Greptile

Comment thread LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean Outdated
@Vilin97 Vilin97 changed the title Reduce ConwaySoifer peak compiler memory by 11.7% Narrow ConwaySoifer imports and stage certificate checks Oct 21, 2026

@Vilin97 Vilin97 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

{
"summary": "At 0e26afd, this refactor narrows 101 private tactic imports and stages 24 certificate checks through explicit tail lemmas. The original public imports, written contracts, certificate data and soundness interface are retained. The 27 unused private projection wrappers have been removed; the shared conjunction proofs and every live consumer remain. I accept the documented memory/time trade-off: the single-run 11.72% process-RSS reduction and 12.39% wall-time increase belong to the original 68c6b5c measurement, and the updated description makes no new measurement claim for this cleanup. This is source approval; current-head configured review and all applicable hosted/protected checks remain pending.",
"assessment": {
"scope": "tactic import narrowing and staged certificate proofs",
"introduces_tech_debt": false,
"maintainability": "improved",
"brittleness": "unchanged",
"risk": "medium",
"assessment_one_sentence": "The narrower imports and explicit, reused certificate checks are maintainable after removing the unused private wrappers; the documented performance trade-off is acceptable for this memory-focused refactor."
},
"verdict": "approve",
"findings": []
}

@Vilin97

Vilin97 commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

/review

@Vilin97

Vilin97 commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

🤖 LLM review — refactor (gpt-6.1-sol)

Reviewed head: 0e26afd86c06e76007959fc163ed52749d0bf7b5

Verdict: ✅ approve

The PR narrows private tactic imports and splits large certificate checks into named tail proofs reused through explicit simp only lists. This adds debugging boundaries without broader automation; every remaining helper has a caller. Earlier-head measurements report 11.72% lower peak RSS and 12.39% longer wall time. Current-head CI and profiling remain running, with no completed failures observed. Local compilation was blocked by HTTP 403 fetching pinned Mathlib.

Aspect Value
Scope import narrowing and certificate-check staging
Introduces tech debt ✅ no
Maintainability ✅ improved
Brittleness ➖ unchanged
Risk ✅ low

The staged checks make failures easier to isolate and reuse checked results without introducing actionable maintenance debt.


Tokens: 1,295,147 in / 8,439 out · Tier: codex-subscription · Effort: xhigh · Billing: Codex subscription quota (no API credits) · Estimated cost: $5.3072 (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.

CI was not green for this commit at review time; this review does not replace CI.

@github-actions

Copy link
Copy Markdown
Contributor

Proof profile (new / modified Lean files)

Statement changes

✅ No statements changed — all 2,011 tracked declarations across 105 modified files kept their type; only proofs / definition bodies changed.

Also: 45 declarations added, 0 removed. A reorganization moves declarations between files, which shows up here as an add in one file and a remove in another.

➕ Declarations added (45)
  • ConwaySoifer.Simplified.Certificates.Aown120000130000.checkedFan3Owner0Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1200001300000.lean
  • ConwaySoifer.Simplified.Certificates.Aown120000130000.checkedFan4Owner0Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1200001300000.lean
  • ConwaySoifer.Simplified.Certificates.Aown120000130000.checkedFan5Owner0Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1200001300000.lean
  • ConwaySoifer.Simplified.Certificates.Aown120000130000.checkedFan7Owner0Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1200001300000.lean
  • ConwaySoifer.Simplified.Certificates.Aown120000130000.checkedFan7Owner0Part1 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1200001300000.lean
  • ConwaySoifer.Simplified.Certificates.Aown120000130000.checkedFan7Owner0Part2 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1200001300000.lean
  • ConwaySoifer.Simplified.Certificates.Aown120000130000.checkedFan7Owner0Part3 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1200001300000.lean
  • ConwaySoifer.Simplified.Certificates.Aown120000130000.checkedFan7Owner0Part3Checks — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1200001300000.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan24Owner0Part3 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan24Owner0Part3Checks — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan24Owner4Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan26Owner0Part3 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan26Owner0Part3Checks — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan27Owner0Part2 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan27Owner0Part2Checks — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan28Owner0Part2 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan28Owner0Part2Checks — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan29Owner0Part3 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan29Owner0Part7 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan29Owner0Part7Checks — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown150000160000.checkedFan30Owner4Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan11Owner0Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700001.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan15Owner0Part1 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700001.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan15Owner0Part3 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700001.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan15Owner0Part5 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700001.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan15Owner0Part5Checks — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700001.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan8Owner0Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700001.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan42Owner0Part1 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan42Owner0Part1Checks — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan42Owner2Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan43Owner2Part1 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan43Owner2Part1Checks — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan43Owner3Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan44Owner2Part1 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan44Owner2Part3 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan44Owner2Part5 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan44Owner2Part7 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan44Owner2Part7Checks — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan44Owner3Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan45Owner0Part1 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan45Owner0Part1Checks — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan45Owner4Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan46Owner0Part1 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan46Owner0Part1Checks — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean
  • ConwaySoifer.Simplified.Certificates.Aown160000170000.checkedFan46Owner5Part0 — LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean

Statements are compared textually against the merge base (comments and whitespace ignored; by proof terms embedded in a type are treated as proof-irrelevant), the same method as physlib's /check-golf. Anonymous instances and examples are not tracked.

Compile cost of modified files — base → head

Heartbeats: 12,948,136 → 13,571,678 (+623,542, +4.8%). Commands: 3,372 → 3,417.

Per-file wall sum: 2394.3 s → 2788.3 s (+16.5%). Wall clock is measured under parallel load and is noisy; heartbeats are deterministic and are the regression signal.

Files: 105 compared — 44 cheaper, 4 costlier, 57 within noise (threshold: |Δ heartbeats| ≥ 1,000 and ≥ 1%).

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 disjoint root command traces with trace.profiler.useHeartbeats and synchronous elaboration, converted to maxHeartbeats units. Failed measurements are not classified as cheaper or costlier. Δ lines counts added/deleted lines from this PR diff.

File Δ lines HB base HB head Δ HB Δ HB % Wall base (s) Wall head (s)
LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1500001600003.lean +353/-7 234,107 504,659 +270,552 +115.6% 40.43 81.71
LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700005.lean +323/-8 192,518 435,923 +243,405 +126.4% 28.98 83.38
LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1600001700001.lean +114/-3 141,330 309,056 +167,726 +118.7% 37.94 57.26
LeanPool/ConwaySoifer/Simplified/Certificates/Steps/Aown1200001300000.lean +106/-4 144,724 267,107 +122,383 +84.6% 26.15 55.68
LeanPool/ConwaySoifer/Simplified/Geometry/Profile7Q0.lean +5/-1 478,598 466,857 -11,741 -2.5% 51.10 89.84
LeanPool/ConwaySoifer/Simplified/Geometry/HexSymmetry.lean +4/-1 102,787 91,649 -11,138 -10.8% 27.24 24.95
LeanPool/ConwaySoifer/Simplified/Geometry/Profile6Q0.lean +5/-1 351,447 343,247 -8,199 -2.3% 69.51 61.91
LeanPool/ConwaySoifer/Simplified/Geometry/Profile5Q0.lean +5/-1 350,663 342,472 -8,191 -2.3% 41.88 72.41
LeanPool/ConwaySoifer/Geometry/Locality.lean +2/-1 224,586 218,017 -6,569 -2.9% 45.79 46.17
LeanPool/ConwaySoifer/Simplified/Geometry/Profile1Q0.lean +5/-1 244,980 239,050 -5,930 -2.4% 31.14 54.37
LeanPool/ConwaySoifer/Simplified/Geometry/Profile0Q0.lean +5/-1 235,791 229,991 -5,800 -2.5% 61.03 34.56
LeanPool/ConwaySoifer/Simplified/Geometry/Profile4Q0.lean +5/-1 239,475 233,686 -5,788 -2.4% 60.20 54.14
LeanPool/ConwaySoifer/Simplified/Geometry/AownCentral.lean +5/-1 158,326 153,829 -4,497 -2.8% 29.20 30.24
LeanPool/ConwaySoifer/Simplified/Geometry/Profile2Q0.lean +5/-1 174,528 170,497 -4,031 -2.3% 37.20 26.41
LeanPool/ConwaySoifer/Certificates/IntPoly.lean +6/-1 39,298 35,287 -4,011 -10.2% 11.99 15.03
LeanPool/ConwaySoifer/Simplified/Geometry/Profile3Q0.lean +5/-1 172,577 168,617 -3,960 -2.3% 20.80 26.09
LeanPool/ConwaySoifer/Simplified/Geometry/ThreeCentral.lean +5/-1 180,019 176,233 -3,787 -2.1% 21.53 26.99
LeanPool/ConwaySoifer/Certificates/ModelSound.lean +6/-1 66,800 63,340 -3,460 -5.2% 10.12 14.33
LeanPool/ConwaySoifer/Certificates/CheckerSound.lean +6/-1 174,387 171,036 -3,351 -1.9% 42.96 43.93
LeanPool/ConwaySoifer/SevenTriangles/Geometry/Wedge.lean +8/-1 957,816 954,498 -3,317 -0.3% 177.71 177.01
LeanPool/ConwaySoifer/SevenTriangles/Geometry/Support.lean +8/-1 230,156 227,305 -2,850 -1.2% 20.42 39.25
LeanPool/ConwaySoifer/Geometry/Support.lean +7/-1 104,532 101,781 -2,751 -2.6% 10.43 21.39
LeanPool/ConwaySoifer/Geometry/Canonical.lean +2/-1 11,104 8,372 -2,732 -24.6% 4.41 4.89
LeanPool/ConwaySoifer/Simplified/Geometry/ThreeWitnesses.lean +3/-1 118,028 115,439 -2,589 -2.2% 21.24 19.85
LeanPool/ConwaySoifer/Simplified/Geometry/FullOwn.lean +5/-1 69,233 66,787 -2,445 -3.5% 9.55 15.81
LeanPool/ConwaySoifer/Simplified/Geometry/ProfileWitness.lean +4/-1 175,849 173,583 -2,266 -1.3% 30.58 30.62
LeanPool/ConwaySoifer/Simplified/Geometry/Profile6Q1.lean +5/-1 123,108 120,888 -2,220 -1.8% 13.76 25.72
LeanPool/ConwaySoifer/Simplified/Geometry/Core.lean +4/-1 27,602 25,413 -2,189 -7.9% 5.94 7.09
LeanPool/ConwaySoifer/Simplified/Geometry/Profile7Q1.lean +5/-1 118,267 116,120 -2,147 -1.8% 22.03 21.97
LeanPool/ConwaySoifer/Simplified/Geometry/Profile5Q1.lean +5/-1 117,479 115,338 -2,141 -1.8% 33.10 30.48
LeanPool/ConwaySoifer/Simplified/Geometry/Profile4Q2.lean +5/-1 85,740 83,600 -2,139 -2.5% 20.00 13.59
LeanPool/ConwaySoifer/Simplified/Geometry/Profile2Q1.lean +5/-1 120,572 118,442 -2,131 -1.8% 19.94 31.71
LeanPool/ConwaySoifer/Simplified/Geometry/Profile1Q1.lean +5/-1 120,883 118,757 -2,126 -1.8% 33.71 24.21
LeanPool/ConwaySoifer/Simplified/Geometry/Profile0Q1.lean +5/-1 119,218 117,135 -2,083 -1.7% 14.59 24.25
LeanPool/ConwaySoifer/Simplified/Geometry/Profile3Q1.lean +5/-1 117,663 115,584 -2,078 -1.8% 21.89 26.31
LeanPool/ConwaySoifer/Simplified/Geometry/Profile4Q1.lean +5/-1 120,555 118,479 -2,076 -1.7% 14.49 31.55
LeanPool/ConwaySoifer/Simplified/Geometry/Profile6Q2.lean +5/-1 113,931 111,864 -2,067 -1.8% 29.18 26.44
LeanPool/ConwaySoifer/Simplified/Geometry/Profile5Q2.lean +5/-1 113,913 111,869 -2,044 -1.8% 16.60 20.92
LeanPool/ConwaySoifer/Simplified/Geometry/Profile2Q2.lean +5/-1 107,341 105,314 -2,027 -1.9% 24.16 28.94
LeanPool/ConwaySoifer/Simplified/Geometry/Profile1Q2.lean +5/-1 111,766 109,801 -1,965 -1.8% 18.99 22.27
LeanPool/ConwaySoifer/Simplified/Geometry/SintCorner.lean +5/-1 251,999 250,047 -1,951 -0.8% 18.26 32.91
LeanPool/ConwaySoifer/Simplified/Geometry/Profile7Q2.lean +5/-1 99,086 97,174 -1,912 -1.9% 10.76 21.84
LeanPool/ConwaySoifer/Simplified/Geometry/Profile0Q2.lean +5/-1 104,180 102,273 -1,908 -1.8% 24.81 26.41
LeanPool/ConwaySoifer/Simplified/Geometry/Profile3Q2.lean +5/-1 101,972 100,083 -1,889 -1.9% 17.09 22.69
LeanPool/ConwaySoifer/Geometry/SideFacts.lean +6/-1 255,300 253,455 -1,845 -0.7% 43.81 39.94
LeanPool/ConwaySoifer/Simplified/Geometry/AcrossFour.lean +5/-1 86,716 85,001 -1,715 -2.0% 11.95 21.20
LeanPool/ConwaySoifer/Geometry/Normalization.lean +6/-1 246,846 245,161 -1,684 -0.7% 49.05 37.87
LeanPool/ConwaySoifer/Geometry/CornerCap.lean +6/-1 403,710 402,043 -1,667 -0.4% 39.06 65.63
LeanPool/ConwaySoifer/Geometry/Symmetry.lean +4/-1 38,634 36,987 -1,647 -4.3% 10.84 7.92
LeanPool/ConwaySoifer/SevenTriangles/Geometry/Diameter.lean +4/-1 38,981 37,394 -1,588 -4.1% 12.74 10.81
… +55 more files, each with a smaller move (≤ 1,291 HB); full table in the run's step summary
Total +1,307/-124 12,948,136 13,571,678 +623,542 +4.8% 2394.3 2788.3

Per-project compile cost (top 2 of 2 projects by |Δ heartbeats|):

Project Files HB base HB head Δ HB Δ HB %
ConwaySoifer 104 12,947,958 13,571,500 +623,543 +4.8%
(root) 1 179 178 -1 -0.4%

Advisory only — never blocks merge. Full log uploaded as the proof-profile artifact.

@Vilin97

Vilin97 commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

Current-head cost assessment for 0e26afd86c06e76007959fc163ed52749d0bf7b5: the completed profile measures 12,948,136 → 13,571,678 heartbeats across 105 valid file comparisons (+623,542, +4.8%). The four staged certificate files account for +804,066 heartbeats, partly offset by −180,524 across the other 101 files. Their 84.6–126.4% increases are real elaboration costs.

I accept this cost trade-off for the memory-focused refactor: the named tail checks retain explicit dependencies and debugging boundaries, and all 27 unused projection wrappers are removed. The 11.72% process-RSS reduction remains an attributed measurement of the original 68c6b5c head; the cleanup has no new RSS measurement. The profile’s +16.5% per-file wall sum is measured under parallel load and is not a full-project wall-time comparison.

The configured review approves this same head. Source acceptance stands; applicable hosted/protected checks and normal native queue validation remain required.

This branch has not been deployed

No deployments
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.

1 participant