Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
ae25ebd
Require complete cusp mutant reports and preserve baseline/unknown st…
d6g8k5htny-coder Oct 6, 2026
209cf05
Equal-height workflow: authenticate complete mutant reports and inven…
d6g8k5htny-coder Oct 6, 2026
6b4c70e
Lifetime note TL packet: store the note, its controls and three PASS …
claude Oct 6, 2026
e950f0e
Lifetime note TS packet: store the note, its controls, three slice re…
claude Oct 6, 2026
2ca71c5
Lifetime note EM packet: store the note, its controls, three slice re…
claude Oct 6, 2026
5b4bf2e
Lifetime note C7 packet: store the note, its controls and three PASS …
claude Oct 7, 2026
4fda46c
Store lifetime notes V24 and DC with their controls and six PASS read…
claude Oct 7, 2026
fbd88d7
Add the Lean statement register: statement-only Mathlib specification…
claude Oct 10, 2026
b2d70d7
Keep the statement-register fixture tests independent of the CI envir…
claude Oct 11, 2026
00d2ac6
Add the proof packet: 38 kernel-checked theorems typed as registered …
claude Oct 11, 2026
96cd4a3
Proof packet round 2: 14 more kernel-checkable theorems, Theorem P2 a…
claude Oct 11, 2026
910809d
Proof packet: write coverSet_bddBelow in tactic form so the environme…
claude Oct 11, 2026
d9b8dd3
Statement register: the hosted run on 910809d6 receipted all 52 proof…
claude Oct 11, 2026
79731b9
Statement register: bind each hosted run to its PR head and its actua…
claude Oct 11, 2026
88c2105
Proof packet round 3: Theorem F's hazard interpolation (F4-F8, F12, F…
claude Oct 11, 2026
0dcb001
Proof packet README/SCOPE: record the P15Interpolation module (60 the…
claude Oct 11, 2026
12e072d
Statement register: bind the round-3 theorems to their hosted receipt…
claude Oct 11, 2026
873c6c0
RN.lean: scope note on WitnessCollisionNearPinPairsTarget and nearPin…
claude Oct 11, 2026
0dd0cb1
Companion torus_filtration_20261011: the C254 torus quotient and clos…
claude Oct 11, 2026
a898bb4
Record the first green hosted run's measured duration in the torus_fi…
claude Oct 11, 2026
80e8024
Proof packet round 4: theorems of 13 registered Side24/RN Props (Side…
claude Oct 11, 2026
74cd387
Pin axial replay actions to exact existing release commits
d6g8k5htny-coder Oct 11, 2026
e27c380
Carry exact axial pins into current Main composition
d6g8k5htny-coder Oct 11, 2026
bfc8cdb
Pin six existing CI job definitions to Ubuntu 24.04
d6g8k5htny-coder Oct 11, 2026
4c33d8c
Companion torus_filtration_20261011: apply the C262 engineering-gate …
claude Oct 11, 2026
48bfcba
Statement register and packet docs: record the 13 round-4 proof-packe…
claude Oct 11, 2026
940dffc
Companion torus_filtration_20261011: register the C263 SuperlevelBar …
claude Oct 11, 2026
be01479
Proof packet round 4: bind the 13 theorems to their first hosted rece…
claude Oct 11, 2026
3091144
Cover six C6 upstream sources in main push filter
d6g8k5htny-coder Oct 12, 2026
a80e9f1
Merge pull request #435 from d6g8k5htny-coder/codex/c6-push-path-pari…
d6g8k5htny-coder Oct 12, 2026
822ce74
ci(C026): refuse zero-test discovery in both Python modes
d6g8k5htny-coder Oct 12, 2026
455baad
test(c183): specify supplied-input and disclosure boundaries before i…
d6g8k5htny-coder Oct 12, 2026
49fb197
Merge pull request #436 from d6g8k5htny-coder/chatgpt/c026-discovery-…
d6g8k5htny-coder Oct 12, 2026
742d2c6
feat(c183): add bounded supplied-data validation and safe model proje…
d6g8k5htny-coder Oct 12, 2026
4653171
test(c183): expose short stream acquisition and delivery gaps
d6g8k5htny-coder Oct 12, 2026
f5e5ce3
test(ci): expose successful empty central discovery before guard
d6g8k5htny-coder Oct 12, 2026
09b990e
fix(c183): consume explicit EOF and require complete bounded output w…
d6g8k5htny-coder Oct 12, 2026
c6ce025
Proof packet round 5: theorems of ReferenceCovarianceLowerBound and C…
claude Oct 12, 2026
0837ba0
ci: require nonempty central unittest discovery after meaningful host…
d6g8k5htny-coder Oct 12, 2026
48e7ae4
Merge current main into C183 supplied-input validator for protected i…
d6g8k5htny-coder Oct 12, 2026
206f812
Merge pull request #437 from d6g8k5htny-coder/codex/c183-supplied-inp…
d6g8k5htny-coder Oct 12, 2026
dd1cbaf
Merge current main after PR #437 into central discovery guard; preser…
d6g8k5htny-coder Oct 12, 2026
4779397
Merge pull request #438 from d6g8k5htny-coder/codex/central-discovery…
d6g8k5htny-coder Oct 12, 2026
32fc984
Proof packet round 5: bind the two theorems to their first hosted rec…
claude Oct 12, 2026
f13aa5f
Companion torus_filtration_20261011: register the owner-authored Ordi…
claude Oct 12, 2026
ef56dca
Merge current main into the frozen statement-only packet
d6g8k5htny-coder Oct 12, 2026
d6f2c32
Merge pull request #419: statement-only Lean specifications
d6g8k5htny-coder Oct 12, 2026
2647b81
Merge current main into #422 without altering reviewed proof-packet b…
d6g8k5htny-coder Oct 12, 2026
8a61d5f
Merge pull request #422 from d6g8k5htny-coder/claude/lean-statement-p…
d6g8k5htny-coder Oct 12, 2026
5864ff2
Merge main into #423 for current-base protected integration
d6g8k5htny-coder Oct 12, 2026
6e36669
Merge pull request #423 from d6g8k5htny-coder/claude/lean-statement-p…
d6g8k5htny-coder Oct 12, 2026
f18e519
Merge current main into round-4 proof packet without changing reviewe…
d6g8k5htny-coder Oct 12, 2026
7fd045a
Merge pull request #434 from d6g8k5htny-coder/claude/lean-statement-p…
d6g8k5htny-coder Oct 12, 2026
de732f1
Merge current main after #434 into round-5 proof packet #439
d6g8k5htny-coder Oct 12, 2026
4afcca6
Merge pull request #439 from d6g8k5htny-coder/claude/lean-statement-p…
d6g8k5htny-coder Oct 12, 2026
ca28827
Merge main 4afcca6a into the torus_filtration companion branch at f13…
claude Oct 12, 2026
c0f3bc9
Companion torus_filtration_20261011: register the owner-authored C263…
claude Oct 12, 2026
b45512e
Merge pull request #428 from d6g8k5htny-coder/claude/c254-torus-filtr…
d6g8k5htny-coder Oct 12, 2026
b6dbb14
Merge current main after #428 into reviewed #440 adapter without sour…
d6g8k5htny-coder Oct 12, 2026
a0323b9
Merge pull request #440 from d6g8k5htny-coder/claude/c263-field-adapt…
d6g8k5htny-coder Oct 12, 2026
9e305ea
Proof packet round 6: ImageBound, EntrywiseCovarianceBound and Covari…
claude Oct 12, 2026
4a3fbad
Proof packet round 6: bind the three theorems to their first hosted r…
claude Oct 12, 2026
f42491e
Carry current main into reviewed Side24 round-6 packet
d6g8k5htny-coder Oct 12, 2026
aef861e
Merge pull request #441 from d6g8k5htny-coder/claude/lean-statement-p…
d6g8k5htny-coder Oct 12, 2026
f17f412
Carry reviewed TL custody packet onto current Math main
d6g8k5htny-coder Oct 12, 2026
a453cec
Lifetime note CJ packet: store the note, its controls and two PASS re…
claude Oct 12, 2026
f3318db
Merge pull request #384 from d6g8k5htny-coder/claude/tl-soft-layer-pa…
d6g8k5htny-coder Oct 12, 2026
017619b
Carry reviewed TS custody packet onto landed TL Math main
d6g8k5htny-coder Oct 12, 2026
d191239
Merge current main into reviewed cusp rejection contract
d6g8k5htny-coder Oct 12, 2026
8006586
Merge pull request #373 from d6g8k5htny-coder/chatgpt/cusp-complete-r…
d6g8k5htny-coder Oct 12, 2026
0586504
Merge current main into equal-height protocol repair
d6g8k5htny-coder Oct 12, 2026
c9fef35
Carry reviewed TS custody packet onto current Math main
d6g8k5htny-coder Oct 12, 2026
12dd189
Merge pull request #377 from d6g8k5htny-coder/chatgpt/equal-height-pr…
d6g8k5htny-coder Oct 12, 2026
b38ed3f
Merge current Math- main into reviewed TS packet #387 (source-preserv…
d6g8k5htny-coder Oct 12, 2026
40440ed
Merge pull request #387 from d6g8k5htny-coder/claude/ts-small-kappa-p…
d6g8k5htny-coder Oct 12, 2026
85f0b1a
Merge current main into EM packet #388 (source-preserving carry)
d6g8k5htny-coder Oct 12, 2026
ebbf3b7
Merge pull request #388 from d6g8k5htny-coder/claude/em-intermediate-…
d6g8k5htny-coder Oct 12, 2026
376c871
Integrate current Math main into C7 custody packet without source cha…
d6g8k5htny-coder Oct 12, 2026
7def48d
Merge pull request #392 from d6g8k5htny-coder/claude/c7-elder-two-thi…
d6g8k5htny-coder Oct 13, 2026
2b6d0cf
docs: clarify effective main ruleset bypass in Math required checks
d6g8k5htny-coder Oct 13, 2026
8acc485
Merge pull request #443 from d6g8k5htny-coder/gpt6/ac1-bypass-note-20…
d6g8k5htny-coder Oct 13, 2026
9fb0a4a
Lean statement packet: frontier section for the 64 registered Props w…
claude Oct 13, 2026
077a168
Lean statement packet, round 7: Side24 successor interface pinning th…
claude Oct 13, 2026
215726a
Round 7 Side24 slice: two currentness-text corrections from the final…
claude Oct 13, 2026
0c506fe
Frontier section: documentation amendments 445-A to 445-D from the cl…
claude Oct 13, 2026
06f03d0
Merge the amended frontier base (#445 0c506fea, amendments 445-A to 4…
claude Oct 13, 2026
6b5b9a5
Merge pull request #445 from d6g8k5htny-coder/claude/lean-statements-…
d6g8k5htny-coder Oct 13, 2026
f6ba2e6
Merge landed #445 into the reviewed #447 stack without source changes
d6g8k5htny-coder Oct 13, 2026
7f5f1c8
Merge pull request #447 from d6g8k5htny-coder/claude/lean-statements-…
d6g8k5htny-coder Oct 13, 2026
1d54b13
Merge current main into V24/DC custody packet
d6g8k5htny-coder Oct 13, 2026
7373495
Merge pull request #393 from d6g8k5htny-coder/claude/v24-dc-two-third…
d6g8k5htny-coder Oct 13, 2026
1535cb7
Merge current main into CJ custody packet
d6g8k5htny-coder Oct 13, 2026
ea2f3e2
Merge pull request #442 from d6g8k5htny-coder/claude/cj-model-j-packe…
d6g8k5htny-coder Oct 13, 2026
313388c
Lifetime note DD packet: store the note (v1.0 as read, v1.1 of record…
claude Oct 13, 2026
0040f43
DD packet: note CJ's packet landed (Math-#442 at ea2f3e25); cite it f…
claude Oct 13, 2026
7fb420a
Merge current main (ea2f3e25, the CJ packet) into the DD packet branch
claude Oct 13, 2026
e024676
Merge pull request #448 from d6g8k5htny-coder/claude/lifetime-dd-pack…
d6g8k5htny-coder Oct 13, 2026
aa9bd13
Lifetime note DD packet v2: note v1.2 and control C10 (the sliver-gap…
claude Oct 13, 2026
0e501da
Merge current main (e0246764, the landed Math-#448) into the DD packe…
claude Oct 13, 2026
d96df9a
DD packet v2: apply the AMEND of the engineering read (6141351602): c…
claude Oct 13, 2026
bc2ac33
Merge pull request #449 from d6g8k5htny-coder/claude/lifetime-dd-pack…
d6g8k5htny-coder Oct 13, 2026
e8e18e3
Lifetime note DD packet v3: note v1.3/v1.4, certificate v2 (exact sli…
claude Oct 13, 2026
fc33aaa
DD packet v3: apply the AMEND of the engineering read (6143757251): R…
claude Oct 13, 2026
a115fee
Merge pull request #450 from d6g8k5htny-coder/claude/lifetime-dd-pack…
d6g8k5htny-coder Oct 13, 2026
8dace78
Carry exact axial action pins onto current Main
d6g8k5htny-coder Oct 13, 2026
c22368b
Pin exact existing axial workflow action releases (#432)
d6g8k5htny-coder Oct 13, 2026
daea965
Lifetime note C3-R packet: exact records, the controls and a replayab…
claude Oct 13, 2026
dbe6c0a
Merge pull request #452 from d6g8k5htny-coder/claude/lifetime-c3r-pac…
d6g8k5htny-coder Oct 13, 2026
4927bfd
Carry PR433 runner-pin delta onto current Math main
d6g8k5htny-coder Oct 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .github/workflows/axial-density-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v7.0.1
- uses: actions/setup-python@v7.0.0
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97
with:
python-version: '3.11'
- name: Exact algebra in both modes with semantic mutations
Expand All @@ -31,7 +31,7 @@ jobs:
done
done
git rev-parse HEAD > "$RUNNER_TEMP/axial-evidence/checkout_commit.txt"
- uses: actions/upload-artifact@v7.0.2
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9
if: always()
with:
name: axial-density-replay
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/c026-reciprocal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,8 @@ jobs:
env:
PYTHONDONTWRITEBYTECODE: '1'
run: |
python -B -S -m unittest discover -s repairs/c026_reciprocal_20260927 -p 'test_*.py' -v
python -B -O -S -m unittest discover -s repairs/c026_reciprocal_20260927 -p 'test_*.py' -v
set -euo pipefail
python -B -S -m unittest discover -s repairs/c026_reciprocal_20260927 -p 'test_*.py' -v 2>&1 | tee "$RUNNER_TEMP/c026-normal.log"
grep -Eq '^Ran [1-9][0-9]* tests? in ' "$RUNNER_TEMP/c026-normal.log" || { echo "::error::C026 normal discovery collected 0 tests or returned no count"; exit 1; }
python -B -O -S -m unittest discover -s repairs/c026_reciprocal_20260927 -p 'test_*.py' -v 2>&1 | tee "$RUNNER_TEMP/c026-optimized.log"
grep -Eq '^Ran [1-9][0-9]* tests? in ' "$RUNNER_TEMP/c026-optimized.log" || { echo "::error::C026 optimized discovery collected 0 tests or returned no count"; exit 1; }
6 changes: 6 additions & 0 deletions .github/workflows/c6-fourier-cutoff.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ name: C6 Fourier-cutoff finite controls
paths:
- 'frontiers/c6_fourier_cutoff_20260929/**'
- '.github/workflows/c6-fourier-cutoff.yml'
- 'imports/lifetime_parent_20260925/UNIFORM_MATRIX_CAP_AND_LIFETIME.md'
- 'frontiers/c6_factorial_moment_20260929/PROOF.md'
- 'frontiers/c6_sharpened_20260929/PROOF.md'
- 'frontiers/intermediate_window_20260928/PROOF.md'
- 'reviews/d5_reconciliation_20260929/RECONCILIATION.md'
- 'reviews/d5_punctured_pin_continuum_claude_20260929/REVIEW.md'
workflow_dispatch:

permissions:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cap-i4-d3-adapter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ permissions:
contents: read
jobs:
replay:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
timeout-minutes: 8
strategy:
fail-fast: false
Expand Down
37 changes: 28 additions & 9 deletions .github/workflows/cusp-second-order.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ name: Cusp second-order exact controls
paths:
- 'frontiers/cusp_second_order_20261001/**'
- '.github/workflows/cusp-second-order.yml'
- 'tests/test_cusp_workflow_protocol.py'
# bound merged sources (consumed in SOURCES.json) and the pinned unmerged dependencies (#191, #198; verified by blob)
- 'frontiers/remainder_vanishing_20260930/PROOF.md'
- 'frontiers/remainder_rate_20260930/PROOF.md'
Expand Down Expand Up @@ -32,6 +33,10 @@ jobs:
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97
with:
python-version: '3.11.16'
- name: Cusp workflow protocol regressions
run: |
python -B -S -m unittest discover -s tests -p test_cusp_workflow_protocol.py -v
python -B -O -S -m unittest discover -s tests -p test_cusp_workflow_protocol.py -v
- name: Verify sources, replay both modes, reject mutants
env:
PYTHONDONTWRITEBYTECODE: '1'
Expand Down Expand Up @@ -81,19 +86,33 @@ jobs:
if len(data) != entry['bytes'] or hashlib.sha256(data).hexdigest() != entry['sha256'] or hashlib.sha1(framed).hexdigest() != entry['git_blob']:
raise ValueError('consumed unmerged dependency differs from the pinned blob (rebind required): ' + entry['path'] + ' via ' + where)
print(json.dumps({'consumed_unmerged_verified': entry['path'], 'git_blob': entry['git_blob'], 'via': where}))
# Complete immutable reports from the original five mutants, characterized
# in both modes at 11f9127f (run 37465152509/1). These are not exit-only
# expectations or reports generated by the current mutant as its own oracle.
contracts = {
'M1': (1536, '9302b83844a9c6d9a2b9f65bfc68ff9c96b7a1e610447b796bee130f08bd625b', 'C2 elder window'),
'M2': (1514, '0b55d471950c3a2dc4914d78ac6810ddffd4c903ae128e4ff0e2d333fe969852', 'C6 elder cusp integral'),
'M3': (1571, '72f2b370a2ff1a1202852e8eb328f7b3b86cb8df5fb520fdc20b69b325bbef25', 'C4 cusp limit field'),
'M4': (1604, '056b3738ae7319b50377c1f30c428e1f55ac5d331db890d30a81776c8507ae56', 'C3 fiber identity'),
'M5': (1456, '3e863170bff01721399a056d94f651427a064bfc86e032e9cfe39d54b218c963', 'C8 determinant derivative'),
}
if manifest['mutants'] != list(contracts):
raise ValueError('cusp mutant inventory differs from the complete ordered contract')
script = str(root / 'cusp_check.py')
expected = (root / 'RESULTS.json').read_bytes()
for flags in (['-B', '-S'], ['-B', '-O', '-S']):
out = subprocess.run([sys.executable, *flags, script], check=True, capture_output=True, timeout=600).stdout
if out != expected:
raise RuntimeError('output differs from RESULTS.json under ' + ' '.join(flags))
baseline = subprocess.run([sys.executable, *flags, script], check=True, capture_output=True, timeout=600)
if baseline.stdout != expected or baseline.stderr:
raise RuntimeError('baseline streams differ from RESULTS.json/empty stderr under ' + ' '.join(flags))
for m in manifest['mutants']:
rc = subprocess.run([sys.executable, *flags, script, '--mutant', m], capture_output=True, timeout=600).returncode
if rc != 1:
raise RuntimeError('mutant ' + m + ' not rejected')
rc = subprocess.run([sys.executable, *flags, script, '--mutant', 'M9'], capture_output=True, timeout=600).returncode
if rc != 2:
raise RuntimeError('unknown mutant label not rejected with exit 2')
result = subprocess.run([sys.executable, *flags, script, '--mutant', m], capture_output=True, timeout=600)
size, sha256, reason = contracts[m]
if (result.returncode != 1 or result.stderr or len(result.stdout) != size
or hashlib.sha256(result.stdout).hexdigest() != sha256):
raise RuntimeError('mutant ' + m + ' did not emit its exact ' + reason + ' rejection report')
unknown = subprocess.run([sys.executable, *flags, script, '--mutant', 'M9'], capture_output=True, timeout=600)
if unknown.returncode != 2 or unknown.stdout or unknown.stderr != b'unknown mutant label\n':
raise RuntimeError('unknown mutant label did not emit the complete expected exit-2 diagnostic')
print(json.dumps({'scientific_effect': 'NONE', 'mathematical_acceptance': False}))
PY
git diff --exit-code
2 changes: 1 addition & 1 deletion .github/workflows/d2-two-mass-floors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ permissions:

jobs:
two-mass-controls:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/d3-l4-anisotropic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ permissions:

jobs:
d3-l4-replay:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
timeout-minutes: 30
strategy:
fail-fast: false
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/downstream-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
outputs:
checked_commit: ${{ steps.checks-identity.outputs.checked_commit }}
name: downstream-replay
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
timeout-minutes: 15
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
Expand Down Expand Up @@ -157,7 +157,7 @@ jobs:
name: math-downstream-gates
if: ${{ always() }}
needs: [checks, formal]
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
timeout-minutes: 5
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
Expand Down
64 changes: 64 additions & 0 deletions .github/workflows/em-intermediate-elder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Lifetime note EM replay

'on':
pull_request:
paths:
- 'frontiers/em_intermediate_elder_20261006/**'
- 'tests/test_em_intermediate_elder_replay_protocol.py'
- 'tests/test_em_intermediate_elder_replay_evidence.py'
- '.github/workflows/em-intermediate-elder.yml'
workflow_dispatch:

permissions:
contents: read

jobs:
replay:
runs-on: ubuntu-latest
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
mode: ['-B -S', '-B -O -S']
name: replay (python ${{ matrix.mode }})
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97
with:
python-version: '3.11.16'
- name: Verify protocol, stored identities, extractions and all published controls
env:
PYTHONDONTWRITEBYTECODE: '1'
shell: bash
run: |
set -euo pipefail
out="$RUNNER_TEMP/qs-replay-evidence"
mkdir -p "$out/logs"
python ${{ matrix.mode }} -m unittest discover -s tests -p test_em_intermediate_elder_replay_protocol.py -v 2>&1 | tee "$out/logs/protocol.txt"
python ${{ matrix.mode }} -m unittest discover -s tests -p test_em_intermediate_elder_replay_evidence.py -v 2>&1 | tee "$out/logs/process-evidence-tests.txt"
QS_REPLAY_EVIDENCE_DIR="$out/children" python ${{ matrix.mode }} frontiers/em_intermediate_elder_20261006/replay.py 2>&1 | tee "$out/logs/replay.txt"
git diff --exit-code
test -z "$(git status --porcelain)"
- name: Preserve exact public sources and available execution logs
if: always()
shell: bash
run: |
set -euo pipefail
out="$RUNNER_TEMP/qs-replay-evidence"
mkdir -p "$out"
cp -a frontiers/em_intermediate_elder_20261006 "$out/packet"
cp tests/test_em_intermediate_elder_replay_protocol.py "$out/"
cp tests/test_em_intermediate_elder_replay_evidence.py "$out/"
cp .github/workflows/em-intermediate-elder.yml "$out/"
git rev-parse HEAD > "$out/tested_commit.txt"
printf '%s\n' '${{ matrix.mode }}' > "$out/mode.txt"
printf '%s\n' "$GITHUB_RUN_ID/$GITHUB_RUN_ATTEMPT" > "$out/run.txt"
- name: Retain evidence on success or failure
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: qs-replay-${{ strategy.job-index }}-${{ github.run_id }}-${{ github.run_attempt }}
path: ${{ runner.temp }}/qs-replay-evidence/
if-no-files-found: error
40 changes: 30 additions & 10 deletions .github/workflows/equal-height-mass.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ name: Equal-height mass controls
paths:
- 'frontiers/equal_height_mass_value_20261001/**'
- '.github/workflows/equal-height-mass.yml'
- 'tests/test_equal_height_workflow.py'
# bound merged sources (consumed and cited_only in SOURCES.json)
- 'frontiers/c7_zero_gap_limit_20260929/PROOF.md'
- 'frontiers/three_fronts_20260924/LIFETIME_REMAINDER.md'
Expand All @@ -31,6 +32,13 @@ jobs:
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97
with:
python-version: '3.11.16'
- name: Exercise complete output contracts in both modes
env:
PYTHONDONTWRITEBYTECODE: '1'
run: |
set -euo pipefail
python -B -S -m unittest discover -s tests -p test_equal_height_workflow.py -v
python -B -O -S -m unittest discover -s tests -p test_equal_height_workflow.py -v
- name: Verify sources, replay both modes, reject mutants
env:
PYTHONDONTWRITEBYTECODE: '1'
Expand Down Expand Up @@ -58,19 +66,31 @@ jobs:
raise ValueError('merged source drifted: ' + entry['path'])
if manifest.get('consumed_unmerged'):
raise ValueError('this packet declares no unmerged dependency')
mutants = manifest.get('mutants')
if type(mutants) is not list or mutants != ['M1', 'M2', 'M3']:
raise RuntimeError('complete ordered M1-M3 inventory required')
# Fixed full reports measured from unchanged checker 92ba3cde in both modes.
# Byte identity is intentional; changed diagnostics need a reviewed rebind.
contracts = {
'M1': (933, 'b6f95f60a211e6abf9c5595fcc26ebd74ea5d3c6c5ade551e94ac1ce4e98952f'),
'M2': (938, '4cd2c6f39ed2c920d0fc69fb3a1826b9cec35465c3013d00996b4b26ce788c49'),
'M3': (935, 'ac69c631970c2b5f6b1cba6c9457b5601148d0ca7ea087cc012e2772ffd9fa09'),
}
script = str(root / 'equal_height_mass.py')
expected = (root / 'RESULTS.json').read_bytes()
for flags in (['-B', '-S'], ['-B', '-O', '-S']):
out = subprocess.run([sys.executable, *flags, script], check=True, capture_output=True, timeout=600).stdout
if out != expected:
raise RuntimeError('output differs from RESULTS.json under ' + ' '.join(flags))
for m in manifest['mutants']:
rc = subprocess.run([sys.executable, *flags, script, '--mutant', m], capture_output=True, timeout=600).returncode
if rc != 1:
raise RuntimeError('mutant ' + m + ' not rejected')
rc = subprocess.run([sys.executable, *flags, script, '--mutant', 'M9'], capture_output=True, timeout=600).returncode
if rc != 2:
raise RuntimeError('unknown mutant label not rejected with exit 2')
result = subprocess.run([sys.executable, *flags, script], capture_output=True, timeout=600)
if result.returncode != 0 or result.stdout != expected or result.stderr != b'':
raise RuntimeError('baseline exit/stdout/stderr differs under ' + ' '.join(flags))
for m in mutants:
result = subprocess.run([sys.executable, *flags, script, '--mutant', m], capture_output=True, timeout=600)
size, digest = contracts[m]
if (result.returncode != 1 or result.stderr != b'' or len(result.stdout) != size
or hashlib.sha256(result.stdout).hexdigest() != digest):
raise RuntimeError('mutant ' + m + ' differs from its complete fixed rejection report')
result = subprocess.run([sys.executable, *flags, script, '--mutant', 'M9'], capture_output=True, timeout=600)
if result.returncode != 2 or result.stdout != b'' or result.stderr != b'unknown mutant label\n':
raise RuntimeError('unknown mutant label differs from fixed exit/stdout/stderr')
print(json.dumps({'scientific_effect': 'NONE', 'mathematical_acceptance': False}))
PY
git diff --exit-code
2 changes: 1 addition & 1 deletion .github/workflows/formal-lean.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
run_id: ${{ steps.required-binding.outputs.run_id }}
run_attempt: ${{ steps.required-binding.outputs.run_attempt }}
receipt_sha256: ${{ steps.required-binding.outputs.receipt_sha256 }}
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
timeout-minutes: 25
env:
LEAN_NUM_THREADS: 2
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/full-regression-suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,12 @@ jobs:
- name: Full repository regression suite in both Python modes
run: |
set -euo pipefail
python -B -S -m unittest discover -s tests -v
python -B -O -S -m unittest discover -s tests -v
log_dir="$(mktemp -d)"
trap 'rm -rf "$log_dir"' EXIT
python -B -S -m unittest discover -s tests -v 2>&1 | tee "$log_dir/normal.log"
grep -Eq '^Ran [1-9][0-9]* tests? in [0-9]+([.][0-9]+)?s$' "$log_dir/normal.log"
python -B -O -S -m unittest discover -s tests -v 2>&1 | tee "$log_dir/optimized.log"
grep -Eq '^Ran [1-9][0-9]* tests? in [0-9]+([.][0-9]+)?s$' "$log_dir/optimized.log"
- name: Confirm the suite left the tested commit unchanged
env:
TESTED_SHA: ${{ github.sha }}
Expand Down
59 changes: 59 additions & 0 deletions .github/workflows/lean-specification-proofs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Lean statement proofs (kernel evidence about registered Props only, no scientific promotion)

'on':
pull_request:
paths:
- 'specifications/lean_statement_proofs_20261011/**'
- 'specifications/lean_statements_20261010/**'
- '.github/workflows/lean-specification-proofs.yml'
workflow_dispatch:

permissions:
contents: read

jobs:
proof-evidence:
runs-on: ubuntu-latest
timeout-minutes: 90
env:
LEAN_NUM_THREADS: 2
PYTHONDONTWRITEBYTECODE: '1'
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97
with:
python-version: '3.11.16'
- name: Unit tests in both Python modes and the source check (no Lean)
run: |
set -euo pipefail
P=specifications/lean_statement_proofs_20261011
python -B -S "$P/test_check.py"
python -B -O -S "$P/test_check.py"
python -B -S "$P/check.py"
- name: Install pinned Lean and retrieve the Mathlib cache
uses: leanprover/lean-action@f061402b660e0c34644504b324e830f2991d4865
with:
lake-package-directory: specifications/lean_statement_proofs_20261011
auto-config: 'false'
build: 'false'
test: 'false'
lint: 'false'
use-mathlib-cache: 'true'
use-github-cache: 'false'
- name: Lean-driving unit tests on dependency-free fixture packages (environment audit, its controls, the escapes it must refuse)
run: python -B -S specifications/lean_statement_proofs_20261011/test_check.py LeanHelpers
- name: "Exact Lean version, fresh build (statement packet from source, then the proof modules), leanchecker, #check and #print axioms of every inventoried theorem, environment audit, negative controls, receipt"
run: python -B -S specifications/lean_statement_proofs_20261011/check.py --execute
- name: Tracked tree unchanged
run: git diff --exit-code
- name: Preserve logs and receipt
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: lean-specification-proofs-${{ github.run_id }}-${{ github.run_attempt }}
path: specifications/lean_statement_proofs_20261011/.lake/evidence/
include-hidden-files: true
if-no-files-found: error
retention-days: 14
Loading