Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
a9a1d3a
test: preserve exact fail-closed semantics after capability promotion
fraware Aug 25, 2026
2be8f30
ci: require Lean execution for every CR-eligible exact capability
fraware Aug 25, 2026
009bb1c
ci: make generated-candidate Lean execution a release gate
fraware Aug 25, 2026
8da9be9
docs(ci): align exact-replay workflow with live CR eligibility
fraware Aug 25, 2026
f5add68
schema: distinguish offline bundle replay from kernel replay
fraware Aug 25, 2026
5435f4a
registry: separate offline bundle and kernel maturity
fraware Aug 25, 2026
4e679d6
validation: enforce explicit offline maturity dimensions
fraware Aug 25, 2026
b334298
docs: make current assurance and offline maturity truthful
fraware Aug 25, 2026
0290e98
release: bind provenance to exact tree and trust surface
fraware Aug 25, 2026
635b2e6
release: make exact-tree verification and signing status fail-honest
fraware Aug 25, 2026
0abffd8
benchmarks: classify frozen suite as conformance evidence, not proof …
fraware Aug 25, 2026
6ec3537
docs: close stale audit claims and separate offline theorem maturity
fraware Aug 25, 2026
64fc898
docs: make trust gaps authoritative for final experimental release
fraware Aug 25, 2026
cdf2de1
docs: make README claim scope and assurance chain explicit
fraware Aug 25, 2026
9a1de93
chore: remove temporary audit scratch directory
fraware Aug 25, 2026
ef76cb2
ci: derive exact Lean E2E coverage from registry and plugins
fraware Aug 25, 2026
1081cfa
docs: add research citation metadata
fraware Aug 25, 2026
ac47bbf
docs: add experimental release changelog
fraware Aug 25, 2026
fe08833
docs: add exact release reproducibility protocol
fraware Aug 25, 2026
788ac0f
ci: cache pinned Mathlib and cancel superseded Lean runs
fraware Aug 25, 2026
c6499ec
ci: cache pinned Mathlib and cancel superseded offline replay
fraware Aug 25, 2026
cff9977
ci: cancel superseded Lean assurance audit runs
fraware Aug 25, 2026
72b7677
ci: cancel superseded exact assurance runs
fraware Aug 25, 2026
7beede7
ci: cancel superseded replay tamper runs
fraware Aug 25, 2026
e5e7765
ci: cancel superseded adapter conformance runs
fraware Aug 25, 2026
1964293
ci: cancel superseded adversarial runs
fraware Aug 25, 2026
cb57a7e
ci: cancel superseded security runs
fraware Aug 25, 2026
17d3bdc
ci: cancel superseded supply-chain runs
fraware Aug 25, 2026
25fdbda
ci: cache Mathlib and cancel superseded benchmark runs
fraware Aug 25, 2026
4194c51
ci: cache pinned Mathlib in release provenance workflow
fraware Aug 25, 2026
594666e
ci: require benchmark runs for exact assurance release surfaces
fraware Aug 25, 2026
99ea45d
ci: materialize exact checker closure before candidate replay
fraware Aug 26, 2026
2219ec1
release: build exact checker closure before candidate replay
fraware Aug 26, 2026
41ad937
ci: run exact matrix through production Lean inspection
fraware Aug 26, 2026
8d7dfba
ci: execute exact matrix through production Lean path
fraware Aug 26, 2026
21e9956
release: use production exact candidate compiler and inspector
fraware Aug 26, 2026
e9c49bc
ci: load exact E2E matrix independent of package layout
fraware Aug 26, 2026
e919421
ci: trigger release benchmarks on production exact E2E changes
fraware Aug 26, 2026
3a810ea
ci: fix production exact matrix loader
fraware Aug 26, 2026
e938559
docs: align exact replay authority
fraware Aug 26, 2026
730b4a4
benchmarks: harden ideal-membership release scoring
fraware Aug 26, 2026
9799b7f
release: preserve clean-tree provenance
fraware Aug 26, 2026
f8b561c
ci: bind exact E2E fixtures canonically
fraware Aug 26, 2026
a3ce8c4
fix: enforce exact rational request binding
fraware Aug 26, 2026
3694ccb
ci: expose exact binding diagnostics on replay failure
fraware Aug 26, 2026
7bf91c1
fix: align exact binding diagnostic marker
fraware Aug 26, 2026
32785c8
fix: use kernel reduction for rational exact proofs
fraware Aug 26, 2026
8c6db65
test: pin rational exact kernel decision path
fraware Aug 26, 2026
dfcea49
ci: run rational kernel-decision regression
fraware Aug 26, 2026
282e2e9
test: target rational native proof forms precisely
fraware Aug 26, 2026
130a34c
fix: anchor rational diagnostic before theorem syntax
fraware Aug 26, 2026
b489ec4
test: distinguish diagnostic prose from proof tactics
fraware Aug 26, 2026
b3ead7a
ci: retry pinned Lean bootstrap network failures
fraware Aug 26, 2026
f76717b
ci: bootstrap Lean from official asset identity
fraware Aug 26, 2026
7ddf1ea
ci: use official Lean release asset bootstrap
fraware Aug 26, 2026
6d48843
ci: pin official Lean 4.14.0 archive digest
fraware Aug 26, 2026
c5df3d5
test: restore rational native decision for compile probe
fraware Aug 26, 2026
6dfd726
ci: add non-authoritative rational native compile probe
fraware Aug 26, 2026
50634cf
test: require native rational exact decision source
fraware Aug 26, 2026
704f4a6
ci: probe rational native code emission before production E2E
fraware Aug 26, 2026
6c07f6c
ci: probe unfolded rational native decision
fraware Aug 26, 2026
7893265
ci: probe staged rational native reduction
fraware Aug 26, 2026
9148343
ci: prove checker proposition through staged native decision
fraware Aug 26, 2026
8d5d620
Fail closed unsupported rational theorem certification
fraware Aug 26, 2026
30b0d6c
test: bind release matrix to live CR eligibility
fraware Aug 26, 2026
1d57e03
test: align assurance policy oracle with current CR eligibility
fraware Aug 26, 2026
4e5fbca
test: make adversarial assurance cohort release-aware
fraware Aug 26, 2026
9cfedb8
test: assert rational exclusion from production release matrix
fraware Aug 26, 2026
420cafe
test: align maturity inventory with five-capability release cohort
fraware Aug 26, 2026
793264e
test: separate rational plugin coverage from CR authorization
fraware Aug 26, 2026
76aa546
test: require rational theorem CR verification to fail closed
fraware Aug 26, 2026
e003530
test: bind production matrix assertion to real inventory helper
fraware Aug 26, 2026
ec36844
fix: use definitional proof for formal calculus request binding
fraware Aug 26, 2026
8e374be
test: lock formal antiderivative binding proof
fraware Aug 26, 2026
c07c4f2
fix: use kernel decide for formal calculus exact checks
fraware Aug 26, 2026
8ceba2e
fix: correct formal calculus diagnostic path
fraware Aug 26, 2026
8b9e8de
test: require kernel decide for formal exact checks
fraware Aug 26, 2026
82c011f
fix: preserve exact formal calculus proof modes
fraware Aug 26, 2026
d353660
fix: decompose formal antiderivative checker proof
fraware Aug 26, 2026
e546cee
fix: reduce formal antiderivative operation proof
fraware Aug 26, 2026
661936f
test: pin formal antiderivative proof decomposition
fraware Aug 26, 2026
ce99714
fix: use kernel decide for formal antiderivative replay
fraware Aug 27, 2026
df22ab2
test: pin kernel decide antiderivative proof mode
fraware Aug 27, 2026
080293e
fix: bind canonical cjson evidence in release provenance
fraware Aug 27, 2026
cfbbf47
test: require cjson in release provenance
fraware Aug 27, 2026
63b5072
docs: align candidate bundle version status
fraware Aug 27, 2026
db75ea2
fix: bind complete evidence trees in release provenance
fraware Aug 27, 2026
0fe6ed5
test: require complete release evidence coverage
fraware Aug 27, 2026
47989a1
ci: assert complete release evidence provenance
fraware Aug 27, 2026
23dbae8
fix: separate literal validity from domain denominators
fraware Aug 27, 2026
d3e7ae3
proof: derive literal definedness from well-formedness
fraware Aug 27, 2026
e96461b
test: distinguish literal and division denominators
fraware Aug 27, 2026
5d77bda
test: cover rational-literal antiderivative replay
fraware Aug 27, 2026
ae06de2
test: mirror generated antiderivative request binding
fraware Aug 27, 2026
509278f
test: stage formal antiderivative checker proof
fraware Aug 27, 2026
ac1f22c
fix: stage antiderivative exact checker proof
fraware Aug 27, 2026
b0fc0e1
test: lock staged antiderivative proof generation
fraware Aug 27, 2026
24fc785
test: unfold antiderivative operation in kernel
fraware Aug 27, 2026
1612563
fix: unfold formal antiderivative operation for kernel proof
fraware Aug 27, 2026
ac626ba
test: lock kernel-unfolded antiderivative proof generation
fraware Aug 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/adapter-conformance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,14 @@ on:
permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
sympy-conformance:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4

Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/adversarial.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,14 @@ on:
permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
adversarial-seed:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4

