{
 "claims": [
  {
   "cases": 7,
   "claim": "INV-E4-01 a differential cannot grant authority: no fabric write path, no authority key (AST guard); reports carry grants_authority=false, epistemic=SIMULATED and the verifier rejects any that claim otherwise",
   "result": "PASS",
   "tests": [
    "test_api_differential_is_operator_only_tenant_scoped_and_changes_nothing",
    "test_differential_never_calls_fabric_write_paths_or_holds_the_authority_key",
    "test_report_tampering_is_detected[<lambda>-CLAIMS_AUTHORITY0]",
    "test_report_tampering_is_detected[<lambda>-CLAIMS_AUTHORITY1]",
    "test_report_tampering_is_detected[<lambda>-DIGEST0]",
    "test_report_tampering_is_detected[<lambda>-DIGEST1]",
    "test_report_tampering_is_detected[<lambda>-SIGNATURE]"
   ]
  },
  {
   "cases": 6,
   "claim": "INV-E4-02 admission before comparison: only clean-room-verified exports under a pinned key/root; tampered, wrongly-rooted, malformed and cross-tenant input is excluded or refused, never compared",
   "result": "PASS",
   "tests": [
    "test_corpus_admits_only_verified_decisions_and_counts_the_rest",
    "test_cross_tenant_export_is_refused",
    "test_malformed_exports_never_crash_admission",
    "test_tampered_export_is_excluded_not_compared",
    "test_unpinned_corpus_is_refused",
    "test_wrong_root_excludes_everything"
   ]
  },
  {
   "cases": 3,
   "claim": "INV-E4-03 DENY->ALLOW is reported as WIDENED / AUTHORITY-MATERIAL (policy, template and code-version candidates)",
   "result": "PASS",
   "tests": [
    "test_observe_mode_policy_widens_every_forecast_denial",
    "test_rolling_back_to_evolution1_code_would_reallow_forecast_denials",
    "test_widened_template_without_forecasting_turns_a_condition_denial_into_allow"
   ]
  },
  {
   "cases": 2,
   "claim": "INV-E4-04 ALLOW->DENY is reported as TIGHTENED / EXECUTION-MATERIAL; budget changes are flagged PATH_DEPENDENT",
   "result": "PASS",
   "tests": [
    "test_tightened_template_flags_the_uses_it_would_have_broken",
    "test_tiny_budget_tightens_allowed_uses_and_is_flagged_path_dependent"
   ]
  },
  {
   "cases": 3,
   "claim": "INV-E4-05 a replay without the evidence to widen does not widen (no recorded forecast; consumed state)",
   "result": "PASS",
   "tests": [
    "test_loosening_one_threshold_exposes_the_next_guard_not_an_allow",
    "test_more_uses_cannot_reopen_a_consumed_contract_in_replay",
    "test_widened_template_over_a_pre_forecast_denial_is_not_reported_as_allow"
   ]
  },
  {
   "cases": 1,
   "claim": "INV-E4-06 a crashing candidate is AUTHORITY-MATERIAL, never unchanged",
   "result": "PASS",
   "tests": [
    "test_a_crashing_candidate_is_authority_material_never_unchanged"
   ]
  },
  {
   "cases": 2,
   "claim": "INV-E4-07 deterministic: same corpus + candidate -> same report digest; identity candidate changes nothing",
   "result": "PASS",
   "tests": [
    "test_head_version_matches_the_runtime",
    "test_same_policy_changes_nothing_and_report_is_deterministic"
   ]
  },
  {
   "cases": 4,
   "claim": "INV-E4-08 material changes stay unreviewed until a registered, non-differential reviewer ACCEPTs; REJECT, self-review, foreign reviewer, other-report and edited-verdict reviews do not count; tampered reports never clear",
   "result": "PASS",
   "tests": [
    "test_a_reject_keeps_the_change_unreviewed",
    "test_a_tampered_report_can_never_be_marked_reviewed",
    "test_material_changes_stay_unreviewed_until_a_registered_reviewer_accepts",
    "test_reviews_that_do_not_count"
   ]
  },
  {
   "cases": 3,
   "claim": "INV-E4-09 replay never touches recorded evidence or the running fabric (sandbox re-signing; isolated git-ref modules; production decide() unchanged)",
   "result": "PASS",
   "tests": [
    "test_load_version_is_isolated_from_the_running_fabric",
    "test_production_decide_has_no_differential_bypass",
    "test_template_replay_never_touches_the_recorded_evidence"
   ]
  },
  {
   "cases": 7,
   "claim": "INV-E4-10 report integrity: digest, signature under the pinned differential key, counts = changes",
   "result": "PASS",
   "tests": [
    "test_counts_must_agree_with_changes",
    "test_report_resigned_by_a_foreign_key_fails_against_the_pinned_key",
    "test_report_tampering_is_detected[<lambda>-CLAIMS_AUTHORITY0]",
    "test_report_tampering_is_detected[<lambda>-CLAIMS_AUTHORITY1]",
    "test_report_tampering_is_detected[<lambda>-DIGEST0]",
    "test_report_tampering_is_detected[<lambda>-DIGEST1]",
    "test_report_tampering_is_detected[<lambda>-SIGNATURE]"
   ]
  }
 ],
 "date": "2026-10-04",
 "live": {
  "identical_report_digest_across_targets": true,
  "targets": 5
 },
 "not_claimed": [
  "a causal graph / causal inference of any kind",
  "that 'no changes on the corpus' means equivalence (coverage is the corpus)",
  "path-dependent effects",
  "250 invariants or 2,000 adversarial scenarios",
  "independent third-party verification",
  "cross-host replication"
 ],
 "overwrites": "nothing",
 "previous": [
  "evolution-1-frontier-contract-fabric-2026-10-04",
  "evolution-2-frontier-contract-enforcement-2026-10-04",
  "evolution-3-predictive-governance-2026-10-04"
 ],
 "schema": "cain.claims.evolution4.v1",
 "scope": "governance differential / decision regression on the contract fabric (RIG, OpenShell, MemVault, SCITT)",
 "status": "TESTED + DEPLOYED (blue+green, 3 domains)",
 "tests": "1523/1523 passed"
}
