PHASE 2 — SOURCE HASHES
Captured: 2026-08-06
Measured in the pinned detached worktree /root/audits/pinned
at commit 94bc0feb6a9ff12c7d31d6de640a725c9d43d2b6

This file pins BOTH the audited theorem file AND the verification contract —
the machinery that defines how the theorem file is supposed to be checked.
Without the latter, a later change to the axiom whitelist, the Mathlib pin,
or the Comparator configuration would leave no trace in this record while
ConnesRigidity.lean's own hash still matched perfectly.

================================================================
AUDITED TARGET
================================================================
File       : ConnesRigidity.lean
git blob   : 81cf03e3f7ccdc66815cc00c9969bcfd2341c8d6
SHA-256    : 31f6c419f341ee6aa5b03bc15800a9d8ee2c654c344aab90bdef0639353ccc91
bytes      : 1449151
lines      : 37374  (wc -l; file is newline-terminated)
CR bytes   : 0

================================================================
VERIFICATION CONTRACT
================================================================
File       : lean-toolchain
git blob   : 94b9f495baff80fd9cb44aad8f4762cb3b2066fe
SHA-256    : 2773c517aa90b66ea8a2c52bddddf84393157797f8341be0df45294fff7fd32e
bytes      : 25
contents   : leanprover/lean4:v4.32.0

File       : lakefile.toml
git blob   : f29d6b0307597932154b34b97e37fe07ec3356de
SHA-256    : 9d59a0912d88d2997584b4a2dfa3cb077e06b71f91823234778e2030a1b02902
bytes      : 1548

File       : lake-manifest.json
git blob   : 046e8de7f46832fbf092e3fb815efae01e4a2129
SHA-256    : d366c97598e820009831d12376d4e41004b1847ac6074ec79b15bf9e1ea09d46
bytes      : 4141

File       : formalization.yaml
git blob   : 63d31d019f0bcff6052191d3aac71d4191f34131
SHA-256    : 464eb3e11eb02d74eab5b5d87d0cbf8d28056ace00a85a5096850523e7e88ff5
bytes      : 5399

File       : ComparatorChallenges/E_ConnesRigidity.json
git blob   : f5d2964be6b1a154bc12b38a0f99f0960960a2d9
SHA-256    : ca2bdd2752cc9839a63d8d5217408c1ae934eb0c93dc241580a18bf16fd36f6c
bytes      : 434

================================================================
COMPARATOR CONFIGURATION — VERBATIM
================================================================
{
  "challenge_module": "ComparatorChallenges.E_ConnesRigidity",
  "solution_module": "ConnesRigidity",
  "theorem_names": [
    "ConnesRigidity.exists_nonisomorphic_propertyT_icc_groups_with_isomorphic_factors",
    "ConnesRigidity.exists_infinite_pairwise_nonisomorphic_propertyT_icc_groups_with_isomorphic_factors"
  ],
  "permitted_axioms": [
    "propext",
    "Quot.sound",
    "Classical.choice"
  ],
  "enable_nanoda": true
}

OBSERVATIONS (recorded, not yet verified by execution):

  1. BOTH theorem names from the divergence noted in Phase 2 appear here.
     The audit prompt's checkpoint name is one of two declared results, not
     a stale identifier.

  2. permitted_axioms is exactly {propext, Quot.sound, Classical.choice} —
     the three standard Lean axioms. This matches formalization.yaml's
     self-reported axiom set. Both remain VENDOR CLAIMS until Lean's own
     #print axioms and a Comparator run confirm them.

  3. "enable_nanoda": true — the independent nanoda kernel implementation is
     enabled in addition to the Lean kernel replay. This is relevant to the
     trust-basis question in RESULTS.md: it means path (b) does not rest on
     the Lean kernel implementation alone.

================================================================
SEPARATE ARTIFACT — NOT PART OF THE LEAN REPOSITORY
================================================================
File       : E:\PAPE\verify_sp4_gauge.py
Expected   : e3fd6380f3455fb849103322fc66b2d7c947f4f9249ed5b00fb437f5d7370459
Observed   : (recorded in Phase 8 / exact_arithmetic.log)

This harness tests the PREPRINT, not ConnesRigidity.lean. It is hashed and
reported separately and must not be conflated with the repository's contents.