Expand Down
15 changes: 12 additions & 3 deletions .github/workflows/assurance-exact-replay.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Exact-candidate binding / regenerability (no Lake theorem minting).
# Exact-candidate binding / regenerability. Pinned Lean execution is required by lean.yml.
name: assurance-exact-replay

on:
Expand All @@ -10,9 +10,14 @@ on:
permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
assurance-exact-replay:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4

Expand Down Expand Up @@ -43,11 +48,15 @@ jobs:
python -m pytest \
tests/forensic/test_exact_replay_framework.py \
tests/forensic/test_exact_phase2_plugins.py \
tests/forensic/test_rational_exact_kernel_decision.py \
tests/forensic/test_assurance_policy.py \
tests/forensic/test_certification_record_v04.py \
tests/forensic/test_assurance_adversarial_corpus.py \
-q

- name: Note Lake E2E status
- name: Production exact matrix loader regression
run: python -m pytest tests/forensic/test_cr_exact_lean_e2e_loader.py -q

- name: Cross-gate contract
run: |
echo "::notice title=assurance-exact-replay::Python exact-binding gate green. Lean theorem E2E remains gated by lean.yml; crEligible stays false until offline+tamper+E2E prove a capability."
echo "::notice title=assurance-exact-replay::Candidate binding, deterministic generation, policy, CR, and adversarial tests are green here. Every CR-eligible capability must also pass production-generated candidate execution in the required lean workflow (scripts/ci/run_cr_exact_lean_e2e_production.py)."
79 changes: 69 additions & 10 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ on:
- "scripts/run_ideal_membership_benchmark.py"
- "scripts/smoke_ideal_membership.py"
- "scripts/generate_exact_ideal_replay_module.py"
- "scripts/ci/run_cr_exact_lean_e2e.py"
- "scripts/ci/run_cr_exact_lean_e2e_production.py"
- "tests/forensic/test_ideal_benchmark_scoring.py"
- "registry/maturity-inventory.json"
- "registry/capabilities/**"
- "adapters/common/exact_replay/**"
- "MathEvidence/Checkers/IdealMembership/**"
- "MathEvidence/Core/ExprSerialize.lean"
- "MathEvidence/Exe/DeclarationIdentity.lean"
Expand All @@ -30,14 +36,21 @@ on:
- "adapters/common/environment_lock.py"
- "agent/api/receipt.py"
- ".github/workflows/benchmarks.yml"
- ".github/workflows/lean.yml"
- ".github/workflows/release.yml"

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
# Mathematical/task benchmark behavior (not assurance policy).
benchmark-task-suite:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4

