From 0ea97aff489f9420632b4cee81ad82dbec5fe88e Mon Sep 17 00:00:00 2001 From: Dylan Roy <249851642+d6g8k5htny-coder@users.noreply.github.com> Date: Sat, 17 Oct 2026 22:23:17 -0500 Subject: [PATCH 1/7] Formalize finite literal Morse critical classes on the torus C293 scoped proof and complete local build/kernel/axiom/review evidence. OpenAI Codex agents delegated for Dylan Roy; scientific effect NONE. No hosted formal registration or owner-controlled source changes. --- .../AUTHOR_NOTES.md | 38 ++ .../FINAL_SEQUENCE_RESULT.json | 65 ++ .../FINAL_SEQUENCE_START.json | 6 + .../FINAL_SOURCE_INVENTORY.json | 69 ++ .../PUBLIC_PROJECTION.json | 622 +++++++++++++++++ .../PUBLIC_SOURCE_BINDINGS.json | 33 + .../morse_finite_critical_20261018/README.md | 64 ++ .../morse_finite_critical_20261018/REPLAY.md | 33 + .../ROOT_ACCEPTANCE.json | 18 + .../morse_finite_critical_20261018/SCOPE.md | 63 ++ .../evidence/EXECUTION_HISTORY.md | 36 + .../evidence/MASTER_CONTRACT.md | 56 ++ .../evidence/ROOT_MATHEMATICAL_CHECK.md | 33 + .../final-project/Lifetime.lean | 634 ++++++++++++++++++ .../final-project/MorseFiniteAxiomAudit.lean | 64 ++ .../final-project/MorseFiniteControls.lean | 71 ++ .../final-project/MorseFiniteCritical.lean | 223 ++++++ .../final-project/TorusTopology.lean | 247 +++++++ .../PREFLIGHT.json | 47 ++ .../PROCESS_START.json | 48 ++ .../RECEIPT.json | 76 +++ .../START.json | 11 + .../stderr.txt | 0 .../stdout.txt | 0 .../PREFLIGHT.json | 49 ++ .../PROCESS_START.json | 50 ++ .../RECEIPT.json | 79 +++ .../START.json | 11 + .../stderr.txt | 0 .../stdout.txt | 0 .../PREFLIGHT.json | 51 ++ .../PROCESS_START.json | 52 ++ .../RECEIPT.json | 82 +++ .../START.json | 11 + .../stderr.txt | 0 .../stdout.txt | 0 .../PREFLIGHT.json | 52 ++ .../PROCESS_START.json | 53 ++ .../RECEIPT.json | 84 +++ .../START.json | 11 + .../stderr.txt | 0 .../stdout.txt | 0 .../PREFLIGHT.json | 53 ++ .../PROCESS_START.json | 54 ++ .../RECEIPT.json | 86 +++ .../START.json | 11 + .../stderr.txt | 0 .../stdout.txt | 260 +++++++ .../PREFLIGHT.json | 50 ++ .../PROCESS_START.json | 51 ++ .../RECEIPT.json | 83 +++ .../START.json | 11 + .../stderr.txt | 0 .../stdout.txt | 1 + .../PREFLIGHT.json | 50 ++ .../PROCESS_START.json | 51 ++ .../RECEIPT.json | 83 +++ .../START.json | 11 + .../stderr.txt | 0 .../stdout.txt | 1 + .../PREFLIGHT.json | 50 ++ .../PROCESS_START.json | 51 ++ .../RECEIPT.json | 83 +++ .../START.json | 11 + .../stderr.txt | 0 .../stdout.txt | 1 + .../final_master.py | 154 +++++ .../negative-final/RECEIPT.json | 41 ++ .../negative-final/START.json | 29 + .../negative-final/stderr.txt | 0 .../negative-final/stdout.txt | 6 + .../negative-project/WithoutMorse.lean | 10 + .../prepare_final_inputs.py | 60 ++ .../reviews/MAIN_SOURCE_REVIEW.md | 276 ++++++++ .../reviews/NONAUTHOR_REVIEW.md | 383 +++++++++++ .../run_final_phase.py | 216 ++++++ .../run_final_sequence.py | 27 + .../run_negative.py | 49 ++ 78 files changed, 5445 insertions(+) create mode 100644 frontiers/morse_finite_critical_20261018/AUTHOR_NOTES.md create mode 100644 frontiers/morse_finite_critical_20261018/FINAL_SEQUENCE_RESULT.json create mode 100644 frontiers/morse_finite_critical_20261018/FINAL_SEQUENCE_START.json create mode 100644 frontiers/morse_finite_critical_20261018/FINAL_SOURCE_INVENTORY.json create mode 100644 frontiers/morse_finite_critical_20261018/PUBLIC_PROJECTION.json create mode 100644 frontiers/morse_finite_critical_20261018/PUBLIC_SOURCE_BINDINGS.json create mode 100644 frontiers/morse_finite_critical_20261018/README.md create mode 100644 frontiers/morse_finite_critical_20261018/REPLAY.md create mode 100644 frontiers/morse_finite_critical_20261018/ROOT_ACCEPTANCE.json create mode 100644 frontiers/morse_finite_critical_20261018/SCOPE.md create mode 100644 frontiers/morse_finite_critical_20261018/evidence/EXECUTION_HISTORY.md create mode 100644 frontiers/morse_finite_critical_20261018/evidence/MASTER_CONTRACT.md create mode 100644 frontiers/morse_finite_critical_20261018/evidence/ROOT_MATHEMATICAL_CHECK.md create mode 100644 frontiers/morse_finite_critical_20261018/final-project/Lifetime.lean create mode 100644 frontiers/morse_finite_critical_20261018/final-project/MorseFiniteAxiomAudit.lean create mode 100644 frontiers/morse_finite_critical_20261018/final-project/MorseFiniteControls.lean create mode 100644 frontiers/morse_finite_critical_20261018/final-project/MorseFiniteCritical.lean create mode 100644 frontiers/morse_finite_critical_20261018/final-project/TorusTopology.lean create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/PREFLIGHT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/PROCESS_START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/RECEIPT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/stderr.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/stdout.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/PREFLIGHT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/PROCESS_START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/RECEIPT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/stderr.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/stdout.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/PREFLIGHT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/PROCESS_START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/RECEIPT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/stderr.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/stdout.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/PREFLIGHT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/PROCESS_START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/RECEIPT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/stderr.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/stdout.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/PREFLIGHT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/PROCESS_START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/RECEIPT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/stderr.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/stdout.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/PREFLIGHT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/PROCESS_START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/RECEIPT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/stderr.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/stdout.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/PREFLIGHT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/PROCESS_START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/RECEIPT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/stderr.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/stdout.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/PREFLIGHT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/PROCESS_START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/RECEIPT.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/START.json create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/stderr.txt create mode 100644 frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/stdout.txt create mode 100644 frontiers/morse_finite_critical_20261018/final_master.py create mode 100644 frontiers/morse_finite_critical_20261018/negative-final/RECEIPT.json create mode 100644 frontiers/morse_finite_critical_20261018/negative-final/START.json create mode 100644 frontiers/morse_finite_critical_20261018/negative-final/stderr.txt create mode 100644 frontiers/morse_finite_critical_20261018/negative-final/stdout.txt create mode 100644 frontiers/morse_finite_critical_20261018/negative-project/WithoutMorse.lean create mode 100644 frontiers/morse_finite_critical_20261018/prepare_final_inputs.py create mode 100644 frontiers/morse_finite_critical_20261018/reviews/MAIN_SOURCE_REVIEW.md create mode 100644 frontiers/morse_finite_critical_20261018/reviews/NONAUTHOR_REVIEW.md create mode 100644 frontiers/morse_finite_critical_20261018/run_final_phase.py create mode 100644 frontiers/morse_finite_critical_20261018/run_final_sequence.py create mode 100644 frontiers/morse_finite_critical_20261018/run_negative.py diff --git a/frontiers/morse_finite_critical_20261018/AUTHOR_NOTES.md b/frontiers/morse_finite_critical_20261018/AUTHOR_NOTES.md new file mode 100644 index 000000000..4d618d46e --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/AUTHOR_NOTES.md @@ -0,0 +1,38 @@ +# C293 author notes: finite literal quotient critical set + +## Scope and source relationship + +The assigned deliverable formalizes the finite-critical-set dependency already proved conventionally in C292, Section 4. It does not reopen or replace that conventional proof. The public endpoint is the finiteness of the full image of all `UniversalLaw.Spec.Lifetime.IsCriticalPoint` points under the actual C263 `TorusFiltration.torus_proj`. + +The implementation imports only the supplied, source-verified `Lifetime.lean` and `TorusTopology.lean`; these import the pinned Mathlib. The literal Euclidean space, iterated-Frechet Hessian, inertia encoding, lattice scale, periodicity, and quotient remain unchanged. No product-of-circles torus is substituted. + +The primary theorem `TorusMorseFinite.quotientCriticalSet_finite` assumes literal `IsSmooth`, `IsLPeriodic`, and `IsMorseDistinct`, with `L > 0`. Its core theorem only uses the nondegeneracy-at-critical-points conjunct of the Morse-distinct predicate. No finite event list, finite critical set, inverse certificate, closed-level path, elder pairing, or barcode conclusion is a premise. + +## Proof structure + +1. Identify the literal `iteratedFDeriv` Hessian with `fderiv` of `fderiv`, and derive its symmetry from real `C^2` smoothness. +2. For a kernel vector `z = v + w` in the complementary inertia subspaces, symmetry and the kernel equation give `B(v,v) = B(w,w)`. The opposite definite signs force `v = w = 0`. Cross terms are retained; the subspaces are not assumed Hessian-orthogonal. +3. Use the real Riesz equivalence and finite-dimensional injective-endomorphism equivalence to turn the derivative of `fderiv` into an actual continuous linear equivalence. Apply Mathlib's inverse function theorem to derive an isolating open neighborhood of each literal critical point. +4. Derive periodicity of `fderiv` by differentiating the exact lattice-translation identity. Construct the continuous dual-valued derivative on C263's quotient using `Quotient.lift` and prove the literal pullback identity. +5. Identify the quotient critical set with the zero set of this descended derivative. It is closed. The projection is open because the supplied C263 theorem constructs a covering map. Images of the Euclidean isolating neighborhoods isolate quotient critical points. +6. Apply actual quotient compactness and Mathlib's compact-discrete finiteness theorem. + +The deterministic proof works for every natural dimension. C292's application retains its own `d >= 1` scope. There is no coefficient-field or limit-order change: the present theorem is real scalar deterministic geometry and has no asymptotic parameter. + +## Deliberate mathematical boundary + +This unit proves no Morse normal form and no closed-superlevel local path connectivity. Those remain substantive imports needed by the larger C292 closed-level attainment argument. Finiteness of quotient critical points is not a finite-event or elder-registration theorem, not a proof of all small bars or exhaustive once-counting, and not a regional shrinking-collision estimate. It does not modify an owner's separate elder-registration scope. + +## Build and review status + +Initial source written at approximately 2026-10-18 02:12 UTC. Both exact dependency modules compiled successfully with no stdout/stderr: `Lifetime.lean` in 186.78 seconds and `TorusTopology.lean` in 169.07 seconds, with unchanged input hashes. These builds were launched by the parent and their terminal receipts were read by the author. + +The complete first author attempt compiled successfully in 135.75 seconds, exit code 0, no timeout, source unchanged. Its source SHA-256 is `514445e386599258472310fdab555006a206fba9c65ca864d4a7dc103cb5998c`; the exact source is retained as `project/AuthorProbeAttempt001.lean`. Receipt: `runs/20261018T021538Z-MorseFiniteCritical-092f8343/RECEIPT.json`. It emitted four warnings for deprecated `ContinuousLinearMap.add_apply` / `ContinuousLinearMap.zero_apply` aliases, with no errors. + +The cleaned candidate changes only those four aliases to `add_apply` / `zero_apply`; no theorem statement or proof structure changes. Its source SHA-256 is `95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b`, 9,445 bytes, 223 lines. The exact source is also retained as `project/AuthorProbeAttempt002.lean`. The targeted cleaned-source run is `runs/20261018T022037Z-MorseFiniteCritical-67cf4c01`. It completed at 2026-10-18 02:22:53 UTC in 135.41 seconds, exit code 0, no timeout, source unchanged, with empty stdout and stderr. The resulting `MorseFiniteCritical.olean` SHA-256 is `34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2`. + +The author module is frozen at that cleaned-source hash for substantive review and parent final verification. Both author attempts succeeded; the first attempt's warnings are preserved rather than suppressed or discarded. A source scan found no `sorry`, `admit`, `axiom`, or `unsafe` declaration in the author module. This scan is not an axiom audit of the imported proof dependencies. + +All author runs use the assigned bounded serial `run_lean.py` with Lean 4.34.1, two threads, 4096 MiB memory limit, 240-second timeout, and the supplied pinned dependency cache. No shared source or dependency cache is modified. Run receipts and source snapshots remain available. Parent final frozen-artifact verification, kernel/axiom audit, and substantive review are separate gates. + +The author and assigned reviewer are same-provider and source-exposed. Neither source inspection nor author compilation constitutes independent scientific acceptance. diff --git a/frontiers/morse_finite_critical_20261018/FINAL_SEQUENCE_RESULT.json b/frontiers/morse_finite_critical_20261018/FINAL_SEQUENCE_RESULT.json new file mode 100644 index 000000000..436abc3d8 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/FINAL_SEQUENCE_RESULT.json @@ -0,0 +1,65 @@ +{ + "started_utc": "2026-10-18T02:57:21.689807+00:00", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "phases": [ + { + "kind": "build", + "module": "Lifetime", + "started_utc": "2026-10-18T02:57:21.689836+00:00", + "ended_utc": "2026-10-18T02:59:03.224627+00:00", + "returncode": 0 + }, + { + "kind": "build", + "module": "TorusTopology", + "started_utc": "2026-10-18T02:59:03.224669+00:00", + "ended_utc": "2026-10-18T03:00:43.914208+00:00", + "returncode": 0 + }, + { + "kind": "build", + "module": "MorseFiniteCritical", + "started_utc": "2026-10-18T03:00:43.914248+00:00", + "ended_utc": "2026-10-18T03:02:23.617988+00:00", + "returncode": 0 + }, + { + "kind": "build", + "module": "MorseFiniteControls", + "started_utc": "2026-10-18T03:02:23.618032+00:00", + "ended_utc": "2026-10-18T03:04:11.727630+00:00", + "returncode": 0 + }, + { + "kind": "build", + "module": "MorseFiniteAxiomAudit", + "started_utc": "2026-10-18T03:04:11.727680+00:00", + "ended_utc": "2026-10-18T03:07:05.596139+00:00", + "returncode": 0 + }, + { + "kind": "kernel", + "module": "MorseFiniteCritical", + "started_utc": "2026-10-18T03:07:05.596193+00:00", + "ended_utc": "2026-10-18T03:08:32.127951+00:00", + "returncode": 0 + }, + { + "kind": "kernel", + "module": "MorseFiniteControls", + "started_utc": "2026-10-18T03:08:32.127998+00:00", + "ended_utc": "2026-10-18T03:10:00.355556+00:00", + "returncode": 0 + }, + { + "kind": "kernel", + "module": "MorseFiniteAxiomAudit", + "started_utc": "2026-10-18T03:10:00.355596+00:00", + "ended_utc": "2026-10-18T03:11:29.812864+00:00", + "returncode": 0 + } + ], + "scientific_effect": "NONE", + "status": "PASS_FROZEN_BUILD_AND_STANDARD_KERNEL_REPLAY", + "ended_utc": "2026-10-18T03:11:29.812907+00:00" +} diff --git a/frontiers/morse_finite_critical_20261018/FINAL_SEQUENCE_START.json b/frontiers/morse_finite_critical_20261018/FINAL_SEQUENCE_START.json new file mode 100644 index 000000000..3d9bfdc7f --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/FINAL_SEQUENCE_START.json @@ -0,0 +1,6 @@ +{ + "started_utc": "2026-10-18T02:57:21.689419+00:00", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "driver_sha256": "8cb8a75b384c0c84f1a000f217616a3d99710b34bf2e04237b65f220ff9302ce", + "scientific_effect": "NONE" +} diff --git a/frontiers/morse_finite_critical_20261018/FINAL_SOURCE_INVENTORY.json b/frontiers/morse_finite_critical_20261018/FINAL_SOURCE_INVENTORY.json new file mode 100644 index 000000000..6974112f1 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/FINAL_SOURCE_INVENTORY.json @@ -0,0 +1,69 @@ +{ + "frozen_utc": "2026-10-18T02:56:53.456259+00:00", + "prepare_start_record": "$C293_ROOT/final-prepare-attempts/2026-10-18T025648.570677_0000-4fa2f46bd57a42d5818b82dc46914892.json", + "prepare_start_sha256": "0b9a6dea32234c956e08fbdbc167c9e04a4615c9e5fe4b9cca875f404646f91d", + "prior_legacy_start": { + "path": "$C293_ROOT/FINAL_PREPARE_START.json", + "sha256": "9f39ca7a8c6ff0ef0a1fe37830adfe6955015c6cfca50c8a74c5ee1f3ef8add1" + }, + "sources": [ + { + "name": "Lifetime.lean", + "sha256": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "bytes": 51383 + }, + { + "name": "TorusTopology.lean", + "sha256": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1", + "bytes": 12257 + }, + { + "name": "MorseFiniteCritical.lean", + "sha256": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "bytes": 9445 + }, + { + "name": "MorseFiniteControls.lean", + "sha256": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "bytes": 2843 + }, + { + "name": "MorseFiniteAxiomAudit.lean", + "sha256": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "bytes": 3025 + } + ], + "build_order": [ + "Lifetime", + "TorusTopology", + "MorseFiniteCritical", + "MorseFiniteControls", + "MorseFiniteAxiomAudit" + ], + "local_imports": { + "Lifetime": [], + "TorusTopology": [], + "MorseFiniteCritical": [ + "Lifetime", + "TorusTopology" + ], + "MorseFiniteControls": [ + "Lifetime" + ], + "MorseFiniteAxiomAudit": [ + "MorseFiniteCritical", + "MorseFiniteControls" + ] + }, + "new_modules": [ + "MorseFiniteCritical", + "MorseFiniteControls", + "MorseFiniteAxiomAudit" + ], + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "preparer_sha256": "72bbe39334fa2a7b09d621f81f6211e9a4019804b949f4ea2576e1c4f2927451", + "dependency_artifact_inventory_sha256": "4e35e91a0b6f334eb6ad41e586b9704189e7063722d9c2e5f6a87f0839af0d21", + "c291_inventory_sha256": "b78b6e0f99bd38c633ae2677c55698363b1290e6d4318e505991c8df259ae2e3", + "scientific_effect": "NONE", + "execution_provenance": "LOCAL; no hosted qualification" +} diff --git a/frontiers/morse_finite_critical_20261018/PUBLIC_PROJECTION.json b/frontiers/morse_finite_critical_20261018/PUBLIC_PROJECTION.json new file mode 100644 index 000000000..fcde4f363 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/PUBLIC_PROJECTION.json @@ -0,0 +1,622 @@ +{ + "files": [ + { + "bytes": 5606, + "original_bytes": 5606, + "original_sha256": "7ff0f8c928cd5bf87e036079e5f3e5549d44499a89f1dc59b0793c956884f251", + "path": "AUTHOR_NOTES.md", + "projection": false, + "sha256": "7ff0f8c928cd5bf87e036079e5f3e5549d44499a89f1dc59b0793c956884f251" + }, + { + "bytes": 1968, + "original_bytes": 1968, + "original_sha256": "80c3241fb619c9b250826c233bd927d6767d341977c9563a58984e20d299d9b3", + "path": "FINAL_SEQUENCE_RESULT.json", + "projection": false, + "sha256": "80c3241fb619c9b250826c233bd927d6767d341977c9563a58984e20d299d9b3" + }, + { + "bytes": 264, + "original_bytes": 264, + "original_sha256": "4549b8b0fa2033f93012aa9f0070e6ab2dd356a0e763324b8744dfc3d6ddf01c", + "path": "FINAL_SEQUENCE_START.json", + "projection": false, + "sha256": "4549b8b0fa2033f93012aa9f0070e6ab2dd356a0e763324b8744dfc3d6ddf01c" + }, + { + "bytes": 2259, + "original_bytes": 2421, + "original_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "path": "FINAL_SOURCE_INVENTORY.json", + "projection": true, + "sha256": "8f290cf442ea4e987e7c5f7ef219eecb52df5cd72a36c4e4d86a7b02cf9769a9" + }, + { + "bytes": 1940, + "original_bytes": 1940, + "original_sha256": "31505250d9c9ab2d3b200a158fbbb9f75b2a84d74b2549698530a15c19d0f6cf", + "path": "PUBLIC_SOURCE_BINDINGS.json", + "projection": false, + "sha256": "31505250d9c9ab2d3b200a158fbbb9f75b2a84d74b2549698530a15c19d0f6cf" + }, + { + "bytes": 4053, + "original_bytes": 4053, + "original_sha256": "8ce45db8231416e3a8455d8978be88aaabeaf1fa5b049e1ad5e137294b68a8c8", + "path": "README.md", + "projection": false, + "sha256": "8ce45db8231416e3a8455d8978be88aaabeaf1fa5b049e1ad5e137294b68a8c8" + }, + { + "bytes": 1780, + "original_bytes": 1780, + "original_sha256": "9737b5b5f5e2184d9cc82cfb7e4ac8824e2a4e8e098be4de5cbc2a6926f74a2a", + "path": "REPLAY.md", + "projection": false, + "sha256": "9737b5b5f5e2184d9cc82cfb7e4ac8824e2a4e8e098be4de5cbc2a6926f74a2a" + }, + { + "bytes": 1157, + "original_bytes": 1157, + "original_sha256": "49f92d3067534219632dc41f5c020ba0bb584f4783421d904d0022446739c0f8", + "path": "ROOT_ACCEPTANCE.json", + "projection": false, + "sha256": "49f92d3067534219632dc41f5c020ba0bb584f4783421d904d0022446739c0f8" + }, + { + "bytes": 4051, + "original_bytes": 4051, + "original_sha256": "59cdd46b763e99f1051e85dfe91fb7a74b1a8f47bbe7d8a8bea5c660c875c0e8", + "path": "SCOPE.md", + "projection": false, + "sha256": "59cdd46b763e99f1051e85dfe91fb7a74b1a8f47bbe7d8a8bea5c660c875c0e8" + }, + { + "bytes": 2296, + "original_bytes": 2296, + "original_sha256": "9c79f845b820646e906744fdcf72bb57ff3e3541a9a259c446e73cc32c1324ad", + "path": "evidence/EXECUTION_HISTORY.md", + "projection": false, + "sha256": "9c79f845b820646e906744fdcf72bb57ff3e3541a9a259c446e73cc32c1324ad" + }, + { + "bytes": 9281, + "original_bytes": 9281, + "original_sha256": "603f65119bf025aa7ca805989ca1850b83e4566638e973aab7a454376e1b6d4b", + "path": "evidence/MASTER_CONTRACT.md", + "projection": false, + "sha256": "603f65119bf025aa7ca805989ca1850b83e4566638e973aab7a454376e1b6d4b" + }, + { + "bytes": 2066, + "original_bytes": 2066, + "original_sha256": "6efa20d0a26bd4ef0b4fb190fbb9da5eb4dc4cf783eeb029a54fcf1b32b98e5b", + "path": "evidence/ROOT_MATHEMATICAL_CHECK.md", + "projection": false, + "sha256": "6efa20d0a26bd4ef0b4fb190fbb9da5eb4dc4cf783eeb029a54fcf1b32b98e5b" + }, + { + "bytes": 51383, + "original_bytes": 51383, + "original_sha256": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "path": "final-project/Lifetime.lean", + "projection": false, + "sha256": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6" + }, + { + "bytes": 3025, + "original_bytes": 3025, + "original_sha256": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "path": "final-project/MorseFiniteAxiomAudit.lean", + "projection": false, + "sha256": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d" + }, + { + "bytes": 2843, + "original_bytes": 2843, + "original_sha256": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "path": "final-project/MorseFiniteControls.lean", + "projection": false, + "sha256": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1" + }, + { + "bytes": 9445, + "original_bytes": 9445, + "original_sha256": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "path": "final-project/MorseFiniteCritical.lean", + "projection": false, + "sha256": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b" + }, + { + "bytes": 12257, + "original_bytes": 12257, + "original_sha256": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1", + "path": "final-project/TorusTopology.lean", + "projection": false, + "sha256": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + { + "bytes": 2241, + "original_bytes": 3402, + "original_sha256": "04212e4eeb4624889f1e43e0ec5c4b91125a4e5d8edfb9c84ae8e95c9e371e55", + "path": "final-runs/20261018T025721Z-build-Lifetime-27665937/PREFLIGHT.json", + "projection": true, + "sha256": "583a955041806af97c038a11fe134ea06a377ff1276a1f5499c8cca304c168cc" + }, + { + "bytes": 2262, + "original_bytes": 3423, + "original_sha256": "2572ca3e2ed1fb2591bb41ea1fab5934bbcc5ad1b2da359fff5e45cb9be4dcc1", + "path": "final-runs/20261018T025721Z-build-Lifetime-27665937/PROCESS_START.json", + "projection": true, + "sha256": "6ff421882dbdf468fee070d5616486b14fd473765a6cf5707af6aad869a460ef" + }, + { + "bytes": 3658, + "original_bytes": 4819, + "original_sha256": "0c7f8c69c7eab4bcff5a507a37bc5ddfd191b6cac3567155b3594f7d0a69436f", + "path": "final-runs/20261018T025721Z-build-Lifetime-27665937/RECEIPT.json", + "projection": true, + "sha256": "b0a079db6b51b2ba506aa8509eec293b53143e3ab569b7fcc81dc6ba48ff6e09" + }, + { + "bytes": 399, + "original_bytes": 399, + "original_sha256": "9dd5fe741145a41fd4847e57818440b63053f040087646ccbae54eba375126b5", + "path": "final-runs/20261018T025721Z-build-Lifetime-27665937/START.json", + "projection": false, + "sha256": "9dd5fe741145a41fd4847e57818440b63053f040087646ccbae54eba375126b5" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "final-runs/20261018T025721Z-build-Lifetime-27665937/stderr.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "final-runs/20261018T025721Z-build-Lifetime-27665937/stdout.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 2348, + "original_bytes": 3509, + "original_sha256": "99f4028fe8c7dd97e86f5c387b3506bdaf2d268ce630f66b69ad09f4013f194a", + "path": "final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/PREFLIGHT.json", + "projection": true, + "sha256": "f84df488116a2da536fc7f6f9d3241f6e9303e0348cd434b7e1c59b0eb100810" + }, + { + "bytes": 2369, + "original_bytes": 3530, + "original_sha256": "ad32cddf407efe4892dd34cccf03d22e4cab9aa242d32b78c0fd302de382b08e", + "path": "final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/PROCESS_START.json", + "projection": true, + "sha256": "dcc349d969fd4fea74ac920b2c4f6f1981925770aa7370dadc8c8aec15b3a9e0" + }, + { + "bytes": 3865, + "original_bytes": 5026, + "original_sha256": "21f63788ea07913666bb6ab2ab5c961174dd6787bd2af2f3fa14e8b3490bdf8b", + "path": "final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/RECEIPT.json", + "projection": true, + "sha256": "bc051774fbfd43757243cf1b4d861a63a8a6f0468590101d6234c7be41345589" + }, + { + "bytes": 404, + "original_bytes": 404, + "original_sha256": "67acf164f0f1767d666850ca63215fd84d9ed6fa15880522871dd09b03cccc49", + "path": "final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/START.json", + "projection": false, + "sha256": "67acf164f0f1767d666850ca63215fd84d9ed6fa15880522871dd09b03cccc49" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/stderr.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/stdout.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 2490, + "original_bytes": 3651, + "original_sha256": "9a35f038c9d9afeb620f9b93362cc2eef4223d74f2aa1abbd393b1eb3e475584", + "path": "final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/PREFLIGHT.json", + "projection": true, + "sha256": "052276ed2332d78fd767da854c7790e33ea47c4af61b8317c2f7c5aa931d83d3" + }, + { + "bytes": 2511, + "original_bytes": 3672, + "original_sha256": "e4a7e5bb7a17d942e99938d3e57da1afce6763f618ef5daaa73942da4639c702", + "path": "final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/PROCESS_START.json", + "projection": true, + "sha256": "feec32c7c1c2e3adef6344a2ac121c7ea5ea0b70e190e61e173890ac27162c26" + }, + { + "bytes": 4113, + "original_bytes": 5274, + "original_sha256": "e42f724b4b6d976a00a4a2b37f874c504c4b2f127744e2456c2cc905812d78b2", + "path": "final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/RECEIPT.json", + "projection": true, + "sha256": "cc1068b2cbe7c92a07cef8cab345c39bd5c07f4c189dc60e86090ac251b26ebc" + }, + { + "bytes": 410, + "original_bytes": 410, + "original_sha256": "52335c737acf043bb2914845d53a99b7e33c871fb3c49cd546aa25f06ef0b9de", + "path": "final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/START.json", + "projection": false, + "sha256": "52335c737acf043bb2914845d53a99b7e33c871fb3c49cd546aa25f06ef0b9de" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/stderr.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/stdout.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 2591, + "original_bytes": 3752, + "original_sha256": "036dc731b72d0912f7c99e48707716e867d8f946c28207751ff0d103a8286e18", + "path": "final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/PREFLIGHT.json", + "projection": true, + "sha256": "2d4cf99c90dd02ece6a889da578f2bf953b3ac634d39b6c373f11606d405f9c5" + }, + { + "bytes": 2612, + "original_bytes": 3773, + "original_sha256": "ff3af6f40f35ba28e3b0e5e0533a42d65fadd9c307c4422bf65e6bb25f1e12cb", + "path": "final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/PROCESS_START.json", + "projection": true, + "sha256": "3be9ee95cab7013532c6f3f1c46c725248081c5fae74ce67ca3a773896f7801a" + }, + { + "bytes": 4316, + "original_bytes": 5477, + "original_sha256": "ed1bcedb2449d22777a4e5f4e88a0f1aa8e74fddf5a7821d599a4902c2227fcb", + "path": "final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/RECEIPT.json", + "projection": true, + "sha256": "85330cbda8d4b72d1b36a6e14232221a5160a171b318652f3ea3bdcd111871fb" + }, + { + "bytes": 410, + "original_bytes": 410, + "original_sha256": "5622baecd271b915b9fe7b2fb0f57909516b3dda6954a31d5b5a9df89a992fc4", + "path": "final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/START.json", + "projection": false, + "sha256": "5622baecd271b915b9fe7b2fb0f57909516b3dda6954a31d5b5a9df89a992fc4" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/stderr.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/stdout.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 2698, + "original_bytes": 3859, + "original_sha256": "b7b9ba1d8108648da4b6398aa870c5d9030294a6f11d85fcd1035ba5f9c889c7", + "path": "final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/PREFLIGHT.json", + "projection": true, + "sha256": "d50ba2c77f91b9ea6163b512e1b1101ee37c9ee84cd5dfe694b3dcc8bc9b06b0" + }, + { + "bytes": 2719, + "original_bytes": 3880, + "original_sha256": "abb04681ff5b2a72edd51779d51418330a3015b168dd0e48c71a8baa36248c07", + "path": "final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/PROCESS_START.json", + "projection": true, + "sha256": "5ade20a1c127e70719a3237109e8da7d3623f2e6d27e77a7243703142e194504" + }, + { + "bytes": 4528, + "original_bytes": 5689, + "original_sha256": "7d9ed09f2663e857207fa18a4c82342efa8c3f72458102d1c39b0396aad86dc4", + "path": "final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/RECEIPT.json", + "projection": true, + "sha256": "becc181a71fdd65f29a535ba7bbd0ce924c4dda01b0ebbed7be7db3fa5f30428" + }, + { + "bytes": 412, + "original_bytes": 412, + "original_sha256": "e85d1d15f314d668bbb9f20b905841f45924baf8c182a02295d3ebcf568507e0", + "path": "final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/START.json", + "projection": false, + "sha256": "e85d1d15f314d668bbb9f20b905841f45924baf8c182a02295d3ebcf568507e0" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/stderr.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 19899, + "original_bytes": 19899, + "original_sha256": "9f41da11dc9c082106bba058a36649e6886c8f8334ad0b9917fb1b58fd434be8", + "path": "final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/stdout.txt", + "projection": false, + "sha256": "9f41da11dc9c082106bba058a36649e6886c8f8334ad0b9917fb1b58fd434be8" + }, + { + "bytes": 2663, + "original_bytes": 3662, + "original_sha256": "1d1357052c10bef7061f076b58d67170a98e5def21b8164c22f04ca50c7095f3", + "path": "final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/PREFLIGHT.json", + "projection": true, + "sha256": "d21281f6ac5d4a22431a80a14274fe870d8e5e0e1c3d25b88df35d5d8f5e9c39" + }, + { + "bytes": 2684, + "original_bytes": 3683, + "original_sha256": "1d22f71d247fd59cd44115f20e60cc80acf6a05f837655586d5d370a293854d9", + "path": "final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/PROCESS_START.json", + "projection": true, + "sha256": "e058f5ce72c40e0deedeb7c37dc83ca69369a8e64e63414e325f72cbc74827a4" + }, + { + "bytes": 4490, + "original_bytes": 5489, + "original_sha256": "b8892c46f304a0a9e38297c9c482e6a3c0840aeae4ee4993b96aee75f1b9723c", + "path": "final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/RECEIPT.json", + "projection": true, + "sha256": "77494c3e412131dff99f87bc46f3baa1e6034a00923fbddd9591065b6799370d" + }, + { + "bytes": 411, + "original_bytes": 411, + "original_sha256": "ea3ac5815dad66a7bb1565b109fd5a01f7c7bda9995a824c54ed9d0535ed8708", + "path": "final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/START.json", + "projection": false, + "sha256": "ea3ac5815dad66a7bb1565b109fd5a01f7c7bda9995a824c54ed9d0535ed8708" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/stderr.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 30, + "original_bytes": 30, + "original_sha256": "45f60f1684b28ba972f88effa7b1e1c2d741ac55c3ed59132b0a3095d2a4fdd7", + "path": "final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/stdout.txt", + "projection": false, + "sha256": "45f60f1684b28ba972f88effa7b1e1c2d741ac55c3ed59132b0a3095d2a4fdd7" + }, + { + "bytes": 2663, + "original_bytes": 3662, + "original_sha256": "6f55de00868bf3c4bd326176c829580e3112f3a08d1c4e9f55a79aef9874fd00", + "path": "final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/PREFLIGHT.json", + "projection": true, + "sha256": "4cd72751676a68700a0be77b61183a056cd4b8806f82df9aab20a784aab58034" + }, + { + "bytes": 2684, + "original_bytes": 3683, + "original_sha256": "4e1b9cdd872a9fc6a60ad0100674fcaef6b15faa2c331c4cb9f0a934af07305e", + "path": "final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/PROCESS_START.json", + "projection": true, + "sha256": "d8340ef1a3f6e9791b014a3e462ad6e719b60d030bb19df3da76751284c35f44" + }, + { + "bytes": 4490, + "original_bytes": 5489, + "original_sha256": "177eb12fefb8d0a623a67f32e15cfa5267d862fc616a2d908cbebada0b13cda4", + "path": "final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/RECEIPT.json", + "projection": true, + "sha256": "19591badd337def0357b4428b9ba299daa8a48e6c0f36ffbd2177e4f45f5ae3b" + }, + { + "bytes": 411, + "original_bytes": 411, + "original_sha256": "9199c32c63f7769de4da1bedae9741962dbead3f387697f210fd90479dedeba9", + "path": "final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/START.json", + "projection": false, + "sha256": "9199c32c63f7769de4da1bedae9741962dbead3f387697f210fd90479dedeba9" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/stderr.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 30, + "original_bytes": 30, + "original_sha256": "af3cb6aebcad4de406c82675aec952a343ad4e0f8cee0d9192e267ed6016f578", + "path": "final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/stdout.txt", + "projection": false, + "sha256": "af3cb6aebcad4de406c82675aec952a343ad4e0f8cee0d9192e267ed6016f578" + }, + { + "bytes": 2667, + "original_bytes": 3666, + "original_sha256": "c2572cf78002cabe9e3d5d236b5694ed490a8f3a02410a386337a36457897395", + "path": "final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/PREFLIGHT.json", + "projection": true, + "sha256": "7768bcfcb4d1880961255b078588fad19cfde263c6c454dda651a84443cf2321" + }, + { + "bytes": 2688, + "original_bytes": 3687, + "original_sha256": "7806a2b201ef410be2f65146e286a8414778c1b5dc8325b8cd3f7624e1f52cb9", + "path": "final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/PROCESS_START.json", + "projection": true, + "sha256": "19b9e751d62d804fbba48249f9083db240dc751f2efb88fef1d206f4f24908d7" + }, + { + "bytes": 4496, + "original_bytes": 5495, + "original_sha256": "7399c066c1e7dc544a23ded914c8f8c867d67bb93c1878bacba3fd944990769e", + "path": "final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/RECEIPT.json", + "projection": true, + "sha256": "374f126452e7e36b18e483b726829dd7496586d5f6b404bb8477cd365389d5b8" + }, + { + "bytes": 413, + "original_bytes": 413, + "original_sha256": "1a1dd7e9e0585df6d8cbd3e8e53e7e8192cc387b2f7bfd97e39f2f4f216cac33", + "path": "final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/START.json", + "projection": false, + "sha256": "1a1dd7e9e0585df6d8cbd3e8e53e7e8192cc387b2f7bfd97e39f2f4f216cac33" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/stderr.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 32, + "original_bytes": 32, + "original_sha256": "1a7ed056c90d4e8e393b9b622afd31a5bc6b4ceed37d0943a4a2e3f92246c387", + "path": "final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/stdout.txt", + "projection": false, + "sha256": "1a7ed056c90d4e8e393b9b622afd31a5bc6b4ceed37d0943a4a2e3f92246c387" + }, + { + "bytes": 14011, + "original_bytes": 14011, + "original_sha256": "1d5d93787c92826c9e1950125962e93db4a634c3898242400c63005b62945ec1", + "path": "final_master.py", + "projection": false, + "sha256": "1d5d93787c92826c9e1950125962e93db4a634c3898242400c63005b62945ec1" + }, + { + "bytes": 2184, + "original_bytes": 2376, + "original_sha256": "482d1e7444fe1b25ee40caf3b610197d7b729cdb21ad649dee4db537b36d41fc", + "path": "negative-final/RECEIPT.json", + "projection": true, + "sha256": "017b1d5d55e1b082527504b507d5b258b875a16f0374fa58e0c793d4f0f1cbf6" + }, + { + "bytes": 1683, + "original_bytes": 1875, + "original_sha256": "b9e9070d2def79f48f3938b2bd2eb70910a9b0d370ebd7adce2e88067ef4aefb", + "path": "negative-final/START.json", + "projection": true, + "sha256": "8ed76779c8722842fd8e4e40092c8de23dd74e44f18b32cf7bc53c81bed94d0f" + }, + { + "bytes": 0, + "original_bytes": 0, + "original_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "path": "negative-final/stderr.txt", + "projection": false, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "bytes": 261, + "original_bytes": 342, + "original_sha256": "2606cce55be96a1c241544374a6790e472c61b57ba369966f4a1e05649b4b10a", + "path": "negative-final/stdout.txt", + "projection": true, + "sha256": "6c43baa3ab1422b40156052baddcfb7d68ee93b54611d7c72ec0c78ba851d0f6" + }, + { + "bytes": 455, + "original_bytes": 455, + "original_sha256": "4c9726b692dbb83237b82344e7b5aab621749da6da699c0187cf9893dca8d80f", + "path": "negative-project/WithoutMorse.lean", + "projection": false, + "sha256": "4c9726b692dbb83237b82344e7b5aab621749da6da699c0187cf9893dca8d80f" + }, + { + "bytes": 4086, + "original_bytes": 4086, + "original_sha256": "72bbe39334fa2a7b09d621f81f6211e9a4019804b949f4ea2576e1c4f2927451", + "path": "prepare_final_inputs.py", + "projection": false, + "sha256": "72bbe39334fa2a7b09d621f81f6211e9a4019804b949f4ea2576e1c4f2927451" + }, + { + "bytes": 16751, + "original_bytes": 16919, + "original_sha256": "105e6b528746110b5582dd4626f7055f1cc2869106c51974409c55c68dfb49c4", + "path": "reviews/MAIN_SOURCE_REVIEW.md", + "projection": true, + "sha256": "37672f6fe5e5a2d288bccb034a8666fda96e20d1a1fbb5d2d3a0ca321aee9721" + }, + { + "bytes": 23213, + "original_bytes": 23405, + "original_sha256": "3521b066c00d6e015d560f49311caabd31a4d2b826cdfcf9221085ac55d01a2c", + "path": "reviews/NONAUTHOR_REVIEW.md", + "projection": true, + "sha256": "eabbf304725165339dec532b1103455dc8842850812ca55970f13b3957c04e76" + }, + { + "bytes": 11815, + "original_bytes": 12013, + "original_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "path": "run_final_phase.py", + "projection": true, + "sha256": "1f5175fb7d95e0ccdc3d68aeaa872604b217ffba3b2865726bab8164fb2c983a" + }, + { + "bytes": 1538, + "original_bytes": 1538, + "original_sha256": "8cb8a75b384c0c84f1a000f217616a3d99710b34bf2e04237b65f220ff9302ce", + "path": "run_final_sequence.py", + "projection": false, + "sha256": "8cb8a75b384c0c84f1a000f217616a3d99710b34bf2e04237b65f220ff9302ce" + }, + { + "bytes": 3205, + "original_bytes": 3205, + "original_sha256": "cb5a8db15b5b5881463fc5e6faea7f38c3de0a3f7e56b6fd9001f3326a815faa", + "path": "run_negative.py", + "projection": false, + "sha256": "cb5a8db15b5b5881463fc5e6faea7f38c3de0a3f7e56b6fd9001f3326a815faa" + } + ], + "meaning": "All source/proof bytes exact. Only local path prefixes in execution/review records are replaced with symbolic roots. Embedded original hashes bind native bytes, not changed projected text; this manifest distinguishes both. No scientific promotion.", + "schema": "c293-public-projection-v1" +} diff --git a/frontiers/morse_finite_critical_20261018/PUBLIC_SOURCE_BINDINGS.json b/frontiers/morse_finite_critical_20261018/PUBLIC_SOURCE_BINDINGS.json new file mode 100644 index 000000000..9954916d3 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/PUBLIC_SOURCE_BINDINGS.json @@ -0,0 +1,33 @@ +{ + "schema": "c293-source-bindings-v1", + "sources": [ + { + "module": "Lifetime", + "frozen_source_repo": "d6g8k5htny-coder/Math-", + "frozen_source_commit": "db43694c9f9dbff2987e2e3c0a1260b5c48310ec", + "frozen_source_path": "frontiers/source_lifetime_realization_20261017/inputs/Lifetime.lean", + "current_read_commit": "b6fc0e64d75712f52afffc3f3a07ae52f4a5b782", + "current_source_path": "specifications/lean_statements_20261010/Specifications/Lifetime.lean", + "git_blob": "f2508f7f2e3fd42f22f5aa52bc5ead5ff9e73b9a", + "bytes": 51383, + "sha256": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "source_method": "Exact reused hash-verified bytes; current native repository blob/path verified by bounded preflight, unchanged." + }, + { + "module": "TorusTopology", + "frozen_source_repo": "d6g8k5htny-coder/Math-", + "frozen_source_commit": "c8ec07034608741585111603f1b506393c340908", + "frozen_source_path": "companions/torus_filtration_20261011/TorusTopology.lean", + "current_read_commit": "b6fc0e64d75712f52afffc3f3a07ae52f4a5b782", + "current_source_path": "companions/torus_filtration_20261011/TorusTopology.lean", + "git_blob": "ed678ea322fe5315b3aaff44e4e2f06b018399d8", + "bytes": 12257, + "sha256": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1", + "source_method": "Exact reused hash-verified bytes; current native repository blob/path verified by bounded preflight, unchanged." + } + ], + "lean": "4.34.1", + "mathlib_commit": "d13f23b723b8a846827a245b89c10fc7d3f11612", + "current_cut_scope": "Current means the explicit preflight cut, not a timeless latest pointer.", + "execution": "PASS actual five frozen builds, three standard named-module kernel replays, complete169axiom census, missingMorsepremise rejection and scoped nonauthor review; LOCAL_ONLY_NOT_REGISTERED_IN_HOSTED_FORMAL." +} diff --git a/frontiers/morse_finite_critical_20261018/README.md b/frontiers/morse_finite_critical_20261018/README.md new file mode 100644 index 000000000..51c3360af --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/README.md @@ -0,0 +1,64 @@ +# C293: finite literal critical classes on the torus + +For every natural dimension `d`, real `L > 0`, and literal smooth, `L`-periodic, +Morse-distinct `g : E d → ℝ`, the image of **all** literal critical points under +C263's actual lattice quotient projection is finite. The core theorem needs +only nondegeneracy at critical points, not the distinct-height conjunct. + +The exact Lean theorem is +[`TorusMorseFinite.quotientCriticalSet_finite`](final-project/MorseFiniteCritical.lean). +Its conclusion is `(torus_proj d L hL '' {x | IsCriticalPoint d g x}).Finite`. +The implementation is 9,445 bytes, SHA-256 +`95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b`. +It keeps the literal `Lifetime` predicates and `TorusTopology` quotient. It +does not accept a finite critical list or invertibility certificate as an input. + +Actual local verification completed on Lean 4.34.1 and pinned Mathlib +`d13f23b723b8a846827a245b89c10fc7d3f11612`: five isolated module builds, +warnings-as-errors for the three new modules, and three standard named-module +`leanchecker -v` replays passed. The complete module-origin transitive axiom +census covers 169 unique declarations (103/38/20/8) and contains only +`propext`, `Classical.choice`, and `Quot.sound`. This was standard kernel replay, +not `--fresh`, external verification, or a fresh proof check of every import. + +The [nonauthor review](reviews/NONAUTHOR_REVIEW.md) gives +`ACCEPT_SCOPED_FORMAL`. [Compiled mathematical controls](final-project/MorseFiniteControls.lean) +show why symmetry and smoothness cannot simply be dropped. The separate +[missing-premise control](negative-project/WithoutMorse.lean) actually fails +with the expected absent `IsMorseDistinct` argument; this interface rejection +is not itself a counterexample theorem. Full execution receipts and output are +under `final-runs/` and `negative-final/`. + +OpenAI Codex `/root/adapter_feasibility_c292` authored the proof, `/root` authored +controls and orchestrated execution/custody, `/root/current_pr_triage_c292` +assisted infrastructure/preflight, and `/root/c292_geometry_review` performed +the substantive nonauthor review, all delegated for Dylan Roy. The reviewer +was exposed to source/design and C292; organizational independence and human +review credit are zero. Dylan is not represented as personally reviewing it. + +This closes one formal dependency of the frozen conventional C292 adapter +([PR 479](https://github.com/d6g8k5htny-coder/Math-/pull/479)). It does not prove +almost-sure Morse behavior, critical closed-superlevel local path connectivity, +critical-level path attainment, the full C292 Lean adapter, elder pairing, +exhaustive once-counted finite ordinary persistence bars, an all-small-bars +converse, or regional shrinking multiple-witness collision bounds. It gives +no uniform critical-count bound. Scientific acceptance remains unchanged. + +Next useful task: freshly scope and claim the literal critical-level +closed-superlevel geometry/path-attainment dependency, preserving existing +companion, kernel and registration owners. The broader research and project +audit remain active. + +See [author argument](AUTHOR_NOTES.md), [root check](evidence/ROOT_MATHEMATICAL_CHECK.md), +[scope](SCOPE.md), [source bindings](PUBLIC_SOURCE_BINDINGS.json), +[replay instructions](REPLAY.md), and [preserved execution history](evidence/EXECUTION_HISTORY.md). +`PUBLIC_PROJECTION.json` distinguishes exact native bytes from local-path-only +projections of receipts. Original hashes in projected records refer to native +bytes; the projection manifest separately hashes the published bytes. Private +Drive locators and local machine paths are withheld. + +This new formal unit is **not registered in hosted formal CI**. Any hosted +checks on this draft PR cover the existing registered target set and repository +gates. Local C293 execution, hosted existing-target checks, byte custody and +scientific acceptance remain separate. Subsequent exact-head CI/custody/native +registration receipts belong to the PR's append-only terminal delivery comment. diff --git a/frontiers/morse_finite_critical_20261018/REPLAY.md b/frontiers/morse_finite_critical_20261018/REPLAY.md new file mode 100644 index 000000000..83e6bcb87 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/REPLAY.md @@ -0,0 +1,33 @@ +# Replaying the finite-class unit + +Use Lean 4.34.1 and a Mathlib project pinned to +`d13f23b723b8a846827a245b89c10fc7d3f11612`. The complete native dependency +manifest and artifact census are retained in the private immutable handoff. +Our run reused 83,897 prior byte hashes through unchanged size/mtime/inode and +an exact path-set check; it did not freshly rehash every dependency byte. + +Use an empty output directory, place it first in `LEAN_PATH`, followed by the +compiled import roots of the pinned Mathlib project. Compile in this order: +`Lifetime`, `TorusTopology`, `MorseFiniteCritical`, `MorseFiniteControls`, +`MorseFiniteAxiomAudit`. For each module use the source in `final-project/` and +an output `.olean` in the empty output directory. Actual command shape: + +```sh +lean -j2 -M4096 -DwarningAsError=true -o "$OUT/MorseFiniteCritical.olean" final-project/MorseFiniteCritical.lean +leanchecker -v MorseFiniteCritical +leanchecker -v MorseFiniteControls +leanchecker -v MorseFiniteAxiomAudit +lean -j2 -M4096 negative-project/WithoutMorse.lean +``` + +Warnings-as-errors applied to all three new modules; the unchanged two inputs +also built with empty stdout/stderr. Audit output must include all 169 unique +module-origin declarations and the terminal standard-only count. The last +command must reject the omitted Morse premise with a type mismatch, not an +import, syntax, timeout or tool failure. Inspect the full raw output and source +identities, not just an exit status. + +The included run scripts are path-projected records of the actual local +orchestrator, not a portable one-command installer. Symbolic `$C293_ROOT`, +`$LEAN_RUNTIME`, `$PINNED_PROJECT`, `$WORK_ROOT` identify replaced local prefixes. +No hosted workflow or registered target is added by this evidence package. diff --git a/frontiers/morse_finite_critical_20261018/ROOT_ACCEPTANCE.json b/frontiers/morse_finite_critical_20261018/ROOT_ACCEPTANCE.json new file mode 100644 index 000000000..50a67abcd --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/ROOT_ACCEPTANCE.json @@ -0,0 +1,18 @@ +{ + "verdict": "ACCEPT_SCOPED_FORMAL", + "source_sha256": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "source_inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "review_path": "reviews/NONAUTHOR_REVIEW.md", + "review_sha256": "3521b066c00d6e015d560f49311caabd31a4d2b826cdfcf9221085ac55d01a2c", + "organizational_independence_credit": 0, + "human_review_credit": 0, + "scientific_effect": "NONE", + "accepted_utc": "2026-10-18T03:22:39.321465+00:00", + "root": "OpenAI Codex /root delegated for Dylan Roy", + "author": "OpenAI Codex /root/adapter_feasibility_c292", + "reviewer": "OpenAI Codex /root/c292_geometry_review", + "exposure": "Same-provider, C292/source/design exposed substantive nonauthor review; root read full223line main and controls plus final23405byte review.", + "new_formal_execution": "LOCAL_ONLY_NOT_REGISTERED_IN_HOSTED_FORMAL", + "kernel_scope": "standard named-module leanchecker -v; not --fresh/external/all-import fresh proof check", + "next_task": "Fresh source-owned critical closed-superlevel local path connectivity/path attainment; full audit remains active." +} diff --git a/frontiers/morse_finite_critical_20261018/SCOPE.md b/frontiers/morse_finite_critical_20261018/SCOPE.md new file mode 100644 index 000000000..48732cf49 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/SCOPE.md @@ -0,0 +1,63 @@ +# C293 — literal Morse critical classes on the actual torus + +Status: ACCEPT_SCOPED_FORMAL for the exact deterministic theorem and completed +local build/kernel/axiom/negative-control evidence. Public/private custody and +registration are separately recorded in the terminal delivery receipt. + +The single target is the deterministic finiteness of the image of **all** literal +critical points under C263's actual period-lattice projection. It is a formal +dependency of the conventional C292 compact-Morse elder adapter. C292 itself is +frozen and is not reopened by this work. + +For a natural dimension d, a fixed real L > 0 and g : E d → ℝ, the proved +theorem consumes the unchanged Lifetime predicates IsSmooth, IsLPeriodic and +IsMorseDistinct. The core uses only the nondegeneracy conjunct of IsMorseDistinct; +distinct critical heights are not required for this finite-set conclusion. The +Euclidean space, scalar field ℝ and latticeVec normalization remain literal. +The result includes d = 0. There is no stochastic sample, homology coefficient +field, density normalization or exchange of limits in this deterministic unit. + +The proof chain identifies the literal iterated second derivative with the +derivative of fderiv; derives symmetry from smoothness; proves injectivity using +complementary positive/negative subspaces without assuming orthogonal cross +terms; constructs the required continuous linear equivalence; applies the +inverse function theorem to isolate critical points; derives derivative +periodicity; descends it to the actual quotient; and proves its zero set closed +and discrete in that compact quotient. The zero set is proved equal to the image +of all literal Euclidean critical points. This is not a chosen event list or a +finite subset offered as a substitute for the target. + +Source ownership is preserved. Lifetime.lean and TorusTopology.lean are exact +read-only copies of owner-controlled sources, with byte/SHA-256/Git-blob bindings +in SOURCE_INPUTS.json. No component-kernel, companion, formal registration, +workflow, public-site or policy source is changed. The candidate publication +prefix is frontiers/morse_finite_critical_20261018/ in Math-. + +The formal author is OpenAI Codex /root/adapter_feasibility_c292, delegated for +Dylan Roy. Root provides controls and execution/custody infrastructure. The +designated nonauthor is OpenAI Codex /root/c292_geometry_review, already exposed +to C292 and the C293 source/API feasibility discussion and prospective controls. +The reviewer did not write the main proof. Same-provider organizational +independence credit is zero; human review is not claimed. No one represents +Dylan as having personally performed these AI reviews. + +Completed local verification includes actual elaboration on exact pinned sources, +warnings-as-errors for new final modules, a complete module-origin transitive +axiom census, standard named-module kernel replay, substantive exact-artifact +nonauthor review, mathematical counterexamples and a missing-premise rejection. +Reused dependency hashes and current metadata/deltas are reported as such; a +cache identity receipt is not a fresh rehash of every imported object. + +This unit does not derive the almost-sure Morse property of the field. It does +not provide a smooth Morse normal form, local path connectivity of critical +closed superlevels, critical-level path attainment, the full C292 formal +adapter, actual elder pairing, branch adjacency, exhaustive once-counting of +finite ordinary bars, the all-small-bars converse or regional shrinking +multiple-witness collision bounds. In particular global factorial estimates +do not close the regional collision node. A finite set supplies no explicit +uniform cardinal bound or probabilistic estimate. + +The next mathematical dependency after a successful finite-class delivery is +the source-bound critical-level closed-superlevel geometry and path-attainment +step. Its ownership and available inputs must be checked afresh before pickup. +The project-wide audit and larger research objective remain active. diff --git a/frontiers/morse_finite_critical_20261018/evidence/EXECUTION_HISTORY.md b/frontiers/morse_finite_critical_20261018/evidence/EXECUTION_HISTORY.md new file mode 100644 index 000000000..674c8f5c0 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/evidence/EXECUTION_HISTORY.md @@ -0,0 +1,36 @@ +# Preserved execution and aggregation corrections + +The first complete author proof compiled with four deprecated alias warnings. +Replacing only those aliases produced the frozen 9,445-byte clean proof; both +author attempts and their logs remain in the immutable native handoff. The +first root control attempt failed at scalar-product simplification and pair +syntax; the corrected source compiled cleanly and is included here. + +The development axiom census reached its 240-second timeout. Its failure is +preserved. The final audit phase alone received a 900-second bound informed by +an actual earlier 458.5-second census; the present final audit completed in +173.75 seconds. This does not assert that 900 seconds was fully needed. + +Final preparation twice stopped before freezing/building: it first incorrectly +required a compiled library directory for the uncompiled `Cli` package, then +compared Path-ordering to string-ordering despite identical 83,897 unique +artifact sets. Pin checks were retained, actual existing import roots were +used, and both sides were compared in canonical string order. Unique failed +starts and diagnostic evidence remain preserved. The third preparation +succeeded. All eight final execution phases passed without a failed final run. + +Before the first artifact-master invocation, the nonauthor reviewer found that +its initial line-by-line census regex missed wrapped axiom lists (131 rather +than 169 declarations). The author replaced only that aggregation block with +a bounded full-text parser and raw-marker completeness checks. The exact +AST-extracted block passed the actual full census and rejected six malformed +controls. This check did not invoke or consume the final master. The master +still verifies artifact bindings; it is not a proof engine. + +The first early native checkpoint used a non-UUID identifier and is retained as +history, not a valid R17 event. A later proper-UUID checkpoint explicitly +corrected it; the original valid claim was unaffected. The scheduled 02:45 +checkpoint was missed and reported at the actual 02:57 renewal without +backdating. A subsequent actual 03:19 checkpoint was recorded before the +03:30 deadline. Transient transport failures were preserved and checked through +bounded readback; they are not credential or code failures. diff --git a/frontiers/morse_finite_critical_20261018/evidence/MASTER_CONTRACT.md b/frontiers/morse_finite_critical_20261018/evidence/MASTER_CONTRACT.md new file mode 100644 index 000000000..dbe5ceaf8 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/evidence/MASTER_CONTRACT.md @@ -0,0 +1,56 @@ +# C293 final master artifact contract + +`final_master.py` is an engineering artifact verifier. It consumes completed local build/kernel/audit/negative-control evidence and remote/custody readbacks. It does not run Lean, leanchecker, a network request, or a mathematical proof. Its only child process is the established canonical delivery builder's read-only `verify` operation. Author implementation of this verifier is not another nonauthor mathematical review. + +The script is deliberately not executed during authoring. It may be invoked once only after every record below exists and is final. It exclusively creates `FINAL_MASTER_START.json` and `FINAL_MASTER.json`. The start marker is created with exclusive creation before verification. Any later caught exception, including an interrupt, creates a `HOLD_ARTIFACT_VERIFICATION` result containing the error and checks so far. A second invocation refuses without modifying previous evidence. Successful status is `PASS_ARTIFACT_VERIFICATION_NOT_THEOREM_PROOF`, with `scientific_effect: NONE`. + +## Exact local evidence + +- `FINAL_SOURCE_INVENTORY.json` must retain SHA-256 `f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de`. It identifies exactly `Lifetime`, `TorusTopology`, `MorseFiniteCritical`, `MorseFiniteControls`, and `MorseFiniteAxiomAudit`. Each named `.lean` must match the inventory's bytes and hash in both `project/` and `final-project/`; the latter contains exactly these five files. +- `SOURCE_INPUTS.json` retains its actual two-row schema. It binds the two immutable dependency sources, `Lifetime.lean` and `TorusTopology.lean`, using `project_path`, `bytes`, `sha256`, `blob`, and `verified_blob`. Five final sources does not mean five immutable upstream input rows. The three new sources are bound by the exact final inventory, successful receipts, and later publication Git blobs. +- `FINAL_DEPENDENCY_ARTIFACTS.json` and `run_final_phase.py` match the hashes already fixed by the final inventory. The master checks receipt dependency census cardinalities and the recorded inventory binding; it does not freshly rehash the shared dependency cache. The execution wrapper's explicit C291-byte-hash/metadata-reuse qualification remains in force. +- `FINAL_SEQUENCE_START.json` and `FINAL_SEQUENCE_RESULT.json` match the final inventory. The start binds the current `run_final_sequence.py` hash. The result must be `PASS_FROZEN_BUILD_AND_STANDARD_KERNEL_REPLAY`, with precisely the five ordered builds followed by the three ordered new-module kernel phases, all exit code 0. +- `final-runs/*/RECEIPT.json` must contain exactly eight unique phase receipts, matching those phases. Each has `status: PASS`, `returncode: 0`, `timed_out: false`, `process_reaped: true`, the frozen runner/inventory hashes, exact source maps before/after, true unchanged flags, and the pinned executable SHA. Its stream files must match their recorded hashes. The new builds must have `-DwarningAsError=true`. Non-audit builds require empty stdout/stderr. Object maps must form an unchanged chain from no local objects to the final five-module objects. Kernels must use the standard `leanchecker -v Module` command, with no `--fresh` claim. The current `final-build/` pathset and bytes must equal the resulting map. +- The successful audit build's stdout is parsed directly using `re.finditer` over the full text, so Lean's wrapped axiom lists remain single records. An axiom-list match excludes both bracket characters internally and is bounded to 4,096 characters. Exactly the four module-origin census sections must occur once, each with its exact positive declaration count. Every declaration name is globally unique; each reported transitive axiom list is a subset of `propext`, `Classical.choice`, and `Quot.sound`; exactly one final total equals the unique declaration count. The frozen census must have 169 declarations, and every raw declaration marker must have been parsed. Every name in the frozen audit source's `required` array, including `TorusMorseFinite.quotientCriticalSet_finite`, must occur. A claimed summary JSON is not substituted for this raw census. +- `negative-final/RECEIPT.json` and its stdout/stderr use the current `run_negative.py` schema. Status must be `PASS_EXPECTED_MISSING_PREMISE_REJECTION`, nonzero return code, no timeout, all source/object bindings unchanged, and pinned Lean identity. Raw output must contain `type mismatch` and `IsMorseDistinct`, and must not contain the tested import/syntax/object-file failure markers. The source is `negative-project/WithoutMorse.lean`. This is interface rejection, not a counterexample theorem. + +## Acceptance record to produce + +`ROOT_ACCEPTANCE.json` requires these fields (additional provenance fields are welcome): + +```json +{ + "verdict": "ACCEPT_SCOPED_FORMAL", + "source_sha256": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "source_inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "review_path": "reviews/CHOSEN_FINAL_REVIEW_FILENAME.md", + "review_sha256": "ACTUAL_REVIEW_BYTES_SHA256", + "organizational_independence_credit": 0, + "human_review_credit": 0, + "scientific_effect": "NONE" +} +``` + +`review_path` is a safe path relative to C293 and selects the substantive final review artifact; the script does not invent its filename. The record must continue to disclose the actual same-provider/source-exposed review arrangement. + +## Publication, CI and custody records to produce + +`GITHUB_READBACK.json` retains C292's per-file schema: `path_prefix`, `head`, and `files`, whose rows have `relative_path`, `bytes`, `sha256`, `remote_sha256`, `raw_byte_match`, `git_blob`, and `tree_blob`. The prefix is exactly `frontiers/morse_finite_critical_20261018/`. `head` is a full 40-character lowercase commit ID. Rows have unique paths, cover exactly the local `publication-package/` files, and collectively include all five frozen source byte hashes. Each local file must match its length and SHA, actual remote SHA with `raw_byte_match: true`, and the Git blob computed from its actual bytes, identical to the native tree blob. These checks bind supplied remote readback evidence; the master itself performs no network read. + +`HOSTED_CI_READBACK.json` requires the same `head`, `scientific_effect: NONE`, and exactly three distinct jobs. Each job requires `id`, `head_sha`, `status: completed`, and `conclusion: success`; each head equals the publication head. Its new execution field is exactly: + +```json +{"new_formal_execution": "LOCAL_ONLY_NOT_REGISTERED_IN_HOSTED_FORMAL"} +``` + +Existing hosted registered-target success is not coverage of these new local formal modules. + +The archive is `C293_MORSE_FINITE_CRITICAL_DELIVERY.zip`. The canonical builder is `../continuation288/PACKET/TOOLS/research_delivery.py`, SHA-256 `88d6e30182ae682d27f4d156f6c935f8373168ca6ff14d3141cd69c4b036d3a3`. Its `verify` command must succeed. The ZIP has exactly the unique manifest-listed payload members plus its generated `DELIVERY_MANIFEST.json`. Manifest payload paths equal the complete native `PACKET/` file set, with every member byte-identical to its native file. Do not place the generated manifest into native `PACKET/` as an additional payload file. + +`PRIVATE_CUSTODY_RECEIPT.json` requires actual archive `bytes`, `sha256`, `owner_only: true`, and `actual_raw_download_equal: true`. `REMOTE_READBACK.zip` must be byte-identical to the native archive. All evidence files read by the master are SHA-256 checked again at the end of the same invocation, including frozen sources, final objects, receipts/logs, review, publication files, archive, and native packet members. No archive is rebuilt and no record is repaired by the master. + +## Focused parser correction verification before first master invocation + +The reviewer found that the initial line-by-line census parser counted only 131 of the actual 169 declarations because 38 axiom lists wrap across lines. Only the census parser was changed in `final_master.py`; the frozen Lean proof and all other master checks remain unchanged. The corrected parser was checked on actual `final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/stdout.txt`, 19,899 bytes, SHA-256 `9f41da11dc9c082106bba058a36649e6886c8f8334ad0b9917fb1b58fd434be8`. + +The check extracted the exact census statements from the script's parsed Python AST and executed only that block in an isolated in-memory namespace with a checking function and a read function restricted to the frozen audit source. It did not import the master module or call `verify()`/`main()`. The actual output passed 344 focused checks with module counts `Lifetime: 103/103`, `TorusTopology: 38/38`, `MorseFiniteCritical: 20/20`, `MorseFiniteControls: 8/8`; 169 unique declarations; and all 21 required names present. Each of six in-memory negative controls was rejected: deleted declaration, duplicate declaration, injected `sorryAx`, unclosed axiom bracket, wrong final total, and wrong module count. The standard-axiom and complete-census gates remain active. `FINAL_MASTER_START.json` and `FINAL_MASTER.json` were absent both before and after this focused verification. This is parser engineering evidence, not an additional proof execution or a consuming final-master run. diff --git a/frontiers/morse_finite_critical_20261018/evidence/ROOT_MATHEMATICAL_CHECK.md b/frontiers/morse_finite_critical_20261018/evidence/ROOT_MATHEMATICAL_CHECK.md new file mode 100644 index 000000000..ab58a37ca --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/evidence/ROOT_MATHEMATICAL_CHECK.md @@ -0,0 +1,33 @@ +# Root source check + +OpenAI Codex `/root`, delegated for Dylan Roy, read the full 223-line final +`MorseFiniteCritical.lean` and the complete control module. This is source-exposed +same-provider checking, with zero organizational independence or human credit. + +The inertia argument retains both cross terms. From a kernel vector v+w and +symmetry it derives B(v,v)=B(w,w); opposite definiteness forces each component +zero. It then constructs a real continuous-linear equivalence through Riesz +and an injective finite-dimensional endomorphism. It does not assume the +desired inverse. The inverse function theorem isolates actual zeros of fderiv. + +The global step is derivative descent onto the actual lattice quotient. The +proof establishes periodicity by differentiating the exact translation identity, +uses surjectivity to identify its zero set with the image of every literal +critical point, and obtains closedness from continuity. The open projection +sends an isolating Euclidean neighborhood to a quotient neighborhood. Any +critical class there has a critical representative in that neighborhood because +of the proved zero-set identity, so it is the chosen class. Compactness plus +closedness and discreteness proves finiteness. + +No Hessian orthogonality, smooth quotient atlas, finite events, critical-level +path, or nonempty positive dimension is silently supplied. The d=0 endpoint +is handled by the same finite-dimensional argument. Distinct heights are unused +by the core theorem. This is deterministic geometry with no probability, +sampling normalization, homology coefficient field, or limit exchange. + +The nonsymmetric signed-axis control supplies a nonzero radical despite the +opposite signs on complementary axes. The norm control exposes fderiv's default +zero at a nondifferentiable point, while explicitly making no periodicity claim. +Half-open interval noncompactness is an ancillary warning about a rejected +representative-domain route; the actual proof uses quotient descent. These +controls support the hypothesis audit and do not prove the theorem. diff --git a/frontiers/morse_finite_critical_20261018/final-project/Lifetime.lean b/frontiers/morse_finite_critical_20261018/final-project/Lifetime.lean new file mode 100644 index 000000000..f2508f7f2 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-project/Lifetime.lean @@ -0,0 +1,634 @@ +import Mathlib + +/-! +# Lifetime-track statements: parent Theorems A, B, C, the bounded remainder R and the +# planar elder lower bound / density gap (statements only) + +Scientific effect: NONE. Formal progress of every declaration here: `specified`. +Organizational-independence credit of this transcription: 0 (Anthropic / Claude). + +This module states, as `Prop`-valued definitions, the shapes of the parent lifetime +results (1.1), (1.2), (1.3) of UNIFORM_MATRIX_CAP_AND_LIFETIME.md, of the bounded +remainder (R1) of LIFETIME_REMAINDER.md, and of the planar lower bound (E2), the +two-sided rate (E4) and the compact-window density gap (E11) of +ELDER_LOWER_AND_DENSITY_GAP.md. Every statement is parametrised by interface objects +(the Gaussian field, the superlevel-bar / elder-partner relation, and the typed pair law +probability `p_r(b,k,R)`); it is a statement about whatever objects satisfy those +interfaces, and the identification of those objects with the objects of the source texts +is not part of the statement. + +This module is self-contained: it imports only Mathlib and re-declares, verbatim up to +the namespace, the shared objects of `Specifications/Field.lean` (covariance, field +interface, critical points, Hessian inertia, pairs, superlevel bars, density versions). +The duplication is deliberate at this layer and is recorded as such. + +What this module does not establish. It consists only of definitions and structures; +it states nothing as a result and proves nothing: none of the parent results, the +remainder bound or the planar bounds is shown here, and no kernel receipt about them +exists. It does not transcribe the explicit Gaussian/angular integral (15.2) for the +leading coefficient `c_{d,L}` (the coefficient is characterised only through the +leading-term asymptotics of (1.3)); it does not transcribe the regression law +`Q_{r,b,k,R}`, the typed weight `W_r`, the full normalizer `Z_r` or the marked Kac-Rice +representation (all informal in the source and taken as the interface field `p`); it +does not transcribe the reading-rule amendments bound to the parent (congruence erratum, +Section 9 replacement v1.1, wording W1, embedding radius `r < L/(4 sqrt 2)`), nor the +marked-cylinder cap support; it asserts no numerical `C`, `r_*`, `z_*`, `ell_*` or +coefficient value; it does not state Theorem A as consumed by Theorem R; and it does +not state the compact-window `O(ell^(2/3))` difference for the unrestricted densities. +The planar statements (E4) and (E11) carry the parent upper bound (1.1), for the same +typed pair law at `d = 2`, as an explicit hypothesis, as the source does ("If the precise +Theorem A upper bound in [LP] is consumed"; its Section 4 says the upper half of (E11) +consumes the parent upper bound already identified there); the direct lower bound (E2) is +unconditional, as in the source. +Nothing here promotes, reclassifies or discharges any claim, premise or obligation of +the registers; the landing disposition `REVIEWED_SCOPED` (lifetime-remainder) and the +graph classification and review disposition recorded for +`math.uniform-matrix-cap-lifetime` are transcribed from the registers by the statement +register, never re-derived here; alignment of these statements with the sources is +PENDING_INDEPENDENT_REVIEW. + +Sources (Layer 0, byte-pinned, `d6g8k5htny-coder/Math-`): +* `lifetime-parent`: commit `c39164254ad1529ed49543743598d5dcb24bab98`, path + `imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md`, + sha256 `9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7`. +* `lifetime-remainder`: commit `760340e921ac4ceda296b8118da936f1133e956e`, path + `frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md`, + sha256 `380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a`. +* `elder-lower-density-gap`: commit `6c020d6a72936632f2055122e71a7818a4ff497e`, path + `frontiers/window_multiplicity_laws_20260928/ELDER_LOWER_AND_DENSITY_GAP.md`, + sha256 `8ce05a43bde8e0d718f09e2da1ffe75d3ec5893489254afdbf5b58b602cdba0c`. +-/ + +namespace UniversalLaw.Spec.Lifetime + +open MeasureTheory + +/-! ### Shared objects, re-declared from `Specifications/Field.lean` (same text, this +namespace). The duplication is deliberate: modules of this packet import only Mathlib. -/ + +/-- The ambient Euclidean space `R^d` in which the torus `X = R^d/(L Z^d)` is realised +by `L`-periodic functions. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "On the flat torus X = R^d/(L Z^d), let f be the centered stationary Gaussian field of variance one with covariance" +Interface: none; this is the ambient space `EuclideanSpace ℝ (Fin d)`. +Does not claim: that the torus is represented by any quotient type; periodicity is a hypothesis on functions. -/ +abbrev E (d : ℕ) : Type := EuclideanSpace ℝ (Fin d) + +/-- The lattice vector `L n` for `n ∈ Z^d`, written in the standard coordinate vectors. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "K_L(z) = sum_{n in Z^d} exp(-|z+Ln|^2/2)" +Interface: none. +Does not claim: anything beyond the definition of the vector `L n`. -/ +noncomputable def latticeVec (d : ℕ) (L : ℝ) (n : Fin d → ℤ) : E d := + ∑ i, EuclideanSpace.single i (L * (n i : ℝ)) + +/-- The unnormalised periodized Gaussian (theta) sum `sum_{n in Z^d} exp(-|z+Ln|^2/2)`, +written as a `tsum` over `Z^d`. If the family were not summable the `tsum` would be `0`; +summability is a hypothesis field of `GaussianFieldInterface`. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "K_L(z) = sum_{n in Z^d} exp(-|z+Ln|^2/2)" +Interface: summability of the family is the field `GaussianFieldInterface.summable`, not derived here. +Does not claim: convergence of the sum. -/ +noncomputable def thetaSum (d : ℕ) (L : ℝ) (z : E d) : ℝ := + ∑' n : Fin d → ℤ, Real.exp (-(‖z + latticeVec d L n‖ ^ 2) / 2) + +/-- The periodized Gaussian covariance +`K_L(z) = sum_n exp(-|z+Ln|^2/2) / sum_n exp(-|Ln|^2/2)`; the denominator is the theta +sum at `z = 0`, so `K_L(0) = 1` (variance one) whenever that denominator is nonzero (the +summability field is meant to provide this; not shown here). + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "K_L(z) = sum_{n in Z^d} exp(-|z+Ln|^2/2)" +Interface: summability of both theta sums is the field `GaussianFieldInterface.summable`. +Does not claim: positivity of the Fourier coefficients (Section 2 of the source) or any property of `K_L` beyond its definition. -/ +noncomputable def periodicCovariance (d : ℕ) (L : ℝ) (z : E d) : ℝ := + thetaSum d L z / thetaSum d L 0 + +/-- The `K_L`-quadratic form `sum_{i,j} a_i a_j K_L(x_i - x_j)` of a finite real linear +combination `sum_i a_i f(x_i)` of point evaluations: its variance under a centred +stationary field with covariance `K_L`. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "let f be the centered stationary Gaussian field of variance one with covariance" +Interface: nonnegativity of this form is the field `GaussianFieldInterface.quad_nonneg`. +Does not claim: positive definiteness (Section 2 of the source). -/ +noncomputable def covQuadForm (d : ℕ) (L : ℝ) {m : ℕ} (x : Fin m → E d) (a : Fin m → ℝ) : ℝ := + ∑ i, ∑ j, a i * a j * periodicCovariance d L (x i - x j) + +/-- `L`-periodicity of a function on `R^d`: invariance under every lattice translation. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "On the flat torus X = R^d/(L Z^d), let f be the centered stationary Gaussian field of variance one with covariance" +Interface: none; this is the defining predicate of a function on the torus. +Does not claim: anything about the field. -/ +def IsLPeriodic (d : ℕ) (L : ℝ) (g : E d → ℝ) : Prop := + ∀ (x : E d) (n : Fin d → ℤ), g (x + latticeVec d L n) = g x + +/-- Smoothness of a sample path: `C^n` for every finite `n` (written without `⊤`). + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "In particular the field has a smooth version and all finite moments of its global derivative suprema exist." +Interface: smoothness of every sample path is the field `GaussianFieldInterface.smooth`. +Does not claim: existence of a smooth version, or moment bounds on derivative suprema. -/ +def IsSmooth (d : ℕ) (g : E d → ℝ) : Prop := + ∀ n : ℕ, ContDiff ℝ n g + +/-- Interface for the centred stationary Gaussian field of variance one on the torus +`R^d/(L Z^d)` with covariance `K_L`. The field is GIVEN: its probability space, its sample +paths, their smoothness and periodicity, the Gaussian law of every finite real linear +combination of point evaluations (law `gaussianReal 0 v` with `v` the `K_L`-quadratic +form) and the covariance identity are hypothesis fields, as is summability of the theta +sums. Existence of such an object is not asserted. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "On the flat torus X = R^d/(L Z^d), let f be the centered stationary Gaussian field of variance one with covariance" +Interface: every field of this structure is a given property of the field, never derived. +Does not claim: existence or uniqueness in law of the field; the Fourier representation and positive spectrum of Section 2; almost-sure Morse genericity of Section 8. -/ +structure GaussianFieldInterface (d : ℕ) (L : ℝ) where + /-- The underlying probability space (sample space). -/ + Ω : Type + -- Its sigma-algebra (square-bracket field, as in Mathlib's bundled categories). It is not + -- registered for typeclass resolution after this declaration; consumers bring it into + -- scope with `haveI := G.mΩ`. + [mΩ : MeasurableSpace Ω] + /-- The probability measure `P`. -/ + P : Measure Ω + -- `P` is a probability measure (square-bracket field). + [isProb : IsProbabilityMeasure P] + /-- The sample paths `ω ↦ f_ω : R^d → ℝ`. -/ + F : Ω → E d → ℝ + /-- Section 2 clause: "the field has a smooth version"; every sample path is smooth. -/ + smooth : ∀ ω, IsSmooth d (F ω) + /-- Section 1 clause: the field lives "On the flat torus X = R^d/(L Z^d)"; every sample path + is `L`-periodic. -/ + periodic : ∀ ω, IsLPeriodic d L (F ω) + /-- Section 1 clause: the theta sums defining `K_L` converge (taken as a hypothesis). -/ + summable : ∀ z : E d, Summable (fun n : Fin d → ℤ => Real.exp (-(‖z + latticeVec d L n‖ ^ 2) / 2)) + /-- The `K_L`-quadratic form is nonnegative (so it is a variance). -/ + quad_nonneg : ∀ {m : ℕ} (x : Fin m → E d) (a : Fin m → ℝ), 0 ≤ covQuadForm d L x a + /-- Section 1 clause: "the centered stationary Gaussian field of variance one with covariance" + `K_L`; every finite real linear combination of point evaluations has the centred Gaussian + law whose variance is the `K_L`-quadratic form. -/ + gaussian : ∀ {m : ℕ} (x : Fin m → E d) (a : Fin m → ℝ), + Measure.map (fun ω => ∑ i, a i * F ω (x i)) P = + ProbabilityTheory.gaussianReal 0 ⟨covQuadForm d L x a, quad_nonneg x a⟩ + /-- Covariance identity `E[f(x) f(y)] = K_L(x - y)` (centred, stationary). -/ + covariance : ∀ x y : E d, ∫ ω, F ω x * F ω y ∂P = periodicCovariance d L (x - y) + +/-- The Hessian of `g` at `x` as a bilinear form, through the second iterated Fréchet +derivative: `hessian d g x v w = D^2 g(x)[v, w]`. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "A maximum has d negative Hessian eigenvalues; the relevant saddle has d-1 negative and one positive eigenvalue." +Interface: none. +Does not claim: symmetry of the form (true for `C^2` functions, not stated here). -/ +noncomputable def hessian (d : ℕ) (g : E d → ℝ) (x v w : E d) : ℝ := + iteratedFDeriv ℝ 2 g x ![v, w] + +/-- Critical point: vanishing Fréchet derivative (`grad f = 0`). + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "grad f(M)=grad f(S)=0." +Interface: none. +Does not claim: differentiability of `g` at `x` (if `g` is not differentiable, `fderiv` is `0`). -/ +def IsCriticalPoint (d : ℕ) (g : E d → ℝ) (x : E d) : Prop := + fderiv ℝ g x = 0 + +/-- Sylvester-inertia encoding of "the Hessian at `x` is nondegenerate with exactly `j` +negative and `d - j` positive eigenvalues": there are complementary subspaces `V`, `W` of +dimensions `j` and `d - j` on which the Hessian form is negative definite, respectively +positive definite. Intended to agree with the eigenvalue count for symmetric (`C^2`) +Hessians; not shown here. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "The index counts negative eigenvalues." +Interface: none. +Does not claim: equivalence with an eigenvalue count for a non-symmetric form. -/ +def HessianHasInertia (d : ℕ) (g : E d → ℝ) (x : E d) (j : ℕ) : Prop := + ∃ V W : Submodule ℝ (E d), IsCompl V W ∧ + Module.finrank ℝ V = j ∧ Module.finrank ℝ W = d - j ∧ + (∀ v ∈ V, v ≠ 0 → hessian d g x v v < 0) ∧ + (∀ w ∈ W, w ≠ 0 → 0 < hessian d g x w w) + +/-- Nondegenerate local maximum: a critical point whose Hessian has `d` negative +eigenvalues (negative definite). + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "A maximum has d negative Hessian eigenvalues; the relevant saddle has d-1 negative and one positive eigenvalue." +Interface: none. +Does not claim: that every local maximum of a sample path is nondegenerate (Morse genericity is Section 8 of the source). -/ +def IsNondegMax (d : ℕ) (g : E d → ℝ) (x : E d) : Prop := + IsCriticalPoint d g x ∧ HessianHasInertia d g x d + +/-- Index-(d-1) saddle: a critical point whose Hessian has `d - 1` negative and one +positive eigenvalue. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "A maximum has d negative Hessian eigenvalues; the relevant saddle has d-1 negative and one positive eigenvalue." +Interface: none. +Does not claim: that such a saddle is a merging saddle of any superlevel bar. -/ +def IsIndexSaddle (d : ℕ) (g : E d → ℝ) (x : E d) : Prop := + IsCriticalPoint d g x ∧ HessianHasInertia d g x (d - 1) + +/-- The pin `M = -(r/2) u` of the embedded local cylinder with axial unit vector `u`. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "M=-(r/2)u, S=(r/2)u," +Interface: none. +Does not claim: that `u` is a unit vector; this pin is an auxiliary definition consumed by no statement of this packet (the typed pair law `p` is a primitive), so it is attached to no claim. -/ +noncomputable def pinM (d : ℕ) (r : ℝ) (u : E d) : E d := + -((r / 2) • u) + +/-- The pin `S = (r/2) u` of the embedded local cylinder with axial unit vector `u`. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "M=-(r/2)u, S=(r/2)u," +Interface: none. +Does not claim: that `u` is a unit vector; this pin is an auxiliary definition consumed by no statement of this packet (the typed pair law `p` is a primitive), so it is attached to no claim. -/ +noncomputable def pinS (d : ℕ) (r : ℝ) (u : E d) : E d := + (r / 2) • u + +/-- Torus distance between two points of `R^d`: the infimum over the lattice of +`|x - y + L n|`. For `L > 0` it is intended to vanish exactly when `x` and `y` represent the +same torus point; not shown here. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "Count ordered maximum/saddle pairs with 00, and let nu_eld^all(ell) count all finite ordinary superlevel H0 persistence bars, both in expectation per unit volume." +Interface: none. +Does not claim: that the height gap of an elder pair is the persistence of a bar in any persistence module. -/ +def heightGap (d : ℕ) (g : E d → ℝ) (M S : E d) : ℝ := + g M - g S + +/-- Scaled gap `(f(M) - f(S)) / distance^3` of an ordered pair, with the torus distance. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "Count ordered maximum/saddle pairs with 00, and let nu_eld^all(ell) count all finite ordinary superlevel H0 persistence bars, both in expectation per unit volume." +Interface: none. +Does not claim: positivity of the height gap (added separately where the source requires it). -/ +def IsCandidatePair (d : ℕ) (L : ℝ) (g : E d → ℝ) (M S : E d) : Prop := + IsNondegMax d g M ∧ IsIndexSaddle d g S ∧ 0 < torusDist d L M S + +/-- Morse genericity with distinct critical values on the torus: every critical point is +nondegenerate (has some inertia) and critical points at distinct torus positions have +distinct critical values. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "Countable exhaustion now proves that Q is almost surely Morse with distinct critical values." +Interface: none; used only as a hypothesis of the elder-partner interface clause. +Does not claim: that sample paths are almost surely Morse (Section 8 of the source). -/ +def IsMorseDistinct (d : ℕ) (L : ℝ) (g : E d → ℝ) : Prop := + (∀ x : E d, IsCriticalPoint d g x → ∃ j : ℕ, HessianHasInertia d g x j) ∧ + (∀ x y : E d, IsCriticalPoint d g x → IsCriticalPoint d g y → + 0 < torusDist d L x y → g x ≠ g y) + +/-- Interface for the superlevel-set H0 persistence objects used by the lifetime track: +the maximin death height `d_f(M)`, the essential (global-maximum) class, and the ordinary +elder death partner relation. These are GIVEN relations; the fields transcribe the source +clauses that characterise them on smooth periodic functions, and the elder relation is +pinned only on the Morse distinct-value locus, exactly as the source does. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "On the Morse distinct-value locus it expresses ordinary elder death at S; an essential maximum has no older endpoint." +Interface: `deathHeight`, `IsEssential`, `ElderPartner` are given; `deathHeight_maximin`, `essential_iff`, `elderPartner_iff` are their hypothesis clauses. +Does not claim: Borel measurability of the elder event (Section 8 / the Section 9 replacement), identification with a persistence-module elder rule, or any behaviour off the Morse distinct-value locus. -/ +structure SuperlevelBarInterface (d : ℕ) (L : ℝ) where + /-- Section 8 clause: the maximin connection level + `d_f(M)=sup_{gamma(0)=M, f(gamma(1))>f(M)} min_t f(gamma(t))`. -/ + deathHeight : (E d → ℝ) → E d → ℝ + /-- The essential class: the global maximum, which "has no older endpoint" and whose + superlevel H0 bar is not finite. -/ + IsEssential : (E d → ℝ) → E d → Prop + /-- Section 1 clause: "the global ordinary superlevel elder death partner of M is S". -/ + ElderPartner : (E d → ℝ) → E d → E d → Prop + /-- `M` is essential exactly when no point is strictly higher (so the supremum in the + maximin is over an empty set, "equal to -infinity"). -/ + essential_iff : ∀ (g : E d → ℝ), IsSmooth d g → IsLPeriodic d L g → + ∀ M : E d, IsEssential g M ↔ ∀ y : E d, g y ≤ g M + /-- Section 8 maximin clause, in the form `h < d_f(M)` iff some path from `M` to a strictly + higher point stays strictly above `h`. -/ + deathHeight_maximin : ∀ (g : E d → ℝ), IsSmooth d g → IsLPeriodic d L g → + ∀ M : E d, ¬ IsEssential g M → ∀ h : ℝ, + h < deathHeight g M ↔ + ∃ y : E d, g M < g y ∧ ∃ γ : Path M y, ∀ t : unitInterval, h < g (γ t) + /-- Section 8 / Section 14 clause: on the Morse distinct-value locus, "equality + d_f(M)=f(S)" with `M` a nondegenerate maximum and `S` an index-(d-1) saddle "expresses + ordinary elder death at S". -/ + elderPartner_iff : ∀ (g : E d → ℝ), IsSmooth d g → IsLPeriodic d L g → IsMorseDistinct d L g → + ∀ M S : E d, ElderPartner g M S ↔ + (IsNondegMax d g M ∧ IsIndexSaddle d g S ∧ ¬ IsEssential g M ∧ deathHeight g M = g S) + +/-- Finite ordinary superlevel H0 bar, as an ordered pair: a nondegenerate maximum `M` +(birth) with its ordinary elder death partner `S`, an index-(d-1) saddle at positive torus +distance. The essential global-maximum class is excluded because `ElderPartner` requires +`¬ IsEssential` on the Morse locus. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "each finite superlevel H0 bar has exactly one local-maximum birth and one index-(d-1) merging-saddle death." +Interface: `I : SuperlevelBarInterface d L` is given. +Does not claim: the identification of these pairs with bars of a persistence module; that the count of such pairs equals the finite-bar count off the Morse locus. -/ +def IsFiniteBar (d : ℕ) (L : ℝ) (I : SuperlevelBarInterface d L) (g : E d → ℝ) (M S : E d) : Prop := + IsCandidatePair d L g M S ∧ 0 < heightGap d g M S ∧ I.ElderPartner g M S + +/-- The set of pairs of a population `Pair` with both points in the fundamental domain and +lifetime (height gap) in `A`; `Pair g M S` is the membership predicate of the population. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "Let nu_cand(ell) be their expected lifetime density per unit volume; let nu_eld(ell) count only pairs which are actual ordinary elder partners." +Interface: the population predicate `Pair` is a parameter. +Does not claim: finiteness of this set (a field of the density-version predicate). -/ +def pairSet (d : ℕ) (L : ℝ) (Pair : (E d → ℝ) → E d → E d → Prop) (g : E d → ℝ) (A : Set ℝ) : + Set (E d × E d) := + {p | p.1 ∈ FundDomain d L ∧ p.2 ∈ FundDomain d L ∧ Pair g p.1 p.2 ∧ heightGap d g p.1 p.2 ∈ A} + +/-- Number of pairs of the population with lifetime in `A` and base points in the +fundamental domain (`Set.ncard`, which is `0` for an infinite set). + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "Let nu_cand(ell) be their expected lifetime density per unit volume; let nu_eld(ell) count only pairs which are actual ordinary elder partners." +Interface: the population predicate `Pair` is a parameter. +Does not claim: finiteness of the counted set. -/ +noncomputable def pairCount (d : ℕ) (L : ℝ) (Pair : (E d → ℝ) → E d → E d → Prop) + (g : E d → ℝ) (A : Set ℝ) : ℕ := + Set.ncard (pairSet d L Pair g A) + +/-- `ν` is a VERSION of the expected per-unit-volume lifetime density of the population +`Pair` under the field `G`: it is nonnegative and measurable, the pair sets are almost +surely finite with integrable counts, `ν` is integrable on every Borel `A ⊆ (0, ∞)`, and +`∫_A ν = E[#pairs with lifetime in A and base point in [0,L)^d] / L^d` for every such `A`. +The source's densities are only defined up to such versions. The sigma-algebra of the sample +space is brought into scope by the inlined term-level `haveI := G.mΩ` (a square-bracket +field of a bundled record is not registered for typeclass resolution after the declaration). + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "These densities admit versions with" +Interface: the field `G` and the population predicate `Pair` are given; the Kac-Rice representation of the expectation (Sections 9-10 of the source) is NOT used; the density is characterised only by the integral identity. +Does not claim: existence of a version; the weighted Kac-Rice identity; the radial ledger (10.2). Measurability of the pair count as a function of the sample is REQUIRED by the predicate (through `Integrable`, hence `AEStronglyMeasurable`), not established here. -/ +def IsLifetimeDensityVersion (d : ℕ) (L : ℝ) (G : GaussianFieldInterface d L) + (Pair : (E d → ℝ) → E d → E d → Prop) (ν : ℝ → ℝ) : Prop := + haveI := G.mΩ + (∀ ℓ : ℝ, 0 ≤ ν ℓ) ∧ Measurable ν ∧ + (∀ A : Set ℝ, MeasurableSet A → A ⊆ Set.Ioi 0 → + (∀ᵐ ω ∂G.P, (pairSet d L Pair (G.F ω) A).Finite) ∧ + Integrable (fun ω => ((pairCount d L Pair (G.F ω) A : ℕ) : ℝ)) G.P ∧ + IntegrableOn ν A ∧ + ∫ ℓ in A, ν ℓ = (∫ ω, ((pairCount d L Pair (G.F ω) A : ℕ) : ℝ) ∂G.P) / L ^ d) + +/-! ### Populations of pairs -/ + +/-- Compact-window population of Theorem B: ordered maximum / index-(d-1)-saddle pairs with +`0 < distance <= ρ`, birth `f(M)` in `B = [bLo, bHi]` and scaled gap in `K = [kLo, kHi]`. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "Count ordered maximum/saddle pairs with 00, and let nu_eld^all(ell) count all finite ordinary superlevel H0 persistence bars, both in expectation per unit volume." +Interface: none beyond the shared predicates. +Does not claim: anything about the off-diagonal (far) population separately (Section 14 of the source). -/ +def IsUnrestrictedPair (d : ℕ) (L : ℝ) (g : E d → ℝ) (M S : E d) : Prop := + IsCandidatePair d L g M S ∧ 0 < heightGap d g M S + +/-! ### The typed pair law as an interface -/ + +/-- Interface for the weighted regression (typed pair) law: the only object consumed by the +statements is the probability `p_r(b,k,R)` that the global ordinary superlevel elder death +partner of the pinned maximum `M = -(r/2)u` is the pinned saddle `S = (r/2)u`, under the +law `Q^W = (W_r/Z_r) Q_{r,b,k,R}` with `W_r = |det H_M det H_S| 1{H_M<0, index(H_S)=d-1}`. +That law, its weight, its normalizer and the regression construction are informal in the +source and are NOT transcribed; `p` is a GIVEN function of radius `r`, birth `b`, gap mark +`k` and orthonormal frame `R` with values in `[0, 1]`. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "Let p_r(b,k,R) be the Q^W probability that the **global ordinary superlevel elder death partner** of M is S." +Interface: `p` is given; its only hypothesis fields are the bounds `0 ≤ p ≤ 1`. The parameters `G` and `I` record which field and which elder relation the law refers to; no field ties `p` to them. +Does not claim: existence of the regression law, the typed weight, the full normalizer `Z_r > 0`, or that `p` is the probability of any event under any measure declared here; that `p` depends on `G` or `I` in any way (no field mentions them; they only record which field and elder relation the law is meant to refer to). -/ +structure PairLawInterface (d : ℕ) (L : ℝ) (G : GaussianFieldInterface d L) + (I : SuperlevelBarInterface d L) where + /-- Section 1 clause: "Let p_r(b,k,R) be the Q^W probability that the global ordinary + superlevel elder death partner of M is S." -/ + p : ℝ → ℝ → ℝ → OrthonormalBasis (Fin d) ℝ (E d) → ℝ + /-- `p` is a probability: nonnegative. -/ + p_nonneg : ∀ (r b k : ℝ) (R : OrthonormalBasis (Fin d) ℝ (E d)), 0 ≤ p r b k R + /-- `p` is a probability: at most one. -/ + p_le_one : ∀ (r b k : ℝ) (R : OrthonormalBasis (Fin d) ℝ (E d)), p r b k R ≤ 1 + +/-! ### The parent statements (1.1), (1.2), (1.3) -/ + +/-- Shape of Theorem A (1.1), uniform selection candidate: for fixed `d ≥ 2`, `L > 0`, +compact `B = [bLo, bHi]` and `K = [kLo, kHi]` with `0 < kLo ≤ kHi`, there exist `r_* > 0` +and `C` (quantified OUTSIDE the universal quantifiers over `r`, `b`, `k` and the frame) +such that `0 <= 1 - p_r(b,k,R) <= C r^3` for all `0 < r ≤ r_*`, `b ∈ B`, `k ∈ K` and all +orthonormal frames `R`. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "There exist r_*>0 and C 0` and +windows `B`, `K` of positive length with `kLo > 0`, there are a distance cutoff `r_* > 0`, a +constant `c_{B,K} > 0` and a constant `C_{B,K}` such that the compact-window candidate and +elder lifetime densities admit versions `νc`, `νe` with `νc(ℓ) ~ c_{B,K} ℓ^(-1/3)`, +`νe(ℓ) ~ c_{B,K} ℓ^(-1/3)` as `ℓ ↓ 0` (filter `nhdsWithin 0 (Set.Ioi 0)`) and +`0 ≤ νc(ℓ) - νe(ℓ) ≤ C_{B,K} ℓ^(2/3)` for all sufficiently small `ℓ > 0`. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "0 <= nu_cand(ell)-nu_eld(ell) <= C_{B,K} ell^(2/3)," +Interface: `G` and `I` are given; "versions" are any `νc`, `νe` satisfying `IsLifetimeDensityVersion` (integral identity), not a Kac-Rice representation; the coefficient `c_{B,K}` is existential, not the Gaussian integral (11.3). +Does not claim: the parent result or its proof; the exact coefficient formula (11.3); existence of the versions; that the cutoff `r_*` is the one of (1.1); any numerical constant; nonauthor review or acceptance. -/ +def ParentCompactWindowDensityB (d : ℕ) (L : ℝ) (G : GaussianFieldInterface d L) + (I : SuperlevelBarInterface d L) (bLo bHi kLo kHi : ℝ) : Prop := + 2 ≤ d → 0 < L → bLo < bHi → 0 < kLo → kLo < kHi → + ∃ rStar : ℝ, 0 < rStar ∧ ∃ c : ℝ, 0 < c ∧ ∃ C : ℝ, ∃ νc νe : ℝ → ℝ, + IsLifetimeDensityVersion d L G (IsWindowPair d L rStar bLo bHi kLo kHi) νc ∧ + IsLifetimeDensityVersion d L G (IsWindowElderPair d L rStar bLo bHi kLo kHi I) νe ∧ + Asymptotics.IsEquivalent (nhdsWithin (0 : ℝ) (Set.Ioi 0)) νc + (fun ℓ : ℝ => c * ℓ ^ ((-1 : ℝ) / 3)) ∧ + Asymptotics.IsEquivalent (nhdsWithin (0 : ℝ) (Set.Ioi 0)) νe + (fun ℓ : ℝ => c * ℓ ^ ((-1 : ℝ) / 3)) ∧ + ∃ ℓStar : ℝ, 0 < ℓStar ∧ ∀ ℓ : ℝ, 0 < ℓ → ℓ ≤ ℓStar → + 0 ≤ νc ℓ - νe ℓ ∧ νc ℓ - νe ℓ ≤ C * ℓ ^ ((2 : ℝ) / 3) + +/-- `c` is a leading coefficient of the unrestricted finite-lifetime densities: `c > 0` and +versions `νc`, `νe` of the unrestricted candidate density and of the finite ordinary +superlevel H0 bar density satisfy `νc(ℓ) ~ c ℓ^(-1/3)` and `νe(ℓ) ~ c ℓ^(-1/3)` as `ℓ ↓ 0`. +The essential global-maximum class is excluded from `νe` through `IsFiniteBar`. This is the +conclusion of (1.3) for a given `c`; it characterises `c_{d,L}` by its leading-term role, +not by the integral (13.6)/(15.2). + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "There is a positive finite constant c_{d,L} such that" +Interface: `G` and `I` are given; versions are characterised by the integral identity only. +Does not claim: the explicit Gaussian/angular representation (15.2) of `c_{d,L}`; uniqueness of `c` (which follows from the asymptotics but is not stated); existence of versions. -/ +def IsUnrestrictedLeadingCoefficient (d : ℕ) (L : ℝ) (G : GaussianFieldInterface d L) + (I : SuperlevelBarInterface d L) (c : ℝ) : Prop := + 0 < c ∧ ∃ νc νe : ℝ → ℝ, + IsLifetimeDensityVersion d L G (IsUnrestrictedPair d L) νc ∧ + IsLifetimeDensityVersion d L G (IsFiniteBar d L I) νe ∧ + Asymptotics.IsEquivalent (nhdsWithin (0 : ℝ) (Set.Ioi 0)) νc + (fun ℓ : ℝ => c * ℓ ^ ((-1 : ℝ) / 3)) ∧ + Asymptotics.IsEquivalent (nhdsWithin (0 : ℝ) (Set.Ioi 0)) νe + (fun ℓ : ℝ => c * ℓ ^ ((-1 : ℝ) / 3)) + +/-- Shape of Theorem C (1.3), unrestricted finite-lifetime leading density candidate: for +fixed `d ≥ 2` and `L > 0` there is a positive finite constant `c_{d,L}` such that the +unrestricted candidate density and the finite ordinary superlevel H0 bar density (all birth +heights, all positive gap marks, all separations; essential global maximum excluded) admit +versions with `ν(ℓ) ~ c_{d,L} ℓ^(-1/3)` as `ℓ ↓ 0`. Leading term only. + +Source: d6g8k5htny-coder/Math- commit c39164254ad1529ed49543743598d5dcb24bab98 path imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md sha256 9350ad6eaba6626b93c3dedeef9e2ff816e5cdf1c8318e85fb27499141c84bc7 +Anchor: "nu_cand^all(ell) ~ c_{d,L} ell^(-1/3)," +Interface: `G` and `I` are given; versions are characterised by the integral identity only. +Does not claim: the parent result or its proof (dominated convergence of Section 13, off-diagonal bound (14.1)); the representation (15.2); the compact-window `O(ell^(2/3))` difference for the unrestricted densities; any numerical enclosure of `c_{d,L}` (the SIDE24 coefficient track is separate); nonauthor review or acceptance. -/ +def ParentUnrestrictedLeadingDensityC (d : ℕ) (L : ℝ) (G : GaussianFieldInterface d L) + (I : SuperlevelBarInterface d L) : Prop := + 2 ≤ d → 0 < L → ∃ c : ℝ, IsUnrestrictedLeadingCoefficient d L G I c + +/-! ### The bounded remainder (R1) -/ + +/-- Shape of Theorem R (R1), bounded unrestricted short-lifetime remainder: for fixed +`d ≥ 2`, `L > 0` and with `c = c_{d,L}` the parent leading coefficient (characterised here +by `IsUnrestrictedLeadingCoefficient`), there are `ell_* > 0` and `C` such that versions of +the unrestricted candidate and finite-bar densities satisfy, for `0 < ℓ ≤ ell_*`, +`|νc(ℓ) - c ℓ^(-1/3)| ≤ C`, `0 ≤ νc(ℓ) - νe(ℓ) ≤ C` and `|νe(ℓ) - c ℓ^(-1/3)| ≤ C`. +The `O(1)` remainder is stated with an explicit absolute-value bound. + +Source: d6g8k5htny-coder/Math- commit 760340e921ac4ceda296b8118da936f1133e956e path frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md sha256 380b7d0abdb0fe2de5a6564565af9560d3f1b1ce22fd5538927db0c52f4f3a4a +Anchor: "|nu_cand(ell)-c ell^(-1/3)| <= C," +Interface: `G` and `I` are given; `c` is any real satisfying the parent leading-coefficient property (the source says the coefficient "is exactly the parent's equation (15.2)"; that integral is not transcribed, so `c` is pinned through (1.3) instead); versions are characterised by the integral identity only. The statement does not mention the typed pair law: Theorem R does not consume (1.1). +Does not claim: the result or its proof (quadratic determinant cancellation (R7), coupling (R4), cap-loss bound (R12)); convergence of the remainder; a second coefficient; numerical `C` or `ell_*`; the compact-window `O(ell^(2/3))` difference without cutoffs; the parent interfaces it imports (D1-A-E); nonauthor review or acceptance. If no `c` satisfies the parent property the statement holds vacuously; that is a transcription of its dependency on (1.3), not a claim. -/ +def RemainderBoundedR1 (d : ℕ) (L : ℝ) (G : GaussianFieldInterface d L) + (I : SuperlevelBarInterface d L) : Prop := + 2 ≤ d → 0 < L → ∀ c : ℝ, IsUnrestrictedLeadingCoefficient d L G I c → + ∃ ℓStar : ℝ, 0 < ℓStar ∧ ∃ C : ℝ, ∃ νc νe : ℝ → ℝ, + IsLifetimeDensityVersion d L G (IsUnrestrictedPair d L) νc ∧ + IsLifetimeDensityVersion d L G (IsFiniteBar d L I) νe ∧ + ∀ ℓ : ℝ, 0 < ℓ → ℓ ≤ ℓStar → + |νc ℓ - c * ℓ ^ ((-1 : ℝ) / 3)| ≤ C ∧ + 0 ≤ νc ℓ - νe ℓ ∧ νc ℓ - νe ℓ ≤ C ∧ + |νe ℓ - c * ℓ ^ ((-1 : ℝ) / 3)| ≤ C + +/-! ### Planar elder lower bound and density gap (d = 2) -/ + +/-- Shape of the planar direct lower bound (E2): on the fixed planar torus (`d = 2`), with +birth `b` in a fixed compact interval, `k ∈ [kLo, kHi]` with `kLo > 0` and frames ranging +over `O(2)`, there are `c > 0` and `r_* > 0` such that `1 - p_r(b,k,R) ≥ c r^3` for all +`0 < r ≤ r_*`, uniformly in `b`, `k` and the frame. + +Source: d6g8k5htny-coder/Math- commit 6c020d6a72936632f2055122e71a7818a4ff497e path frontiers/window_multiplicity_laws_20260928/ELDER_LOWER_AND_DENSITY_GAP.md sha256 8ce05a43bde8e0d718f09e2da1ffe75d3ec5893489254afdbf5b58b602cdba0c +Anchor: "1-p_r(b,k,R) >= c r^3, 0 0` there are a distance cutoff +`r_* > 0`, constants `c_{B,K} > 0`, `C_{B,K}` and `ell_* > 0` such that versions of the +compact-window candidate and ordinary elder densities satisfy +`c_{B,K} ℓ^(2/3) ≤ νc(ℓ) - νe(ℓ) ≤ C_{B,K} ℓ^(2/3)` for all `0 < ℓ ≤ ell_*`. The parent upper +input is an explicit hypothesis, not folded into the conclusion. The lower half, which the +source derives from (E2) alone, is stated under the same hypothesis because the source displays +(E11) as one two-sided inequality; that is a hypothesis the source does not need for the lower +half, recorded here as such. + +Source: d6g8k5htny-coder/Math- commit 6c020d6a72936632f2055122e71a7818a4ff497e path frontiers/window_multiplicity_laws_20260928/ELDER_LOWER_AND_DENSITY_GAP.md sha256 8ce05a43bde8e0d718f09e2da1ffe75d3ec5893489254afdbf5b58b602cdba0c +Anchor: " <= C_{B,K} ell^(2/3). (E11)" +Interface: `G`, `I` and `PL` are given; the hypothesis `ParentUniformSelectionA 2 L G I PL bLo bHi kLo kHi` is the consumed parent upper input (a statement shape, not the parent result); versions are characterised by the integral identity only; the weighted Kac-Rice / radial ledger of [LP, Sections 9-11] that the source consumes is not transcribed. The interface does not determine `p` or the field: the Prop is a predicate on the interface objects, not a closed statement about the source's objects; nothing is asserted about its universal closure over all inhabitants, and `specified` refers to the statement shape at the source's object, which is not constructed. +Does not claim: the result or its proof; the upper half independently of the parent (1.1); the parent (1.1) itself; the lower half without the hypothesis (the source has it from (E2) alone); sharpness of the `O(1)` remainder of (R1); removal of the compact-mark restriction; that the cutoff `r_*` is the one of (1.1); any numerical constant; nonauthor review or acceptance. -/ +def PlanarDensityGapE11 (L : ℝ) (G : GaussianFieldInterface 2 L) (I : SuperlevelBarInterface 2 L) + (PL : PairLawInterface 2 L G I) (bLo bHi kLo kHi : ℝ) : Prop := + ParentUniformSelectionA 2 L G I PL bLo bHi kLo kHi → + (0 < L → bLo < bHi → 0 < kLo → kLo < kHi → + ∃ rStar : ℝ, 0 < rStar ∧ ∃ c : ℝ, 0 < c ∧ ∃ C : ℝ, ∃ ℓStar : ℝ, 0 < ℓStar ∧ + ∃ νc νe : ℝ → ℝ, + IsLifetimeDensityVersion 2 L G (IsWindowPair 2 L rStar bLo bHi kLo kHi) νc ∧ + IsLifetimeDensityVersion 2 L G (IsWindowElderPair 2 L rStar bLo bHi kLo kHi I) νe ∧ + ∀ ℓ : ℝ, 0 < ℓ → ℓ ≤ ℓStar → + c * ℓ ^ ((2 : ℝ) / 3) ≤ νc ℓ - νe ℓ ∧ νc ℓ - νe ℓ ≤ C * ℓ ^ ((2 : ℝ) / 3)) + +end UniversalLaw.Spec.Lifetime diff --git a/frontiers/morse_finite_critical_20261018/final-project/MorseFiniteAxiomAudit.lean b/frontiers/morse_finite_critical_20261018/final-project/MorseFiniteAxiomAudit.lean new file mode 100644 index 000000000..a9f726e72 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-project/MorseFiniteAxiomAudit.lean @@ -0,0 +1,64 @@ +import MorseFiniteCritical +import MorseFiniteControls +import Lean.Elab.Command +import Lean.Util.CollectAxioms + +/-! Complete module-origin declaration census, including generated/private helpers. +The audit permits only Lean's standard propext, Classical.choice and Quot.sound. +Its successful execution is not provider-distinct review or scientific promotion. -/ + +#print axioms TorusMorseFinite.quotientCriticalSet_finite +#print axioms TorusMorseFinite.quotientCriticalSet_finite_of_inertia +#check @TorusMorseFinite.quotientCriticalSet_finite + +open Lean Elab Command in +run_cmd do + let env := (← getEnv).setExporting false + let allowed : Array Name := #[`propext, `Classical.choice, `Quot.sound] + let modules : Array Name := #[`Lifetime, `TorusTopology, + `MorseFiniteCritical, `MorseFiniteControls] + let constants := env.constants.toList + let mut allNames : Array Name := #[] + for modName in modules do + let some idx := env.getModuleIdx? modName + | throwError "missing audited module: {modName}" + let names := (constants.filterMap fun (name, _) => + if env.getModuleIdxFor? name == some idx then some name else none).toArray.qsort Name.lt + if names.isEmpty then throwError "empty declaration inventory: {modName}" + liftIO <| IO.eprintln s!"MORSE_AUDIT_PROGRESS {modName} COUNT {names.size}" + logInfo m!"MORSE_AUDIT_MODULE {modName} COUNT {names.size}" + for name in names do + if (env.checked.get.find? name).isNone then + throwError "missing kernel declaration: {name}" + let axs ← Lean.collectAxioms name + logInfo m!"MORSE_AUDIT_DECL {name} AXIOMS {axs}" + for ax in axs do + unless allowed.contains ax do + throwError "forbidden transitive axiom {ax} in {name}" + allNames := allNames.push name + let required : Array Name := #[ + `UniversalLaw.Spec.Lifetime.IsSmooth, + `UniversalLaw.Spec.Lifetime.HessianHasInertia, + `UniversalLaw.Spec.Lifetime.IsMorseDistinct, + `TorusFiltration.torus_proj, + `TorusFiltration.torus_compact, + `TorusMorseFinite.literal_hessian_symmetric, + `TorusMorseFinite.inertia_fderiv_injective, + `TorusMorseFinite.inertia_fderiv_equiv, + `TorusMorseFinite.literal_critical_isolated, + `TorusMorseFinite.literal_fderiv_periodic, + `TorusMorseFinite.quotientDerivative_continuous, + `TorusMorseFinite.mem_quotientCriticalSet_iff, + `TorusMorseFinite.quotientCriticalSet_closed, + `TorusMorseFinite.quotientCriticalSet_discrete, + `TorusMorseFinite.quotientCriticalSet_finite_of_inertia, + `TorusMorseFinite.quotientCriticalSet_finite, + `TorusMorseControls.nonsymmetricForm_bilinear, + `TorusMorseControls.complementary_axes, + `TorusMorseControls.nonsymmetric_signed_axes_singular, + `TorusMorseControls.nonsmooth_literal_critical, + `TorusMorseControls.half_open_not_compact] + for name in required do + unless allNames.contains name do + throwError "required declaration omitted from audit: {name}" + logInfo m!"MORSE_AUDIT_STANDARD_ONLY_PASS COUNT {allNames.size}" diff --git a/frontiers/morse_finite_critical_20261018/final-project/MorseFiniteControls.lean b/frontiers/morse_finite_critical_20261018/final-project/MorseFiniteControls.lean new file mode 100644 index 000000000..f35879307 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-project/MorseFiniteControls.lean @@ -0,0 +1,71 @@ +import Lifetime + +/-! +C293 mathematical negative controls, authored by OpenAI Codex /root for Dylan Roy. +These prove limitations of nearby statements. They do not establish the main +finite-quotient theorem or any stochastic/barcode assertion. +-/ + +noncomputable section +open UniversalLaw.Spec.Lifetime + +namespace TorusMorseControls + +/-- An explicitly bilinear, nonsymmetric form with a nonzero left radical. -/ +def nonsymmetricForm (v w : ℝ × ℝ) : ℝ := (v.1 - v.2) * (w.1 + w.2) + +theorem nonsymmetricForm_bilinear (u v w : ℝ × ℝ) (a : ℝ) : + nonsymmetricForm (u + v) w = nonsymmetricForm u w + nonsymmetricForm v w ∧ + nonsymmetricForm u (v + w) = nonsymmetricForm u v + nonsymmetricForm u w ∧ + nonsymmetricForm (a • v) w = a * nonsymmetricForm v w ∧ + nonsymmetricForm v (a • w) = a * nonsymmetricForm v w := by + change + (u.1 + v.1 - (u.2 + v.2)) * (w.1 + w.2) = + (u.1 - u.2) * (w.1 + w.2) + (v.1 - v.2) * (w.1 + w.2) ∧ + (u.1 - u.2) * (v.1 + w.1 + (v.2 + w.2)) = + (u.1 - u.2) * (v.1 + v.2) + (u.1 - u.2) * (w.1 + w.2) ∧ + (a * v.1 - a * v.2) * (w.1 + w.2) = a * ((v.1 - v.2) * (w.1 + w.2)) ∧ + (v.1 - v.2) * (a * w.1 + a * w.2) = a * ((v.1 - v.2) * (w.1 + w.2)) + exact ⟨by ring, by ring, by ring, by ring⟩ + +theorem complementary_axes : + (∀ z : ℝ × ℝ, z = (0, z.2) + (z.1, 0)) ∧ + (∀ a b : ℝ, (0, a) = (b, 0) → a = 0 ∧ b = 0) := by + constructor + · intro z; ext <;> simp + · intro a b h + exact ⟨congrArg Prod.snd h, (congrArg Prod.fst h).symm⟩ + +theorem nonsymmetric_signed_axes_singular : + (∀ t : ℝ, t ≠ 0 → nonsymmetricForm (0, t) (0, t) < 0) ∧ + (∀ t : ℝ, t ≠ 0 → 0 < nonsymmetricForm (t, 0) (t, 0)) ∧ + ((1, 1) : ℝ × ℝ) ≠ 0 ∧ + (∀ w : ℝ × ℝ, nonsymmetricForm (1, 1) w = 0) ∧ + nonsymmetricForm (1, 0) (0, 1) = 1 ∧ + nonsymmetricForm (0, 1) (1, 0) = -1 := by + constructor + · intro t ht + have hp : 0 < t ^ 2 := sq_pos_of_ne_zero ht + dsimp [nonsymmetricForm] + nlinarith + constructor + · intro t ht + simpa [nonsymmetricForm, pow_two] using sq_pos_of_ne_zero ht + norm_num [nonsymmetricForm] + +/-- Literal criticality alone does not imply differentiability: fderiv defaults +to zero at a nondifferentiable point. This example is not claimed periodic. -/ +theorem nonsmooth_literal_critical : + (¬ DifferentiableAt ℝ (fun x : E 1 => ‖x‖) 0) ∧ + IsCriticalPoint 1 (fun x : E 1 => ‖x‖) 0 := by + have h := not_differentiableAt_norm_zero (E 1) + exact ⟨h, fderiv_zero_of_not_differentiableAt h⟩ + +/-- A half-open representative domain cannot supply compactness by itself. -/ +theorem half_open_not_compact : + ¬ IsCompact (Set.Ico (0 : ℝ) 1) := by + simp + +theorem closed_interval_compact : IsCompact (Set.Icc (0 : ℝ) 1) := isCompact_Icc + +end TorusMorseControls diff --git a/frontiers/morse_finite_critical_20261018/final-project/MorseFiniteCritical.lean b/frontiers/morse_finite_critical_20261018/final-project/MorseFiniteCritical.lean new file mode 100644 index 000000000..989fabc6e --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-project/MorseFiniteCritical.lean @@ -0,0 +1,223 @@ +import Lifetime +import TorusTopology + +/-! +# Finite literal critical set on the actual period-lattice quotient + +C293: deterministic formal composition of the finite-critical-set step of C292. +The inputs below are the literal Lifetime predicates and C263 torus projection. +No finite event list, inverse certificate, Morse normal form or closed-level path +is supplied as a hypothesis. +-/ + +noncomputable section + +open Set Topology +open UniversalLaw.Spec.Lifetime +open TorusFiltration + +namespace TorusMorseFinite + +theorem literal_hessian_eq_fderiv {d : ℕ} (g : E d → ℝ) + (x v w : E d) : + hessian d g x v w = fderiv ℝ (fderiv ℝ g) x v w := by + simp [hessian, iteratedFDeriv_two_apply] + +theorem literal_hessian_symmetric {d : ℕ} {g : E d → ℝ} + (hsmooth : IsSmooth d g) (x v w : E d) : + hessian d g x v w = hessian d g x w v := by + rw [literal_hessian_eq_fderiv, literal_hessian_eq_fderiv] + exact ((hsmooth 2).contDiffAt.isSymmSndFDerivAt (by simp)).eq v w + +theorem inertia_fderiv_injective {d : ℕ} {g : E d → ℝ} + (hsmooth : IsSmooth d g) {x : E d} {j : ℕ} + (hinertia : HessianHasInertia d g x j) : + Function.Injective (fderiv ℝ (fderiv ℝ g) x) := by + let B := fderiv ℝ (fderiv ℝ g) x + have hz : ∀ z : E d, B z = 0 → z = 0 := by + intro z hzero + obtain ⟨V, W, hcompl, _, _, hneg, hpos⟩ := hinertia + obtain ⟨v, w, hv, hw, hvw⟩ := + Submodule.codisjoint_iff_exists_add_eq.mp hcompl.codisjoint z + have hBv : B v v + B w v = 0 := by + have h := congrArg (fun A : E d →L[ℝ] ℝ => A v) hzero + simpa only [← hvw, map_add, add_apply, zero_apply] using h + have hBw : B v w + B w w = 0 := by + have h := congrArg (fun A : E d →L[ℝ] ℝ => A w) hzero + simpa only [← hvw, map_add, add_apply, zero_apply] using h + have hsym : B w v = B v w := by + simpa only [B, ← literal_hessian_eq_fderiv] using + literal_hessian_symmetric hsmooth x w v + have heq : hessian d g x v v = hessian d g x w w := by + simp only [literal_hessian_eq_fderiv] + change B v v = B w w + linarith + have hv0 : v = 0 := by + by_contra hv0 + have hn := hneg v hv hv0 + by_cases hw0 : w = 0 + · have hww : hessian d g x w w = 0 := by + simp [hw0, literal_hessian_eq_fderiv] + linarith + · have hp := hpos w hw hw0 + linarith + have hw0 : w = 0 := by + by_contra hw0 + have hp := hpos w hw hw0 + have hvv : hessian d g x v v = 0 := by + simp [hv0, literal_hessian_eq_fderiv] + linarith + simpa [hv0, hw0] using hvw.symm + intro u v huv + have hzero : B (u - v) = 0 := by simp [map_sub, huv, B] + exact sub_eq_zero.mp (hz (u - v) hzero) + +theorem inertia_fderiv_equiv {d : ℕ} {g : E d → ℝ} + (hsmooth : IsSmooth d g) {x : E d} {j : ℕ} + (hinertia : HessianHasInertia d g x j) : + ∃ e : E d ≃L[ℝ] (E d →L[ℝ] ℝ), + (e : E d →L[ℝ] (E d →L[ℝ] ℝ)) = fderiv ℝ (fderiv ℝ g) x := by + let J : E d ≃L[ℝ] (E d →L[ℝ] ℝ) := + (InnerProductSpace.toDual ℝ (E d)).toContinuousLinearEquiv + let B := fderiv ℝ (fderiv ℝ g) x + let A : E d →L[ℝ] E d := J.symm.toContinuousLinearMap.comp B + have hA : Function.Injective A := + J.symm.injective.comp (inertia_fderiv_injective hsmooth hinertia) + let eA : E d ≃L[ℝ] E d := + (LinearEquiv.ofInjectiveEndo A.toLinearMap hA).toContinuousLinearEquiv + refine ⟨eA.trans J, ?_⟩ + apply ContinuousLinearMap.ext + intro v + change J (J.symm (B v)) = B v + exact J.apply_symm_apply (B v) + +theorem literal_critical_isolated {d : ℕ} {g : E d → ℝ} + (hsmooth : IsSmooth d g) {x : E d} + (hcritical : IsCriticalPoint d g x) {j : ℕ} + (hinertia : HessianHasInertia d g x j) : + ∃ U : Set (E d), IsOpen U ∧ x ∈ U ∧ + ∀ y ∈ U, IsCriticalPoint d g y → y = x := by + obtain ⟨e, he⟩ := inertia_fderiv_equiv hsmooth hinertia + have hD : ContDiff ℝ 1 (fderiv ℝ g) := + (contDiff_succ_iff_fderiv.mp (hsmooth 2)).2.2 + have hderiv : HasFDerivAt (fderiv ℝ g) + (e : E d →L[ℝ] (E d →L[ℝ] ℝ)) x := by + rw [he] + exact (hD.differentiable (by norm_num) x).hasFDerivAt + let p := hD.contDiffAt.toOpenPartialHomeomorph (fderiv ℝ g) hderiv (by norm_num) + have hxp : x ∈ p.source := + hD.contDiffAt.mem_toOpenPartialHomeomorph_source hderiv (by norm_num) + refine ⟨p.source, p.open_source, hxp, ?_⟩ + intro y hy hcy + apply p.injOn hy hxp + change fderiv ℝ g y = fderiv ℝ g x + exact hcy.trans hcritical.symm + +theorem literal_fderiv_periodic {d : ℕ} {L : ℝ} {g : E d → ℝ} + (hperiodic : IsLPeriodic d L g) (x : E d) (k : Fin d → ℤ) : + fderiv ℝ g (x + torus_latticeVec d L k) = fderiv ℝ g x := by + have heq : (fun y : E d => g (y + torus_latticeVec d L k)) = g := by + funext y + simpa only [torus_latticeVec, latticeVec] using hperiodic y k + rw [← fderiv_comp_add_right, heq] + +theorem literal_fderiv_respects {d : ℕ} {L : ℝ} (hL : 0 < L) + {g : E d → ℝ} (hperiodic : IsLPeriodic d L g) (x y : E d) + (hxy : QuotientAddGroup.leftRel (torus_periodLattice d L hL).toAddSubgroup x y) : + fderiv ℝ g x = fderiv ℝ g y := by + have hq : torus_proj d L hL x = torus_proj d L hL y := Quotient.sound hxy + obtain ⟨k, rfl⟩ := (torus_proj_eq_iff d L hL x y).mp hq + exact (literal_fderiv_periodic hperiodic x k).symm + +def quotientDerivative (d : ℕ) (L : ℝ) (hL : 0 < L) + (g : E d → ℝ) (hperiodic : IsLPeriodic d L g) : + torus_quotient d L hL → (E d →L[ℝ] ℝ) := + Quotient.lift (fderiv ℝ g) (literal_fderiv_respects hL hperiodic) + +@[simp] theorem quotientDerivative_proj (d : ℕ) (L : ℝ) (hL : 0 < L) + (g : E d → ℝ) (hperiodic : IsLPeriodic d L g) (x : E d) : + quotientDerivative d L hL g hperiodic (torus_proj d L hL x) = + fderiv ℝ g x := rfl + +theorem quotientDerivative_continuous {d : ℕ} {L : ℝ} (hL : 0 < L) + {g : E d → ℝ} (hperiodic : IsLPeriodic d L g) + (hsmooth : IsSmooth d g) : + Continuous (quotientDerivative d L hL g hperiodic) := + ((hsmooth 1).continuous_fderiv (by norm_num)).quotient_lift + (literal_fderiv_respects hL hperiodic) + +/-- The full image of all literal critical points, on C263's actual quotient. -/ +def quotientCriticalSet (d : ℕ) (L : ℝ) (hL : 0 < L) (g : E d → ℝ) : + Set (torus_quotient d L hL) := + torus_proj d L hL '' {x : E d | IsCriticalPoint d g x} + +theorem mem_quotientCriticalSet_iff {d : ℕ} {L : ℝ} (hL : 0 < L) + {g : E d → ℝ} (hperiodic : IsLPeriodic d L g) + (q : torus_quotient d L hL) : + q ∈ quotientCriticalSet d L hL g ↔ + quotientDerivative d L hL g hperiodic q = 0 := by + constructor + · rintro ⟨x, hx, rfl⟩ + exact hx + · intro hq + obtain ⟨x, rfl⟩ := torus_proj_surjective d L hL q + exact ⟨x, hq, rfl⟩ + +theorem quotientCriticalSet_closed {d : ℕ} {L : ℝ} (hL : 0 < L) + {g : E d → ℝ} (hperiodic : IsLPeriodic d L g) + (hsmooth : IsSmooth d g) : + IsClosed (quotientCriticalSet d L hL g) := by + have heq : quotientCriticalSet d L hL g = + {q | quotientDerivative d L hL g hperiodic q = 0} := by + ext q + exact mem_quotientCriticalSet_iff hL hperiodic q + rw [heq] + exact isClosed_eq (quotientDerivative_continuous hL hperiodic hsmooth) continuous_const + +theorem quotientCriticalSet_discrete {d : ℕ} {L : ℝ} (hL : 0 < L) + {g : E d → ℝ} (hperiodic : IsLPeriodic d L g) + (hsmooth : IsSmooth d g) + (hmorse : ∀ x : E d, IsCriticalPoint d g x → + ∃ j : ℕ, HessianHasInertia d g x j) : + IsDiscrete (quotientCriticalSet d L hL g) := by + rw [isDiscrete_iff_forall_mem_exists_isOpen] + rintro q ⟨x, hx, rfl⟩ + obtain ⟨j, hj⟩ := hmorse x hx + obtain ⟨U, hU, hxU, hiso⟩ := literal_critical_isolated hsmooth hx hj + refine ⟨torus_proj d L hL '' U, + (torus_proj_isCoveringMap d L hL).isOpenMap U hU, ?_⟩ + ext q + constructor + · rintro ⟨⟨y, hy, rfl⟩, hcy⟩ + have hyc : IsCriticalPoint d g y := + (mem_quotientCriticalSet_iff hL hperiodic _).mp hcy + have hyx := hiso y hy hyc + simp [hyx] + · intro hq + have hqx := Set.mem_singleton_iff.mp hq + subst q + exact ⟨⟨x, hxU, rfl⟩, ⟨x, hx, rfl⟩⟩ + +/-- Core finiteness only needs nondegeneracy at critical points; distinct heights +are not used. No finiteness conclusion is supplied in the assumptions. -/ +theorem quotientCriticalSet_finite_of_inertia {d : ℕ} {L : ℝ} (hL : 0 < L) + {g : E d → ℝ} (hsmooth : IsSmooth d g) + (hperiodic : IsLPeriodic d L g) + (hmorse : ∀ x : E d, IsCriticalPoint d g x → + ∃ j : ℕ, HessianHasInertia d g x j) : + (quotientCriticalSet d L hL g).Finite := by + have hc : IsCompact (quotientCriticalSet d L hL g) := by + simpa only [Set.univ_inter] using + (torus_compact d L hL).inter_right + (quotientCriticalSet_closed hL hperiodic hsmooth) + exact hc.finite (quotientCriticalSet_discrete hL hperiodic hsmooth hmorse) + +/-- C292-facing theorem on the literal Morse-distinct locus. The result in fact +holds for every natural dimension; C292 may instantiate it at its `d ≥ 1`. -/ +theorem quotientCriticalSet_finite (d : ℕ) (L : ℝ) (hL : 0 < L) + (g : E d → ℝ) (hsmooth : IsSmooth d g) + (hperiodic : IsLPeriodic d L g) (hmorse : IsMorseDistinct d L g) : + (quotientCriticalSet d L hL g).Finite := + quotientCriticalSet_finite_of_inertia hL hsmooth hperiodic hmorse.1 + +end TorusMorseFinite diff --git a/frontiers/morse_finite_critical_20261018/final-project/TorusTopology.lean b/frontiers/morse_finite_critical_20261018/final-project/TorusTopology.lean new file mode 100644 index 000000000..ed678ea32 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-project/TorusTopology.lean @@ -0,0 +1,247 @@ +import Mathlib + +/-! +# The actual period-lattice quotient and specified-start path compatibility + +C254 proposed source. Compilation and kernel audit: NOT_RUN. +The ambient space and lattice-vector formula below are exactly those in the +source-bound Field.lean; this module does not import or alter that owner's file. +All quotient, compactness, covering and descent properties are constructed. +The final lift endpoint is existential. No critical-level attainment is claimed. +Compile fixes at the pin (Lean v4.34.1, Mathlib d13f23b7), no statement altered: `Basis` → `Module.Basis`, `Basis.unitsSMul_apply` → `Module.Basis.unitsSMul_apply`, lattice discreteness passed via `SetLike.isDiscrete_iff_discreteTopology.mpr` instead of `DiscreteTopology.isDiscrete`, quotient path-connectedness via `inferInstanceAs (PathConnectedSpace (Quotient _))` instead of `infer_instance`. +Three unused simp arguments (`PiLp.single_apply` twice, `hij`) removed from `torus_basis_sum_eq_latticeVec` so the +file elaborates with warnings as errors; namespace `TorusFiltration` in this companion (handoff: `ResearchFormalCoreR1`). +-/ + +noncomputable section + +open Topology + +namespace TorusFiltration +abbrev torus_E (d : ℕ) := EuclideanSpace ℝ (Fin d) + +/-- The exact `Field.latticeVec` formula, retained without any coordinate rescaling. -/ +def torus_latticeVec (d : ℕ) (L : ℝ) (n : Fin d → ℤ) : torus_E d := + ∑ i, EuclideanSpace.single i (L * (n i : ℝ)) + +theorem torus_field_latticeVec_formula (d : ℕ) (L : ℝ) (n : Fin d → ℤ) : + torus_latticeVec d L n = ∑ i, EuclideanSpace.single i (L * (n i : ℝ)) := rfl + +def torus_periodBasis (d : ℕ) (L : ℝ) (hL : 0 < L) : + Module.Basis (Fin d) ℝ (torus_E d) := + (EuclideanSpace.basisFun (Fin d) ℝ).toBasis.unitsSMul + (fun _ => Units.mk0 L hL.ne') + +def torus_periodLattice (d : ℕ) (L : ℝ) (hL : 0 < L) : Submodule ℤ (torus_E d) := + Submodule.span ℤ (Set.range (torus_periodBasis d L hL)) + +abbrev torus_quotient (d : ℕ) (L : ℝ) (hL : 0 < L) := + torus_E d ⧸ (torus_periodLattice d L hL).toAddSubgroup + +def torus_proj (d : ℕ) (L : ℝ) (hL : 0 < L) : torus_E d → torus_quotient d L hL := + QuotientAddGroup.mk + +/-- Concrete adapter from integer basis coefficients to Field's exact vector formula. -/ +theorem torus_basis_sum_eq_latticeVec (d : ℕ) (L : ℝ) (hL : 0 < L) + (n : Fin d → ℤ) : + ∑ i, n i • torus_periodBasis d L hL i = torus_latticeVec d L n := by + classical + unfold torus_latticeVec + apply Finset.sum_congr rfl + intro i hi + ext j + by_cases hij : i = j + · subst j + simp [torus_periodBasis, Module.Basis.unitsSMul_apply, OrthonormalBasis.coe_toBasis, + EuclideanSpace.basisFun_apply, Units.smul_def, PiLp.smul_apply, + zsmul_eq_mul, mul_comm] + · simp [torus_periodBasis, Module.Basis.unitsSMul_apply, OrthonormalBasis.coe_toBasis, + EuclideanSpace.basisFun_apply, Units.smul_def, PiLp.smul_apply, + Ne.symm hij] + +theorem torus_lattice_mem_iff (d : ℕ) (L : ℝ) (hL : 0 < L) (x : torus_E d) : + x ∈ torus_periodLattice d L hL ↔ ∃ n : Fin d → ℤ, torus_latticeVec d L n = x := by + classical + change x ∈ Submodule.span ℤ (Set.range (torus_periodBasis d L hL)) ↔ _ + rw [Submodule.mem_span_range_iff_exists_fun] + simp only [torus_basis_sum_eq_latticeVec] + +instance torus_lattice_discrete (d : ℕ) (L : ℝ) (hL : 0 < L) : + DiscreteTopology (torus_periodLattice d L hL) := by + unfold torus_periodLattice + infer_instance + +instance torus_lattice_addSubgroup_discrete (d : ℕ) (L : ℝ) (hL : 0 < L) : + DiscreteTopology (torus_periodLattice d L hL).toAddSubgroup := by + unfold torus_periodLattice + infer_instance + +instance torus_lattice_isZLattice (d : ℕ) (L : ℝ) (hL : 0 < L) : + IsZLattice ℝ (torus_periodLattice d L hL) := by + unfold torus_periodLattice + infer_instance + +theorem torus_proj_surjective (d : ℕ) (L : ℝ) (hL : 0 < L) : + Function.Surjective (torus_proj d L hL) := QuotientAddGroup.mk_surjective + +theorem torus_proj_continuous (d : ℕ) (L : ℝ) (hL : 0 < L) : + Continuous (torus_proj d L hL) := continuous_quotient_mk' + +theorem torus_proj_eq_iff (d : ℕ) (L : ℝ) (hL : 0 < L) (x y : torus_E d) : + torus_proj d L hL x = torus_proj d L hL y ↔ + ∃ n : Fin d → ℤ, y = x + torus_latticeVec d L n := by + change (QuotientAddGroup.mk x : torus_quotient d L hL) = QuotientAddGroup.mk y ↔ _ + rw [QuotientAddGroup.eq] + change -x + y ∈ torus_periodLattice d L hL ↔ _ + rw [torus_lattice_mem_iff] + constructor + · rintro ⟨n, hn⟩ + exact ⟨n, by rw [hn]; abel⟩ + · rintro ⟨n, rfl⟩ + exact ⟨n, by abel⟩ + +/-- Duplicate representatives have exactly the same quotient image. -/ +theorem torus_control_lattice_translate (d : ℕ) (L : ℝ) (hL : 0 < L) + (x : torus_E d) (n : Fin d → ℤ) : + torus_proj d L hL (x + torus_latticeVec d L n) = torus_proj d L hL x := + ((torus_proj_eq_iff d L hL x _).2 ⟨n, rfl⟩).symm + +theorem torus_proj_isCoveringMap (d : ℕ) (L : ℝ) (hL : 0 < L) : + IsCoveringMap (torus_proj d L hL) := + ((torus_periodLattice d L hL).toAddSubgroup.isAddQuotientCoveringMap_of_comm + (SetLike.isDiscrete_iff_discreteTopology.mpr + (torus_lattice_addSubgroup_discrete d L hL))).isCoveringMap + +theorem torus_compact (d : ℕ) (L : ℝ) (hL : 0 < L) : + IsCompact (Set.univ : Set (torus_quotient d L hL)) := by + have hc := IsZLattice.isCompact_range_of_periodic (torus_periodLattice d L hL) + (torus_proj d L hL) (torus_proj_continuous d L hL) + (fun z w hw => QuotientAddGroup.mk_add_of_mem z hw) + rwa [Set.range_eq_univ.mpr (torus_proj_surjective d L hL)] at hc + +theorem torus_pathConnectedSpace (d : ℕ) (L : ℝ) (hL : 0 < L) : + PathConnectedSpace (torus_quotient d L hL) := by + exact inferInstanceAs <| PathConnectedSpace (Quotient _) + +/-- Exact Field periodicity predicate with the literal lattice-vector adapter above. -/ +def torus_isPeriodic (d : ℕ) (L : ℝ) (g : torus_E d → ℝ) : Prop := + ∀ (x : torus_E d) (n : Fin d → ℤ), g (x + torus_latticeVec d L n) = g x + +theorem torus_field_periodic_formula (d : ℕ) (L : ℝ) (g : torus_E d → ℝ) : + torus_isPeriodic d L g ↔ + ∀ (x : EuclideanSpace ℝ (Fin d)) (n : Fin d → ℤ), + g (x + ∑ i, EuclideanSpace.single i (L * (n i : ℝ))) = g x := Iff.rfl + +theorem torus_periodic_respects (d : ℕ) (L : ℝ) (hL : 0 < L) + (g : torus_E d → ℝ) (hg : torus_isPeriodic d L g) (x y : torus_E d) + (hxy : QuotientAddGroup.leftRel (torus_periodLattice d L hL).toAddSubgroup x y) : + g x = g y := by + have hq : torus_proj d L hL x = torus_proj d L hL y := Quotient.sound hxy + obtain ⟨n, rfl⟩ := (torus_proj_eq_iff d L hL x y).1 hq + exact (hg x n).symm + +def torus_descend (d : ℕ) (L : ℝ) (hL : 0 < L) + (g : torus_E d → ℝ) (hg : torus_isPeriodic d L g) : torus_quotient d L hL → ℝ := + Quotient.lift g (torus_periodic_respects d L hL g hg) + +theorem torus_descend_proj (d : ℕ) (L : ℝ) (hL : 0 < L) + (g : torus_E d → ℝ) (hg : torus_isPeriodic d L g) (x : torus_E d) : + torus_descend d L hL g hg (torus_proj d L hL x) = g x := rfl + +theorem torus_descend_continuous (d : ℕ) (L : ℝ) (hL : 0 < L) + (g : torus_E d → ℝ) (hg : torus_isPeriodic d L g) (hgc : Continuous g) : + Continuous (torus_descend d L hL g hg) := + hgc.quotient_lift (torus_periodic_respects d L hL g hg) + +/-- Lift from a prescribed representative; the endpoint is determined existentially. -/ +theorem torus_path_lift_from (d : ℕ) (L : ℝ) (hL : 0 < L) + {M : torus_E d} {y : torus_quotient d L hL} + (γ : Path (torus_proj d L hL M) y) : + ∃ z : torus_E d, ∃ Γ : Path M z, + torus_proj d L hL z = y ∧ + ∀ t : unitInterval, torus_proj d L hL (Γ t) = γ t := by + let cov := torus_proj_isCoveringMap d L hL + let Γ := cov.liftPath γ M γ.source + refine ⟨Γ 1, ⟨Γ, cov.liftPath_zero γ M γ.source, rfl⟩, ?_, ?_⟩ + · exact (congrFun (cov.liftPath_lifts γ M γ.source) 1).trans γ.target + · intro t + exact congrFun (cov.liftPath_lifts γ M γ.source) t + +/-- Control: a constant projected path cannot be lifted from M to a different lift. +This refutes replacing the existential endpoint by an arbitrary chosen representative. -/ +theorem torus_control_constant_path_endpoint (d : ℕ) (L : ℝ) (hL : 0 < L) + {M z : torus_E d} (Γ : Path M z) + (hΓ : ∀ t : unitInterval, torus_proj d L hL (Γ t) = torus_proj d L hL M) : z = M := by + have heq : (Γ : unitInterval → torus_E d) = fun _ => M := + (torus_proj_isCoveringMap d L hL).eq_of_comp_eq Γ.continuous continuous_const + (funext hΓ) 0 Γ.source + exact Γ.target.symm.trans (congrFun heq 1) + +/-- Combining the duplicate-image and uniqueness controls gives a direct rejection +of any different preselected endpoint for a constant quotient path. -/ +theorem torus_control_no_arbitrary_endpoint (d : ℕ) (L : ℝ) (hL : 0 < L) + (M : torus_E d) (n : Fin d → ℤ) (hn : torus_latticeVec d L n ≠ 0) : + torus_proj d L hL (M + torus_latticeVec d L n) = torus_proj d L hL M ∧ + ¬ ∃ Γ : Path M (M + torus_latticeVec d L n), + ∀ t : unitInterval, torus_proj d L hL (Γ t) = torus_proj d L hL M := by + refine ⟨torus_control_lattice_translate d L hL M n, ?_⟩ + rintro ⟨Γ, hΓ⟩ + have heq := torus_control_constant_path_endpoint d L hL Γ hΓ + apply hn + exact add_left_cancel (show M + torus_latticeVec d L n = M + 0 by simpa using heq) + +/-- Higher-endpoint compatibility for any scalar path predicate, including strict +and closed thresholds. No conclusion here asserts critical-level attainment. -/ +theorem torus_higher_path_iff (d : ℕ) (L : ℝ) (hL : 0 < L) + (g : torus_E d → ℝ) (hg : torus_isPeriodic d L g) (M : torus_E d) (P : ℝ → Prop) : + (∃ y : torus_E d, g M < g y ∧ ∃ γ : Path M y, ∀ t : unitInterval, P (g (γ t))) ↔ + (∃ y : torus_quotient d L hL, + torus_descend d L hL g hg (torus_proj d L hL M) < torus_descend d L hL g hg y ∧ + ∃ γ : Path (torus_proj d L hL M) y, + ∀ t : unitInterval, P (torus_descend d L hL g hg (γ t))) := by + constructor + · rintro ⟨y, hy, γ, hγ⟩ + exact ⟨torus_proj d L hL y, hy, γ.map (torus_proj_continuous d L hL), hγ⟩ + · rintro ⟨y, hy, γ, hγ⟩ + obtain ⟨z, Γ, hz, hΓ⟩ := torus_path_lift_from d L hL γ + refine ⟨z, ?_, Γ, ?_⟩ + · have hz' := congrArg (torus_descend d L hL g hg) hz + change g z = torus_descend d L hL g hg y at hz' + change g M < torus_descend d L hL g hg y at hy + rwa [← hz'] at hy + · intro t + have ht := hγ t + rw [← hΓ t] at ht + exact ht + +theorem torus_strict_higher_path_iff (d : ℕ) (L : ℝ) (hL : 0 < L) + (g : torus_E d → ℝ) (hg : torus_isPeriodic d L g) (M : torus_E d) (h : ℝ) : + (∃ y : torus_E d, g M < g y ∧ ∃ γ : Path M y, ∀ t : unitInterval, h < g (γ t)) ↔ + (∃ y : torus_quotient d L hL, + torus_descend d L hL g hg (torus_proj d L hL M) < torus_descend d L hL g hg y ∧ + ∃ γ : Path (torus_proj d L hL M) y, + ∀ t : unitInterval, h < torus_descend d L hL g hg (γ t)) := + torus_higher_path_iff d L hL g hg M (fun a => h < a) + +theorem torus_closed_higher_path_iff (d : ℕ) (L : ℝ) (hL : 0 < L) + (g : torus_E d → ℝ) (hg : torus_isPeriodic d L g) (M : torus_E d) (h : ℝ) : + (∃ y : torus_E d, g M < g y ∧ ∃ γ : Path M y, ∀ t : unitInterval, h ≤ g (γ t)) ↔ + (∃ y : torus_quotient d L hL, + torus_descend d L hL g hg (torus_proj d L hL M) < torus_descend d L hL g hg y ∧ + ∃ γ : Path (torus_proj d L hL M) y, + ∀ t : unitInterval, h ≤ torus_descend d L hL g hg (γ t)) := + torus_higher_path_iff d L hL g hg M (fun a => h ≤ a) + +theorem torus_global_max_iff (d : ℕ) (L : ℝ) (hL : 0 < L) + (g : torus_E d → ℝ) (hg : torus_isPeriodic d L g) (M : torus_E d) : + (∀ y : torus_E d, g y ≤ g M) ↔ + ∀ y : torus_quotient d L hL, + torus_descend d L hL g hg y ≤ torus_descend d L hL g hg (torus_proj d L hL M) := by + constructor + · intro h y + obtain ⟨z, rfl⟩ := torus_proj_surjective d L hL y + exact h z + · intro h y + exact h (torus_proj d L hL y) + +end TorusFiltration \ No newline at end of file diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/PREFLIGHT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/PREFLIGHT.json new file mode 100644 index 000000000..0efc3d2c2 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/PREFLIGHT.json @@ -0,0 +1,47 @@ +{ + "kind": "build", + "module": "Lifetime", + "started_utc": "2026-10-18T02:57:21.715451+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": {}, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-o", + "$C293_ROOT/final-build/Lifetime.olean", + "$C293_ROOT/final-project/Lifetime.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/PROCESS_START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/PROCESS_START.json new file mode 100644 index 000000000..11b8fe616 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/PROCESS_START.json @@ -0,0 +1,48 @@ +{ + "kind": "build", + "module": "Lifetime", + "started_utc": "2026-10-18T02:57:21.715451+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": {}, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-o", + "$C293_ROOT/final-build/Lifetime.olean", + "$C293_ROOT/final-project/Lifetime.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 3072 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/RECEIPT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/RECEIPT.json new file mode 100644 index 000000000..cf8e3b350 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/RECEIPT.json @@ -0,0 +1,76 @@ +{ + "kind": "build", + "module": "Lifetime", + "started_utc": "2026-10-18T02:57:21.715451+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PASS", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": {}, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-o", + "$C293_ROOT/final-build/Lifetime.olean", + "$C293_ROOT/final-project/Lifetime.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 3072, + "returncode": 0, + "timed_out": false, + "source_after": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_after": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4" + }, + "dependency_after": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "source_unchanged": true, + "imported_objects_unchanged": true, + "object_sha256": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "produced_objects": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4" + }, + "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "process_reaped": true, + "ended_utc": "2026-10-18T02:59:03.198094+00:00", + "seconds": 101.481695792 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/START.json new file mode 100644 index 000000000..aa77ae791 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/START.json @@ -0,0 +1,11 @@ +{ + "kind": "build", + "module": "Lifetime", + "started_utc": "2026-10-18T02:57:21.715451+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/stderr.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/stdout.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025721Z-build-Lifetime-27665937/stdout.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/PREFLIGHT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/PREFLIGHT.json new file mode 100644 index 000000000..530a80f20 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/PREFLIGHT.json @@ -0,0 +1,49 @@ +{ + "kind": "build", + "module": "TorusTopology", + "started_utc": "2026-10-18T02:59:03.276164+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-o", + "$C293_ROOT/final-build/TorusTopology.olean", + "$C293_ROOT/final-project/TorusTopology.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/PROCESS_START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/PROCESS_START.json new file mode 100644 index 000000000..94bdb514b --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/PROCESS_START.json @@ -0,0 +1,50 @@ +{ + "kind": "build", + "module": "TorusTopology", + "started_utc": "2026-10-18T02:59:03.276164+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-o", + "$C293_ROOT/final-build/TorusTopology.olean", + "$C293_ROOT/final-project/TorusTopology.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 3168 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/RECEIPT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/RECEIPT.json new file mode 100644 index 000000000..8a7dab72e --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/RECEIPT.json @@ -0,0 +1,79 @@ +{ + "kind": "build", + "module": "TorusTopology", + "started_utc": "2026-10-18T02:59:03.276164+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PASS", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-o", + "$C293_ROOT/final-build/TorusTopology.olean", + "$C293_ROOT/final-project/TorusTopology.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 3168, + "returncode": 0, + "timed_out": false, + "source_after": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_after": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_after": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "source_unchanged": true, + "imported_objects_unchanged": true, + "object_sha256": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125", + "produced_objects": { + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "process_reaped": true, + "ended_utc": "2026-10-18T03:00:43.890107+00:00", + "seconds": 100.613586125 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/START.json new file mode 100644 index 000000000..f483631b1 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/START.json @@ -0,0 +1,11 @@ +{ + "kind": "build", + "module": "TorusTopology", + "started_utc": "2026-10-18T02:59:03.276164+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/stderr.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/stdout.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T025903Z-build-TorusTopology-7b11c9cf/stdout.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/PREFLIGHT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/PREFLIGHT.json new file mode 100644 index 000000000..89e2fadda --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/PREFLIGHT.json @@ -0,0 +1,51 @@ +{ + "kind": "build", + "module": "MorseFiniteCritical", + "started_utc": "2026-10-18T03:00:43.976245+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-DwarningAsError=true", + "-o", + "$C293_ROOT/final-build/MorseFiniteCritical.olean", + "$C293_ROOT/final-project/MorseFiniteCritical.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/PROCESS_START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/PROCESS_START.json new file mode 100644 index 000000000..f989250a6 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/PROCESS_START.json @@ -0,0 +1,52 @@ +{ + "kind": "build", + "module": "MorseFiniteCritical", + "started_utc": "2026-10-18T03:00:43.976245+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-DwarningAsError=true", + "-o", + "$C293_ROOT/final-build/MorseFiniteCritical.olean", + "$C293_ROOT/final-project/MorseFiniteCritical.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 3284 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/RECEIPT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/RECEIPT.json new file mode 100644 index 000000000..221204511 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/RECEIPT.json @@ -0,0 +1,82 @@ +{ + "kind": "build", + "module": "MorseFiniteCritical", + "started_utc": "2026-10-18T03:00:43.976245+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PASS", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-DwarningAsError=true", + "-o", + "$C293_ROOT/final-build/MorseFiniteCritical.olean", + "$C293_ROOT/final-project/MorseFiniteCritical.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 3284, + "returncode": 0, + "timed_out": false, + "source_after": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_after": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_after": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "source_unchanged": true, + "imported_objects_unchanged": true, + "object_sha256": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "produced_objects": { + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2" + }, + "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "process_reaped": true, + "ended_utc": "2026-10-18T03:02:23.593111+00:00", + "seconds": 99.616524584 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/START.json new file mode 100644 index 000000000..a3d1ba166 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/START.json @@ -0,0 +1,11 @@ +{ + "kind": "build", + "module": "MorseFiniteCritical", + "started_utc": "2026-10-18T03:00:43.976245+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/stderr.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/stdout.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030043Z-build-MorseFiniteCritical-84e29842/stdout.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/PREFLIGHT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/PREFLIGHT.json new file mode 100644 index 000000000..d487fa30d --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/PREFLIGHT.json @@ -0,0 +1,52 @@ +{ + "kind": "build", + "module": "MorseFiniteControls", + "started_utc": "2026-10-18T03:02:23.671900+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-DwarningAsError=true", + "-o", + "$C293_ROOT/final-build/MorseFiniteControls.olean", + "$C293_ROOT/final-project/MorseFiniteControls.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/PROCESS_START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/PROCESS_START.json new file mode 100644 index 000000000..452fa9244 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/PROCESS_START.json @@ -0,0 +1,53 @@ +{ + "kind": "build", + "module": "MorseFiniteControls", + "started_utc": "2026-10-18T03:02:23.671900+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-DwarningAsError=true", + "-o", + "$C293_ROOT/final-build/MorseFiniteControls.olean", + "$C293_ROOT/final-project/MorseFiniteControls.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 3399 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/RECEIPT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/RECEIPT.json new file mode 100644 index 000000000..cc3f67cb0 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/RECEIPT.json @@ -0,0 +1,84 @@ +{ + "kind": "build", + "module": "MorseFiniteControls", + "started_utc": "2026-10-18T03:02:23.671900+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PASS", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-DwarningAsError=true", + "-o", + "$C293_ROOT/final-build/MorseFiniteControls.olean", + "$C293_ROOT/final-project/MorseFiniteControls.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 3399, + "returncode": 0, + "timed_out": false, + "source_after": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_after": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_after": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "source_unchanged": true, + "imported_objects_unchanged": true, + "object_sha256": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "produced_objects": { + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa" + }, + "stdout_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "process_reaped": true, + "ended_utc": "2026-10-18T03:04:11.698936+00:00", + "seconds": 108.026679625 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/START.json new file mode 100644 index 000000000..3d50e72b2 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/START.json @@ -0,0 +1,11 @@ +{ + "kind": "build", + "module": "MorseFiniteControls", + "started_utc": "2026-10-18T03:02:23.671900+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/stderr.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/stdout.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030223Z-build-MorseFiniteControls-b481974d/stdout.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/PREFLIGHT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/PREFLIGHT.json new file mode 100644 index 000000000..b31d9ab25 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/PREFLIGHT.json @@ -0,0 +1,53 @@ +{ + "kind": "build", + "module": "MorseFiniteAxiomAudit", + "started_utc": "2026-10-18T03:04:11.819011+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 900, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-DwarningAsError=true", + "-o", + "$C293_ROOT/final-build/MorseFiniteAxiomAudit.olean", + "$C293_ROOT/final-project/MorseFiniteAxiomAudit.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/PROCESS_START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/PROCESS_START.json new file mode 100644 index 000000000..2ed83bed4 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/PROCESS_START.json @@ -0,0 +1,54 @@ +{ + "kind": "build", + "module": "MorseFiniteAxiomAudit", + "started_utc": "2026-10-18T03:04:11.819011+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 900, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-DwarningAsError=true", + "-o", + "$C293_ROOT/final-build/MorseFiniteAxiomAudit.olean", + "$C293_ROOT/final-project/MorseFiniteAxiomAudit.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 3523 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/RECEIPT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/RECEIPT.json new file mode 100644 index 000000000..6af47dae1 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/RECEIPT.json @@ -0,0 +1,86 @@ +{ + "kind": "build", + "module": "MorseFiniteAxiomAudit", + "started_utc": "2026-10-18T03:04:11.819011+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 900, + "threads": 2, + "status": "PASS", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "-DwarningAsError=true", + "-o", + "$C293_ROOT/final-build/MorseFiniteAxiomAudit.olean", + "$C293_ROOT/final-project/MorseFiniteAxiomAudit.lean" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 3523, + "returncode": 0, + "timed_out": false, + "source_after": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_after": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_after": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "source_unchanged": true, + "imported_objects_unchanged": true, + "object_sha256": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "produced_objects": { + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b" + }, + "stdout_sha256": "9f41da11dc9c082106bba058a36649e6886c8f8334ad0b9917fb1b58fd434be8", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "process_reaped": true, + "ended_utc": "2026-10-18T03:07:05.571703+00:00", + "seconds": 173.752171541 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/START.json new file mode 100644 index 000000000..21eafcdd0 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/START.json @@ -0,0 +1,11 @@ +{ + "kind": "build", + "module": "MorseFiniteAxiomAudit", + "started_utc": "2026-10-18T03:04:11.819011+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 900, + "threads": 2, + "status": "PREFLIGHT" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/stderr.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/stdout.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/stdout.txt new file mode 100644 index 000000000..0026d4960 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/stdout.txt @@ -0,0 +1,260 @@ +'TorusMorseFinite.quotientCriticalSet_finite' depends on axioms: [propext, Classical.choice, Quot.sound] +'TorusMorseFinite.quotientCriticalSet_finite_of_inertia' depends on axioms: [propext, Classical.choice, Quot.sound] +TorusMorseFinite.quotientCriticalSet_finite : ∀ (d : ℕ) (L : ℝ) (hL : 0 < L) (g : UniversalLaw.Spec.Lifetime.E d → ℝ), + UniversalLaw.Spec.Lifetime.IsSmooth d g → + UniversalLaw.Spec.Lifetime.IsLPeriodic d L g → + UniversalLaw.Spec.Lifetime.IsMorseDistinct d L g → (TorusMorseFinite.quotientCriticalSet d L hL g).Finite +MORSE_AUDIT_MODULE Lifetime COUNT 103 +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.E AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.FundDomain AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.HessianHasInertia AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsCandidatePair AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsCriticalPoint AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsFiniteBar AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsIndexSaddle AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsLPeriodic AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsLifetimeDensityVersion AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsMorseDistinct AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsNondegMax AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsSmooth AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsUnrestrictedLeadingCoefficient AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsUnrestrictedPair AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsWindowElderPair AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsWindowPair AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.ParentCompactWindowDensityB AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.ParentUniformSelectionA AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.ParentUnrestrictedLeadingDensityC AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PlanarDensityGapE11 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PlanarElderLowerE2 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PlanarTwoSidedRateE4 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.RemainderBoundedR1 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.covQuadForm AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.heightGap AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.hessian AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.latticeVec AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.pairCount AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.pairSet AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.periodicCovariance AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.pinM AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.pinS AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.scaledGap AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.thetaSum AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.torusDist AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.F AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.P AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface._sizeOf_1 AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface._sizeOf_inst AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.casesOn AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.covariance AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.ctorIdx AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.gaussian AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.isProb AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.mk AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.mΩ AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.noConfusion AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.noConfusionType AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.periodic AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.quad_nonneg AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.rec AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.recOn AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.smooth AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.summable AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.Ω AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.IsLifetimeDensityVersion._proof_1 AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface._sizeOf_1 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface._sizeOf_inst AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.casesOn AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.ctorIdx AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.mk AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.noConfusion AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.noConfusionType AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.p AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.p_le_one AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.p_nonneg AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.rec AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.recOn AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.ParentCompactWindowDensityB._proof_1 AXIOMS [propext] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.ElderPartner AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.IsEssential AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface._sizeOf_1 AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface._sizeOf_inst AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.casesOn AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.ctorIdx AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.deathHeight AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.deathHeight_maximin AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.elderPartner_iff AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.essential_iff AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.mk AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.noConfusion AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.noConfusionType AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.rec AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.recOn AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.thetaSum._proof_1 AXIOMS [propext] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.mk._flat_ctor AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.mk.inj AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.mk.injEq AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.mk.noConfusion AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.GaussianFieldInterface.mk.sizeOf_spec AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.mk._flat_ctor AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.mk.inj AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.mk.injEq AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.mk.noConfusion AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.PairLawInterface.mk.sizeOf_spec AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.mk._flat_ctor AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.mk.inj AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.mk.injEq AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.mk.noConfusion AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.SuperlevelBarInterface.mk.sizeOf_spec AXIOMS [propext, + Classical.choice, + Quot.sound] +MORSE_AUDIT_MODULE TorusTopology COUNT 38 +MORSE_AUDIT_DECL TorusFiltration.torus_E AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_basis_sum_eq_latticeVec AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_closed_higher_path_iff AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_compact AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_control_constant_path_endpoint AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_control_lattice_translate AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_control_no_arbitrary_endpoint AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_descend AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_descend_continuous AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_descend_proj AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_field_latticeVec_formula AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_field_periodic_formula AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_global_max_iff AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_higher_path_iff AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_isPeriodic AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_latticeVec AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_lattice_addSubgroup_discrete AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_lattice_discrete AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_lattice_isZLattice AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_lattice_mem_iff AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_pathConnectedSpace AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_path_lift_from AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_periodBasis AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_periodLattice AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_periodic_respects AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_proj AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_proj_continuous AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_proj_eq_iff AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_proj_isCoveringMap AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_proj_surjective AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_quotient AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_strict_higher_path_iff AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_pathConnectedSpace._proof_1_1 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_periodBasis._proof_1 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_periodBasis.congr_simp AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_periodBasis.eq_1 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_proj_eq_iff._abel_1_1 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_proj_eq_iff._abel_1_2 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_MODULE MorseFiniteCritical COUNT 20 +MORSE_AUDIT_DECL TorusMorseFinite.inertia_fderiv_equiv AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.inertia_fderiv_injective AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.literal_critical_isolated AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.literal_fderiv_periodic AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.literal_fderiv_respects AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.literal_hessian_eq_fderiv AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.literal_hessian_symmetric AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.mem_quotientCriticalSet_iff AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.quotientCriticalSet AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.quotientCriticalSet_closed AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.quotientCriticalSet_discrete AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.quotientCriticalSet_finite AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.quotientCriticalSet_finite_of_inertia AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.quotientDerivative AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.quotientDerivative_continuous AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.quotientDerivative_proj AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusFiltration.torus_latticeVec.eq_1 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseFinite.inertia_fderiv_injective._simp_1_1 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.hessian.eq_1 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL UniversalLaw.Spec.Lifetime.latticeVec.eq_1 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_MODULE MorseFiniteControls COUNT 8 +MORSE_AUDIT_DECL TorusMorseControls.closed_interval_compact AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseControls.complementary_axes AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseControls.half_open_not_compact AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseControls.nonsmooth_literal_critical AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseControls.nonsymmetricForm AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseControls.nonsymmetricForm_bilinear AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseControls.nonsymmetric_signed_axes_singular AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_DECL TorusMorseControls.nonsymmetricForm.eq_1 AXIOMS [propext, Classical.choice, Quot.sound] +MORSE_AUDIT_STANDARD_ONLY_PASS COUNT 169 +MORSE_AUDIT_PROGRESS Lifetime COUNT 103 +MORSE_AUDIT_PROGRESS TorusTopology COUNT 38 +MORSE_AUDIT_PROGRESS MorseFiniteCritical COUNT 20 +MORSE_AUDIT_PROGRESS MorseFiniteControls COUNT 8 diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/PREFLIGHT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/PREFLIGHT.json new file mode 100644 index 000000000..636b41922 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/PREFLIGHT.json @@ -0,0 +1,50 @@ +{ + "kind": "kernel", + "module": "MorseFiniteCritical", + "started_utc": "2026-10-18T03:07:05.643698+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/leanchecker", + "-v", + "MorseFiniteCritical" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "cfde41cb11dde58c84e9c60c551fd104bb2fc1104ad44dca932a923120272a35", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/PROCESS_START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/PROCESS_START.json new file mode 100644 index 000000000..840432364 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/PROCESS_START.json @@ -0,0 +1,51 @@ +{ + "kind": "kernel", + "module": "MorseFiniteCritical", + "started_utc": "2026-10-18T03:07:05.643698+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/leanchecker", + "-v", + "MorseFiniteCritical" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "cfde41cb11dde58c84e9c60c551fd104bb2fc1104ad44dca932a923120272a35", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 4058 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/RECEIPT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/RECEIPT.json new file mode 100644 index 000000000..4cf2c18d8 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/RECEIPT.json @@ -0,0 +1,83 @@ +{ + "kind": "kernel", + "module": "MorseFiniteCritical", + "started_utc": "2026-10-18T03:07:05.643698+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PASS", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/leanchecker", + "-v", + "MorseFiniteCritical" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "cfde41cb11dde58c84e9c60c551fd104bb2fc1104ad44dca932a923120272a35", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 4058, + "returncode": 0, + "timed_out": false, + "source_after": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_after": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_after": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "source_unchanged": true, + "imported_objects_unchanged": true, + "object_sha256": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "produced_objects": { + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2" + }, + "stdout_sha256": "45f60f1684b28ba972f88effa7b1e1c2d741ac55c3ed59132b0a3095d2a4fdd7", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "process_reaped": true, + "ended_utc": "2026-10-18T03:08:32.099955+00:00", + "seconds": 86.455803625 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/START.json new file mode 100644 index 000000000..b5bf23703 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/START.json @@ -0,0 +1,11 @@ +{ + "kind": "kernel", + "module": "MorseFiniteCritical", + "started_utc": "2026-10-18T03:07:05.643698+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/stderr.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/stdout.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/stdout.txt new file mode 100644 index 000000000..4c275d473 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030705Z-kernel-MorseFiniteCritical-d446fa38/stdout.txt @@ -0,0 +1 @@ +replaying MorseFiniteCritical diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/PREFLIGHT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/PREFLIGHT.json new file mode 100644 index 000000000..be32a69e2 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/PREFLIGHT.json @@ -0,0 +1,50 @@ +{ + "kind": "kernel", + "module": "MorseFiniteControls", + "started_utc": "2026-10-18T03:08:32.190556+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/leanchecker", + "-v", + "MorseFiniteControls" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "cfde41cb11dde58c84e9c60c551fd104bb2fc1104ad44dca932a923120272a35", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/PROCESS_START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/PROCESS_START.json new file mode 100644 index 000000000..64576a942 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/PROCESS_START.json @@ -0,0 +1,51 @@ +{ + "kind": "kernel", + "module": "MorseFiniteControls", + "started_utc": "2026-10-18T03:08:32.190556+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/leanchecker", + "-v", + "MorseFiniteControls" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "cfde41cb11dde58c84e9c60c551fd104bb2fc1104ad44dca932a923120272a35", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 4124 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/RECEIPT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/RECEIPT.json new file mode 100644 index 000000000..cea019859 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/RECEIPT.json @@ -0,0 +1,83 @@ +{ + "kind": "kernel", + "module": "MorseFiniteControls", + "started_utc": "2026-10-18T03:08:32.190556+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PASS", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/leanchecker", + "-v", + "MorseFiniteControls" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "cfde41cb11dde58c84e9c60c551fd104bb2fc1104ad44dca932a923120272a35", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 4124, + "returncode": 0, + "timed_out": false, + "source_after": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_after": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_after": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "source_unchanged": true, + "imported_objects_unchanged": true, + "object_sha256": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "produced_objects": { + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa" + }, + "stdout_sha256": "af3cb6aebcad4de406c82675aec952a343ad4e0f8cee0d9192e267ed6016f578", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "process_reaped": true, + "ended_utc": "2026-10-18T03:10:00.330880+00:00", + "seconds": 88.140006125 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/START.json new file mode 100644 index 000000000..a6b9b611b --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/START.json @@ -0,0 +1,11 @@ +{ + "kind": "kernel", + "module": "MorseFiniteControls", + "started_utc": "2026-10-18T03:08:32.190556+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/stderr.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/stdout.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/stdout.txt new file mode 100644 index 000000000..1232920b6 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T030832Z-kernel-MorseFiniteControls-22a2daa0/stdout.txt @@ -0,0 +1 @@ +replaying MorseFiniteControls diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/PREFLIGHT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/PREFLIGHT.json new file mode 100644 index 000000000..ef844d8f3 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/PREFLIGHT.json @@ -0,0 +1,50 @@ +{ + "kind": "kernel", + "module": "MorseFiniteAxiomAudit", + "started_utc": "2026-10-18T03:10:00.421168+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/leanchecker", + "-v", + "MorseFiniteAxiomAudit" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "cfde41cb11dde58c84e9c60c551fd104bb2fc1104ad44dca932a923120272a35", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/PROCESS_START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/PROCESS_START.json new file mode 100644 index 000000000..17cba5a16 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/PROCESS_START.json @@ -0,0 +1,51 @@ +{ + "kind": "kernel", + "module": "MorseFiniteAxiomAudit", + "started_utc": "2026-10-18T03:10:00.421168+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/leanchecker", + "-v", + "MorseFiniteAxiomAudit" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "cfde41cb11dde58c84e9c60c551fd104bb2fc1104ad44dca932a923120272a35", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 4227 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/RECEIPT.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/RECEIPT.json new file mode 100644 index 000000000..b6e26bb00 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/RECEIPT.json @@ -0,0 +1,83 @@ +{ + "kind": "kernel", + "module": "MorseFiniteAxiomAudit", + "started_utc": "2026-10-18T03:10:00.421168+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PASS", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_before": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "command": [ + "$LEAN_RUNTIME/bin/leanchecker", + "-v", + "MorseFiniteAxiomAudit" + ], + "process_path": "$LEAN_RUNTIME/bin:/usr/bin:/bin:/usr/sbin:/sbin", + "lean_path": [ + "$C293_ROOT/final-build", + "$PINNED_PROJECT/.lake/packages/plausible/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/LeanSearchClient/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/importGraph/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/proofwidgets/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/aesop/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/Qq/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/batteries/.lake/build/lib/lean", + "$PINNED_PROJECT/.lake/packages/mathlib/.lake/build/lib/lean" + ], + "executable_sha256": "cfde41cb11dde58c84e9c60c551fd104bb2fc1104ad44dca932a923120272a35", + "resolved_lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "child_pid": 4227, + "returncode": 0, + "timed_out": false, + "source_after": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_after": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "dependency_after": { + "reused": 83897, + "rehashed": [], + "mode": "C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash" + }, + "source_unchanged": true, + "imported_objects_unchanged": true, + "object_sha256": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "produced_objects": { + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b" + }, + "stdout_sha256": "1a7ed056c90d4e8e393b9b622afd31a5bc6b4ceed37d0943a4a2e3f92246c387", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "process_reaped": true, + "ended_utc": "2026-10-18T03:11:29.786351+00:00", + "seconds": 89.364834291 +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/START.json b/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/START.json new file mode 100644 index 000000000..f9f15db02 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/START.json @@ -0,0 +1,11 @@ +{ + "kind": "kernel", + "module": "MorseFiniteAxiomAudit", + "started_utc": "2026-10-18T03:10:00.421168+00:00", + "runner_sha256": "e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23", + "kernel_scope": "standard named-module replay against imported dependencies; not --fresh/external verification", + "scientific_effect": "NONE", + "timeout_seconds": 420, + "threads": 2, + "status": "PREFLIGHT" +} diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/stderr.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/stdout.txt b/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/stdout.txt new file mode 100644 index 000000000..b4d7e63f8 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final-runs/20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21/stdout.txt @@ -0,0 +1 @@ +replaying MorseFiniteAxiomAudit diff --git a/frontiers/morse_finite_critical_20261018/final_master.py b/frontiers/morse_finite_critical_20261018/final_master.py new file mode 100644 index 000000000..fccc8e48f --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/final_master.py @@ -0,0 +1,154 @@ +"""Once-only C293 artifact binding; no compiler/network. Contract: evidence/MASTER_CONTRACT.md. +Existing build/kernel receipts are evidence inputs, not proof execution by this master. +Only subprocess: exact canonical delivery builder's read-only `verify` operation. +""" +from pathlib import Path +from datetime import datetime, timezone +import hashlib, json, re, subprocess, sys, zipfile + +ROOT = Path(__file__).resolve().parent +MODULES = ['Lifetime', 'TorusTopology', 'MorseFiniteCritical', 'MorseFiniteControls', 'MorseFiniteAxiomAudit'] +NEW = MODULES[2:] +TARGET = 'TorusMorseFinite.quotientCriticalSet_finite' +BUILDER = '88d6e30182ae682d27f4d156f6c935f8373168ca6ff14d3141cd69c4b036d3a3' +FROZEN = 'f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de' +EXES = {'build': '1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554', + 'kernel': 'cfde41cb11dde58c84e9c60c551fd104bb2fc1104ad44dca932a923120272a35'} +checks, observed = [], {} +digest = lambda b: hashlib.sha256(b).hexdigest() +blob = lambda b: hashlib.sha1(b'blob ' + str(len(b)).encode() + b'\0' + b).hexdigest() +now = lambda: datetime.now(timezone.utc).isoformat() + +def check(name, ok): + checks.append({'name': name, 'pass': bool(ok)}) + if not ok: raise ValueError(name) + +def read(path): + p = ROOT / path + check('regular nonsymlink: ' + str(p), p.is_file() and all(not q.is_symlink() for q in [p, *p.parents])) + b = p.read_bytes(); h = digest(b) + check('stable reread: ' + str(p), p not in observed or observed[p] == h) + observed[p] = h + return b + +def document(path): return json.loads(read(path)) +def local_name(name): + p = Path(name) + check('safe relative member: ' + name, not p.is_absolute() and '..' not in p.parts and bool(p.parts)) + return p + +def verify(): + check('master identity', digest(read(Path(__file__))) == document('FINAL_MASTER_START.json')['master_sha256']) + read('evidence/MASTER_CONTRACT.md') + inv = document('FINAL_SOURCE_INVENTORY.json'); ih = digest(read('FINAL_SOURCE_INVENTORY.json')) + check('exact frozen inventory', ih == FROZEN) + src = {r['name']: r['sha256'] for r in inv['sources']} + check('exact five source identities', len(inv['sources']) == 5 and set(src) == {m + '.lean' for m in MODULES}) + check('exact isolated source pathset', {p.name for p in (ROOT/'final-project').iterdir()} == set(src)) + for r in inv['sources']: + for base in ['project', 'final-project']: + b = read(Path(base)/r['name']); check(base + '/' + r['name'], len(b) == r['bytes'] and digest(b) == r['sha256']) + inputs = document('SOURCE_INPUTS.json')['sources'] + check('exact two immutable source inputs', len(inputs) == 2 and {Path(r['project_path']).name for r in inputs} == {'Lifetime.lean', 'TorusTopology.lean'}) + for r in inputs: + b = read(local_name(r['project_path'])) + check(r['project_path'] + ': SHA and Git blob', len(b) == r['bytes'] and digest(b) == r['sha256'] == src[Path(r['project_path']).name] and blob(b) == r['blob'] == r['verified_blob']) + check('frozen phase runner', digest(read('run_final_phase.py')) == inv['runner_sha256']) + dep = document('FINAL_DEPENDENCY_ARTIFACTS.json') + check('bound dependency inventory', observed[ROOT/'FINAL_DEPENDENCY_ARTIFACTS.json'] == inv['dependency_artifact_inventory_sha256']) + seq = document('FINAL_SEQUENCE_RESULT.json'); start = document('FINAL_SEQUENCE_START.json') + phases = [('build', m) for m in MODULES] + [('kernel', m) for m in NEW] + check('once sequence completed', seq['status'] == 'PASS_FROZEN_BUILD_AND_STANDARD_KERNEL_REPLAY' and seq['inventory_sha256'] == start['inventory_sha256'] == ih) + check('sequence driver binding', start['driver_sha256'] == digest(read('run_final_sequence.py'))) + check('exact eight successful phases', [(r['kind'], r['module']) for r in seq['phases']] == phases and all(r['returncode'] == 0 for r in seq['phases'])) + paths = sorted((ROOT/'final-runs').glob('*/RECEIPT.json')); rows = [document(p) for p in paths] + check('exact eight unique final receipts', len(rows) == 8 and len({(r['kind'], r['module']) for r in rows}) == 8) + receipts = {(r['kind'], r['module']): (p.parent, r) for p, r in zip(paths, rows)} + check('receipt phase set', set(receipts) == set(phases)) + known = {}; audit = '' + for kind, module in phases: + folder, r = receipts[kind, module]; label = kind + ':' + module + check(label + ': successful exact execution', r['status'] == 'PASS' and r['returncode'] == 0 and r['timed_out'] is False and r['process_reaped'] is True and r['inventory_sha256'] == ih and r['runner_sha256'] == inv['runner_sha256'] and r['executable_sha256'] == EXES[kind]) + check(label + ': stable sources and imported objects', r['source_before'] == r['source_after'] == src and r['source_unchanged'] is True and r['imported_objects_unchanged'] is True and r['objects_before'] == known) + for phase in ['before', 'after']: + d = r['dependency_' + phase]; check(label + ': dependency census ' + phase, d['reused'] + len(d['rehashed']) == len(dep['artifacts'])) + for stream in ['stdout', 'stderr']: + b = read(folder/(stream + '.txt')); check(label + ':' + stream, digest(b) == r[stream + '_sha256']) + if kind == 'build' and module != 'MorseFiniteAxiomAudit': check(label + ': clean ' + stream, b == b'') + if kind == 'build': + produced = r['produced_objects']; allowed = {module+s for s in ['.olean', '.olean.private', '.olean.server', '.ir', '.ir.sig']} + check(label + ': module outputs', module+'.olean' in produced and set(produced) <= allowed and not set(produced) & set(known)) + if module in NEW: check(label + ': warnings as errors', '-DwarningAsError=true' in r['command']) + known.update(produced) + if module == 'MorseFiniteAxiomAudit': audit = read(folder/'stdout.txt').decode() + else: check(label + ': standard named-module kernel', r['command'][1:] == ['-v', module] and Path(r['command'][0]).name == 'leanchecker' and '--fresh' not in r['command']) + check(label + ': output binding', r['objects_after'] == known and r['object_sha256'] == known[module+'.olean']) + check('final object pathset', {p.name for p in (ROOT/'final-build').iterdir()} == set(known)) + for name, h in known.items(): check(name + ': current object', digest(read(Path('final-build')/name)) == h) + census, names, section = {}, [], None + # Lean wraps axiom lists. Match full-text records, bounded by brackets and size. + pattern = r'MORSE_AUDIT_MODULE (?P\S+) COUNT (?P\d+)|MORSE_AUDIT_DECL (?P\S+) AXIOMS \[(?P[^\[\]]{0,4096})\]' + for m in re.finditer(pattern, audit): + if m['module'] is not None: + section = m['module']; check('unique census module ' + section, section not in census); census[section] = [int(m['count']), 0] + else: + check('census declaration has module', section in census) + axs = {x.strip() for x in m['axioms'].split(',') if x.strip()} + check('standard axioms: ' + m['name'], axs <= {'propext', 'Classical.choice', 'Quot.sound'}) + names.append(m['name']); census[section][1] += 1 + totals = re.findall(r'MORSE_AUDIT_STANDARD_ONLY_PASS COUNT (\d+)', audit) + check('complete unique declaration census', set(census) == set(MODULES[:4]) and all(a == b and a > 0 for a, b in census.values()) and len(names) == len(set(names)) == audit.count('MORSE_AUDIT_DECL ') == 169 and totals == [str(len(names))]) + required_text = read('final-project/MorseFiniteAxiomAudit.lean').decode().split('let required : Array Name := #[', 1)[1].split(']', 1)[0] + required = re.findall(r'`([A-Za-z0-9_.]+)', required_text) + check('all required declarations including target', TARGET in required and set(required) <= set(names)) + n = document('negative-final/RECEIPT.json'); text = '' + for stream in ['stdout', 'stderr']: + b = read('negative-final/' + stream + '.txt'); check('N1 ' + stream, digest(b) == n[stream+'_sha256']); text += b.decode() + check('N1 actual missing-premise rejection', n['status'] == 'PASS_EXPECTED_MISSING_PREMISE_REJECTION' and n['returncode'] != 0 and n['timed_out'] is False and n['diagnostic_match'] is True and 'type mismatch' in text.lower() and 'IsMorseDistinct' in text and not any(x in text.lower() for x in ['unknown module', 'unknown identifier', 'unexpected token', 'object file'])) + check('N1 frozen bindings', n['inventory_sha256'] == ih and n['source_before'] == src and n['objects_before'] == known and n['lean_sha256'] == EXES['build'] and all(n[k] is True for k in ['source_unchanged', 'imported_sources_unchanged', 'imported_objects_unchanged']) and n['source_sha256'] == digest(read('negative-project/WithoutMorse.lean')) and n['runner_sha256'] == digest(read('run_negative.py'))) + a = document('ROOT_ACCEPTANCE.json') + check('scoped exact formal acceptance', a['verdict'] == 'ACCEPT_SCOPED_FORMAL' and a['source_sha256'] == src['MorseFiniteCritical.lean'] and a['source_inventory_sha256'] == ih and a['review_sha256'] == digest(read(local_name(a['review_path'])))) + check('no independent or scientific credit', a['organizational_independence_credit'] == 0 and a['human_review_credit'] == 0 and a['scientific_effect'] == 'NONE') + gh = document('GITHUB_READBACK.json'); files = gh['files']; published = set() + check('standalone public scope', gh['path_prefix'] == 'frontiers/morse_finite_critical_20261018/' and re.fullmatch('[0-9a-f]{40}', gh['head']) is not None) + for r in files: + p = local_name(r['relative_path']); check('unique published path', str(p) not in published); published.add(str(p)); b = read(Path('publication-package')/p) + check(str(p)+': native/remote/tree bytes', len(b) == r['bytes'] and digest(b) == r['sha256'] == r['remote_sha256'] and r['raw_byte_match'] is True and blob(b) == r['git_blob'] == r['tree_blob']) + check('complete publication file set', published == {str(p.relative_to(ROOT/'publication-package')) for p in (ROOT/'publication-package').rglob('*') if p.is_file()} and set(src.values()) <= {r['sha256'] for r in files}) + ci = document('HOSTED_CI_READBACK.json'); jobs = ci['jobs'] + check('exact head three successful hosted jobs', ci['head'] == gh['head'] and len(jobs) == len({j['id'] for j in jobs}) == 3 and all(j['head_sha'] == gh['head'] and j['status'] == 'completed' and j['conclusion'] == 'success' for j in jobs)) + check('local-only new formal execution', ci['new_formal_execution'] == 'LOCAL_ONLY_NOT_REGISTERED_IN_HOSTED_FORMAL' and ci['scientific_effect'] == 'NONE') + tool = ROOT.parent/'continuation288/PACKET/TOOLS/research_delivery.py'; check('canonical builder', digest(read(tool)) == BUILDER) + archive = ROOT/'C293_MORSE_FINITE_CRITICAL_DELIVERY.zip'; raw = read(archive) + run = subprocess.run([sys.executable, '-B', str(tool), 'verify', str(archive)], capture_output=True, text=True, timeout=120) + check('canonical archive verification', run.returncode == 0) + with zipfile.ZipFile(archive) as z: + manifest = json.loads(z.read('DELIVERY_MANIFEST.json')); members = [r['filename'] for r in manifest['files']] + check('exact unique archive members', len(members) == len(set(members)) and len(z.namelist()) == len(set(z.namelist())) and set(z.namelist()) == set(members) | {'DELIVERY_MANIFEST.json'}) + check('complete native packet set', set(members) == {str(p.relative_to(ROOT/'PACKET')) for p in (ROOT/'PACKET').rglob('*') if p.is_file()}) + for r in manifest['files']: + b = z.read(r['filename']); check(r['filename']+': archive/native equality', len(b) == r['size'] and digest(b) == r['sha256'] and b == read(Path('PACKET')/local_name(r['filename']))) + custody = document('PRIVATE_CUSTODY_RECEIPT.json') + check('private exact uploaded/downloaded archive', custody['owner_only'] is True and custody['actual_raw_download_equal'] is True and custody['bytes'] == len(raw) and custody['sha256'] == digest(raw) and read('REMOTE_READBACK.zip') == raw) + for p, h in list(observed.items()): check('final stable bytes: '+str(p), p.is_file() and all(not q.is_symlink() for q in [p, *p.parents]) and digest(p.read_bytes()) == h) + check('final source/object pathsets', {p.name for p in (ROOT/'final-project').iterdir()} == set(src) and {p.name for p in (ROOT/'final-build').iterdir()} == set(known)) + check('final publication/packet pathsets', published == {str(p.relative_to(ROOT/'publication-package')) for p in (ROOT/'publication-package').rglob('*') if p.is_file()} and set(members) == {str(p.relative_to(ROOT/'PACKET')) for p in (ROOT/'PACKET').rglob('*') if p.is_file()}) + return {'axiom_census': census, 'axiom_count': len(names), 'canonical_verify_stdout': run.stdout, 'canonical_verify_stderr': run.stderr} + +def main(): + start, output = ROOT/'FINAL_MASTER_START.json', ROOT/'FINAL_MASTER.json' + if start.exists() or output.exists(): + print('REFUSED: final master already started; prior evidence preserved', file=sys.stderr); return 1 + try: + with start.open('x') as f: json.dump({'started_utc': now(), 'master_sha256': digest(Path(__file__).read_bytes()), 'scientific_effect': 'NONE'}, f, indent=2) + except FileExistsError: return 1 + report = {'status': 'HOLD_ARTIFACT_VERIFICATION', 'scientific_effect': 'NONE'} + try: + report.update(verify()); report['status'] = 'PASS_ARTIFACT_VERIFICATION_NOT_THEOREM_PROOF' + except BaseException as exc: report['error'] = repr(exc) + report.update(finished_utc=now(), checks=checks, check_count=len(checks), observed_sha256={str(p): h for p, h in observed.items()}) + with output.open('x') as f: json.dump(report, f, indent=2, sort_keys=True); f.write('\n') + print(json.dumps({'status': report['status'], 'checks': len(checks)})) + return 0 if report['status'].startswith('PASS_') else 1 + +if __name__ == '__main__': raise SystemExit(main()) diff --git a/frontiers/morse_finite_critical_20261018/negative-final/RECEIPT.json b/frontiers/morse_finite_critical_20261018/negative-final/RECEIPT.json new file mode 100644 index 000000000..bf67484a7 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/negative-final/RECEIPT.json @@ -0,0 +1,41 @@ +{ + "started_utc": "2026-10-18T03:14:10.007475+00:00", + "source_sha256": "4c9726b692dbb83237b82344e7b5aab621749da6da699c0187cf9893dca8d80f", + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "$C293_ROOT/negative-project/WithoutMorse.lean" + ], + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "runner_sha256": "cb5a8db15b5b5881463fc5e6faea7f38c3de0a3f7e56b6fd9001f3326a815faa", + "timeout_seconds": 240, + "meaning": "Interface rejection for absent nondegeneracy; not itself a counterexample theorem.", + "ended_utc": "2026-10-18T03:15:46.622746+00:00", + "seconds": 96.614084542, + "returncode": 1, + "timed_out": false, + "child_pid": 4753, + "diagnostic_match": true, + "source_unchanged": true, + "imported_sources_unchanged": true, + "imported_objects_unchanged": true, + "stdout_sha256": "2606cce55be96a1c241544374a6790e472c61b57ba369966f4a1e05649b4b10a", + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "status": "PASS_EXPECTED_MISSING_PREMISE_REJECTION" +} diff --git a/frontiers/morse_finite_critical_20261018/negative-final/START.json b/frontiers/morse_finite_critical_20261018/negative-final/START.json new file mode 100644 index 000000000..43983cd94 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/negative-final/START.json @@ -0,0 +1,29 @@ +{ + "started_utc": "2026-10-18T03:14:10.007475+00:00", + "source_sha256": "4c9726b692dbb83237b82344e7b5aab621749da6da699c0187cf9893dca8d80f", + "command": [ + "$LEAN_RUNTIME/bin/lean", + "-j2", + "-M4096", + "$C293_ROOT/negative-project/WithoutMorse.lean" + ], + "source_before": { + "Lifetime.lean": "90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", + "MorseFiniteAxiomAudit.lean": "326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", + "MorseFiniteControls.lean": "e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", + "MorseFiniteCritical.lean": "95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", + "TorusTopology.lean": "ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1" + }, + "objects_before": { + "Lifetime.olean": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "MorseFiniteAxiomAudit.olean": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", + "MorseFiniteControls.olean": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteCritical.olean": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "TorusTopology.olean": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125" + }, + "lean_sha256": "1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554", + "inventory_sha256": "f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de", + "runner_sha256": "cb5a8db15b5b5881463fc5e6faea7f38c3de0a3f7e56b6fd9001f3326a815faa", + "timeout_seconds": 240, + "meaning": "Interface rejection for absent nondegeneracy; not itself a counterexample theorem." +} diff --git a/frontiers/morse_finite_critical_20261018/negative-final/stderr.txt b/frontiers/morse_finite_critical_20261018/negative-final/stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/frontiers/morse_finite_critical_20261018/negative-final/stdout.txt b/frontiers/morse_finite_critical_20261018/negative-final/stdout.txt new file mode 100644 index 000000000..b15dbb093 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/negative-final/stdout.txt @@ -0,0 +1,6 @@ +$C293_ROOT/negative-project/WithoutMorse.lean:10:2: error: Type mismatch + quotientCriticalSet_finite d L hL g hs hp +has type + IsMorseDistinct d L g → (quotientCriticalSet d L hL g).Finite +but is expected to have type + (quotientCriticalSet d L hL g).Finite diff --git a/frontiers/morse_finite_critical_20261018/negative-project/WithoutMorse.lean b/frontiers/morse_finite_critical_20261018/negative-project/WithoutMorse.lean new file mode 100644 index 000000000..6d83f9f43 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/negative-project/WithoutMorse.lean @@ -0,0 +1,10 @@ +import MorseFiniteCritical + +open UniversalLaw.Spec.Lifetime TorusFiltration TorusMorseFinite + +-- Deliberately stronger conclusion without the required Morse hypothesis. +-- Expected rejection must concern the missing premise, not import or syntax. +example (d : ℕ) (L : ℝ) (hL : 0 < L) (g : E d → ℝ) + (hs : IsSmooth d g) (hp : IsLPeriodic d L g) : + (quotientCriticalSet d L hL g).Finite := by + exact quotientCriticalSet_finite d L hL g hs hp diff --git a/frontiers/morse_finite_critical_20261018/prepare_final_inputs.py b/frontiers/morse_finite_critical_20261018/prepare_final_inputs.py new file mode 100644 index 000000000..242ce7cc0 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/prepare_final_inputs.py @@ -0,0 +1,60 @@ +"""C293 five-source freeze and metadata-delta reuse; run only on root's frozen inputs.""" +import fcntl, hashlib, json, shutil, sys, uuid +from run_final_phase import ROOT, PROJECT, BUILD, C291, MODULES, NEW, BASE_SHA, require, now, sha, stamp, write, runtime, dependencies + + +def main(): + require(sys.argv[1:] == ['--freeze'], 'usage: prepare_final_inputs.py --freeze (root-authorized freeze only)') + with (ROOT / 'lean-slot.lock').open('a+') as lock: + fcntl.flock(lock, fcntl.LOCK_EX) + require(not PROJECT.exists() and not BUILD.exists(), 'final directories already exist') + require(not (ROOT / 'FINAL_SOURCE_INVENTORY.json').exists(), 'final inventory exists') + attempts = ROOT / 'final-prepare-attempts'; attempts.mkdir(exist_ok=True) + require(not attempts.is_symlink(), 'unsafe preparation record directory') + legacy = ROOT / 'FINAL_PREPARE_START.json' + prior = {'path': str(legacy), 'sha256': sha(legacy)} if legacy.is_file() else None + start_record = attempts / (now().replace(':', '').replace('+', '_') + '-' + uuid.uuid4().hex + '.json') + write(start_record, {'started_utc': now(), 'prior_legacy_start': prior, + 'status': 'STARTED; missing final inventory means interrupted preparation; no overwrite/retry cleanup'}) + sources, imports = [], {} + for m in MODULES: + p = ROOT / 'project' / (m + '.lean'); before = stamp(p); digest = sha(p) + require(stamp(p) == before, 'source changed during hash') + sources.append({'name': p.name, 'sha256': digest, 'bytes': before[0]}) + imports[m] = [n for line in p.read_text().splitlines() if line.startswith('import ') + for n in line[7:].split() if n in MODULES] + order, pending = [], list(MODULES) + while pending: + available = [m for m in pending if set(imports[m]) <= set(order)] + require(available, 'local import cycle') + for m in available: + order.append(m); pending.remove(m) + original = C291 / 'FINAL_DEPENDENCY_ARTIFACTS.json' + original_raw = original.read_bytes() + require(hashlib.sha256(original_raw).hexdigest() == BASE_SHA, 'C291 dependency inventory bytes changed') + baseline = json.loads(original_raw); roots, _ = runtime() + require(roots == baseline['roots'], 'dependency roots differ from C291') + checked, delta = dependencies(baseline) + checked.update(c291_inventory_sha256=BASE_SHA, checked_utc=now(), reuse_delta=delta) + dep_path = ROOT / 'FINAL_DEPENDENCY_ARTIFACTS.json'; write(dep_path, checked) + PROJECT.mkdir(); BUILD.mkdir() + for item in sources: + src = ROOT / 'project' / item['name'] + require(sha(src) == item['sha256'], 'source changed during freeze') + shutil.copyfile(src, PROJECT / item['name']) + require(sha(PROJECT / item['name']) == item['sha256'], 'source copy mismatch') + inv = {'frozen_utc': now(), 'prepare_start_record': str(start_record), + 'prepare_start_sha256': sha(start_record), 'prior_legacy_start': prior, 'sources': sources, 'build_order': order, 'local_imports': imports, + 'new_modules': NEW, 'runner_sha256': sha(ROOT / 'run_final_phase.py'), + 'preparer_sha256': sha(ROOT / 'prepare_final_inputs.py'), + 'dependency_artifact_inventory_sha256': sha(dep_path), 'c291_inventory_sha256': BASE_SHA, + 'scientific_effect': 'NONE', 'execution_provenance': 'LOCAL; no hosted qualification'} + write(ROOT / 'evidence/FINAL_BUILD_INITIALIZATION.json', {'utc': now(), 'initial_objects': [], + 'build_was_created_empty': not any(BUILD.iterdir()), 'dependency_reuse': delta, + 'prepare_start_record': str(start_record), 'prepare_start_sha256': sha(start_record)}) + write(ROOT / 'FINAL_SOURCE_INVENTORY.json', inv) + print(json.dumps({'stage': 'FROZEN', 'modules': order, 'dependency_reuse': delta}), flush=True) + + +if __name__ == '__main__': + main() diff --git a/frontiers/morse_finite_critical_20261018/reviews/MAIN_SOURCE_REVIEW.md b/frontiers/morse_finite_critical_20261018/reviews/MAIN_SOURCE_REVIEW.md new file mode 100644 index 000000000..5b043320a --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/reviews/MAIN_SOURCE_REVIEW.md @@ -0,0 +1,276 @@ +# C293 exact main-source nonauthor review + +Review date: 2026-10-18 UTC. Reviewer: OpenAI Codex delegated agent +`/root/c292_geometry_review`, for Dylan Roy. Verdict: +**ACCEPT_SCOPED_MAIN_SOURCE**. I found no mathematical or theorem-interface +must-fix defect in the exact main source identified below. This is acceptance of +the source proof of finite projected literal critical points. Final frozen build, +control execution, axiom census, and kernel replay remain separate pending gates +at this report's issue time. This report does not declare C293 fully accepted or +published. + +## Identity and actual exposure + +All paths below are relative to +`$C293_ROOT`. +I read the complete 223-line main source and complete author notes after the +parent announced the exact freeze; I did not inspect or edit the developing main +file. I also read the source input manifest, scope document, relevant literal +definitions in Lifetime, the complete TorusTopology companion in the preceding +review work and its relevant quotient construction again here, and the relevant +pinned Mathlib API declarations. I read the clean author compile receipt and +verified its empty stream hashes and matching current development object hash. +I did not run Lean, leanchecker, or modify any author proof. + +I previously reviewed C292's conventional proof, performed a read-only API +feasibility audit for the current finite-critical step, and wrote the prospective +C293 `reviews/REVIEW_PLAN.md`. That feasibility work discussed both a compact +representative-domain route and a closed/discrete quotient route. It was reported +to the parent before author implementation. I was exposed to the intended claim, +the definitions, proposed dependency routes, and control ideas, so this is not a +blind review. I did not coauthor this main file. The author and reviewer use the +same provider/organization, OpenAI; organizational-independence credit is **0**. + +| Artifact | Bytes | SHA-256 | +| --- | ---: | --- | +| `project/MorseFiniteCritical.lean` | 9445 | `95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b` | +| `AUTHOR_NOTES.md` | 5606 | `7ff0f8c928cd5bf87e036079e5f3e5549d44499a89f1dc59b0793c956884f251` | +| `SOURCE_INPUTS.json` | 1481 | `6554ae0e27dd7a3bf9e280939710dff8948b6aef636c3920526668ccde299e0e` | +| `project/Lifetime.lean` | 51383 | `90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6` | +| `project/TorusTopology.lean` | 12257 | `ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1` | + +These are locally recomputed byte identities, not substitutes for proof review. +The manifest identifies Lifetime with Math- cut +`db43694c9f9dbff2987e2e3c0a1260b5c48310ec`, path +`frontiers/source_lifetime_realization_20261017/inputs/Lifetime.lean`, blob +`f2508f7f2e3fd42f22f5aa52bc5ead5ff9e73b9a`; TorusTopology with cut +`c8ec07034608741585111603f1b506393c340908`, path +`companions/torus_filtration_20261011/TorusTopology.lean`, blob +`ed678ea322fe5315b3aaff44e4e2f06b018399d8`. This review made no fresh remote fetch. +The local files agree with the supplied byte-pinned inputs. Mathlib API review +used the existing checkout at +`$PINNED_PROJECT/.lake/packages/mathlib`, +whose recorded HEAD is `d13f23b723b8a846827a245b89c10fc7d3f11612`. +This source review is not a fresh whole-dependency-tree byte audit. + +## Exact endpoint and hypotheses + +`TorusMorseFinite.quotientCriticalSet` at lines 150–152 is exactly +`torus_proj d L hL '' {x : E d | IsCriticalPoint d g x}`. It is the image of all +literal Euclidean critical points on the actual period-lattice quotient from +TorusTopology. It is not a chosen list of points, an abstract finite event type, +or the whole Euclidean critical set. + +The main endpoint `quotientCriticalSet_finite` at lines 217–221 quantifies over +every natural dimension `d`, every real `L` with explicit `hL : 0 < L`, and +`g : E d → ℝ`. Its other hypotheses are exactly the literal `IsSmooth d g`, +`IsLPeriodic d L g`, and `IsMorseDistinct d L g`. Its conclusion is finiteness of +that full projected critical set. The core theorem at lines 203–213 replaces +Morse-distinct by only its first clause: every literal critical point has some +`HessianHasInertia`. Distinct critical heights are not used, as the source says. +The endpoint validly includes dimension zero; C292 can instantiate positive +dimension without any new assumption. + +The literal inputs have the expected force: `E d` is +`EuclideanSpace ℝ (Fin d)`; smoothness supplies `ContDiff ℝ n g` for each finite +natural n; criticality is `fderiv ℝ g x = 0`; the Hessian is +`iteratedFDeriv ℝ 2 g x ![v,w]`; inertia supplies complementary subspaces with +strict negative and positive quadratic values on their nonzero vectors. +Periodicity uses exactly the same coordinate lattice-vector formula as +TorusTopology. No desired finiteness, discreteness, local inverse, local normal +form, level-set path, death value, elder relation, pairing, or count premise is +hidden in these theorem signatures. + +## Substantive reconstruction + +1. **Literal Hessian and symmetry, lines 21–30.** + `iteratedFDeriv_two_apply` identifies the literal second derivative with + `fderiv ℝ (fderiv ℝ g) x v w` in the correct argument order. The C2 instance + supplied by `hsmooth 2` gives `isSymmSndFDerivAt`; therefore cross terms may be + interchanged. Symmetry is proved from smoothness, not assumed from the name + “inertia.” This matters because the bare complementary-sign predicate is + insufficient for a nonsymmetric bilinear form. + +2. **Injectivity from complementary signs, lines 32–73.** + Put B = D(Dg)(x), and suppose Bz = 0. Complementarity gives z = v+w with + v in V and w in W. Evaluation on v and w yields + B(v,v)+B(w,v)=0 and B(v,w)+B(w,w)=0. Symmetry makes the cross terms equal, so + B(v,v)=B(w,w). Strict negativity on nonzero v and strict positivity on + nonzero w force both to vanish, including the separate cases where one + vector is zero. Hence z=0; applying this to u−v proves injectivity. The proof + does not incorrectly assume V and W are B-orthogonal. The dimensional + equalities in inertia are unnecessary for this kernel argument; discarding + them does not weaken its validity. + +3. **An actual continuous linear isomorphism, lines 75–92.** + The derivative map has codomain the continuous dual of E, not E itself. The + proof handles this type distinction with the real Riesz isomorphism J from + `InnerProductSpace.toDual`. J inverse composed with B is an injective + endomorphism of finite-dimensional E. `LinearEquiv.ofInjectiveEndo` makes it + an algebraic equivalence, and the finite-dimensional continuity API makes it + a continuous linear equivalence. Composition with J gives an equivalence + E ≃L continuous-dual(E) whose underlying map is proved equal to B. The real + field specialization avoids a complex conjugate-linearity mismatch. + +4. **Euclidean isolation, lines 94–114.** + C2 regularity supplies C1 regularity of Dg by + `contDiff_succ_iff_fderiv`. The just-constructed equivalence is the actual + derivative of Dg at x. The inverse function theorem's + `ContDiffAt.toOpenPartialHomeomorph` provides an open source containing x + on which Dg is injective. Any other literal critical y in that source has + Dg(y)=0=Dg(x), hence y=x. This is a real derivation of isolation; the result + is not supplied as a premise. No Morse normal form is invoked. + +5. **Periodicity and descent, lines 116–147.** + The literal equality `g(y+latticeVec)=g(y)` gives equality of the translated + functions. `fderiv_comp_add_right` then proves periodicity of the actual + derivative. `torus_proj_eq_iff` converts equality of quotient points to the + same lattice translations, and the proof respects the relation in the + required orientation. `quotientDerivative` is a `Quotient.lift` of Dg with + an exact projection formula. Its continuity follows from C1 regularity and + the quotient topology. A new smooth manifold atlas or a quotient tangent + bundle is not needed for this zero-set argument. + +6. **All quotient critical points and closedness, lines 150–175.** + The membership equivalence between projected literal criticality and zero + descended derivative is proved in both directions. The reverse direction + uses surjectivity of the actual projection. Consequently the projected set + is a continuous map's zero set and is closed. This avoids the invalid general + inference that a continuous image of an arbitrary closed Euclidean set is + closed. It also supplies criticality of every representative of a critical + quotient class, which is used in the next step. + +7. **Quotient discreteness, lines 177–199.** + For q=π(x) critical, choose the open isolating source U of x. The covering + projection is open, so π(U) is an open quotient neighborhood. If a critical + quotient point lies in π(U), choose y in U mapping to it. The zero-set + equivalence makes y itself critical, so y=x. Thus π(U) intersects the full + quotient critical set in exactly {q}. This step does not require π to be + injective on U: saturation of criticality supplies the needed conclusion. + Conversely q belongs to that intersection using x. This establishes the + exact `IsDiscrete` predicate, not merely isolatedness of selected lifts. + +8. **Compactness and finiteness, lines 203–221.** + TorusTopology proves compactness of the actual quotient from its full + period lattice. Intersecting its compact universe with the closed critical + set makes that set compact. `IsCompact.finite` applies to this compact, + discrete set. The final literal Morse-distinct wrapper passes precisely + `hmorse.1`. Closedness is essential to this compact/discrete argument and + is present; ambient compactness alone would not suffice for an arbitrary + discrete subset. + +The relevant pinned APIs include +`Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean:949`, +`Analysis/Calculus/FDeriv/Symmetric.lean:534`, +`Analysis/InnerProductSpace/Dual.lean:137`, +`LinearAlgebra/FiniteDimensional/Basic.lean:413`, +`Analysis/Calculus/InverseFunctionTheorem/ContDiff.lean:30`, +`Analysis/Calculus/FDeriv/Add.lean:888`, and the discrete-subset/compactness +APIs. Source API inspection supports the mathematical reconstruction; final +elaboration and kernel evidence have their own gates. + +## Negative cases and frozen controls source + +The parent separately authorized inspection of its frozen, root-authored +`project/MorseFiniteControls.lean`. I read the complete file after that notice. +Its locally recomputed identity is 2843 bytes, +SHA-256 `e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1`. +I supplied prospective control ideas but did not author this control source. +Source review of these controls finds their statements and proofs appropriate: + +- `nonsymmetricForm_bilinear`, `complementary_axes`, and + `nonsymmetric_signed_axes_singular` exhibit + B(v,w)=(v1−v2)(w1+w2), negative on the second axis, positive on the first, + with nonzero left-radical vector (1,1) and unequal swapped cross terms. + The axes' direct-sum property is proved through decomposition and trivial + intersection, rather than bundled as a `Submodule.IsCompl` term. The + mathematics is explicit and suffices to expose the error of inferring + nonsingularity from complementary signs without symmetry. This is not a + counterexample to a smooth scalar Hessian. +- `nonsmooth_literal_critical` uses the norm on the literal one-dimensional + E space. It is nondifferentiable at zero while its default `fderiv` is zero, + so it satisfies literal criticality there. This is a genuine interface + caveat; it does not establish a periodic Morse counterexample or prove + that removing smoothness from the full final theorem is false. +- `half_open_not_compact` and `closed_interval_compact` correctly distinguish + [0,1) and [0,1]. They are ancillary to this chosen derivative-descent proof. + Neither the main proof nor this review claims a half-open domain was used + to obtain compactness. + +Additional mathematical boundary checks in this review: a constant smooth +periodic function in positive dimension has every quotient point critical and +does not satisfy the nondegeneracy premise; Euclidean critical points of a +periodic Morse function need not be finite; and a discrete subset of a compact +space need not be finite unless compactness of the subset is secured. The main +statement avoids all three errors. These observations are review arguments, +not claims that extra Lean controls have executed. + +This report does not inspect or approve a final expected-failure invocation +without nondegeneracy: those exact frozen sources, command, and diagnostic must +be reviewed later. A missing-premise elaboration rejection would establish an +interface boundary, not by itself a constructive counterexample. The parent's +first failed control elaboration is development history, not a successful +negative control. + +## Observed development evidence and runner source review + +I read `runs/20261018T022037Z-MorseFiniteCritical-67cf4c01/RECEIPT.json` +(1138 bytes, SHA-256 +`2e52f99233bfc2b281054b27f6a637a647a964b9beb555ae9f5810a9f86c3bc3`). +It records the exact main source above, return code 0, no timeout, unchanged +source, elapsed 135.406404667 seconds, and empty stdout/stderr. I locally +confirmed empty-stream hashes and the recorded development object hash: +`build/MorseFiniteCritical.olean`, 493256 bytes, +`34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2`. +This is receipt/artifact verification of the author's development compile, +not an independent reviewer rerun or final kernel acceptance. The historical +first author attempt and its deprecation warnings are described in the author +notes; no conclusion here treats their existence as a main-source failure. + +I also read the complete preparer and final runner as offered by the parent: + +| File | Bytes | SHA-256 | +| --- | ---: | --- | +| `run_final_phase.py` | 11571 | `1418556d3f458ae5ad05f0fb60ac27b5478f4f984e2ca8b26ac9fc4736a524ab` | +| `prepare_final_inputs.py` | 3387 | `a007e797d6ab56f39bdfe00050d6a0e8b360b4b9bd208cf2dbd58369e4e89925` | + +I found no current-source execution flaw requiring a change in those scripts. +The preparer freezes copies of all five listed modules, records hashes and +build order, validates the inherited dependency baseline, and starts with an +empty final build directory. The runner binds its source inventory, checks the +runtime and dependency inventory, builds only after required local imports have +accepted objects, enables warnings-as-errors for the new modules, and refuses an +implicit same-module rebuild. It checks source and imported-object identities +after execution, enforces bounded processes, and records streams and receipts. +The exact final source inventory must still match the reviewed hashes. + +The dependency method deliberately reuses earlier content hashes when file +metadata match the C291 baseline, and hashes metadata-delta files. This is not +a fresh full-content sweep. The runner's standard `leanchecker -v` replay uses +the pinned runtime and shared imported objects; it is not a second independent +proof implementation or a claim of fresh verification of every dependency. +The axiom census must be read and assessed substantively; recording a successful +audit-module process alone does not establish acceptable axioms. These are +stated evidence boundaries, not detected proof defects. + +## Disposition and remaining gates + +No main-source amendment is requested. The implementation completes the full +deterministic dependency promised here: literal Hessian inertia plus smoothness +gives an actual derivative isomorphism, isolated literal critical points, and +finiteness of all projected critical points on the actual compact quotient. +The closed/discrete quotient route validly replaces the prospective +parallelepiped route; no representative-boundary argument is now missing. + +Pending later exact-artifact review: final inventory and source identity, +warning-strict final builds, successful exact control execution, any +expected-rejection control and its actual reason, complete axiom output, standard +kernel replay receipts, and final preservation of these hashes. I do not promote +those gates from the author's development compile or this source verdict. + +This result does not formalize the rest of C292: no Morse normal form, +closed-level local path connectedness, attainment of literal death, closed trap, +older endpoint/path, new persistence-module interval construction, all-bars +result, saddle pairing, collision law, or Gaussian almost-sure Morse theorem is +proved by this file. No scientific-status, organizational-independence, or +publication claim is made by this review. diff --git a/frontiers/morse_finite_critical_20261018/reviews/NONAUTHOR_REVIEW.md b/frontiers/morse_finite_critical_20261018/reviews/NONAUTHOR_REVIEW.md new file mode 100644 index 000000000..66d871f37 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/reviews/NONAUTHOR_REVIEW.md @@ -0,0 +1,383 @@ +# C293 final exact-artifact nonauthor review + +Date: 2026-10-18 UTC. Reviewer: OpenAI Codex delegated agent +`/root/c292_geometry_review`, for Dylan Roy. + +**Verdict: ACCEPT_SCOPED_FORMAL.** The exact deterministic theorem +`TorusMorseFinite.quotientCriticalSet_finite` is accepted within the local source, +frozen build, complete declared-module axiom census, standard named-module kernel +replay, and negative-control scope documented below. No main-proof amendment is +required. This verdict is not acceptance of the remaining C292 geometry, a +Gaussian almost-sure theorem, hosted execution of these new modules, publication, +private custody, or scientific promotion. The final master artifact verifier is +a separate engineering gate; its pre-run review finding is recorded below. + +## Reviewer exposure and work performed + +I am a nonauthor of `MorseFiniteCritical.lean`, the controls, audit module, final +runner/preparer, and final master. I previously reviewed C292's conventional +proof, conducted a read-only feasibility audit for the present finite-critical +dependency, and suggested prospective controls. I saw the intended claim and +possible dependency routes before implementation. I read the complete main +source only after its freeze announcement, then the complete frozen controls and +audit sources after separate authorization. This is substantive nonauthor review +with disclosed source/design exposure, not blind or provider-distinct review. +The author and reviewer are both OpenAI agents: organizational-independence +credit **0**, human-review credit **0**. + +This review incorporates the unchanged main-source reasoning in +`reviews/MAIN_SOURCE_REVIEW.md`, 16919 bytes, SHA-256 +`105e6b528746110b5582dd4626f7055f1cc2869106c51974409c55c68dfb49c4`. +I reviewed the relevant complete literal definitions and quotient constructions +in the exact upstream inputs; the main source, controls and audit in full; the +full final runner/preparer/sequence/negative runner; the eight terminal receipts +and their stream identities; the complete raw axiom output; and the actual +negative-control diagnostic. I independently read and compared local source, +inventory, receipt, stream, and object bytes using read-only commands. I did not +rerun Lean, leanchecker, the final sequence, negative control, preparation, or the +master. I made no source-proof edits and no remote posts. + +Paths below are relative to +`$C293_ROOT`. + +## Bound source and execution identities + +The final inventory is `FINAL_SOURCE_INVENTORY.json`, 2421 bytes, SHA-256 +`f1a429935146b4e406e9ba8cc9ff8b84f7d40c22cc4fea74920dfc013c4911de`. +I recomputed this identity and checked that both `project/` and `final-project/` +contain the following exact source bytes. No change to the main proof occurred +between source review and final execution. + +| Source | Bytes | SHA-256 | +| --- | ---: | --- | +| `Lifetime.lean` | 51383 | `90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6` | +| `TorusTopology.lean` | 12257 | `ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1` | +| `MorseFiniteCritical.lean` | 9445 | `95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b` | +| `MorseFiniteControls.lean` | 2843 | `e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1` | +| `MorseFiniteAxiomAudit.lean` | 3025 | `326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d` | + +`SOURCE_INPUTS.json` remains SHA-256 +`6554ae0e27dd7a3bf9e280939710dff8948b6aef636c3920526668ccde299e0e`. +It binds Lifetime to Math- cut `db43694c9f9dbff2987e2e3c0a1260b5c48310ec`, +path `frontiers/source_lifetime_realization_20261017/inputs/Lifetime.lean`, +blob `f2508f7f2e3fd42f22f5aa52bc5ead5ff9e73b9a`; TorusTopology to cut +`c8ec07034608741585111603f1b506393c340908`, path +`companions/torus_filtration_20261011/TorusTopology.lean`, blob +`ed678ea322fe5315b3aaff44e4e2f06b018399d8`. This review did not freshly fetch +those upstream objects. Their local byte identity and earlier source custody are +separate from the mathematical proof analysis. + +| Execution artifact | SHA-256 | +| --- | --- | +| `run_final_phase.py` | `e9b7bd0caa19889e2ba0974c788e13a573645fd3c0839890eee41bbf15831b23` | +| `prepare_final_inputs.py` | `72bbe39334fa2a7b09d621f81f6211e9a4019804b949f4ea2576e1c4f2927451` | +| `run_final_sequence.py` | `8cb8a75b384c0c84f1a000f217616a3d99710b34bf2e04237b65f220ff9302ce` | +| `FINAL_SEQUENCE_RESULT.json` | `80c3241fb619c9b250826c233bd927d6767d341977c9563a58984e20d299d9b3` | +| `FINAL_DEPENDENCY_ARTIFACTS.json` | `4e35e91a0b6f334eb6ad41e586b9704189e7063722d9c2e5f6a87f0839af0d21` | +| pinned Lean executable | `1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554` | +| pinned standard leanchecker executable | `cfde41cb11dde58c84e9c60c551fd104bb2fc1104ad44dca932a923120272a35` | + +The runtime is the existing Lean 4.34.1 darwin_aarch64 runtime under +`$LEAN_RUNTIME`. +The Mathlib source/API pin is `d13f23b723b8a846827a245b89c10fc7d3f11612`. + +## Exact mathematical statement and reconstruction + +The endpoint quantifies over `d : ℕ`, `L : ℝ`, `hL : 0 < L`, and +`g : EuclideanSpace ℝ (Fin d) → ℝ`. The hypotheses are the literal Lifetime +predicates `IsSmooth d g`, `IsLPeriodic d L g`, and `IsMorseDistinct d L g`. +The conclusion is finiteness of + +```lean +torus_proj d L hL '' {x : E d | IsCriticalPoint d g x} +``` + +on TorusTopology's actual period-lattice quotient. The core theorem needs only +the nondegeneracy clause of Morse-distinct: every critical point has some literal +Hessian inertia. Distinct heights are correctly unused. Natural dimension zero +is allowed, so the intended positive-dimensional C292 application is included. +No finite event list, local inverse, isolatedness, closedness, desired path, +death/elder relation, pairing, or count conclusion is assumed. + +I checked each step of the source rather than inferring correctness from hashes +or successful execution: + +1. `literal_hessian_eq_fderiv` identifies the literal iterated second Fréchet + derivative with D(Dg)(x), in the proper argument order. + `literal_hessian_symmetric` derives symmetry from C2 smoothness. The inertia + definition itself does not assert symmetry. +2. For B=D(Dg)(x), a vector z in its kernel is decomposed as v+w in the + complementary negative and positive subspaces. Evaluating Bz=0 on v and w, + and using symmetry of cross terms, gives B(v,v)=B(w,w). Strict negative and + positive signs force v=w=0, including the zero-component cases. This proves + injectivity without any false orthogonality assumption. The unused dimension + equalities in inertia do not undermine this argument. +3. The actual codomain of D(Dg)(x) is the continuous dual. The real Riesz + equivalence converts B to an injective endomorphism of finite-dimensional E; + `LinearEquiv.ofInjectiveEndo` and finite-dimensional continuity produce the + actual continuous linear equivalence E ≃L continuous-dual(E). Equality with + B is proved, not supplied as a certificate. +4. C2 regularity makes Dg C1. The inverse function theorem provides an open + neighborhood on which Dg is injective, so its zero x is an isolated literal + critical point. This uses no Morse normal form. +5. Literal lattice periodicity of g implies periodicity of Dg through the + translation derivative identity. The lattice-vector formulas match exactly. + The derivative therefore descends to the actual quotient as a continuous + function to the fixed continuous dual. +6. The full image of literal critical points is proved equivalent to the zero + set of the descended derivative. Surjectivity establishes the reverse + inclusion. This makes the image closed without an invalid “continuous images + of closed sets are closed” inference. +7. If U isolates a critical representative x, the open image π(U) isolates π(x) + in the quotient critical set. For a critical class represented by y in U, + the zero-set equivalence makes y itself critical, hence y=x. This uses + saturation of criticality and does not require π to be injective on U. +8. The closed critical set is compact in the compact actual torus and is + discrete by the preceding step. `IsCompact.finite` gives the conclusion. + Thus the full finite-quotient result is derived, not just bilinear arithmetic + or isolatedness on Euclidean space. + +This is the closed/discrete derivative-descent route. It validly replaces the +prospective compact-parallelepiped route. There is no missing half-open-domain +boundary argument. The main theorem does not claim the periodically repeated +Euclidean critical set is finite. + +## Frozen execution and object chain + +`evidence/FINAL_BUILD_INITIALIZATION.json` records a newly created empty +`final-build/`; its SHA-256 is +`685830dc40fce94cabe10e4296a4a0eecced5afb782105c2828bd748dda59dff`. +The sequence contains exactly five ordered builds and three ordered new-module +kernel replays. Every terminal receipt records exit 0, no timeout, a reaped +process, exact frozen source maps before/after, unchanged imported objects, +the same inventory and runner hashes, and the correct executable identity. +I checked the receipt object maps form a chain starting empty and that all +current final object bytes match that chain. + +| Phase | Run directory under `final-runs/` | Seconds | Terminal receipt SHA-256 | +| --- | --- | ---: | --- | +| build Lifetime | `20261018T025721Z-build-Lifetime-27665937` | 101.482 | `0c7f8c69c7eab4bcff5a507a37bc5ddfd191b6cac3567155b3594f7d0a69436f` | +| build TorusTopology | `20261018T025903Z-build-TorusTopology-7b11c9cf` | 100.614 | `21f63788ea07913666bb6ab2ab5c961174dd6787bd2af2f3fa14e8b3490bdf8b` | +| build MorseFiniteCritical | `20261018T030043Z-build-MorseFiniteCritical-84e29842` | 99.617 | `e42f724b4b6d976a00a4a2b37f874c504c4b2f127744e2456c2cc905812d78b2` | +| build MorseFiniteControls | `20261018T030223Z-build-MorseFiniteControls-b481974d` | 108.027 | `ed1bcedb2449d22777a4e5f4e88a0f1aa8e74fddf5a7821d599a4902c2227fcb` | +| build MorseFiniteAxiomAudit | `20261018T030411Z-build-MorseFiniteAxiomAudit-53575871` | 173.752 | `7d9ed09f2663e857207fa18a4c82342efa8c3f72458102d1c39b0396aad86dc4` | +| kernel MorseFiniteCritical | `20261018T030705Z-kernel-MorseFiniteCritical-d446fa38` | 86.456 | `b8892c46f304a0a9e38297c9c482e6a3c0840aeae4ee4993b96aee75f1b9723c` | +| kernel MorseFiniteControls | `20261018T030832Z-kernel-MorseFiniteControls-22a2daa0` | 88.140 | `177eb12fefb8d0a623a67f32e15cfa5267d862fc616a2d908cbebada0b13cda4` | +| kernel MorseFiniteAxiomAudit | `20261018T031000Z-kernel-MorseFiniteAxiomAudit-ba7cdd21` | 89.365 | `7399c066c1e7dc544a23ded914c8f8c867d67bb93c1878bacba3fd944990769e` | + +All three new builds used `-DwarningAsError=true`. The four non-audit builds +have empty stdout and stderr; the audit stderr is empty and stdout is the actual +census. Each kernel stdout says `replaying` the correct named module, stderr is +empty, and the command is the pinned `leanchecker -v Module`. Stream bytes match +their receipt hashes. I did not treat the sequence summary's PASS string alone +as sufficient evidence. + +| Final object | SHA-256 | +| --- | --- | +| `Lifetime.olean` | `b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4` | +| `TorusTopology.olean` | `ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125` | +| `MorseFiniteCritical.olean` | `34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2` | +| `MorseFiniteControls.olean` | `5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa` | +| `MorseFiniteAxiomAudit.olean` | `3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b` | + +Execution scope is **local fresh compilation of these five sources, followed by +standard replay of the three named new modules against imported dependencies**. +It is not `--fresh` replay of every imported Mathlib declaration, an external +verifier, or a provider-independent repeat. The recorded LEAN_PATH starts at +`final-build/`, then the pinned dependency cache; no development build enters it. + +The authenticated dependency inventory contains 83897 unique artifacts totaling +8418477755 bytes. Preparation and all before/after phase checks report reuse of +all 83897 earlier byte hashes at unchanged size/mtime_ns/inode, with zero +metadata-delta rehashes. This is explicitly **not a fresh full-content hash of +the shared dependency cache**. The exact runtime/manifests and pathset checks +provide the documented cooperative execution boundary; they are not protection +against hostile same-UID mutation that restores metadata. + +## Complete axiom census + +I read the full audit source and complete raw successful audit stdout: +`final-runs/20261018T030411Z-build-MorseFiniteAxiomAudit-53575871/stdout.txt`, +19899 bytes, SHA-256 +`9f41da11dc9c082106bba058a36649e6886c8f8334ad0b9917fb1b58fd434be8`. + +The audit enumerates declarations by their imported module origin, with export +filtering disabled, rather than only by a manually selected name prefix. It +checks each declaration exists in the checked environment, collects transitive +axioms, rejects every axiom outside the explicit allowed set, and checks a +required declaration list including both finiteness theorems and the key steps +and controls. Generated/private helpers are included; for example, equation +helpers carrying Lifetime/TorusFiltration namespaces are correctly counted in +the module that generated them. + +| Audited source module | Unique declarations | +| --- | ---: | +| Lifetime | 103 | +| TorusTopology | 38 | +| MorseFiniteCritical | 20 | +| MorseFiniteControls | 8 | +| Total | 169 | + +I independently parsed all complete bracketed axiom records, including wrapped +multiline lists: there are 169 records and 169 unique declaration names, with +the exact four module counts above and one final total 169. Every reported +transitive axiom is among `propext`, `Classical.choice`, and `Quot.sound`. +The explicit `#print axioms` results for both finiteness endpoints show those +three standard axioms. No `sorryAx` or extra domain axiom is reported. The +printed theorem type matches the literal endpoint reviewed above. + +This is a complete module-origin census for the four stated source modules, +not a census of every Mathlib declaration or a claim that the imported +Lifetime specification's unproved scientific propositions have become theorems. +The audit module executes the census; it adds no new mathematical assumptions. + +## Actual negative controls and their meaning + +The frozen controls compiled warning-strictly and received their own standard +kernel replay. Their mathematical content is substantive: + +- The explicitly bilinear nonsymmetric form + B(v,w)=(v1−v2)(w1+w2) is negative on the second axis, positive on the first, + and has nonzero left-radical vector (1,1). Axis decomposition/trivial + intersection and unequal swapped cross terms are proved. Thus complementary + signs alone do not imply nonsingularity for arbitrary bilinear forms. This + exposes precisely why the main proof derives symmetry from smoothness. +- The norm on literal E 1 is nondifferentiable at zero while default `fderiv` + equals zero there. It satisfies literal criticality at zero. This guards the + distinction between literal criticality and differentiability. It is not + asserted to be periodic or to refute the entire final theorem without + smoothness. +- The half-open interval [0,1) is not compact, whereas [0,1] is. These controls + are ancillary; the implemented quotient-descent proof uses neither as its + compactness argument. + +The separate actual interface rejection uses +`negative-project/WithoutMorse.lean`, 455 bytes, SHA-256 +`4c9726b692dbb83237b82344e7b5aab621749da6da699c0187cf9893dca8d80f`, +with runner `run_negative.py`, SHA-256 +`cb5a8db15b5b5881463fc5e6faea7f38c3de0a3f7e56b6fd9001f3326a815faa`. +It imports the actual final theorem and attempts its finite-set conclusion from +only smoothness and periodicity, omitting Morse-distinct. The terminal receipt +`negative-final/RECEIPT.json`, 2376 bytes, SHA-256 +`482d1e7444fe1b25ee40caf3b610197d7b729cdb21ad649dee4db537b36d41fc`, +records exit 1, no timeout, elapsed 96.614084542 seconds, and unchanged tested +source, final imported source map, and final object map. The exact diagnostic is: + +```text +error: Type mismatch + quotientCriticalSet_finite d L hL g hs hp +has type + IsMorseDistinct d L g → (quotientCriticalSet d L hL g).Finite +but is expected to have type + (quotientCriticalSet d L hL g).Finite +``` + +Its stdout is 342 bytes, SHA-256 +`2606cce55be96a1c241544374a6790e472c61b57ba369966f4a1e05649b4b10a`; +stderr is empty. I checked these bytes against the receipt and inspected the +actual source/diagnostic. This is the intended missing-premise rejection, not an +import, syntax, missing-object, or unknown-name failure. It verifies an interface +boundary; a failed theorem application alone is not a counterexample to every +possible theorem without that premise. Separately, a constant smooth periodic +function in positive dimension demonstrates mathematically why unrestricted +critical-set finiteness is false; that observation is not labeled an executed +Lean counterexample here. + +## Failure history and corrected infrastructure + +The earlier source review's “no current-source execution flaw found” statement +was bounded to its then-inspected runner bytes. Actual execution later exposed +two preparation defects, preserved rather than erased: + +1. A runner wrongly required a compiled `lib/lean` directory for every manifest + package. Cli has no such directory. The corrected runner still checks all + package revisions, includes existing compiled roots/search paths, and then + requires exact equality with the authenticated C291 roots. This does not + silently drop a recorded dependency. Failure details are retained in + `evidence/FINAL_PREPARE_FAILURE_20261018T023327Z.json` (SHA-256 + `b1b3a0d1bdb88b63e9548503c7c4c8c9dbc05da97f31413b9900d32c2b083900`). +2. The next preparation compared Path-sorted baseline paths with string-sorted + current paths. Actual unique sets were equal, with no added/removed artifact. + The corrected code compares canonical string-sorted sets and explicitly + rejects duplicate baseline paths while preserving every path/hash/stat + association. `evidence/FINAL_PREPARE_PATHSET_FAILURE_20261018T0237Z.json` + (SHA-256 `6a85cce34ed2d4a8c9a67c00e0d1edb06931656577bdb635fa251495817e9857`) + preserves the actual failed START at 02:45:09 UTC and explains its provisional + filename timestamp. Both failures preceded final source/build directories. + +The failed START records remain; the successful freeze binds a new unique START. +The earlier development audit timed out at 240 seconds without completing. +The final runner gives only the audit build a 900-second bound, with other phases +at 420 seconds. The actual final audit completed in 173.752 seconds. The timeout +is preserved negative execution history, not an axiom violation or a successful +audit. Earlier control elaboration failures likewise remain development history, +not successful negative controls. I read the corrected scripts and failure +records; the terminal receipts above establish the successful final run on their +exact frozen identities. + +## Master artifact verifier engineering review + +I read the complete initial `final_master.py`, SHA-256 +`92f420d05176b1d3bb1bd6a578a1de72cd7ec5c531c34e5ad9da234fe0150d33`, +and its contract. It binds completed local evidence and future publication, +hosted-job, archive, and custody readbacks. It does not run Lean or supply an +additional mathematical proof. No master invocation was run by this reviewer. + +I found and reported a concrete pre-run defect: the initial parser iterated over +`audit.splitlines()` and required `AXIOMS [...]` on a single line. The actual raw +audit has many wrapped axiom lists. It would omit those records and reject a +valid complete census. This was reported promptly to the parent for correction +by the master author, without editing their file. It has no effect on the actual +Lean census, the proof, or the successful build/kernel evidence. Its engineering +resolution was then reviewed before the first master run. + +The master author corrected the parser; I read the complete corrected source and +updated contract. The corrected `final_master.py` is 14011 bytes, SHA-256 +`1d5d93787c92826c9e1950125962e93db4a634c3898242400c63005b62945ec1`; +`evidence/MASTER_CONTRACT.md` is 9281 bytes, SHA-256 +`603f65119bf025aa7ca805989ca1850b83e4566638e973aab7a454376e1b6d4b`. +The replacement uses full-text `re.finditer` records with bracket-excluding, +4096-character-bounded axiom contents. It retains section counts, allowed-axiom +checks, uniqueness, required names, and the final total, and additionally requires +every raw declaration marker to be parsed and exactly 169 declarations. This +addresses the observed wrapping defect without accepting malformed omitted +records. The actual complete stdout independently parsed by this reviewer has +the counts and allowed axioms required by the corrected logic. + +The updated contract reports the author's focused execution of the extracted +parser AST block against actual output and six malformed in-memory controls. +I read that report but did not rerun those tests or count them as extra theorem +evidence. I observed master START/output still absent during the review. The +identified engineering finding is resolved at these corrected source bytes; +there is no remaining source-review objection to the master being invoked after +all of its required delivery records exist. Actual master success remains a +future terminal evidence gate. + +With that correction, source inspection found the master +appropriately treats receipt/object/hash consistency, standard axiom names, +actual rejection diagnostics, review binding, native/remote publication bytes, +hosted-job head identity, canonical archive verification, and private raw-byte +readback as artifact-evidence checks. Its eventual PASS must remain +`PASS_ARTIFACT_VERIFICATION_NOT_THEOREM_PROOF`. The receipt inputs and publication +records are trusted observations supplied to it; it performs no remote read +itself. This review does not claim those future records already exist or that +the master has passed. + +## Final disposition + +The mathematical source and completed local formal gates justify +**ACCEPT_SCOPED_FORMAL** for the stated finite projected critical-set theorem and +its named dependency/control declarations. No theorem hypothesis has been hidden +or replaced by the desired conclusion. The strongest derived result here is the +full finite quotient critical set under the literal deterministic hypotheses. + +The remainder of C292 remains outside this formal result: Morse normal form, +closed-level local path connectedness, literal death attainment, closed traps, +fixed older endpoints and closed paths, ordinary-H0 interval consumption, all-bar +classification, saddle pairing, collision laws, and almost-sure Gaussian Morse +genericity. The C292 conventional proof remains frozen under its separate scope. + +No hosted CI run or registration of these new formal modules, no new public +landing, no private custody, and no master terminal result is claimed by this +report. Same-provider nonauthor review remains independence credit 0. Scientific +effect: **NONE**. diff --git a/frontiers/morse_finite_critical_20261018/run_final_phase.py b/frontiers/morse_finite_critical_20261018/run_final_phase.py new file mode 100644 index 000000000..a63fab2b7 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/run_final_phase.py @@ -0,0 +1,216 @@ +"""C293 serial isolated build / standard named-module kernel replay (not --fresh).""" +from pathlib import Path +from datetime import datetime, timezone +import fcntl, hashlib, json, os, signal, stat, subprocess, sys, time, uuid + +ROOT = Path(__file__).resolve().parent +PROJECT, BUILD = ROOT / 'final-project', ROOT / 'final-build' +C291 = ROOT.parent / 'continuation291' +CACHE = Path('$PINNED_PROJECT') +BIN = Path('$LEAN_RUNTIME/bin') +MODULES = ['Lifetime', 'TorusTopology', 'MorseFiniteCritical', 'MorseFiniteControls', 'MorseFiniteAxiomAudit'] +NEW = MODULES[2:] +BASE_SHA = 'b78b6e0f99bd38c633ae2677c55698363b1290e6d4318e505991c8df259ae2e3' +MANIFEST_SHA = 'd63753befccc21923783a5085148e3ff028d97134ea52f5a08bd87ecf1b0b043' +EXE_SHA = {'lean': '1b370cfcbf44e80d1b004ab1b1ab9a4c73951f9f7c242140bcff9bc577576554', + 'leanchecker': 'cfde41cb11dde58c84e9c60c551fd104bb2fc1104ad44dca932a923120272a35'} +TIMEOUT = 420 + + +def require(ok, message): + if not ok: + raise RuntimeError(message) + + +def now(): + return datetime.now(timezone.utc).isoformat() + + +def sha(p): + h = hashlib.sha256() + with p.open('rb') as f: + for b in iter(lambda: f.read(1024 * 1024), b''): + h.update(b) + return h.hexdigest() + + +def stamp(p): + s = p.lstat() + require(stat.S_ISREG(s.st_mode) and s.st_nlink == 1, 'nonregular/hardlinked file: ' + str(p)) + return [s.st_size, s.st_mtime_ns, s.st_ino] + + +def write(p, data): + with p.open('x') as f: + f.write(json.dumps(data, indent=2) + '\n') + + +def dependency_paths(roots): + paths = [] + for root in map(Path, roots): + require(root.is_dir() and all(not p.is_symlink() for p in [root, *root.parents]), 'unsafe dependency root') + for p in root.rglob('*'): + require(not p.is_symlink(), 'dependency symlink: ' + str(p)) + if p.is_file() and ('.olean' in p.name or '.so' in p.name or p.name.endswith(('.ir', '.ir.sig', '.dylib', '.dll'))): + paths.append(str(p)) + return sorted(set(paths)) + + +def dependencies(baseline): + """Reuse bytes only at identical size/mtime_ns/inode; hash metadata deltas.""" + rows = baseline['artifacts'] + expected_paths = sorted(v['path'] for v in rows) + require(len(expected_paths) == len(set(expected_paths)), 'duplicate baseline dependency path') + require(dependency_paths(baseline['roots']) == expected_paths, 'dependency pathset changed') + result, delta = [], [] + for row in rows: + p = Path(row['path']); before = stamp(p) + if before != row['stat']: + digest = sha(p) + require(stamp(p) == before, 'dependency changed while hashing: ' + str(p)) + delta.append({'path': str(p), 'old_stat': row['stat'], 'stat': before, 'sha256': digest}) + require(digest == row['sha256'], 'dependency bytes changed: ' + str(p)) + result.append(dict(row, stat=before)) + require(dependency_paths(baseline['roots']) == expected_paths, 'dependency pathset changed during check') + return dict(baseline, artifacts=result), {'reused': len(rows) - len(delta), 'rehashed': delta, + 'mode': 'C291 byte hashes plus unchanged metadata reuse; changed metadata rehashed; NOT full fresh byte rehash'} + + +def runtime(): + for name, digest in EXE_SHA.items(): + stamp(BIN / name); require(sha(BIN / name) == digest, 'executable identity: ' + name) + manifest = CACHE / 'lake-manifest.json' + manifest_raw = manifest.read_bytes() + require(hashlib.sha256(manifest_raw).hexdigest() == MANIFEST_SHA, 'manifest identity changed') + roots, paths = [str(BIN.parent / 'lib/lean')], [str(BUILD)] + for dep in json.loads(manifest_raw)['packages']: + p = CACHE / '.lake/packages' / dep['name'] + require((p / '.git/HEAD').read_text().strip() == dep['rev'], 'dependency revision: ' + dep['name']) + root = p / '.lake/build/lib' + # Match C291: every package revision is pinned, but Cli has no compiled lib. + if root.is_dir(): + roots.append(str(root)) + if (root / 'lean').is_dir(): + paths.append(str(root / 'lean')) + return roots, paths + + +def source_map(): + require(PROJECT.is_dir() and not PROJECT.is_symlink(), 'final project missing/unsafe') + require({p.name for p in PROJECT.iterdir()} == {m + '.lean' for m in MODULES}, 'final source pathset changed') + return {p.name: sha(p) for p in sorted(PROJECT.iterdir()) if stamp(p)} + + +def objects(): + require(BUILD.is_dir() and not BUILD.is_symlink(), 'final build missing/unsafe') + result = {} + for p in sorted(BUILD.iterdir()): + stamp(p) + require(any(is_object(p.name, m) for m in MODULES), 'unexpected final build path: ' + p.name) + result[p.name] = sha(p) + return result + + +def is_object(name, module): + return name in {module + s for s in ('.olean', '.olean.private', '.olean.server', '.ir', '.ir.sig')} + + +def main(): + require(len(sys.argv) == 3 and sys.argv[1] in ('build', 'kernel') and sys.argv[2] in MODULES, + 'usage: run_final_phase.py build|kernel Module') + kind, module = sys.argv[1:] + # Observed C293 development audit timeout at 240s; C291 same complete + # census required 458.5s. Give only this audit build a bounded 900s window. + timeout = 900 if kind == 'build' and module == 'MorseFiniteAxiomAudit' else TIMEOUT + with (ROOT / 'lean-slot.lock').open('a+') as lock: + fcntl.flock(lock, fcntl.LOCK_EX) + run = ROOT / 'final-runs' / (datetime.now(timezone.utc).strftime('%Y%m%dT%H%M%SZ') + '-' + kind + '-' + module + '-' + uuid.uuid4().hex[:8]) + run.mkdir(parents=True); (run / 'tmp').mkdir() + receipt = {'kind': kind, 'module': module, 'started_utc': now(), 'runner_sha256': sha(Path(__file__)), + 'kernel_scope': 'standard named-module replay against imported dependencies; not --fresh/external verification', + 'scientific_effect': 'NONE', 'timeout_seconds': timeout, 'threads': 2, 'status': 'PREFLIGHT'} + write(run / 'START.json', receipt) + good = False; proc = None; start = time.monotonic() + try: + inv_path = ROOT / 'FINAL_SOURCE_INVENTORY.json'; inv_raw = inv_path.read_bytes() + inv_hash = hashlib.sha256(inv_raw).hexdigest(); inv = json.loads(inv_raw) + require(inv['runner_sha256'] == receipt['runner_sha256'], 'runner changed after freeze') + dep_path = ROOT / 'FINAL_DEPENDENCY_ARTIFACTS.json' + dep_raw = dep_path.read_bytes() + require(hashlib.sha256(dep_raw).hexdigest() == inv['dependency_artifact_inventory_sha256'], 'dependency inventory changed') + baseline = json.loads(dep_raw); roots, paths = runtime() + require(roots == baseline['roots'], 'dependency roots changed') + _, dep_before = dependencies(baseline) + before = source_map(); expected = {v['name']: v['sha256'] for v in inv['sources']} + require(before == expected, 'frozen sources changed') + prior = objects(); known = {} + for p in sorted((ROOT / 'final-runs').glob('*/RECEIPT.json')): + v = json.loads(p.read_text()) + if v.get('kind') == 'build' and v.get('status') == 'PASS' and v.get('inventory_sha256') == inv_hash: + known.update(v['produced_objects']) + require(all(known.get(n) == h for n, h in prior.items()), 'object lacks same-freeze successful build receipt') + require(all(m + '.olean' in prior for m in inv['local_imports'][module]), 'local imports not built') + out = BUILD / (module + '.olean') + require(kind != 'kernel' or out.is_file(), 'kernel requires final object') + require(kind != 'build' or not any(is_object(n, module) for n in prior), 'module already has outputs; no implicit retry') + command = ([str(BIN / 'lean'), '-j2', '-M4096'] + (['-DwarningAsError=true'] if module in NEW else []) + + ['-o', str(out), str(PROJECT / (module + '.lean'))]) if kind == 'build' else [str(BIN / 'leanchecker'), '-v', module] + env = {k: v for k, v in os.environ.items() if not k.startswith(('LEAN', 'LAKE', 'LD_', 'DYLD_'))} + env.update(PATH=os.pathsep.join([str(BIN), '/usr/bin', '/bin', '/usr/sbin', '/sbin']), + LEAN_PATH=os.pathsep.join(paths), LEAN_NUM_THREADS='2', TMPDIR=str(run / 'tmp')) + receipt.update(inventory_sha256=inv_hash, source_before=before, objects_before=prior, + dependency_before=dep_before, command=command, process_path=env['PATH'], lean_path=paths, + executable_sha256=sha(Path(command[0])), resolved_lean_sha256=sha(BIN / 'lean')) + write(run / 'PREFLIGHT.json', receipt) + with (run / 'stdout.txt').open('xb') as stdout, (run / 'stderr.txt').open('xb') as stderr: + proc = subprocess.Popen(command, cwd=PROJECT, env=env, stdout=stdout, stderr=stderr, start_new_session=True) + receipt['child_pid'] = proc.pid; write(run / 'PROCESS_START.json', receipt) + timed_out = False + try: + code = proc.wait(timeout=timeout) + except subprocess.TimeoutExpired: + timed_out = True; os.killpg(proc.pid, signal.SIGTERM) + try: + code = proc.wait(timeout=5) + except subprocess.TimeoutExpired: + os.killpg(proc.pid, signal.SIGKILL); code = proc.wait() + receipt.update(returncode=code, timed_out=timed_out) + after, current = source_map(), objects() + unchanged = all(current.get(n) == h for n, h in prior.items()) + allowed = set(prior) | ({n for n in current if is_object(n, module)} if kind == 'build' else set()) + _, dep_after = dependencies(baseline) + receipt.update(source_after=after, objects_after=current, dependency_after=dep_after, + source_unchanged=after == before, imported_objects_unchanged=unchanged and set(current) == allowed) + require(sha(inv_path) == inv_hash and sha(dep_path) == inv['dependency_artifact_inventory_sha256'], 'inventory changed during phase') + good = code == 0 and not timed_out and after == before and unchanged and set(current) == allowed and out.is_file() + if good: + receipt['object_sha256'] = sha(out) + receipt['produced_objects'] = {n: h for n, h in current.items() if is_object(n, module)} + except Exception as exc: + receipt['integrity_or_execution_error'] = repr(exc) + finally: + if proc is not None and proc.poll() is None: + try: + os.killpg(proc.pid, signal.SIGKILL) + except ProcessLookupError: + pass + try: + proc.wait(timeout=5) + receipt['emergency_child_cleanup'] = True + except subprocess.TimeoutExpired: + receipt['cleanup_error'] = 'SIGKILL sent; child not reaped within5seconds' + good = False + for stream in ('stdout', 'stderr'): + p = run / (stream + '.txt') + if not p.exists(): + p.touch(exist_ok=False) + receipt[stream + '_sha256'] = sha(p) + receipt['process_reaped'] = proc is None or proc.poll() is not None + receipt.update(status='PASS' if good else 'HOLD', ended_utc=now(), seconds=time.monotonic() - start) + write(run / 'RECEIPT.json', receipt) + print(json.dumps({'status': receipt['status'], 'run': str(run)}), flush=True) + return 0 if good else 1 + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/frontiers/morse_finite_critical_20261018/run_final_sequence.py b/frontiers/morse_finite_critical_20261018/run_final_sequence.py new file mode 100644 index 000000000..7e5a30f05 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/run_final_sequence.py @@ -0,0 +1,27 @@ +"""Run each stable-input final phase once; stop on the first unresolved failure.""" +from pathlib import Path +import json, subprocess, sys +from run_final_phase import ROOT, NEW, now, sha, write, require + +def main(): + invp=ROOT/'FINAL_SOURCE_INVENTORY.json' + inv=json.loads(invp.read_text()) + require(not (ROOT/'FINAL_SEQUENCE_START.json').exists(), 'sequence already started') + write(ROOT/'FINAL_SEQUENCE_START.json',{'started_utc':now(),'inventory_sha256':sha(invp), + 'driver_sha256':sha(Path(__file__)),'scientific_effect':'NONE'}) + result={'started_utc':now(),'inventory_sha256':sha(invp),'phases':[],'scientific_effect':'NONE'} + phases=[('build',m) for m in inv['build_order']]+[('kernel',m) for m in NEW] + for kind,module in phases: + start=now() + print(json.dumps({'stage':'STARTING','kind':kind,'module':module}),flush=True) + code=subprocess.run([sys.executable,'-B',str(ROOT/'run_final_phase.py'),kind,module],cwd=ROOT).returncode + result['phases'].append({'kind':kind,'module':module,'started_utc':start,'ended_utc':now(),'returncode':code}) + if code: + result['status']='HOLD_FAILED_PHASE';break + else: result['status']='PASS_FROZEN_BUILD_AND_STANDARD_KERNEL_REPLAY' + result['ended_utc']=now() + write(ROOT/'FINAL_SEQUENCE_RESULT.json',result) + print(json.dumps({'status':result['status'],'phases':len(result['phases'])}),flush=True) + return 0 if result['status'].startswith('PASS_') else 1 + +if __name__=='__main__':raise SystemExit(main()) diff --git a/frontiers/morse_finite_critical_20261018/run_negative.py b/frontiers/morse_finite_critical_20261018/run_negative.py new file mode 100644 index 000000000..f671bbcc2 --- /dev/null +++ b/frontiers/morse_finite_critical_20261018/run_negative.py @@ -0,0 +1,49 @@ +"""One missing-Morse-premise rejection against the actual final compiled theorem.""" +from pathlib import Path +import fcntl, json, os, signal, subprocess, time +from run_final_phase import ROOT, PROJECT, BUILD, BIN, require, now, sha, write, runtime, source_map, objects + +def main(): + with (ROOT / 'lean-slot.lock').open('a+') as lock: + fcntl.flock(lock, fcntl.LOCK_EX) + run = ROOT / 'negative-final' + run.mkdir() + src = ROOT / 'negative-project/WithoutMorse.lean' + source_sha = sha(src) + frozen_sources, frozen_objects = source_map(), objects() + require('MorseFiniteCritical.olean' in frozen_objects, 'actual final theorem not built') + _, paths = runtime() + env = {k:v for k,v in os.environ.items() if not k.startswith(('LEAN','LAKE','LD_','DYLD_'))} + env.update(PATH=os.pathsep.join([str(BIN),'/usr/bin','/bin']), LEAN_PATH=os.pathsep.join(paths), LEAN_NUM_THREADS='2') + command = [str(BIN/'lean'), '-j2', '-M4096', str(src)] + r = {'started_utc':now(), 'source_sha256':source_sha, 'command':command, + 'source_before':frozen_sources, 'objects_before':frozen_objects, + 'lean_sha256':sha(BIN/'lean'), 'inventory_sha256':sha(ROOT/'FINAL_SOURCE_INVENTORY.json'), + 'runner_sha256':sha(Path(__file__)), 'timeout_seconds':240, + 'meaning':'Interface rejection for absent nondegeneracy; not itself a counterexample theorem.'} + write(run/'START.json',r) + start=time.monotonic() + with (run/'stdout.txt').open('xb') as out, (run/'stderr.txt').open('xb') as err: + p=subprocess.Popen(command,cwd=src.parent,env=env,stdout=out,stderr=err,start_new_session=True) + timedout=False + try: code=p.wait(timeout=240) + except subprocess.TimeoutExpired: + timedout=True; os.killpg(p.pid,signal.SIGTERM) + try: code=p.wait(timeout=5) + except subprocess.TimeoutExpired: os.killpg(p.pid,signal.SIGKILL); code=p.wait() + text=(run/'stdout.txt').read_text()+(run/'stderr.txt').read_text() + diagnostic=('type mismatch' in text.lower() and 'IsMorseDistinct' in text and + not any(s in text.lower() for s in ['unknown module','unknown identifier','unexpected token','object file'])) + good=(code!=0 and not timedout and diagnostic and sha(src)==source_sha and + source_map()==frozen_sources and objects()==frozen_objects) + r.update(ended_utc=now(),seconds=time.monotonic()-start,returncode=code,timed_out=timedout, + child_pid=p.pid,diagnostic_match=diagnostic,source_unchanged=sha(src)==source_sha, + imported_sources_unchanged=source_map()==frozen_sources, + imported_objects_unchanged=objects()==frozen_objects, + stdout_sha256=sha(run/'stdout.txt'),stderr_sha256=sha(run/'stderr.txt'), + status='PASS_EXPECTED_MISSING_PREMISE_REJECTION' if good else 'HOLD') + write(run/'RECEIPT.json',r) + print(json.dumps({'status':r['status'],'seconds':r['seconds']}),flush=True) + return 0 if good else 1 + +if __name__=='__main__': raise SystemExit(main()) From 223bc6b8778d2ecb856f8b1a30f03f13921c9e39 Mon Sep 17 00:00:00 2001 From: Dylan Roy <249851642+d6g8k5htny-coder@users.noreply.github.com> Date: Sun, 18 Oct 2026 16:47:01 -0500 Subject: [PATCH 2/7] ci(C293): source-bound five-module Lean and negative-control replay runner --- tools/c293_hosted_verify.py | 262 ++++++++++++++++++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 tools/c293_hosted_verify.py diff --git a/tools/c293_hosted_verify.py b/tools/c293_hosted_verify.py new file mode 100644 index 000000000..42baa8bca --- /dev/null +++ b/tools/c293_hosted_verify.py @@ -0,0 +1,262 @@ +#!/usr/bin/env python3 +"""C293-only hosted Lean replay. Engineering evidence, not scientific acceptance. + +The source and historical execution receipts in PR #482 are immutable inputs. +Run in the pinned formal/ Lake environment (see the dedicated Actions workflow). +""" +import hashlib +import json +import os +from pathlib import Path +import re +import subprocess +import sys +import time + +ROOT = Path(__file__).resolve().parents[1] +PACKAGE = ROOT / "frontiers/morse_finite_critical_20261018" +FINAL = PACKAGE / "final-project" +NEGATIVE = PACKAGE / "negative-project/WithoutMorse.lean" +FORMAL = ROOT / "formal" +EVIDENCE = ROOT / ".lake/c293-hosted-evidence" +BUILD = ROOT / ".lake/c293-hosted-build" + +SOURCE_COMMIT = "0ea97aff489f9420632b4cee81ad82dbec5fe88e" +MATHLIB_PIN = "d13f23b723b8a846827a245b89c10fc7d3f11612" +LEAN_VERSION = "4.34.1" +# These are SHA-256 hashes of the *published UTF-8 file bytes*, not Git blob IDs. +SOURCES = { + "Lifetime": ("90f4892608e953ecc696bb32ea159d1c178ceb8a1c6edfd11acfceb14af462c6", 51383), + "TorusTopology": ("ddb145b3f791c181d4f2a51e54e711937297bd6476ba55bcd5252b7ddb57cfe1", 12257), + "MorseFiniteCritical": ("95a660134eda49eecfe6181884bd23b4e4ca210e228d2463de29e5f821df047b", 9445), + "MorseFiniteControls": ("e6171c949ec60a3aea21a8cc028180e16c82e4946a232107d9e82bf8018cdac1", 2843), + "MorseFiniteAxiomAudit": ("326a1cab271bf46a1c7db750ee1565e08dc4856c62e0abce3f5c9f90d923ce9d", 3025), +} +NEGATIVE_SHA = "4c9726b692dbb83237b82344e7b5aab621749da6da699c0187cf9893dca8d80f" +UPSTREAM = { + "Lifetime": "specifications/lean_statements_20261010/Specifications/Lifetime.lean", + "TorusTopology": "companions/torus_filtration_20261011/TorusTopology.lean", +} +# Published C293 objects, independently reproduced on a separate Linux machine. +OBJECTS = { + "Lifetime": "b3e14c2951b452222ca0c7b1448458cf785225971da704e4e3e6f0cc93107da4", + "TorusTopology": "ccb13e9469d55da8b5202706a1f013fa7a2755b2184542b8a0534f722d993125", + "MorseFiniteCritical": "34ff2a9ed529609dd48a22204b8eacc66eeb943805e2d6e8dee4481cde8ef4e2", + "MorseFiniteControls": "5eebfbb98a8cb05ac420d260dd08461ac037b2e086620fe79ee330defd345efa", + "MorseFiniteAxiomAudit": "3c3f30110ec4a3c0a0c1ba6f1769634d0c04bfc4e444ab1bcfd46c5dffa4ff4b", +} +PACKAGE_PINS = { + "plausible": "118aa17ee84656b8bd727fef7c458ee8c833385c", + "LeanSearchClient": "ddf04cf3949fa556442341e87d47f9f6e6074707", + "importGraph": "e928b72544873815af278d38681b31c0293588e3", + "proofwidgets": "106ff4fafc74ef4ac99d81dbf3ab399118f497a5", + "aesop": "355695d523e41d0554926416cba2a2b3544fbbc9", + "Qq": "6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259", + "batteries": "f2effa3d803fda822b1f97b806c47cf2adfbcbc2", + "Cli": "e92c9f15fdfacc8536f31cfb3b7ad26c3c8cd204", + "mathlib": MATHLIB_PIN, +} +MODULE_COUNTS = {"Lifetime": 103, "TorusTopology": 38, + "MorseFiniteCritical": 20, "MorseFiniteControls": 8} + + +def sha256(path): + return hashlib.sha256(Path(path).read_bytes()).hexdigest() + + +def safe_source(path, root=ROOT): + """Require a regular, in-tree file without symlinked ancestors.""" + path = Path(path) + root = Path(root) + if not path.is_relative_to(root): + raise RuntimeError(f"source outside repository: {path}") + parts = path.relative_to(root).parts + for i in range(1, len(parts) + 1): + if (root.joinpath(*parts[:i])).is_symlink(): + raise RuntimeError(f"symlink in source: {path}") + if not path.is_file(): + raise RuntimeError(f"source missing or not regular: {path}") + + +def verify_sources(root=ROOT): + """Check C293 source identities AND the actual upstream source crosswalk.""" + root = Path(root) + prefix = root / "frontiers/morse_finite_critical_20261018" + for module, (digest, size) in SOURCES.items(): + path = prefix / "final-project" / f"{module}.lean" + safe_source(path, root) + if path.stat().st_size != size or sha256(path) != digest: + raise RuntimeError(f"C293 source identity mismatch: {module}") + if module in UPSTREAM: + other = root / UPSTREAM[module] + safe_source(other, root) + if other.read_bytes() != path.read_bytes(): + raise RuntimeError(f"upstream C293 input differs: {module}") + neg = prefix / "negative-project/WithoutMorse.lean" + safe_source(neg, root) + if sha256(neg) != NEGATIVE_SHA: + raise RuntimeError("C293 missing-premise control modified") + toolchain = root / "formal/lean-toolchain" + lakefile = root / "formal/lakefile.toml" + manifest_file = root / "formal/lake-manifest.json" + for path in (toolchain, lakefile, manifest_file): + safe_source(path, root) + if toolchain.read_text().strip() != "leanprover/lean4:v" + LEAN_VERSION: + raise RuntimeError("Lean toolchain pin changed") + if f'rev = "{MATHLIB_PIN}"' not in lakefile.read_text(): + raise RuntimeError("Lake mathlib pin changed") + lock = json.loads(manifest_file.read_text()) + actual = {p["name"]: p["rev"] for p in lock["packages"]} + if actual != PACKAGE_PINS: + raise RuntimeError("C293 dependency pins differ from registered formal Lake lock") + return {"source_commit": SOURCE_COMMIT, "module_sha256": + {name: digest for name, (digest, _) in SOURCES.items()}, + "negative_sha256": NEGATIVE_SHA, "dependency_pins": actual} + + +def validate_audit(output): + for module, count in MODULE_COUNTS.items(): + if f"MORSE_AUDIT_MODULE {module} COUNT {count}" not in output: + raise RuntimeError(f"C293 audit missing {module} census") + if "MORSE_AUDIT_STANDARD_ONLY_PASS COUNT 169" not in output: + raise RuntimeError("C293 complete standard-only audit did not finish") + declarations = re.findall(r"(?m)^MORSE_AUDIT_DECL ", output) + if len(declarations) != 169: + raise RuntimeError(f"C293 expected 169 declaration reports, got {len(declarations)}") + if "quotientCriticalSet_finite' depends on axioms:" not in output: + raise RuntimeError("C293 main theorem axiom report absent") + + +def validate_negative(returncode, output): + """Reject a fake pass, import failure or unrelated syntax/error diagnostic.""" + required = ("error: Type mismatch", "quotientCriticalSet_finite d L hL g hs hp", + "IsMorseDistinct d L g", "but is expected to have type") + if returncode != 1 or output.count("error:") != 1 or not all(x in output for x in required): + raise RuntimeError("C293 negative control did not reject the missing Morse premise") + if any(s in output for s in ("unknown identifier", "unknown module", + "file not found", "lean::memory_exception", + "out of memory", "unexpected token")): + raise RuntimeError("C293 negative control failed for an unrelated reason") + + +def git(*args, cwd=ROOT): + return subprocess.check_output(["git", *args], cwd=cwd, text=True).strip() + + +def verify_packages(): + packages = FORMAL / ".lake/packages" + out = {} + for name, commit in PACKAGE_PINS.items(): + path = packages / name + if not path.is_dir(): + raise RuntimeError(f"missing pinned dependency checkout: {name}") + actual = git("-C", str(path), "rev-parse", "HEAD") + if actual != commit: + raise RuntimeError(f"wrong installed dependency commit: {name} {actual}") + if git("-C", str(path), "status", "--porcelain", "--untracked-files=no"): + raise RuntimeError(f"dirty installed dependency checkout: {name}") + out[name] = actual + return out + + +def verify_context(): + required = ("GITHUB_SHA", "GITHUB_RUN_ID", "GITHUB_RUN_ATTEMPT", "GITHUB_REPOSITORY") + if any(not os.environ.get(x) for x in required): + raise RuntimeError("hosted execution needs actual GitHub run identity") + if os.environ["GITHUB_REPOSITORY"] != "d6g8k5htny-coder/Math-": + raise RuntimeError("wrong execution repository") + head = git("rev-parse", "HEAD") + if head != os.environ["GITHUB_SHA"]: + raise RuntimeError(f"tested checkout mismatch {head} != GITHUB_SHA") + return {k.lower(): os.environ[k] for k in required} + + +def run_phase(name, args, cwd, env, expected_success=True, timeout=900): + started = time.monotonic() + try: + result = subprocess.run(args, cwd=cwd, env=env, text=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE, + timeout=timeout, check=False) + code, stdout, stderr = result.returncode, result.stdout, result.stderr + except subprocess.TimeoutExpired as exc: + code = "TIMEOUT" + stdout = (exc.stdout or b"").decode("utf8", "replace") if isinstance(exc.stdout, bytes) else (exc.stdout or "") + stderr = (exc.stderr or b"").decode("utf8", "replace") if isinstance(exc.stderr, bytes) else (exc.stderr or "") + (EVIDENCE / f"{name}.stdout").write_text(stdout) + (EVIDENCE / f"{name}.stderr").write_text(stderr) + record = {"name": name, "command": args, "exit_code": code, + "duration_seconds": round(time.monotonic() - started, 2), + "stdout_sha256": sha256(EVIDENCE / f"{name}.stdout"), + "stderr_sha256": sha256(EVIDENCE / f"{name}.stderr")} + print(f"C293 {name}: exit={code} seconds={record['duration_seconds']}", flush=True) + if (expected_success and code != 0) or (not expected_success and code == 0) or code == "TIMEOUT": + print((stdout + stderr)[-4000:], flush=True) + raise RuntimeError(f"C293 {name} unexpected exit: {code}") + return record, stdout + stderr, code + + +def execute(): + context = verify_context() + identity = verify_sources() + EVIDENCE.mkdir(parents=True, exist_ok=False) + BUILD.mkdir(parents=True, exist_ok=False) + report = {"status": "HOLD_NOT_COMPLETED", "scientific_effect": "NONE", + "scope": "C293 finite critical classes only", "context": context, + "source_identity": identity, "memory_limit": "-M14000", + "memory_limit_reason": "Six commands required -M14000 on provider-distinct Linux replay; original -M4096 receipts preserved.", + "phase_results": []} + def save(): + (EVIDENCE / "RESULT.json").write_text(json.dumps(report, indent=2, sort_keys=True) + "\n") + save() + try: + packages_before = verify_packages() + version = subprocess.check_output(["lean", "--version"], cwd=FORMAL, text=True).strip() + (EVIDENCE / "toolchain.txt").write_text(version + "\n") + if "version " + LEAN_VERSION not in version: + raise RuntimeError(f"wrong Lean runtime: {version}") + report["packages_before"] = packages_before + env = dict(os.environ) + env["LEAN_PATH"] = str(BUILD) + os.pathsep + env.get("LEAN_PATH", "") + env["LEAN_NUM_THREADS"] = "2" + for name in SOURCES: + args = ["lean", "-j2", "-M14000"] + if name.startswith("Morse"): + args.append("-DwarningAsError=true") + args += ["-o", str(BUILD / f"{name}.olean"), str(FINAL / f"{name}.lean")] + rec, stdout, _ = run_phase("build-" + name, args, FINAL, env) + report["phase_results"].append(rec) + if name == "MorseFiniteAxiomAudit": + validate_audit(stdout) + digest = sha256(BUILD / f"{name}.olean") + if digest != OBJECTS[name]: + raise RuntimeError(f"C293 object digest mismatch: {name}: {digest}") + rec["object_sha256"] = digest + verify_sources() + save() + for name in ("MorseFiniteCritical", "MorseFiniteControls", "MorseFiniteAxiomAudit"): + args = ["leanchecker", "-v", name] + rec, _, _ = run_phase("kernel-" + name, args, FINAL, env) + report["phase_results"].append(rec) + save() + args = ["lean", "-j2", "-M14000", str(NEGATIVE)] + rec, stdout, code = run_phase("negative-WithoutMorse", args, NEGATIVE.parent, env, expected_success=False) + validate_negative(code, stdout) + report["phase_results"].append(rec) + report["packages_after"] = verify_packages() + report["source_identity_after"] = verify_sources() + report["status"] = "PASS_HOSTED_C293_EXACT_TARGETS" + save() + print("C293_HOSTED_FORMAL_PASS: five exact objects, 169 audited declarations, " + "three kernel replays and expected missing-premise rejection. " + "No C292 or elder-rule scientific promotion.", flush=True) + finally: + save() + + +if __name__ == "__main__": + if sys.argv[1:] == ["source"]: + print(json.dumps(verify_sources(), sort_keys=True)) + elif sys.argv[1:] == ["execute"]: + execute() + else: + raise SystemExit("usage: c293_hosted_verify.py source|execute") From 8afcc0a42ef4a0dd293427e6c95a42acc635ff4f Mon Sep 17 00:00:00 2001 From: Dylan Roy <249851642+d6g8k5htny-coder@users.noreply.github.com> Date: Sun, 18 Oct 2026 16:48:00 -0500 Subject: [PATCH 3/7] test(C293): reject source, pin, census and missing-premise mutations --- tests/test_c293_hosted_verify.py | 113 +++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 tests/test_c293_hosted_verify.py diff --git a/tests/test_c293_hosted_verify.py b/tests/test_c293_hosted_verify.py new file mode 100644 index 000000000..23d7e5131 --- /dev/null +++ b/tests/test_c293_hosted_verify.py @@ -0,0 +1,113 @@ +"""Fail-closed C293 hosted-registration tests; no Lean execution or theorem acceptance.""" +import importlib.util +from pathlib import Path +import shutil +import tempfile +import unittest + +REPO = Path(__file__).resolve().parents[1] +MODULE_PATH = REPO / "tools/c293_hosted_verify.py" +spec = importlib.util.spec_from_file_location("c293_hosted_verify", MODULE_PATH) +c293 = importlib.util.module_from_spec(spec) +spec.loader.exec_module(c293) + + +class C293HostedRegistrationTests(unittest.TestCase): + def test_actual_published_source_and_pin_crosswalk(self): + result = c293.verify_sources() + self.assertEqual(result["source_commit"], c293.SOURCE_COMMIT) + self.assertEqual(len(result["module_sha256"]), 5) + self.assertEqual(result["dependency_pins"]["mathlib"], c293.MATHLIB_PIN) + + def make_source_fixture(self): + temp = tempfile.TemporaryDirectory() + root = Path(temp.name) + src = Path("frontiers/morse_finite_critical_20261018") + for name in c293.SOURCES: + p = src / "final-project" / f"{name}.lean" + (root / p).parent.mkdir(parents=True, exist_ok=True) + shutil.copyfile(REPO / p, root / p) + for p in [src / "negative-project/WithoutMorse.lean", + Path("formal/lakefile.toml"), Path("formal/lean-toolchain"), + Path("formal/lake-manifest.json")]: + (root / p).parent.mkdir(parents=True, exist_ok=True) + shutil.copyfile(REPO / p, root / p) + for p in c293.UPSTREAM.values(): + (root / p).parent.mkdir(parents=True, exist_ok=True) + shutil.copyfile(REPO / p, root / p) + return temp, root + + def test_modified_theorem_source_rejected(self): + temp, root = self.make_source_fixture() + with temp: + p = root / "frontiers/morse_finite_critical_20261018/final-project/MorseFiniteCritical.lean" + p.write_bytes(p.read_bytes() + b"\n-- mutation\n") + with self.assertRaisesRegex(RuntimeError, "source identity mismatch"): + c293.verify_sources(root) + + def test_modified_upstream_copy_rejected(self): + temp, root = self.make_source_fixture() + with temp: + p = root / c293.UPSTREAM["TorusTopology"] + p.write_bytes(p.read_bytes() + b"\n-- changed upstream\n") + with self.assertRaisesRegex(RuntimeError, "upstream C293 input differs"): + c293.verify_sources(root) + + def test_missing_premise_control_mutation_rejected(self): + temp, root = self.make_source_fixture() + with temp: + p = root / "frontiers/morse_finite_critical_20261018/negative-project/WithoutMorse.lean" + p.write_bytes(p.read_bytes() + b"\n-- mutation\n") + with self.assertRaisesRegex(RuntimeError, "control modified"): + c293.verify_sources(root) + + def test_changed_dependency_pin_rejected(self): + temp, root = self.make_source_fixture() + with temp: + p = root / "formal/lean-toolchain" + p.write_text("leanprover/lean4:v4.35.0\n") + with self.assertRaisesRegex(RuntimeError, "toolchain pin changed"): + c293.verify_sources(root) + + def test_audit_requires_169_exact_reports(self): + preamble = "\n".join( + f"MORSE_AUDIT_MODULE {module} COUNT {count}" + for module, count in c293.MODULE_COUNTS.items() + ) + preamble += ("\nMORSE_AUDIT_STANDARD_ONLY_PASS COUNT 169\n" + "'TorusMorseFinite.quotientCriticalSet_finite' depends on axioms:" + " [propext, Classical.choice, Quot.sound]\n") + good = preamble + "MORSE_AUDIT_DECL name AXIOMS []\n" * 169 + c293.validate_audit(good) + with self.assertRaisesRegex(RuntimeError, "169 declaration reports"): + c293.validate_audit(preamble + "MORSE_AUDIT_DECL name AXIOMS []\n" * 168) + with self.assertRaisesRegex(RuntimeError, "standard-only"): + c293.validate_audit(good.replace("MORSE_AUDIT_STANDARD_ONLY_PASS", "INCOMPLETE")) + + def test_negative_requires_intended_failure_not_just_nonzero(self): + diagnostic = ("file:10:2: error: Type mismatch\n" + "quotientCriticalSet_finite d L hL g hs hp\n" + "has type IsMorseDistinct d L g → ...\n" + "but is expected to have type ...") + c293.validate_negative(1, diagnostic) + for code, output in ((0, diagnostic), (2, diagnostic), + (1, "error: unknown module MorseFiniteCritical"), + (1, diagnostic + "\nerror: unrelated")): + with self.subTest(code=code, output=output[:30]): + with self.assertRaises(RuntimeError): + c293.validate_negative(code, output) + + def test_symlink_source_rejected(self): + temp, root = self.make_source_fixture() + with temp: + p = root / "frontiers/morse_finite_critical_20261018/final-project/Lifetime.lean" + elsewhere = root / "lifetime-copy" + shutil.copyfile(p, elsewhere) + p.unlink() + p.symlink_to(elsewhere) + with self.assertRaisesRegex(RuntimeError, "symlink"): + c293.verify_sources(root) + + +if __name__ == "__main__": + unittest.main() From e869c117dd196b4c54c6dec7d75f2b1e48dd9f2d Mon Sep 17 00:00:00 2001 From: Dylan Roy <249851642+d6g8k5htny-coder@users.noreply.github.com> Date: Sun, 18 Oct 2026 16:48:47 -0500 Subject: [PATCH 4/7] ci(C293): register dedicated hosted formal replay at pinned Lean/mathlib --- .github/workflows/c293-morse-finite.yml | 71 +++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .github/workflows/c293-morse-finite.yml diff --git a/.github/workflows/c293-morse-finite.yml b/.github/workflows/c293-morse-finite.yml new file mode 100644 index 000000000..638d7e98d --- /dev/null +++ b/.github/workflows/c293-morse-finite.yml @@ -0,0 +1,71 @@ +name: C293 Morse finite critical (hosted Lean, no scientific promotion) +'on': + pull_request: + paths: + - 'frontiers/morse_finite_critical_20261018/**' + - 'tools/c293_hosted_verify.py' + - 'tests/test_c293_hosted_verify.py' + - '.github/workflows/c293-morse-finite.yml' + - 'formal/lean-toolchain' + - 'formal/lakefile.toml' + - 'formal/lake-manifest.json' + - 'specifications/lean_statements_20261010/Specifications/Lifetime.lean' + - 'companions/torus_filtration_20261011/TorusTopology.lean' + push: + branches: [main] + paths: + - 'frontiers/morse_finite_critical_20261018/**' + - 'tools/c293_hosted_verify.py' + - 'tests/test_c293_hosted_verify.py' + - '.github/workflows/c293-morse-finite.yml' + - 'formal/lean-toolchain' + - 'formal/lakefile.toml' + - 'formal/lake-manifest.json' + - 'specifications/lean_statements_20261010/Specifications/Lifetime.lean' + - 'companions/torus_filtration_20261011/TorusTopology.lean' + workflow_dispatch: +permissions: + contents: read +concurrency: + group: c293-${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} +jobs: + c293-hosted-formal: + name: c293-hosted-formal + runs-on: ubuntu-24.04 + timeout-minutes: 55 + env: + LEAN_NUM_THREADS: '2' + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 + with: + persist-credentials: false + fetch-depth: 1 + - name: Verify exact source identities and eight negative engineering controls + run: | + python3 -B -S tools/c293_hosted_verify.py source + python3 -B -S -m unittest discover -s tests -p test_c293_hosted_verify.py -v + python3 -B -O -S -m unittest discover -s tests -p test_c293_hosted_verify.py -v + - name: Install pinned Lean and retrieve dependency cache + uses: leanprover/lean-action@f061402b660e0c34644504b324e830f2991d4865 + with: + lake-package-directory: formal + auto-config: 'false' + build: 'false' + test: 'false' + lint: 'false' + use-mathlib-cache: 'true' + use-github-cache: 'false' + - name: Build five C293 objects, kernel replay, audit and missing-premise rejection + run: | + cd formal + lake env python3 -B -S ../tools/c293_hosted_verify.py execute + - name: Retain exact tested-run C293 outputs including failures + if: always() + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 + with: + name: c293-hosted-${{ github.run_id }}-${{ github.run_attempt }} + path: .lake/c293-hosted-evidence/ + include-hidden-files: true + if-no-files-found: warn + retention-days: 90 From f44dc935a84b86a36a2759c6d04ba43976978684 Mon Sep 17 00:00:00 2001 From: Dylan Roy <249851642+d6g8k5htny-coder@users.noreply.github.com> Date: Sun, 18 Oct 2026 16:50:43 -0500 Subject: [PATCH 5/7] docs(C293): describe exact CI scope, memory deviation and integration boundary --- docs/c293-hosted-formal-verification.md | 37 +++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 docs/c293-hosted-formal-verification.md diff --git a/docs/c293-hosted-formal-verification.md b/docs/c293-hosted-formal-verification.md new file mode 100644 index 000000000..8ed887774 --- /dev/null +++ b/docs/c293-hosted-formal-verification.md @@ -0,0 +1,37 @@ +# C293 hosted formal replay — engineering-only registration + +**Scientific effect: NONE.** This is source-bound, hosted Lean verification of C293's conditional finite-critical-class declaration; it is not acceptance of C292, elder pairing, or the persistence-lifetime law. + +## Ownership, source and current gates + +Source PR: https://github.com/d6g8k5htny-coder/Math-/pull/482 at exact head 0ea97aff489f9420632b4cee81ad82dbec5fe88e. The stacked CI branch is based on that head; it does not change source modules, source reviews, historical receipts, negative controls, or original evidence. + +The existing required math-downstream-gates invokes the original formal-lean.yml, which builds the independent formal/ target. Neither that required job nor the existing torus-filtration.yml companion executes this new C293 declaration. The latter's Claude companion ownership and the separate Sol/elder-registration work remain undisturbed. + +The addition is a dedicated C293 workflow named c293-morse-finite.yml. Its c293-hosted-formal job is **not a branch-protection-required context** and is not inserted into formal/gate.py or the required aggregate. Enforcing it as required should follow separately with current gate owners after hosted execution, capacity evidence, source review and readback. + +## Hosted invocation and pins + +The job uses Lean 4.34.1 and exactly the existing formal Lake project and its nine package pins, including Mathlib d13f23b723b8a846827a245b89c10fc7d3f11612. Python source checks compare all five C293 Lean modules to their published byte counts/SHA-256 values and require exact identity with the canonical Lifetime and TorusTopology upstream files. A mutated control, pin, source or upstream copy fails closed; normal and optimized test modes exercise the guard. + +To repeat after installing the formal Lake dependencies, execute from the repository root: + + python3 -B -S tools/c293_hosted_verify.py source + python3 -B -S -m unittest discover -s tests -p test_c293_hosted_verify.py -v + python3 -B -O -S -m unittest discover -s tests -p test_c293_hosted_verify.py -v + cd formal + lake env python3 -B -S ../tools/c293_hosted_verify.py execute + +The runner verifies tested GitHub commit, repository, run ID and attempt; Lean version; exact installed revisions and clean source; then compiles from new isolated outputs in the order Lifetime, TorusTopology, MorseFiniteCritical, MorseFiniteControls, MorseFiniteAxiomAudit. The three new modules use warnings-as-errors; all builds and the negative control use -j2 -M14000. + +**Memory deviation:** The original author receipts use -M4096. Anthropic/Claude's provider-distinct Linux replay, recorded in https://github.com/d6g8k5htny-coder/Math-/pull/482#issuecomment-6246988654 , needed -M14000 for six build/negative invocations. This workflow records the new limit without altering the original receipts. + +All five new .olean files must match the published object SHA-256 values. Three named-module leanchecker -v passes, the full 169-declaration (103/38/20/8) standard-only transitive axiom audit, and the exact intended missing-IsMorseDistinct rejection are mandatory. A nonzero result for an unrelated reason is not a pass. + +The 90-day workflow artifact contains phase stdout/stderr, digests and exact-run RESULT.json. Hosted standard named-module replay is **not** a hosted leanchecker --fresh of the entire import closure. External --fresh is a separate evidence record; neither implies institutional mathematical acceptance. + +## Source review and protected integration + +This change should receive review of its *CI verifier*, not substitute for the source author's C293 mathematical review. Inspect the new hosted c293-hosted-formal job and its real logs on the exact tested PR merge; do not reclassify old green checks. Keep this implementation stacked until C293 source PR #482 receives its own legitimate integration disposition. Do not automatically merge into the source author's draft branch, alter rulesets, waive reviewer independence or set a scientific status. Before any later merge, re-check ownership, base/head, source hashes, reviews, gates and the protected merge process. + +C293 does not close critical-level local path connectivity or path attainment, the full C292 adapter, almost-sure Morse, elder pairing, exhaustive once-counting, all-small-bars converse, regional collisions or stochastic lifetime transfer. From a5f613807505ba0c717b7b8d38bec7abf3ad0dfc Mon Sep 17 00:00:00 2001 From: Dylan Roy <249851642+d6g8k5htny-coder@users.noreply.github.com> Date: Sun, 18 Oct 2026 16:55:13 -0500 Subject: [PATCH 6/7] docs(C293 CI): label actual eight registration tests without inflating negative controls --- .github/workflows/c293-morse-finite.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/c293-morse-finite.yml b/.github/workflows/c293-morse-finite.yml index 638d7e98d..bfd6fa7b0 100644 --- a/.github/workflows/c293-morse-finite.yml +++ b/.github/workflows/c293-morse-finite.yml @@ -41,7 +41,7 @@ jobs: with: persist-credentials: false fetch-depth: 1 - - name: Verify exact source identities and eight negative engineering controls + - name: Verify source identities and eight registration engineering tests run: | python3 -B -S tools/c293_hosted_verify.py source python3 -B -S -m unittest discover -s tests -p test_c293_hosted_verify.py -v From 53502c887d11272c4e5ac34fbde05eb3334ef23f Mon Sep 17 00:00:00 2001 From: Grok Bot agent 14 Date: Thu, 22 Oct 2026 20:54:16 -0500 Subject: [PATCH 7/7] test(C293): adopt Claude S's test-only amendment (8 guard tests) Adopts byte-for-byte the test-only patch offered by Claude S (Anthropic Claude, session_01S16677s1SGeAJmN3QMz4ip) in Math-#485 comment 6279832520, patch SHA256 e29f66217c225cfcaab35fd3c5d8fb6f7a605373a46dd6c522c20eee425f4271. Patch author: Claude S. Publisher: Grok Bot agent 14 (succession activated in Math-#485/6355461818; ACK 6355367513). Only tests/test_c293_hosted_verify.py changes. Runner, workflow (its historical "eight tests" wording is now stale; disclosed, not edited), Lean sources, receipts and the #485->#482 stack are untouched. Expected old head: a5f613807505ba0c717b7b8d38bec7abf3ad0dfc. Independent patch-control check: Math-#485/6355351624. Scientific effect NONE. --- tests/test_c293_hosted_verify.py | 126 +++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/tests/test_c293_hosted_verify.py b/tests/test_c293_hosted_verify.py index 23d7e5131..8d0e822d9 100644 --- a/tests/test_c293_hosted_verify.py +++ b/tests/test_c293_hosted_verify.py @@ -108,6 +108,132 @@ def test_symlink_source_rejected(self): with self.assertRaisesRegex(RuntimeError, "symlink"): c293.verify_sources(root) + def test_same_size_source_mutation_rejected(self): + temp, root = self.make_source_fixture() + with temp: + p = root / "frontiers/morse_finite_critical_20261018/final-project/MorseFiniteControls.lean" + data = bytearray(p.read_bytes()) + data[-2] ^= 0x01 + p.write_bytes(bytes(data)) + with self.assertRaisesRegex(RuntimeError, "source identity mismatch"): + c293.verify_sources(root) + + def test_changed_lakefile_or_lock_pin_rejected(self): + for rel, old, new, message in ( + ("formal/lakefile.toml", c293.MATHLIB_PIN, "0" * 40, "Lake mathlib pin changed"), + ("formal/lake-manifest.json", c293.PACKAGE_PINS["batteries"], "0" * 40, + "dependency pins differ")): + temp, root = self.make_source_fixture() + with temp, self.subTest(path=rel): + p = root / rel + self.assertIn(old, p.read_text()) + p.write_text(p.read_text().replace(old, new)) + with self.assertRaisesRegex(RuntimeError, message): + c293.verify_sources(root) + + def test_out_of_tree_source_rejected(self): + temp, root = self.make_source_fixture() + with temp, tempfile.TemporaryDirectory() as other: + outside = Path(other) / "Lifetime.lean" + outside.write_text("-- outside\n") + with self.assertRaisesRegex(RuntimeError, "outside repository"): + c293.safe_source(outside, root) + + def audit_text(self, decls=169, counts=None, main=True): + counts = counts or c293.MODULE_COUNTS + text = "\n".join(f"MORSE_AUDIT_MODULE {m} COUNT {n}" for m, n in counts.items()) + text += "\nMORSE_AUDIT_STANDARD_ONLY_PASS COUNT 169\n" + if main: + text += ("'TorusMorseFinite.quotientCriticalSet_finite' depends on axioms:" + " [propext, Classical.choice, Quot.sound]\n") + return text + "MORSE_AUDIT_DECL name AXIOMS []\n" * decls + + def test_audit_rejects_wrong_census_extra_reports_and_missing_main_report(self): + c293.validate_audit(self.audit_text()) + wrong = dict(c293.MODULE_COUNTS, Lifetime=102) + for text, message in ((self.audit_text(counts=wrong), "audit missing Lifetime census"), + (self.audit_text(decls=170), "169 declaration reports"), + (self.audit_text(main=False), "main theorem axiom report absent")): + with self.subTest(message=message): + with self.assertRaisesRegex(RuntimeError, message): + c293.validate_audit(text) + + def test_negative_rejects_wrong_mismatch_and_unrelated_failure(self): + diagnostic = ("file:10:2: error: Type mismatch\n" + "quotientCriticalSet_finite d L hL g hs hp\n" + "has type IsMorseDistinct d L g → ...\n" + "but is expected to have type ...") + for output in ("file:10:2: error: Type mismatch\nsomething else entirely\n", + diagnostic + "\nINTERNAL PANIC: lean::memory_exception"): + with self.subTest(output=output[-40:]): + with self.assertRaisesRegex(RuntimeError, "negative control"): + c293.validate_negative(1, output) + + def test_hosted_context_requires_actual_run_identity(self): + names = ("GITHUB_SHA", "GITHUB_RUN_ID", "GITHUB_RUN_ATTEMPT", "GITHUB_REPOSITORY") + saved = {k: c293.os.environ.get(k) for k in names} + try: + try: + head = c293.git("rev-parse", "HEAD") + except (OSError, c293.subprocess.CalledProcessError): + self.skipTest("not a git checkout") + good = {"GITHUB_SHA": head, "GITHUB_RUN_ID": "1", "GITHUB_RUN_ATTEMPT": "1", + "GITHUB_REPOSITORY": "d6g8k5htny-coder/Math-"} + c293.os.environ.update(good) + self.assertEqual(c293.verify_context()["github_sha"], head) + for key, value, message in (("GITHUB_REPOSITORY", "someone/Math-", "wrong execution repository"), + ("GITHUB_SHA", "0" * 40, "tested checkout mismatch"), + ("GITHUB_RUN_ID", "", "actual GitHub run identity")): + with self.subTest(key=key): + c293.os.environ.update(good) + c293.os.environ[key] = value + with self.assertRaisesRegex(RuntimeError, message): + c293.verify_context() + finally: + for k, v in saved.items(): + if v is None: + c293.os.environ.pop(k, None) + else: + c293.os.environ[k] = v + + def test_unexpected_success_of_negative_phase_rejected(self): + saved = c293.EVIDENCE + with tempfile.TemporaryDirectory() as t: + c293.EVIDENCE = Path(t) + try: + with self.assertRaisesRegex(RuntimeError, "unexpected exit: 0"): + c293.run_phase("negative-probe", [c293.sys.executable, "-c", "pass"], t, + dict(c293.os.environ), expected_success=False) + finally: + c293.EVIDENCE = saved + + def test_installed_dependency_commit_and_cleanliness_checked(self): + saved = (c293.FORMAL, c293.PACKAGE_PINS) + with tempfile.TemporaryDirectory() as t: + pkg = Path(t) / ".lake/packages/demo" + pkg.mkdir(parents=True) + run = lambda *a: c293.subprocess.run(["git", "-C", str(pkg), *a], check=True, + capture_output=True, text=True) + run("init", "-q") + (pkg / "f.txt").write_text("1\n") + run("add", "f.txt") + run("-c", "user.name=t", "-c", "user.email=t@example.invalid", "-c", "commit.gpgsign=false", + "commit", "-q", "-m", "x") + head = c293.git("-C", str(pkg), "rev-parse", "HEAD") + c293.FORMAL = Path(t) + try: + c293.PACKAGE_PINS = {"demo": head} + self.assertEqual(c293.verify_packages(), {"demo": head}) + c293.PACKAGE_PINS = {"demo": "0" * 40} + with self.assertRaisesRegex(RuntimeError, "wrong installed dependency commit"): + c293.verify_packages() + c293.PACKAGE_PINS = {"demo": head} + (pkg / "f.txt").write_text("2\n") + with self.assertRaisesRegex(RuntimeError, "dirty installed dependency checkout"): + c293.verify_packages() + finally: + c293.FORMAL, c293.PACKAGE_PINS = saved + if __name__ == "__main__": unittest.main()