CAIN-42 Evolution 12 proof bundle (e12-perception-evidence-2026-09-28) ========================================================== Built 2026-09-28T23:09:08+00:00 at commit 3106ea9e1626871a44d15b879d1a864ca6846e6e. WHAT THIS PROVES - E12 invariants (P1-P20) all hold: 20/20 - Evidence bench contained: 32/32 - 36 tests passed, 0 failed: ============================== 36 passed in 0.92s ============================== REPRODUCE python3 -m pytest tests/test_cain42_e12_perception.py tests/test_cain42_e12_adversarial.py \ tests/test_cain42_e12_end_to_end.py -q bin/cain-agent evidence audit bin/cain-agent evidence bench python3 scripts/cain45/build_evolution12_bundle.py VERIFY (imports NO CAIN-42 code; Python + `cryptography` only) python3 verify_e12.py . LIMITS TESTED library: the perception/evidence fabric is part of the L5 kernel library on the operator host; it is not a hosted service and it runs no agents. | Attribution and corroboration counts are EVIDENCE, not proof of truth: a valid hash proves bytes did not change, never that the bytes are truthful. | Prompt-injection detection reuses the E11 pattern-based classifier; it is not perfect semantic detection. | Independence is counted from principal and lineage; a source that also fabricates distinct lineages is not detected. | Multimodal handling validates integrity/authenticity/provenance metadata; it does not perform semantic authenticity of image/audio/video content. | Attestation is over software/configuration digests, NOT hardware attestation. | No third party has reviewed this bundle; the clean-room verifier shares no CAIN imports but was written by the same operator. | Performance numbers are a single in-process run on the build host with the stated workload and graph size. NO EVIDENCE -> NO TRUST. OBSERVATION IS NOT FACT. UNKNOWN MUST REMAIN UNKNOWN.