Expand Down Expand Up @@ -69,6 +82,42 @@ jobs:
uv sync --frozen --extra dev --extra sympy
echo "$PWD/.venv/bin" >> "$GITHUB_PATH"

- name: Ideal-membership scoring trust regression
run: python -m pytest tests/forensic/test_ideal_benchmark_scoring.py -q

- name: Ideal-membership frozen 55-task corpus (candidate/checker tier)
env:
MATHEVIDENCE_IDEAL_BACKEND: sympy
run: |
set -euo pipefail
python scripts/run_ideal_membership_benchmark.py --tier candidate | tee /tmp/ideal-candidate.json
python - <<'PY'
import json
from pathlib import Path

p = json.loads(Path("/tmp/ideal-candidate.json").read_text(encoding="utf-8"))
manifest = json.loads(
Path("benchmarks/ideal_membership/manifest.json").read_text(encoding="utf-8")
)
expected_scored = int(manifest["passTasks"]) + int(manifest["xfailTasks"])
assert p.get("tier") == "candidate", p.get("tier")
assert p.get("taskCount") == manifest.get("taskCount"), (p.get("taskCount"), manifest.get("taskCount"))
assert p.get("scoredTasks") == expected_scored, (p.get("scoredTasks"), expected_scored)
assert p.get("skipped") == manifest.get("skipTasks"), (p.get("skipped"), manifest.get("skipTasks"))
assert p.get("passed") == p.get("scoredTasks"), (p.get("passed"), p.get("scoredTasks"))
assert p.get("criticalFalseAcceptCount") == 0, p.get("criticalFalseAcceptTasks")
assert not p.get("criticalFalseAcceptTasks"), p.get("criticalFalseAcceptTasks")
assert p.get("adapterCheckerDisagreementCount") == 0, p.get("adapterCheckerDisagreementTasks")
for task in p.get("tasks") or []:
assert (task.get("lean") or {}).get("resultStatus") is None, task.get("id")
print(
"ideal frozen corpus OK:",
p.get("taskCount"),
"tasks; scored=", p.get("scoredTasks"),
"false_accepts=", p.get("criticalFalseAcceptCount"),
)
PY

