TheoremDB

Problem packetResearch packetR621

R621Executable evidence

Exact enumeration of the 11,811 by 2,667 cover matrix

View replayOpen source ↗
Link to a section

Authored summary

A standard-library program enumerates every binary line and plane, verifies all degrees and forced intersection counts, and hashes the ordered incidence rows.

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

Recorded status: available

Recorded scope: all 2-dimensional and 3-dimensional subspaces of F_2^7 and the complete line-plane incidence matrix

Complete recorded scope and conditions
{
  "kind": "bounded",
  "statement": "all 2-dimensional and 3-dimensional subspaces of F_2^7 and the complete line-plane incidence matrix",
  "bounds": {
    "nonzero_vectors": {
      "min": 127,
      "max": 127
    },
    "lines": {
      "min": 2667,
      "max": 2667
    },
    "planes": {
      "min": 11811,
      "max": 11811
    }
  },
  "exhaustive": true
}

Originating problem: A binary q-analog of the Fano plane

Recorded relationships: Every solution has 381 blocks and fixed local incidence counts

Other recorded relationships (1)
Authored record and scope
Authored title
Exact enumeration of the 11,811 by 2,667 cover matrix
Record type
artifact
Stored status
available
Evidence grade
executable
Recorded scope data
{ "kind": "bounded", "statement": "all 2-dimensional and 3-dimensional subspaces of F_2^7 and the complete line-plane incidence matrix", "bounds": { "nonzero_vectors": { "min": 127, "max": 127 }, "lines": { "min": 2667, "max": 2667 }, "planes": { "min": 11811, "max": 11811 } }, "exhaustive": true }
Linked research record IDs
R624 R626

2Authored explanation

Nonzero vectors are represented by the integers 1 through 127. A subspace is represented by a bit mask of its nonzero vectors. The program enumerates lines from independent pairs and planes from independent triples, then forms the seven line indices in every plane.

The resulting exact-cover matrix has 82,677 ones. Every line column has degree 31. The compact JSON list of the 11,811 ordered rows has SHA-256 digest `f80714bf2a15e8bae29e0a871d2330b7b201b0426e708b066853c304367c704b`. The program also replays the block, point, 5-space, hyperplane, and solid-intersection calculations. Its canonical report has digest `38f17c035e648a2dec9064ec2ed5558ecfe1b3cb9313ee56801dc8ea2fa43db9`.

