# Verifying the CAIN-42 E23 bundle

Save `verify_e23.py.txt` as `verify_e23.py` (Python 3 + `cryptography`; it imports nothing from CAIN) and run `python3 verify_e23.py .` in this directory. It prints JSON and exits 0 only if INTACT.

With its own copies of the rules it re-derives, from the published bodies: every component and architecture digest; the compiler refusals and the twelve governability dimensions of every published architecture; the synthetic workloads (from their seeds) and every sandbox capability, robustness, per-kind score, latency, cost, energy and memory figure; every architecture diff; the proposal digest; the evaluator's Ed25519 signature on the proof report; the board authorization subject and a k-of-n quorum of valid board signatures that excludes the proposer; the canary digest; the hash-chained evidence log; every checkpoint digest; every signed instance birth certificate (child capability within the parent's); the self-model assertion digests; the dependency concentration and single points of failure; the attack-record digests; and the consistency of the invariant, bench, end-to-end, failure-campaign, benchmark and mutation records. It proves the bundle is intact and self-consistent and that the published verdicts follow from the published architectures. It does NOT re-run the fabric, does not prove any property formally, and does not show that any real AI system is governed by E23.
