REPRODUCIBLE ROW PROVENANCE

Run from the correction package directory, with Python 3.12:
    python3.12 -m venv /tmp/alphaswarm-provenance-env
    /tmp/alphaswarm-provenance-env/bin/python -m pip install -r prov/requirements.txt
    /tmp/alphaswarm-provenance-env/bin/python prov/build_provenance.py

After installation the reconstruction is offline. It writes only under prov/.
It does not modify the dataset, the builder, or the root row_provenance.csv.
The environment actually checked is recorded in provenance_evidence.json.
requirements.txt pins the complete numerical environment used for this check;
upstream pyproject.toml is archived separately because it does not pin versions.
The local prov/.venv/ is disposable development infrastructure and MUST NOT be
included in a submission archive.

Outputs
  row_provenance_reconstructed.csv: candidate 989-row mapping
  suzuki_membership_evidence.csv: all 576 per-arm suggestion-slot matches
  sulfonamide_sobol_seed9.csv: 96 inferred subset members in Sobol order
  sulfonamide_seed_scan.csv: overlap results for seeds 0 through 199
  provenance_evidence.json: source hashes, checks, counts, qualifiers, environment
  reconstruction.log: captured stdout from the reviewed execution

Raw inputs and permissions
source_manifest_provenance.json at the package root lists every source URL,
repository path, pinned commit, original Git blob hash, SHA256, byte count, and
role. All copied/downloaded sources were matched to Git tree entries for commit
641b25882e707b9e0c0a5550703879a39dd3afe8. Large CSV tables are stored as
deterministic gzip, with hashes for both the original bytes and gzip artifact.
repo/LICENSE is the authors' MIT license. The repo/ files are unmodified author
code/configuration. The reconstruction adapts their initialization call sequence
and executes the original normalization, scrambled Sobol, and nearest-unknown
function bodies; only runtime type annotations/decorators are stripped to avoid
installing unrelated Gaussian-process and application dependencies.

Only the two root data/pd_*_SURF.csv files define experimental reactions. The
sulfonamide virtual benchmark and Suzuki chemical space are descriptor inputs.
Their rows and any predicted outcomes are NEVER appended to the experimental
dataset. The virtual benchmark's outcome columns are excluded before reconstruction.

Method and interpretation
Suzuki: exact component-tuple joins against six published 96-row suggestion files
give all 404 published condition memberships. Available iteration 1/2 training
values agree with SURF at its three-decimal precision. The shared first 96
suggestions are independently regenerated in identical order from seed 9 using the
published configuration. Later optimization rounds are not reoptimized; their
published suggestion files provide direct membership evidence.

Sulfonamide: recover the 82x11x3x8 descriptor Cartesian space using explicit
rxn_ids and per-component descriptors. Every one of the 21,529 supplied benchmark
descriptor rows matches the reconstruction exactly. The 585 training rows match
the SURF tuple order and three-decimal outcomes. Seed9 initialization selects 96
measured conditions; the same sequence is obtained on the filtered benchmark
space. The best other seed among 0-199 selects 8; the other-seed mean is reported
from the actual scan. No benchmark predicted yields are used in these checks.

The batch distance implementation used for the seed sensitivity scan is checked
against the original sequential upstream nearest-unknown function for seed 9 in
both campaigns. The result is conditional on the published feature ordering,
normalization, Sobol engine, and the recorded dependency versions. This is a
minimal numerical initialization reproduction, not a claim that the full PSO
class or the complete GP optimization was executed.

Crucial limits
- Sulfonamide seed 9 and subset membership remain computational inference; the
  experimental sulfonamide seed and physical plate identifiers are not published.
  Candidate rows therefore use match_confidence=inferred_high, and explicitly
  qualify the iteration1/Sobol label. The other 489 rows stay unknown.
- Exact suggestion coverage cannot establish full physical plates, discarded raw
  measurements, physical reruns, or independent replicates.
- Iteration 3 per-arm training files are absent; those memberships come from
  published suggestions, with outcomes preserved from the published SURF only.
- Equality of published shared values supports reuse in the released data; it
  does not by itself establish the laboratory's physical execution history.

No files containing personal machine paths, credentials, or environment secrets
are needed to run this reconstruction.