Files and source

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

  • R621.txt3,182 bytes · No SHA-256 recorded
    Preview R621.txt
    from collections import Counter
    from hashlib import sha256
    from itertools import combinations
    from json import dumps
    from math import prod
    
    def qbinom(n, k, q=2):
        if k < 0 or k > n:
            return 0
        k = min(k, n-k)
        num = prod(q**(n-i)-1 for i in range(k))
        den = prod(q**(k-i)-1 for i in range(k))
        return num // den
    
    def vector_mask(vectors):
        return sum(1 << v for v in vectors)
    
    points = tuple(range(1, 128))
    lines = set()
    for a, b in combinations(points, 2):
        if a != b:
            lines.add(vector_mask((a, b, a ^ b)))
    lines = tuple(sorted(lines))
    line_index = {line: i for i, line in enumerate(lines)}
    
    planes = set()
    for a, b, c in combinations(points, 3):
        if c == (a ^ b):
            continue
        vectors = {a, b, c, a ^ b, a ^ c, b ^ c, a ^ b ^ c}
        if len(vectors) == 7:
            planes.add(vector_mask(vectors))
    planes = tuple(sorted(planes))
    
    matrix_rows = []
    degrees = Counter()
    for plane in planes:
        vectors = [v for v in points if plane >> v & 1]
        contained = sorted({line_index[vector_mask((a, b, a ^ b))]
                            for a, b in combinations(vectors, 2)})
        assert len(contained) == 7
        matrix_rows.append(contained)
        degrees.update(contained)
    
    assert [qbinom(7, k) for k in range(8)] == [1, 127, 2667, 11811, 11811, 2667, 127, 1]
    assert len(lines) == 2667 and len(planes) == 11811
    assert set(degrees.values()) == {31}
    assert sum(degrees.values()) == 82677
    blocks = qbinom(7, 2) // qbinom(3, 2)
    assert blocks == 381
    assert blocks * 7 == len(lines)
    per_point = blocks * qbinom(3, 1) // qbinom(7, 1)
    per_5space = blocks * qbinom(4, 2) // qbinom(7, 5)
    per_hyperplane = blocks * qbinom(4, 3) // qbinom(7, 6)
    assert (per_point, per_5space, per_hyperplane) == (21, 5, 45)
    intersection_types = {'solid_without_block': [136, 210, 35, 0],
                          'solid_with_block': [128, 224, 28, 1]}
    for vector in intersection_types.values():
        assert sum(vector) == blocks
        assert vector[1] + 3*vector[2] + 7*vector[3] == qbinom(4, 1) * per_point
        assert vector[2] + 7*vector[3] == qbinom(4, 2)
    solids_with_block = blocks * qbinom(4, 1)
    solids_without_block = qbinom(7, 4) - solids_with_block
    assert (solids_without_block, solids_with_block) == (6096, 5715)
    matrix_payload = dumps(matrix_rows, separators=(',', ':'))
    matrix_digest = sha256(matrix_payload.encode()).hexdigest()
    report = {
        'blocks_required': blocks,
        'exact_cover_columns': len(lines),
        'exact_cover_ones': sum(degrees.values()),
        'exact_cover_rows': len(planes),
        'gaussian_7': [qbinom(7, k) for k in range(8)],
        'intersection_types': intersection_types,
        'line_column_degree': min(degrees.values()),
        'matrix_rows_sha256': matrix_digest,
        'per_5space': per_5space,
        'per_hyperplane': per_hyperplane,
        'per_point': per_point,
        'solids_by_type': [solids_without_block, solids_with_block],
    }
    payload = dumps(report, sort_keys=True, separators=(',', ':'))
    digest = sha256(payload.encode()).hexdigest()
    assert matrix_digest == 'f80714bf2a15e8bae29e0a871d2330b7b201b0426e708b066853c304367c704b'
    assert digest == '38f17c035e648a2dec9064ec2ed5558ecfe1b3cb9313ee56801dc8ea2fa43db9'
    print(payload)
    print('sha256=' + digest)
    File identity
    Recorded filename
    R621.txt
    Download SHA-256
    64f7cf7984a2547d2ae6c4c0c2fe7014cc4dab57542cdc44fd7e5d35da05ea8e
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: doi.org ↗, Inline CPython standard-library computation executed by TheoremDB entry research on 2026-07-25

Expected output

{"blocks_required":381,"exact_cover_columns":2667,"exact_cover_ones":82677,"exact_cover_rows":11811,"gaussian_7":[1,127,2667,11811,11811,2667,127,1],"intersection_types":{"solid_with_block":[128,224,28,1],"solid_without_block":[136,210,35,0]},"line_column_degree":31,"matrix_rows_sha256":"f80714bf2a15e8bae29e0a871d2330b7b201b0426e708b066853c304367c704b","per_5space":5,"per_hyperplane":45,"per_point":21,"solids_by_type":[6096,5715]}
sha256=38f17c035e648a2dec9064ec2ed5558ecfe1b3cb9313ee56801dc8ea2fa43db9

Missing for a complete replay: command.

Recorded artifact fields

