Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
489b66d
Add Ix.Kernel certified checking and set-model consistency proofs
johnchandlerburnham Sep 13, 2026
76dc310
Prove relative consistency for an atomic checkEnvAnon fragment
johnchandlerburnham Sep 13, 2026
8172135
Simplify kernel certification proofs and documentation
johnchandlerburnham Sep 13, 2026
4abe7af
Make verification documentation self-contained
johnchandlerburnham Sep 13, 2026
9615301
Add typed Ixon inputs to certified checking commands
johnchandlerburnham Sep 13, 2026
1bd7a44
Refine polymorphic constant inference into the set model
johnchandlerburnham Sep 13, 2026
ec40b6f
Extend production environment consistency to polymorphic specializations
johnchandlerburnham Sep 13, 2026
2e45671
Extend production consistency to dependent function bodies
johnchandlerburnham Sep 13, 2026
7ee64b4
Refine applications and constant references in function bodies
johnchandlerburnham Sep 13, 2026
4835e6e
Refine polymorphic constant calls inside function bodies
johnchandlerburnham Sep 13, 2026
caa9826
Refine constant cache hits in function inference
johnchandlerburnham Sep 13, 2026
6ff0cca
Prove inference cache preservation for sorts and loaded constants
johnchandlerburnham Sep 13, 2026
cc67fff
Carry cache preservation through recursive inference
johnchandlerburnham Sep 13, 2026
3cec1f8
fix(aiur): reject forged results and cyclic call traces
johnchandlerburnham Sep 13, 2026
fd9b62b
perf(aiur): derive callee ranks and cache claim shapes
johnchandlerburnham Sep 13, 2026
9c390fd
fix(aiur): reject Merkle caps that omit trace matrices
johnchandlerburnham Sep 13, 2026
9df0532
perf(aiur): specialize IxVM call ranks by checked components
johnchandlerburnham Sep 13, 2026
11fd8a5
perf(aiur): tune lookup groups using compiled degree costs
johnchandlerburnham Sep 13, 2026
37daf7c
perf(aiur): reduce host memory and correct shard estimates
johnchandlerburnham Sep 13, 2026
df3ceb0
Check Aiur emission inputs and conservative folded degrees
johnchandlerburnham Sep 13, 2026
11be019
Port and audit Aiur proofs on optimized layouts
johnchandlerburnham Sep 13, 2026
033e84d
Prove optimized AIR execution from physical traces
johnchandlerburnham Sep 14, 2026
04f15cb
Extend consistency readings and maintained cache invariants
johnchandlerburnham Sep 14, 2026
f0ca9f1
Reject circular safe definitions in host kernels
johnchandlerburnham Sep 14, 2026
520ca31
Preserve model readings through local values and binder opening
johnchandlerburnham Sep 14, 2026
c0227f2
Derive production let traces and preserve substituted type readings
johnchandlerburnham Sep 14, 2026
d315b46
Preserve local scopes and state through general inference
johnchandlerburnham Sep 14, 2026
126586b
Make anonymous ingress total and preserve checker state
johnchandlerburnham Sep 14, 2026
76112e2
Close local-state preservation through the recursive checker
johnchandlerburnham Sep 14, 2026
e596f0b
Verify termination-checked recursion survives dependency guards
johnchandlerburnham Sep 14, 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
  •  
  •  
  •  
27 changes: 26 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ jobs:
with:
build-args: "--wfail -v"
test: false
# build-all lint driver compiles every lib/exe target with --wfail, so a
# build-all checks production targets and the consistency foundation
# with --wfail. Named implementation proofs have a separate trust gate. A
# warning in any target (exes, benchmarks, Apps) — not just the default lib
# lean-action builds above — fails CI.
- name: Build all targets
Expand Down Expand Up @@ -86,6 +87,30 @@ jobs:
use-github-cache: false
- name: Test Ix CLI
run: lake test --wfail -- cli
- name: Check certified source and claim adapters
run: lake run check-certified

theory:
needs: build
runs-on: warp-ubuntu-latest-x64-16x
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/setup-rust-toolchain
- uses: actions/cache/restore@v6
with:
path: ./.lake
key: lake-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('lean-toolchain') }}-${{ hashFiles('lake-manifest.json') }}-${{ github.sha }}
restore-keys: lake-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('lean-toolchain') }}-${{ hashFiles('lake-manifest.json') }}-
- uses: leanprover/lean-action@v1
with:
auto-config: false
use-github-cache: false
- name: Check implementation proofs and exact trust manifests
run: lake build IxKernelVerify IxCompileVerify
- name: Check direct kernel consistency refinement
run: lake build --wfail IxKernelConsistency
- name: Check consistency model and exact foundation manifest
run: lake run check-theory

rust-test:
runs-on: warp-ubuntu-latest-x64-8x
Expand Down
23 changes: 13 additions & 10 deletions .github/workflows/merge-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ jobs:
- name: Valgrind FFI
kind: valgrind
runner: warp-ubuntu-latest-x64-8x
- name: Ix.Tc verification and parity
- name: Ix.Kernel verification and parity
kind: tc
runner: warp-ubuntu-latest-x64-16x
test_args: >-
--ignored
tc-anon-diff tc-init tc-tutorial tc-roundtrip tc-ingress-meta
tc-pins tc-accel-diff lean4lean
tc-pins tc-accel-diff
runs-on: ${{ matrix.runner }}
steps:
- name: Validate merge-test variant
Expand Down Expand Up @@ -147,19 +147,22 @@ jobs:
--suppressions=.github/valgrind.supp \
.lake/build/bin/IxTests ffi

