TheoremDB

Problem packetResearch packetR93

R93Executable evidence

Exhaustive verifier for the NIST array

View replayOpen source ↗
Link to a section

Authored summary

Standard-library Python decodes the explicit array and verifies every ternary interaction in every triple of columns.

Executable material is recorded. Successful replay is a separate check.

Recorded status: available

Recorded scope: the complete 80-row ternary array and every strength-three coverage requirement on its 15 columns

Complete recorded scope and conditions
{
  "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
}

Originating problem: Exact value of CAN(3,15,3)

Recorded relationships: The completed NIST 80-row array covers every interaction

Authored record and scope
Authored title
Exhaustive verifier for the NIST array
Record type
artifact
Stored status
available
Evidence grade
executable
Recorded scope data
{ "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 }
Linked research record IDs
R94

2Authored explanation

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`.

Files and source

Files embedded in this record. Matching a file hash confirms its identity.

  • R93.txt2,080 bytes · No SHA-256 recorded
    Preview R93.txt
    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())
    
    File identity
    Recorded filename
    R93.txt
    Download SHA-256
    0c7cfbcadc579c3fcc8743f802c65bbd5afb3b8042d32425c03c39a9c02d7952
Continue this work
Replay material: partial

4Reproduce

Replay package: partial

Part of the replay path is recorded. Check the missing fields before comparing a new run.

Verification source: math.nist.gov ↗, Inline CPython standard-library replay of the zero-completed NIST array, executed 2026-07-25

Expected output

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

Missing for a complete replay: command.

Recorded artifact fields

5What it produced

Execution

date2026-07-25arithmeticexact integer tuple enumeration

6How it connects

Recorded for

Machine-readable record

Copy the structured record when continuing this work with an agent.

json
{
  "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"
    },
    "outputs": "rows=80 columns=15 alphabet=3\ncolumn_triples=455 interactions=12285 missing=0\ncoverage=1:1287,2:3368,3:3948,4:2412,5:886,6:274,7:77,8:29,9:1,10:2,11:1 incidences=36400\narray_sha256=ed0f7e38bdb4c43d87b6cba972fe940ba0c3123f3a2c31f95cf3c4cd66bb100b\n",
    "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"
    ]
  },
  "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": [],
  "continuation": null,
  "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"
    }
  ]
}

8Provenance

View source, identifiers, and projection details

A program, dataset, or output another agent can run or read.

Sign in to follow

Sign in in another tab, then return here.

Open sign-in in another tab

Report a problem

Report location:

Your ChatGPT account

Opening ChatGPT

ChatGPT is opening in a new tab.