Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
626fb5c
Scaffold Lean verification project and audit commands
claude Oct 17, 2026
03b301b
Add first verified results, catalogue, and documentation
claude Oct 17, 2026
5d5fab2
Audit: add #math0_refutes_every_answer for misformalized value questions
claude Oct 17, 2026
d4ba9ad
Add three verified results: two misformalization reports and Erdős #1048
claude Oct 17, 2026
9c16203
Add five verified results and the first two manuscripts
claude Oct 17, 2026
2d3b098
Add 19 more verified results (29 total)
claude Oct 18, 2026
73252d8
Add 14 more refereed results (43 total) and #math0_settles
claude Oct 18, 2026
4199df6
Frontier track: first new result (OEIS A294512) and A209802
claude Oct 18, 2026
30ed3d3
CI: check frozen hashes of math0-formalized statements
claude Oct 18, 2026
97f6910
Frontier: two more new results (A375522, A323695) plus A091817, A175385
claude Oct 18, 2026
0266cbd
Untrack frontier files that have not yet passed referee review
claude Oct 18, 2026
8b02214
Frontier: OEIS A215010 (equiangular decagon with sides in arithmetic …
claude Oct 18, 2026
36dc8f7
Frontier: two more new results (A338885, A363482) and A229159
claude Oct 18, 2026
b42ed04
Manuscripts for the new OEIS results A294512, A375522, A323695
claude Oct 18, 2026
455eb02
README: generated highlights block (counts and new results from catal…
claude Oct 18, 2026
5194635
Frontier: two more new results (A005590, A326602) and A344710
claude Oct 18, 2026
3b0493d
Frontier: new results A335012 and A262957
claude Oct 18, 2026
abe11cf
Frontier: A393794 (1089-trick fixed point not unique), A115026, A300789
claude Oct 18, 2026
07c13fa
Frontier: A334603 (period of 1/11^n); link only committed manuscripts
claude Oct 18, 2026
151c9f4
Manuscripts for eight frontier results
claude Oct 19, 2026
9ea1e38
Frontier: A357216, A386538, A326407 (new); A355076, A397315
claude Oct 19, 2026
ee5368f
Manuscripts for A393794, A300789, A344710, A229159
claude Oct 19, 2026
7c0e5a7
A393794: credit the Almirantis-Li 2-cycle in the catalogue note
claude Oct 19, 2026
cd98231
Manuscripts for six more frontier results; second-pass fixes
claude Oct 19, 2026
f8beec1
Manuscripts for A357216, A386538, A326407, A355076, A397315
claude Oct 19, 2026
d151955
Frontier: A062887, A106505, A116184 (new); A392943
claude Oct 19, 2026
49ea2dc
Frontier: A363609, A097154, A332010 (new)
claude Oct 19, 2026
0ecbe1b
Manuscripts for six misformalization reports; tidy catalogue notes
claude Oct 19, 2026
1c106f2
Frontier: A333650, A355339, A086004 (new); A075855, A308222, A308359
claude Oct 19, 2026
965ff1e
Frontier: A369366 (new): least inequivalent cells of a (6k+5)-iamond
claude Oct 20, 2026
6d045ce
Manuscripts for eight more frontier results
claude Oct 20, 2026
2ceb0fd
Frontier: eight more OEIS results (five new)
claude Oct 20, 2026
64c54c6
Frontier: A090905 (new); A071685
claude Oct 20, 2026
4874d0e
Frontier: A354571 (new): Selle's limit a(n)/n -> pi
claude Oct 20, 2026
f8dc068
Manuscript for A355339 (knight-move triangle parity)
claude Oct 20, 2026
2123f62
Manuscripts for A333650, A086004, A308359, A075855, A308222
claude Oct 20, 2026
8f10a17
Frontier: A351743, A073642 (new); A141412
claude Oct 20, 2026
3620f6e
Frontier: A083020, A242396 refuted; A092054 (new); A124526, A060693
claude Oct 21, 2026
7240e15
Frontier: A057566 refuted (Layman's collinear-triples formula fails a…
claude Oct 21, 2026
e5c1db0
Manuscripts for eleven more frontier results
claude Oct 21, 2026
7e7ce75
Frontier: A160848, A172164, A093726, A395454 (new); A081200, A176206
claude Oct 24, 2026
d1fa04a
Manuscripts for the A083020 and A242396 counterexamples
claude Oct 24, 2026
a274774
Manuscripts for seven more frontier results
claude Oct 24, 2026
ea0d4d2
Frontier: A178295, A223395, A121750, A386655 (new); A211343
claude Oct 24, 2026
0350cae
Manuscripts for A172164, A160848, A093726, A395454, A081200, A176206
claude Oct 24, 2026
52a197c
Frontier: A278212 (new): bishop and queen mobility maxima
claude Oct 24, 2026
922e01e
Manuscripts for A223395, A178295, A121750, A386655, A211343
claude Oct 24, 2026
b23335e
Frontier: A119936, A308107, A350900, A334595, A127767 (new); A265210
claude Oct 24, 2026
add5a96
Frontier: A341761 (new): leading coefficient of the subword-complexit…
claude Oct 24, 2026
b213833
Frontier: A308121, A129455 (new)
claude Oct 25, 2026
661a7b7
Manuscripts for A119936 and A308107
claude Oct 25, 2026
5932a50
Manuscripts for A278212, A127767, A334595, A265210, A350900
claude Oct 25, 2026
ed4af4a
Frontier: A281000, A249434, A127752 (new); A328202, A388724, A373345 …
claude Oct 25, 2026
2186918
Frontier: A270668 (Mathar's column-3 g.f. for centred-monomer domino …
claude Oct 25, 2026
5deb679
Manuscripts for A129455, A308121, A341761
claude Oct 25, 2026
65266da
Manuscripts for A281000, A249434, A127752
claude Oct 25, 2026
0630a37
Address review: rebuild in CI, enforce the statement freeze, test the…
claude Oct 26, 2026
4a1dadd
Manuscripts for A328202, A388724, A373345, A270668
claude Oct 26, 2026
7139d9f
Freeze statements for A275815, A182617, A368846, A265649 before their…
claude Oct 26, 2026
e22df8f
Merge main (AREAS.md, codetables census) into the results branch
claude Oct 26, 2026
955175e
Frontier: A350557, A144637, A127755, A022445 (new); A334592, A373359 …
claude Oct 26, 2026
e6a8c96
CI: let a newer push supersede an in-progress run
claude Oct 26, 2026
765371f
Record an independent difficulty assessment for each new result
claude Oct 26, 2026
dbb1d36
Difficulty assessments for A022445, A127755, A144637, A350557 (all ro…
claude Oct 26, 2026
9432638
CI: build two modules at a time with swap, so the uncached build fits…
claude Oct 26, 2026
21c2fb4
Freeze statements for A057566b, A188474, A123710, A357583, A350499, A…
claude Oct 26, 2026
2580222
Merge main: keep the hub README, move the collection's README to RESU…
claude Oct 29, 2026
4f952ee
Frontier: A182617, A368846, A188474 (new); A057566b (first formalizat…
claude Oct 29, 2026
6f93a56
CI: let a running kernel replay finish instead of cancelling it on ea…
claude Oct 29, 2026
0206f7d
Difficulty assessments for A182617, A188474, A368846 (all routine)
claude Oct 29, 2026
66d355b
Frontier: A275815, A123710, A357583, A342645 (new); A265649, A350499 …
claude Oct 29, 2026
1b7e058
Freeze statements for A320099, A267486, A132616, A126127, A001040, A3…
claude Oct 29, 2026
13f54f8
A short proof of the queen-mobility bound; difficulty assessments for…
claude Oct 29, 2026
44ee9f0
Frontier: A320099, A267486, A132616, A126127, A001040, A355360 (new)
claude Oct 29, 2026
ed4e0a2
Difficulty assessments for A001040, A126127, A132616, A267486, A32009…
claude Oct 29, 2026
140e4ff
Fidelity review packets for the 110 math0-formalized statements
claude Oct 29, 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
  •  
  •  
  •  
82 changes: 82 additions & 0 deletions .github/workflows/kernel-replay.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Independent kernel replay

# Slower, independent checks of the compiled environment, run weekly and on demand:
# - leanchecker replays every declaration of every math0 module through the Lean kernel,
# which catches environment tampering that the elaborator would not;
# - axiom-audit (leanprover-community) checks that every declaration under `Math0` uses only
# propext, Classical.choice and Quot.sound, independently of math0's own audit commands.
on:
schedule:
- cron: "17 4 * * 1"
workflow_dispatch:
pull_request:
paths:
- .github/workflows/kernel-replay.yml

# A replay takes over an hour; let a running one finish, and queue at most one newer run behind it.
concurrency:
group: kernel-replay-${{ github.ref }}
cancel-in-progress: false

jobs:
leanchecker:
name: leanchecker (shard ${{ matrix.shard }} of 4)
runs-on: ubuntu-latest
timeout-minutes: 350
strategy:
fail-fast: false
matrix:
shard: [0, 1, 2, 3]
env:
LEAN_NUM_THREADS: "2"
steps:
- uses: actions/checkout@v4
- name: Add swap (single proof files need up to 8 GB; the runner has 16 GB)
run: |
swap=/mnt/math0.swap
if [ ! -d /mnt ] || [ "$(df --output=avail -BG /mnt | tail -1 | tr -dc 0-9)" -lt 30 ]; then swap=/math0.swap; fi
sudo fallocate -l 20G "$swap" && sudo chmod 600 "$swap" && sudo mkswap "$swap" >/dev/null && sudo swapon "$swap"
free -h
- uses: leanprover/lean-action@v1
with:
lake-package-directory: lean
use-github-cache: false
build: false
- name: Build every module, two at a time
run: scripts/verify.sh --clean
- name: Replay this shard's modules through the kernel
working-directory: lean
env:
LEAN_NUM_THREADS: "1"
run: |
mods=$(find Math0 -name '*.lean' | sed 's/\.lean$//; s#/#.#g' | sort | awk -v s=${{ matrix.shard }} 'NR % 4 == s')
echo "$mods" | wc -l
lake env leanchecker -v $mods
axiom-audit:
name: axiom-audit
runs-on: ubuntu-latest
timeout-minutes: 330
env:
LEAN_NUM_THREADS: "2"
steps:
- uses: actions/checkout@v4
- name: Add swap (single proof files need up to 8 GB; the runner has 16 GB)
run: |
swap=/mnt/math0.swap
if [ ! -d /mnt ] || [ "$(df --output=avail -BG /mnt | tail -1 | tr -dc 0-9)" -lt 30 ]; then swap=/math0.swap; fi
sudo fallocate -l 20G "$swap" && sudo chmod 600 "$swap" && sudo mkswap "$swap" >/dev/null && sudo swapon "$swap"
free -h
- uses: leanprover/lean-action@v1
with:
lake-package-directory: lean
use-github-cache: false
build: false
- name: Build every module, two at a time
run: scripts/verify.sh --clean
- name: Audit axioms (leanprover-community/axiom-audit)
uses: leanprover/lean-action@v1
with:
lake-package-directory: lean
use-github-cache: false
build: false
axiom-audit: true
52 changes: 52 additions & 0 deletions .github/workflows/lean.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Lean verification

on:
push:
branches: [main]
pull_request:
workflow_dispatch:

# A newer push to the same pull request supersedes an older run.
concurrency:
group: lean-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
build:
name: Build and audit every result
runs-on: ubuntu-latest
timeout-minutes: 330
env:
# At most two Lean processes at once: heavy proof files peak at about 8 GB each.
LEAN_NUM_THREADS: "2"
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # the freeze check reads the history of FROZEN.sha256
- name: Add swap (single proof files need up to 8 GB; the runner has 16 GB)
run: |
swap=/mnt/math0.swap
if [ ! -d /mnt ] || [ "$(df --output=avail -BG /mnt | tail -1 | tr -dc 0-9)" -lt 30 ]; then swap=/math0.swap; fi
sudo fallocate -l 20G "$swap" && sudo chmod 600 "$swap" && sudo mkswap "$swap" >/dev/null && sudo swapon "$swap"
free -h
- name: Frozen statements are unchanged, append-only, and committed before their proofs
env:
BASE: ${{ github.event_name == 'pull_request' && format('origin/{0}', github.base_ref) || github.event.before }}
ORDER: ${{ github.event_name == 'pull_request' && '--order' || '' }}
run: |
if [ -n "$BASE" ]; then python3 scripts/check_freeze.py --base "$BASE" $ORDER
else python3 scripts/check_freeze.py; fi
- name: Install Lean and fetch Mathlib's prebuilt cache
uses: leanprover/lean-action@v1
with:
lake-package-directory: lean
# No GitHub cache: every math0 module (and every formal-conjectures module it imports)
# is elaborated and checked by the kernel again on every run, never replayed.
use-github-cache: false
build: false
- name: Rebuild every result from scratch and re-run every audit
run: |
expected=$(python3 -c 'import json; print(len(json.load(open("catalog.json"))["results"]))')
scripts/verify.sh --clean --expect "$expected"
- name: The audit commands reject what they should
run: scripts/test_audit.sh
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Lean / Lake
lean/.lake/
# LaTeX build products
*.aux
*.log
*.out
*.toc
*.fdb_latexmk
*.fls
*.synctex.gz
*.bbl
*.blg
# Python
__pycache__/
Loading
Loading