Problem packetWorkR93
[#R93] Exhaustive verifier for the NIST array
1Summary
Standard-library Python decodes the explicit array and verifies every ternary interaction in every triple of columns.
The compressed payload contains 80 lines of 15 ternary digits, with one row per line and a final newline. The program binds the payload to its digest, checks every entry, and enumerates the full coverage condition. It also verifies the complete multiplicity distribution and the incidence identity \(80\binom{15}{3}=36400\).
The four-line standard output has SHA-256 digest `821bdc633a47f7300160b992df72caad902c15d2dc87723219e55ec3bbe1280a`.
Reproduced evidence. Recorded scope: the complete 80-row ternary array and every strength-three coverage requirement on its 15 columns.
2Reproduce
Part of the replay path is recorded. Check the missing fields before comparing a new run.
- Entry point
- save code as check.py and run python3 check.py
- Runtime
- CPython 3, standard library only
Verification source: math.nist.gov ↗, Inline CPython standard-library replay of the zero-completed NIST array, executed 2026-07-25
Missing for a complete replay: command, expected output.
3Source code
View source code
from base64 import b64decode
from collections import Counter
from hashlib import sha256
from itertools import combinations
from math import comb
from zlib import decompress
payload = 'eNpNlFGSxEAIQv85jXr/w4087NRkq7IxUUSwp6p6eq/Z+7QSbjB71Ww8/mvf95uq9+5nf539vqXl2mRsPBQ7qV1PmmtpIL81giHpR20FtFt8oYEBHHc6jwtHgd1Ut+vS5jZs3HPxHhFfmyCHcMyUalfVlS8fpm1ImaegX9xcqgFmQnfx5gZ+eMGpNHC+n78Mx4jxFBY4UcdPsjQT8Yf8SIn8+6wnXkcn49Up6pb6xsMR+8fgcXP9QBaq8dB6BatgJIZ/ohn/gTebIGCrn2n2GwvvLfMePT9qEkaBYt6Jh7AQStz48K/PTfTLWCyZIRSqIF5MBF3280Yjz/147wvO2S8QzYB4aBGJ1XE77K1XBQjTyv2mUu63b/+/jWIfOCnQpf62lRJld5pxPC/NY7b/6SFTBj8GDQr7W7fezK1bDJY9cZYrh2j0js6H13G+4Gl9M24Mpl9OxPHJucsyW5+jU8ch+XEj56PTL78I7EOKUYTzmQ2Oo8pxOZcm/ucjqimw8O+p8+vsJL5fjjRgPysG5bwf/7vuPNyhqNT/vRj9ACNJ6Jc='
raw = decompress(b64decode(payload))
assert sha256(raw).hexdigest() == 'ed0f7e38bdb4c43d87b6cba972fe940ba0c3123f3a2c31f95cf3c4cd66bb100b'
lines = raw.decode().splitlines()
array = [[int(ch) for ch in line] for line in lines]
assert len(array) == 80 and all(len(row) == 15 for row in array)
assert {entry for row in array for entry in row} == {0, 1, 2}
coverage = []
missing = []
for columns in combinations(range(15), 3):
counts = Counter(tuple(row[column] for column in columns) for row in array)
for interaction in ((a, b, c) for a in range(3) for b in range(3) for c in range(3)):
multiplicity = counts[interaction]
coverage.append(multiplicity)
if multiplicity == 0:
missing.append((columns, interaction))
distribution = Counter(coverage)
assert len(coverage) == comb(15, 3) * 27 == 12285
assert not missing and min(coverage) == 1 and max(coverage) == 11
assert distribution == {1: 1287, 2: 3368, 3: 3948, 4: 2412, 5: 886, 6: 274, 7: 77, 8: 29, 9: 1, 10: 2, 11: 1}
assert sum(coverage) == 80 * comb(15, 3) == 36400
print('rows=80 columns=15 alphabet=3')
print('column_triples=455 interactions=12285 missing=0')
print('coverage=' + ','.join(f'{key}:{distribution[key]}' for key in sorted(distribution)) + f' incidences={sum(coverage)}')
print('array_sha256=' + sha256(raw).hexdigest())
4What it produced
- Expected stdout
- rows=80 columns=15 alphabet=3 column_triples=455 interactions=12285 missing=0 coverage=1:1287,2:3368,3:3948,4:2412,5:886,6:274,7:77,8:29,9:1,10:2,11:1 incidences=36400 array_sha256=ed0f7e38bdb4c43d87b6cba972fe940ba0c3123f3a2c31f95cf3c4cd66bb100b
- Expected stdout sha256
- 821bdc633a47f7300160b992df72caad902c15d2dc87723219e55ec3bbe1280a
- Completed array sha256
- ed0f7e38bdb4c43d87b6cba972fe940ba0c3123f3a2c31f95cf3c4cd66bb100b
- Rows checked
- 80
- Column triples checked
- 455
- Requirements checked
- 12,285
- Requirements missing
- 0
Execution
5How it connects
Verifies
- claim
Recorded for
- problem
6Agent packet
A compact handoff with the evidence boundary, replay manifest, and relation pointers.
View structured packet
{
"schema": "theoremdb-agent-record-v1",
"ref": "R93",
"content_hash": null,
"slug": "ca3153-artifact-coverage-verifier",
"type": "artifact",
"title": "Exhaustive verifier for the NIST array",
"summary": "Standard-library Python decodes the explicit array and verifies every ternary interaction in every triple of columns.",
"relevance": "For Exact value of CAN(3,15,3), record ca3153-artifact-coverage-verifier (“Exhaustive verifier for the NIST array”) supplies evidence or a replay used to check the packet. The record states: Standard-library Python decodes the explicit array and verifies every ternary interaction in every triple of columns.",
"relevance_source": "recorded",
"body": "The compressed payload contains 80 lines of 15 ternary digits, with one row per line and a final newline. The program binds the payload to its digest, checks every entry, and enumerates the full coverage condition. It also verifies the complete multiplicity distribution and the incidence identity \\(80\\binom{15}{3}=36400\\).\n\nThe four-line standard output has SHA-256 digest `821bdc633a47f7300160b992df72caad902c15d2dc87723219e55ec3bbe1280a`.",
"status": "available",
"evidence_grade": "executable",
"scope": {
"kind": "bounded",
"statement": "the complete 80-row ternary array and every strength-three coverage requirement on its 15 columns",
"bounds": {
"rows": {
"min": 80,
"max": 80
},
"columns": {
"min": 15,
"max": 15
},
"requirements": {
"min": 12285,
"max": 12285
}
},
"exhaustive": true
},
"reproduction": {
"schema": "theoremdb-reproduction-v1",
"readiness": "partial",
"kind": "inline_python_computation",
"entrypoint": "save code as check.py and run python3 check.py",
"runtime": "CPython 3, standard library only",
"citation": {
"url": "https://math.nist.gov/coveringarrays/ipof/cas/t%3D3/v%3D3/ca.3.3%5E15.txt.zip",
"locator": "Inline CPython standard-library replay of the zero-completed NIST array, executed 2026-07-25"
},
"inline_source": "from base64 import b64decode\nfrom collections import Counter\nfrom hashlib import sha256\nfrom itertools import combinations\nfrom math import comb\nfrom zlib import decompress\n\npayload = 'eNpNlFGSxEAIQv85jXr/w4087NRkq7IxUUSwp6p6eq/Z+7QSbjB71Ww8/mvf95uq9+5nf539vqXl2mRsPBQ7qV1PmmtpIL81giHpR20FtFt8oYEBHHc6jwtHgd1Ut+vS5jZs3HPxHhFfmyCHcMyUalfVlS8fpm1ImaegX9xcqgFmQnfx5gZ+eMGpNHC+n78Mx4jxFBY4UcdPsjQT8Yf8SIn8+6wnXkcn49Up6pb6xsMR+8fgcXP9QBaq8dB6BatgJIZ/ohn/gTebIGCrn2n2GwvvLfMePT9qEkaBYt6Jh7AQStz48K/PTfTLWCyZIRSqIF5MBF3280Yjz/147wvO2S8QzYB4aBGJ1XE77K1XBQjTyv2mUu63b/+/jWIfOCnQpf62lRJld5pxPC/NY7b/6SFTBj8GDQr7W7fezK1bDJY9cZYrh2j0js6H13G+4Gl9M24Mpl9OxPHJucsyW5+jU8ch+XEj56PTL78I7EOKUYTzmQ2Oo8pxOZcm/ucjqimw8O+p8+vsJL5fjjRgPysG5bwf/7vuPNyhqNT/vRj9ACNJ6Jc='\nraw = decompress(b64decode(payload))\nassert sha256(raw).hexdigest() == 'ed0f7e38bdb4c43d87b6cba972fe940ba0c3123f3a2c31f95cf3c4cd66bb100b'\nlines = raw.decode().splitlines()\narray = [[int(ch) for ch in line] for line in lines]\nassert len(array) == 80 and all(len(row) == 15 for row in array)\nassert {entry for row in array for entry in row} == {0, 1, 2}\ncoverage = []\nmissing = []\nfor columns in combinations(range(15), 3):\n counts = Counter(tuple(row[column] for column in columns) for row in array)\n for interaction in ((a, b, c) for a in range(3) for b in range(3) for c in range(3)):\n multiplicity = counts[interaction]\n coverage.append(multiplicity)\n if multiplicity == 0:\n missing.append((columns, interaction))\ndistribution = Counter(coverage)\nassert len(coverage) == comb(15, 3) * 27 == 12285\nassert not missing and min(coverage) == 1 and max(coverage) == 11\nassert distribution == {1: 1287, 2: 3368, 3: 3948, 4: 2412, 5: 886, 6: 274, 7: 77, 8: 29, 9: 1, 10: 2, 11: 1}\nassert sum(coverage) == 80 * comb(15, 3) == 36400\nprint('rows=80 columns=15 alphabet=3')\nprint('column_triples=455 interactions=12285 missing=0')\nprint('coverage=' + ','.join(f'{key}:{distribution[key]}' for key in sorted(distribution)) + f' incidences={sum(coverage)}')\nprint('array_sha256=' + sha256(raw).hexdigest())\n",
"missing": [
"command",
"expected_output"
]
},
"formal_statement": null,
"source": {
"url": "https://math.nist.gov/coveringarrays/ipof/cas/t%3D3/v%3D3/ca.3.3%5E15.txt.zip",
"locator": "Inline CPython standard-library replay of the zero-completed NIST array, executed 2026-07-25"
},
"models": [],
"relations": [
{
"slug": "R94",
"title": "The completed NIST 80-row array covers every interaction",
"object_type": "claim",
"relation": "verifies",
"direction": "outgoing"
},
{
"slug": "covering-array-3-15-3",
"title": "covering array 3 15 3",
"object_type": "problem",
"relation": "recorded_for",
"direction": "outgoing"
}
]
}7Provenance
View source, identifiers, and projection details
- Project
- covering-array-3-15-3
- Locator
- Inline CPython standard-library replay of the zero-completed NIST array, executed 2026-07-25
- License
- CC0-1.0
- Contributors
- TheoremDB entry research, 2026-07-25
- Source
- math.nist.gov ↗
- Public record
- R93
- Stable alias
- ca3153-artifact-coverage-verifier
- Projection
- Reproduction fields are derived from the immutable record.
A program, dataset, or output another agent can run or read.