- name: Agent held-out suite
run: python scripts/run_agent_held_out.py

Expand Down Expand Up @@ -96,18 +145,24 @@ jobs:
- name: Tool-selection benchmark
run: python scripts/run_tool_selection_benchmark.py

# ME-RV-035 / P0-F: backend-proposed multipliers -> exact Lean theorem ->
# Lean.Environment identity -> strict Certification Record.
# Failure taxonomy: Lake/setup failures are not benchmark-logic failures.
# Benchmark score must never write crEligible (registry remains authority).
# Bounded exact theorem subset: backend-proposed multipliers -> exact Lean
# theorem -> Lean.Environment identity -> strict Certification Record.
# The full 55-task corpus runs separately above. Benchmark score never grants
# CR eligibility.
ideal-release-grade:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4

- name: Install elan (checksum-pinned release asset)
run: bash scripts/ci/install-elan-pinned.sh

- name: Restore pinned Mathlib build cache
run: |
set -euo pipefail
lake exe cache get

- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
with:
Expand All @@ -131,26 +186,30 @@ jobs:
echo "::notice title=ideal-release-grade setup::Lake build of exact-replay deps. Failure here is setup/replay, not benchmark scoring."
lake build MathEvidenceCheckers mathevidence-declaration-identity

- name: Ideal membership release-grade (exact Certification Record)
- name: Ideal membership bounded exact theorem subset
env:
MATHEVIDENCE_IDEAL_BENCH_TIER: release
MATHEVIDENCE_IDEAL_BACKEND: sympy
run: |
set -euo pipefail
echo "::notice title=ideal-release-grade bench::Benchmark logic + exact CR asserts. Distinct from Lake setup step above."
echo "::notice title=ideal-release-grade bench::Bounded exact-CR subset. The full 55-task candidate/checker corpus is a separate job."
python scripts/run_ideal_membership_benchmark.py --tier release | tee /tmp/ideal-release.json
python - <<'PY'
import json
p = json.load(open("/tmp/ideal-release.json", encoding="utf-8"))
tasks = p.get("tasks") or []
release_tasks = p.get("releaseCertificationTasks") or []
assert p.get("tier") == "release", p.get("tier")
assert p.get("taskCount") == len(release_tasks) == len(tasks) and len(tasks) > 0
assert {t.get("id") for t in tasks} == set(release_tasks)
assert p.get("passed") == p.get("scoredTasks") and p.get("scoredTasks", 0) > 0
assert p.get("criticalFalseAcceptCount") == 0, p.get("criticalFalseAcceptTasks")
assert "OfflineFixtures" not in (p.get("scoringRule") or "")
for t in p.get("tasks") or []:
for t in tasks:
lean = t.get("lean") or {}
assert lean.get("resultStatus") == "soundness_verified", (t.get("id"), lean)
assert lean.get("certificationRecordDigest"), t.get("id")
assert lean.get("identityAuthority") == "Lean.Environment ConstantInfo", lean
# Benchmark must not claim registry crEligible flips.
assert "crEligible" not in p
print("ideal exact release-grade OK:", p.get("passed"), "Certification Records")
PY
print("ideal bounded exact subset OK:", p.get("passed"), "Certification Records")
PY
7 changes: 6 additions & 1 deletion .github/workflows/lean-assurance-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,14 @@ on:
permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
lean-assurance-audit:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4

