# Lance index lifecycle

Five native versions retain original manifests, index files, data files and deletion files.
The application IDs and two-dimensional vectors are synthetic. NumPy checks twenty full
top-three answers; all logical rows and native physical addresses are checked against
original fragment data. Stable row IDs are disabled. SDK manifests and index statistics
are native captures, not an independent generic table decoder.

Save reproduce.py and proof.json beside the extracted originals.zip, then run:

```sh
uv run reproduce.py --verify --output .
```

The verifier reopens every preserved version and also builds a fresh native lifecycle.
Original artifacts remain hash-checked; fresh UUIDs, timestamps and encoded index bytes
may differ. Compaction preserves separate indexed and unindexed replacement fragments.
The query probes all partitions in this small IVF_FLAT fixture; it is not an ANN speed
benchmark or a general exactness claim. No files have been vacuumed.
