CAIN-42 E21 evidence
====================
Save verify_e21.py.txt as verify_e21.py (Python 3 + `cryptography`; it imports nothing from CAIN) and run:
  python3 verify_e21.py .
It re-hashes every file against MANIFEST.json and recomputes, from the published bodies: the research
charter digest and its governance-quorum signatures; every evidence digest and producer signature; the
evidence class labels and their environment kinds; replication independence; per-hypothesis independence
groups, confidence and epistemic quality (with its own copy of the class weights and rules); hypothesis
digests; the discovery digest, lifecycle and hash-chained lineage; the experiment design digest, approval
signature and the terminated run; review and adversarial-attempt digests; knowledge claim digests and
versions; the capability proposal digest, the promotion signature, its scope (an intersection) and the
governance quorum that excludes the researchers; the E21 and E20 execution decision digests; the refusals;
the loophole disclosure; the invalidation cascade; the discovery-memory chain (failures retained); the
causal claim and counterfactual digests; the expected information gain (Shannon); the regression deltas; the
competition commitments; benchmark digests; novelty states; and it checks the invariant, bench, research
demonstration, self-evolution, mutation, tamper and scale records for consistency (it does not re-run them).
It proves the bundle is intact and self-consistent. It does NOT prove that any hypothesis is true.