Expand Down Expand Up @@ -56,7 +61,7 @@ jobs:
--ignore=tests/forensic/test_wave2_kernel_replay.py \
--ignore=tests/forensic/test_verify_bundle_no_theorem_status.py \
--ignore=tests/forensic/test_theorem_producing_replay.py
# Lake-dependent E2E files stay in lean.yml. This gate distinguishes
# Lake-dependent E2E files stay in lean.yml.
# Keep Python assurance independent of Lean setup failures.

- name: Note
Expand Down
47 changes: 43 additions & 4 deletions .github/workflows/lean.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Lake build, import boundaries, sorry/axiom audit.
# Lake build, exact-candidate execution, import boundaries, and sorry/axiom audit.
name: lean

on:
Expand All @@ -9,14 +9,43 @@ on:
permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
lean:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4

- name: Install elan (checksum-pinned release asset)
run: bash scripts/ci/install-elan-pinned.sh
- name: Install checksum-pinned Lean 4.14.0 release asset
run: bash scripts/ci/install-lean-pinned.sh

- name: Restore pinned Mathlib build cache
run: |
set -euo pipefail

retry_network() {
local attempt
for attempt in 1 2 3; do
if "$@"; then
return 0
fi
if [ "$attempt" -eq 3 ]; then
echo "network cache command failed after ${attempt} attempts: $*" >&2
return 1
fi
sleep_seconds=$((5 * (2 ** (attempt - 1))))
echo "network cache attempt ${attempt} failed; retrying in ${sleep_seconds}s: $*" >&2
sleep "$sleep_seconds"
done
}

lean --version
lake --version
retry_network lake exe cache get

- name: Setup Python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
Expand Down Expand Up @@ -44,15 +73,25 @@ jobs:
- name: Sorry / axiom audit
run: python scripts/audit_sorry_axioms.py

- name: Lake build (verification + declaration identity + audit drivers)
- name: Lake build (checker closure + verification + declaration identity + audit drivers)
run: |
set -euo pipefail
# Generated exact-candidate modules import capability ReplaySound declarations
# directly. Build the complete checker barrel first so every CR-eligible
# production E2E import has a materialized .olean before replay.
lake build \
MathEvidenceCheckers \
mathevidence-verify-bundle \
mathevidence-kernel-replay \
mathevidence-declaration-identity \
mathevidence-import-graph \
mathevidence-axiom-report

- name: CR-eligible exact candidate production Lean E2E
run: |
set -euo pipefail
python scripts/ci/run_cr_exact_lean_e2e_production.py | tee /tmp/cr-exact-lean-e2e.jsonl

- name: Environment import/axiom audits (Lean.Environment)
run: |
set -euo pipefail
Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/offline-replay.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,14 @@ on:
permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
offline-replay:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4

Expand Down Expand Up @@ -63,6 +68,11 @@ jobs:
- name: Install elan (checksum-pinned release asset)
run: bash scripts/ci/install-elan-pinned.sh

- name: Restore pinned Mathlib build cache
run: |
set -euo pipefail
lake exe cache get

- name: Lean offline replay (checker fixtures + tactic examples)
env:
MATHEVIDENCE_ADAPTER_MODE: fixture
Expand Down
Loading
Loading