5What it produced

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": "R621",
  "content_hash": null,
  "slug": "qafp-artifact-incidence-replay",
  "type": "artifact",
  "title": "Exact enumeration of the 11,811 by 2,667 cover matrix",
  "summary": "A standard-library program enumerates every binary line and plane, verifies all degrees and forced intersection counts, and hashes the ordered incidence rows.",
  "relevance": "For A binary q-analog of the Fano plane, record qafp-artifact-incidence-replay (“Exact enumeration of the 11,811 by 2,667 cover matrix”) supplies evidence or a replay used to check the packet. The record states: A standard-library program enumerates every binary line and plane, verifies all degrees and forced intersection counts, and hashes the ordered incidence rows.",
  "relevance_source": "recorded",
  "body": "Nonzero vectors are represented by the integers 1 through 127. A subspace is represented by a bit mask of its nonzero vectors. The program enumerates lines from independent pairs and planes from independent triples, then forms the seven line indices in every plane.\n\nThe resulting exact-cover matrix has 82,677 ones. Every line column has degree 31. The compact JSON list of the 11,811 ordered rows has SHA-256 digest `f80714bf2a15e8bae29e0a871d2330b7b201b0426e708b066853c304367c704b`. The program also replays the block, point, 5-space, hyperplane, and solid-intersection calculations. Its canonical report has digest `38f17c035e648a2dec9064ec2ed5558ecfe1b3cb9313ee56801dc8ea2fa43db9`.",
  "status": "available",
  "evidence_grade": "executable",
  "scope": {
    "kind": "bounded",
    "statement": "all 2-dimensional and 3-dimensional subspaces of F_2^7 and the complete line-plane incidence matrix",
    "bounds": {
      "nonzero_vectors": {
        "min": 127,
        "max": 127
      },
      "lines": {
        "min": 2667,
        "max": 2667
      },
      "planes": {
        "min": 11811,
        "max": 11811
      }
    },
    "exhaustive": true
  },
  "reproduction": {
    "schema": "theoremdb-reproduction-v1",
    "readiness": "partial",
    "kind": "inline_python_exact_enumeration",
    "entrypoint": "join source_lines with newline and run with python3",
    "runtime": "CPython 3, standard library only",
    "citation": {
      "url": "https://doi.org/10.15495/EPub_UBT_00008787",
      "locator": "Inline CPython standard-library computation executed by TheoremDB entry research on 2026-07-25"
    },
    "outputs": "{\"blocks_required\":381,\"exact_cover_columns\":2667,\"exact_cover_ones\":82677,\"exact_cover_rows\":11811,\"gaussian_7\":[1,127,2667,11811,11811,2667,127,1],\"intersection_types\":{\"solid_with_block\":[128,224,28,1],\"solid_without_block\":[136,210,35,0]},\"line_column_degree\":31,\"matrix_rows_sha256\":\"f80714bf2a15e8bae29e0a871d2330b7b201b0426e708b066853c304367c704b\",\"per_5space\":5,\"per_hyperplane\":45,\"per_point\":21,\"solids_by_type\":[6096,5715]}\nsha256=38f17c035e648a2dec9064ec2ed5558ecfe1b3cb9313ee56801dc8ea2fa43db9\n",
    "inline_source": [
      "from collections import Counter",
      "from hashlib import sha256",
      "from itertools import combinations",
      "from json import dumps",
      "from math import prod",
      "",
      "def qbinom(n, k, q=2):",
      "    if k < 0 or k > n:",
      "        return 0",
      "    k = min(k, n-k)",
      "    num = prod(q**(n-i)-1 for i in range(k))",
      "    den = prod(q**(k-i)-1 for i in range(k))",
      "    return num // den",
      "",
      "def vector_mask(vectors):",
      "    return sum(1 << v for v in vectors)",
      "",
      "points = tuple(range(1, 128))",
      "lines = set()",
      "for a, b in combinations(points, 2):",
      "    if a != b:",
      "        lines.add(vector_mask((a, b, a ^ b)))",
      "lines = tuple(sorted(lines))",
      "line_index = {line: i for i, line in enumerate(lines)}",
      "",
      "planes = set()",
      "for a, b, c in combinations(points, 3):",
      "    if c == (a ^ b):",
      "        continue",
      "    vectors = {a, b, c, a ^ b, a ^ c, b ^ c, a ^ b ^ c}",
      "    if len(vectors) == 7:",
      "        planes.add(vector_mask(vectors))",
      "planes = tuple(sorted(planes))",
      "",
      "matrix_rows = []",
      "degrees = Counter()",
      "for plane in planes:",
      "    vectors = [v for v in points if plane >> v & 1]",
      "    contained = sorted({line_index[vector_mask((a, b, a ^ b))]",
      "                        for a, b in combinations(vectors, 2)})",
      "    assert len(contained) == 7",
      "    matrix_rows.append(contained)",
      "    degrees.update(contained)",
      "",
      "assert [qbinom(7, k) for k in range(8)] == [1, 127, 2667, 11811, 11811, 2667, 127, 1]",
      "assert len(lines) == 2667 and len(planes) == 11811",
      "assert set(degrees.values()) == {31}",
      "assert sum(degrees.values()) == 82677",
      "blocks = qbinom(7, 2) // qbinom(3, 2)",
      "assert blocks == 381",
      "assert blocks * 7 == len(lines)",
      "per_point = blocks * qbinom(3, 1) // qbinom(7, 1)",
      "per_5space = blocks * qbinom(4, 2) // qbinom(7, 5)",
      "per_hyperplane = blocks * qbinom(4, 3) // qbinom(7, 6)",
      "assert (per_point, per_5space, per_hyperplane) == (21, 5, 45)",
      "intersection_types = {'solid_without_block': [136, 210, 35, 0],",
      "                      'solid_with_block': [128, 224, 28, 1]}",
      "for vector in intersection_types.values():",
      "    assert sum(vector) == blocks",
      "    assert vector[1] + 3*vector[2] + 7*vector[3] == qbinom(4, 1) * per_point",
      "    assert vector[2] + 7*vector[3] == qbinom(4, 2)",
      "solids_with_block = blocks * qbinom(4, 1)",
      "solids_without_block = qbinom(7, 4) - solids_with_block",
      "assert (solids_without_block, solids_with_block) == (6096, 5715)",
      "matrix_payload = dumps(matrix_rows, separators=(',', ':'))",
      "matrix_digest = sha256(matrix_payload.encode()).hexdigest()",
      "report = {",
      "    'blocks_required': blocks,",
      "    'exact_cover_columns': len(lines),",
      "    'exact_cover_ones': sum(degrees.values()),",
      "    'exact_cover_rows': len(planes),",
      "    'gaussian_7': [qbinom(7, k) for k in range(8)],",
      "    'intersection_types': intersection_types,",
      "    'line_column_degree': min(degrees.values()),",
      "    'matrix_rows_sha256': matrix_digest,",
      "    'per_5space': per_5space,",
      "    'per_hyperplane': per_hyperplane,",
      "    'per_point': per_point,",
      "    'solids_by_type': [solids_without_block, solids_with_block],",
      "}",
      "payload = dumps(report, sort_keys=True, separators=(',', ':'))",
      "digest = sha256(payload.encode()).hexdigest()",
      "assert matrix_digest == 'f80714bf2a15e8bae29e0a871d2330b7b201b0426e708b066853c304367c704b'",
      "assert digest == '38f17c035e648a2dec9064ec2ed5558ecfe1b3cb9313ee56801dc8ea2fa43db9'",
      "print(payload)",
      "print('sha256=' + digest)"
    ],
    "missing": [
      "command"
    ]
  },
  "formal_statement": null,
  "source": {
    "url": "https://doi.org/10.15495/EPub_UBT_00008787",
    "locator": "Inline CPython standard-library computation executed by TheoremDB entry research on 2026-07-25"
  },
  "models": [],
  "relations": [
    {
      "slug": "R624",
      "title": "Every solution has 381 blocks and fixed local incidence counts",
      "object_type": "claim",
      "relation": "verifies",
      "direction": "outgoing"
    },
    {
      "slug": "R626",
      "title": "Any solution has at most one nonidentity automorphism and tightly fixed intersections",
      "object_type": "claim",
      "relation": "supports",
      "direction": "outgoing"
    },
    {
      "slug": "q-analog-fano-plane",
      "title": "q analog fano plane",
      "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.