- name: Check Ix.Tc exported theorem trust manifest
- name: Check Ix.Kernel exported theorem trust manifest
if: ${{ matrix.kind == 'tc' }}
run: lake build Ix.Tc.Verify.Audit.Completed Ix.Tc.Verify.Audit.Conditional Ix.Tc.Verify.Audit.Statements
- name: Build Ix.Tc formal verification
run: lake build Ix.Kernel.Verify.Audit.Completed Ix.Kernel.Verify.Audit.Conditional Ix.Kernel.Verify.Audit.Statements
- name: Build Ix.Kernel formal verification
if: ${{ matrix.kind == 'tc' }}
run: lake build IxTcVerify
- name: Check Ix.Tc verification sorry frontier
run: lake build IxKernelVerify IxCompileVerify
- name: Check Ix.Kernel consistency refinement
if: ${{ matrix.kind == 'tc' }}
run: lake build Ix.Tc.Verify.Audit.SorryFrontier
- name: Test Ix.Tc unit and adversarial fixtures
run: lake build --wfail IxKernelConsistency
- name: Check Ix.Kernel verification sorry frontier
if: ${{ matrix.kind == 'tc' }}
run: lake build Ix.Kernel.Verify.Audit.SorryFrontier
- name: Test Ix.Kernel unit and adversarial fixtures
if: ${{ matrix.kind == 'tc' }}
run: lake test --wfail -- tc-unit
- name: Run Ix.Tc ignored tests
- name: Run Ix.Kernel ignored tests
if: ${{ matrix.kind == 'tc' }}
run: lake test --wfail -- ${{ matrix.test_args }}

Expand Down
47 changes: 47 additions & 0 deletions .github/workflows/set-theory-model.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Set-theory model

on:
pull_request:
paths:
- 'Models/SetTheory/**'
- 'Ix/Theory/Model/SetTheory/Core.lean'
- 'lakefile.lean'
- 'lake-manifest.json'
- 'lean-toolchain'
- '.github/workflows/set-theory-model.yml'
merge_group:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
model:
runs-on: warp-ubuntu-latest-x64-16x
timeout-minutes: 60
defaults:
run:
working-directory: Models/SetTheory
env:
MATHLIB_NO_CACHE_ON_UPDATE: '1'
MATHLIB_CACHE_DIR: .lake/mathlib-cache
steps:
- uses: actions/checkout@v7
- uses: leanprover/lean-action@v1
with:
auto-config: false
use-github-cache: false
- name: Check Lean toolchains match
run: cmp ../../lean-toolchain lean-toolchain
- uses: actions/cache@v6
with:
path: Models/SetTheory/.lake
key: set-theory-model-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('Models/SetTheory/lean-toolchain', 'Models/SetTheory/lakefile.toml', 'Models/SetTheory/lake-manifest.json') }}
- name: Fetch the imported Mathlib modules and dependencies
run: lake exe cache get Mathlib.SetTheory.Cardinal.Regular Mathlib.SetTheory.ZFC.VonNeumann Mathlib.SetTheory.ZFC.Cardinal
- name: Build model and check axiom guard
run: lake build --wfail
6 changes: 3 additions & 3 deletions BENCHMARKS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Head-to-head timings for every stage of the Ix pipeline across three
environments, comparing the pure-Lean implementation (`Ix.CompileM` /
`Ix.DecompileM` / `Ix.Tc`) against the Rust implementation
`Ix.DecompileM` / `Ix.Kernel`) against the Rust implementation
(`crates/compile` / `crates/kernel`).

## Methodology
Expand Down Expand Up @@ -119,7 +119,7 @@ Rust: `ix decompile` (the decompile pass over a `.ixe`). Lean:
flags → Pass 2 aux regeneration/recovery) *plus* the hash comparison
against the canonicalized source (comparison overhead ~5 s at 205k
constants). Lean decompilation is dominated by Pass 2's kernel bridge
(regeneration re-infers through `Ix.Tc`); Pass 2 runs on the
(regeneration re-infers through `Ix.Kernel`); Pass 2 runs on the
wave-parallel driver (`decompileEnvPass2Parallel`, 16 workers — the
count is memory-bound, not core-bound; `IX_DECOMPILE_WORKERS`
overrides). The sequential figures from before the parallel driver are
Expand Down Expand Up @@ -147,7 +147,7 @@ full verdict parity.
worker config keeps warm caches; both a 32-worker meta run and a
32-worker anon run without cache clearing were OOM-killed while
swap-thrashing). The anon row uses the scale configuration from the
`Ix.Tc` Mathlib-tier validation: 16 workers, `--clear-every 50`
`Ix.Kernel` Mathlib-tier validation: 16 workers, `--clear-every 50`
(whole-worker-state renewal every 50 items; RSS plateaus ~42 GB) —
**640,658/640,658 passed, zero failures, full verdict parity**. Anon
mode dedups alpha-identical constants, hence the smaller count.
Expand Down
Loading
Loading