VERIFYING THE V3 COMPUTATIONAL SUPPLEMENT

Requirements: Python 3.8 or later, standard library only. No network access,
container, account, package installation or external service is required.

Expected extracted layout
  verify_v3.py
  frozen-v2/protocol/protocol-v2.json
  frozen-v2/data/cells-v7.json
  frozen-v2/data/rules-v7.json
  v3/data/cells-v3.json
  v3/data/rules-v3.json
  v3/data/accepted-corrections-v3.json
  v3/figures/missingness-v3.json          optional, checked when present
  SHA256SUMS                             optional, checked when present

The full supplement can contain additional frozen sources, figures and reports.
The layout above lists the inputs needed for this particular verifier.

From the extracted supplement directory, run:
  python3 verify_v3.py .

Alternatively pass the extracted directory as the first argument:
  python3 verify_v3.py /path/to/extracted/supplement

A successful run prints a JSON object with status "pass" and exits with code 0.
Any failed condition produces status "fail", an explanation and exit code 1.
By default, the verifier writes no files and never changes its inputs.
To save a report outside the checksummed distribution, add:
  --report /path/to/verification-report.json

Checks performed
1. A complete, unique 20-platform by 10-jurisdiction by 6-service grid: 1,200 cells.
2. Exact replay of 56 recorded content-field changes from the frozen V2 records:
   48 corrective field patches and 8 context-field additions, affecting 24 cells
   and 5 rules. Prior absence and prior values are distinguished.
3. Preserved original records and V2 record hashes; no unregistered content
   changes, no changed outer status, and no claim of current live verification.
   The per-record v3_audit envelope is separate audit metadata and is not counted
   among those 56 content-field changes.
4. Valid decision/context rule references, 155 rules, 649 cells with decision-rule
   links, service cohorts and conditional-outcome presence.
5. Status totals: 12 available, 273 unavailable, 187 restricted, 718 unknown,
   10 inaccessible and 0 conflicting; core compression quantities.
6. Hypothetical completion bounds: 37–592 repeated-label disagreements out of
   1,200 positions and 32–199 heterogeneous pairs out of 200. Every pair is checked
   through both exhaustive enumeration and an independent closed-form formula.
7. Missingness figure data, if included at the stated path, against the 1,200 rows.
8. Every entry of a recognised root checksum manifest, when one is present.

Hash manifests
Recognised root names are SHA256SUMS, SHA256SUMS.txt and sha256-manifest.json.
An alternate relative path can be supplied with --hash-manifest PATH.
Text manifests use the standard form:
  64_hexadecimal_sha256_characters  relative/path/to/file
JSON manifests map relative paths to SHA-256 strings, either directly or beneath
a top-level "files" object. Paths are relative to the supplement root. Absolute
paths, parent-directory traversal and paths resolving outside the root fail.
The manifest should omit its own checksum. If no manifest is present, the report
explicitly says "not_present"; computational checks still run.
Matching a supplied checksum establishes file agreement with that manifest,
not independent authenticity of the manifest or remote source documents.

Interpretation and limits
The completion exercise holds all recorded available, unavailable and restricted
labels fixed and allows each unknown/inaccessible position to take any of those
three labels independently. The bounds are sharp under this mathematical set of
assumptions. They are neither confidence intervals nor estimates of real access;
they need not cover reality when fixed labels are wrong or cross-cell legal
constraints are imposed. Restricted is not silently interpreted as available.

Passing this verifier establishes the specified structural, computational and
local-integrity properties. It does not establish that all underlying legal or
contractual interpretations are correct, that historical remote pages were fully
archived, or that a customer can actually use a service. There was no independent
human coding or live account validation. This verifier does not render documents
or rebuild figure images. The frozen V2 supplement includes its separate analysis
scripts; this verifier does not execute them automatically.
