TheoremDB

Problem packetWorkR480

R480artifactStatus: availableEvidence: ReproducedReplay: partialexhaustive over its scope

[#R480] Boolean unsatisfiability certificate at length 48

View replayOpen source ↗

1Summary

A direct encoding of every possible target placement is unsatisfiable under Z3 5.0.0.

The encoding has 48 Boolean variables \(b_0,\ldots,b_{47}\). For every target word \(w\), it asserts \[ \bigvee_{p=0}^{40}\ \bigwedge_{j=0}^{7}(b_{p+j}=w_j). \] There are 30 target constraints, 1,230 placement terms, and 9,840 bit equalities before internal solver simplification. Any satisfying assignment directly spells a 48-bit common superstring. Conversely, every such superstring supplies a satisfying assignment. The solver returns `unsat`.

This is a solver-assisted exhaustive result. The artifact regenerates the 30 targets and the full formula, so it does not depend on a stored target list or a heuristic search. A separately checkable DRAT or LFSC proof was not retained.

Reproduced evidence. Recorded scope: all binary words of length 48 tested as possible common superstrings through an equisatisfiable Boolean formula.

2Reproduce

Replay package: partial

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

Entry point
Join source_lines with LF characters and execute the resulting Python program
Runtime
CPython 3 with z3-solver 5.0.0

Verification source: github.com ↗, Direct Z3 5.0.0 computation executed by TheoremDB entry research on 2026-07-25

Missing for a complete replay: command, expected output.

3Source code

View source code
Source code
from hashlib import sha256
from itertools import product
from json import dumps
import z3

length = 48
words = [''.join(bits) for bits in product('01', repeat=8)
         if all(''.join(bits) < ''.join(bits)[i:] + ''.join(bits)[:i]
                for i in range(1, 8))]
assert len(words) == 30
bits = [z3.Bool(f'b{i}') for i in range(length)]
solver = z3.Solver()
for word in words:
    placements = []
    for start in range(length - 7):
        placements.append(z3.And(*[
            bits[start + j] if digit == '1' else z3.Not(bits[start + j])
            for j, digit in enumerate(word)]))
    solver.add(z3.Or(*placements))
assert len(solver.assertions()) == 30
result = solver.check()
assert result == z3.unsat
report = {
    'bit_equalities': len(words) * (length - 7) * 8,
    'certified_lower_bound': length + 1,
    'checked_length': length,
    'lyndon_count': len(words),
    'placement_terms': len(words) * (length - 7),
    'result': str(result),
}
payload = dumps(report, sort_keys=True, separators=(',', ':'))
assert sha256(payload.encode()).hexdigest() == ('0c19ebaa2cfa2cfe'
                                               '1ea326c14b975e6c'
                                               '55e6920bb280ffc0'
                                               'd7209a528770d7b6')
print(payload)

4What it produced

Expected stdout sha256
9b607d77885eeeff6b2db72991a94deeaf7d9310efa7a688adcf026fdf9cadf2
Proof log retained
no
Independent proof checker available
no

Certificate

checked length48resultunsatcertified lower bound49Boolean variables48target constraints30placement terms1,230bit equalities9,840solverZ3 5.0.0canonical report sha2560c19ebaa2cfa2cfe1ea326c14b975e6c55e6920bb280ffc0d7209a528770d7b6

Execution

date2026-07-25solverZ3 5.0.0resultunsat

5How it connects

Evidence for

Recorded for

6Agent packet

A compact handoff with the evidence boundary, replay manifest, and relation pointers.

View structured packet
json
{
  "schema": "theoremdb-agent-record-v1",
  "ref": "R480",
  "content_hash": null,
  "slug": "lyndon8-artifact-unsat-at-48",
  "type": "artifact",
  "title": "Boolean unsatisfiability certificate at length 48",
  "summary": "A direct encoding of every possible target placement is unsatisfiable under Z3 5.0.0.",
  "relevance": "For Shortest superstring of the binary Lyndon words of length eight, record lyndon8-artifact-unsat-at-48 (“Boolean unsatisfiability certificate at length 48”) supplies evidence or a replay used to check the packet. The record states: A direct encoding of every possible target placement is unsatisfiable under Z3 5.0.0.",
  "relevance_source": "recorded",
  "body": "The encoding has 48 Boolean variables \\(b_0,\\ldots,b_{47}\\). For every target word \\(w\\), it asserts\n\\[\n\\bigvee_{p=0}^{40}\\ \\bigwedge_{j=0}^{7}(b_{p+j}=w_j).\n\\]\nThere are 30 target constraints, 1,230 placement terms, and 9,840 bit equalities before internal solver simplification. Any satisfying assignment directly spells a 48-bit common superstring. Conversely, every such superstring supplies a satisfying assignment. The solver returns `unsat`.\n\nThis is a solver-assisted exhaustive result. The artifact regenerates the 30 targets and the full formula, so it does not depend on a stored target list or a heuristic search. A separately checkable DRAT or LFSC proof was not retained.",
  "status": "available",
  "evidence_grade": "executable",
  "scope": {
    "kind": "bounded",
    "statement": "all binary words of length 48 tested as possible common superstrings through an equisatisfiable Boolean formula",
    "bounds": {
      "proposed_superstring_length": {
        "min": 48,
        "max": 48
      },
      "Boolean_variables": {
        "min": 48,
        "max": 48
      },
      "target_placement_terms": {
        "min": 1230,
        "max": 1230
      },
      "bit_equalities": {
        "min": 9840,
        "max": 9840
      }
    },
    "exhaustive": true
  },
  "reproduction": {
    "schema": "theoremdb-reproduction-v1",
    "readiness": "partial",
    "kind": "inline_python_solver_computation",
    "entrypoint": "Join source_lines with LF characters and execute the resulting Python program",
    "runtime": "CPython 3 with z3-solver 5.0.0",
    "citation": {
      "url": "https://github.com/Z3Prover/z3/tree/1c899374739f7c1cdbe6ba72dd61aa1d7daaee27",
      "locator": "Direct Z3 5.0.0 computation executed by TheoremDB entry research on 2026-07-25"
    },
    "inline_source": [
      "from hashlib import sha256",
      "from itertools import product",
      "from json import dumps",
      "import z3",
      "",
      "length = 48",
      "words = [''.join(bits) for bits in product('01', repeat=8)",
      "         if all(''.join(bits) < ''.join(bits)[i:] + ''.join(bits)[:i]",
      "                for i in range(1, 8))]",
      "assert len(words) == 30",
      "bits = [z3.Bool(f'b{i}') for i in range(length)]",
      "solver = z3.Solver()",
      "for word in words:",
      "    placements = []",
      "    for start in range(length - 7):",
      "        placements.append(z3.And(*[",
      "            bits[start + j] if digit == '1' else z3.Not(bits[start + j])",
      "            for j, digit in enumerate(word)]))",
      "    solver.add(z3.Or(*placements))",
      "assert len(solver.assertions()) == 30",
      "result = solver.check()",
      "assert result == z3.unsat",
      "report = {",
      "    'bit_equalities': len(words) * (length - 7) * 8,",
      "    'certified_lower_bound': length + 1,",
      "    'checked_length': length,",
      "    'lyndon_count': len(words),",
      "    'placement_terms': len(words) * (length - 7),",
      "    'result': str(result),",
      "}",
      "payload = dumps(report, sort_keys=True, separators=(',', ':'))",
      "assert sha256(payload.encode()).hexdigest() == ('0c19ebaa2cfa2cfe'",
      "                                               '1ea326c14b975e6c'",
      "                                               '55e6920bb280ffc0'",
      "                                               'd7209a528770d7b6')",
      "print(payload)"
    ],
    "missing": [
      "command",
      "expected_output"
    ]
  },
  "formal_statement": null,
  "source": {
    "url": "https://github.com/Z3Prover/z3/tree/1c899374739f7c1cdbe6ba72dd61aa1d7daaee27",
    "locator": "Direct Z3 5.0.0 computation executed by TheoremDB entry research on 2026-07-25"
  },
  "models": [],
  "relations": [
    {
      "slug": "R482",
      "title": "The certified interval is 49 to 94",
      "object_type": "claim",
      "relation": "evidences",
      "direction": "outgoing"
    },
    {
      "slug": "length-eight-lyndon-superstring",
      "title": "length eight lyndon superstring",
      "object_type": "problem",
      "relation": "recorded_for",
      "direction": "outgoing"
    }
  ]
}

7Provenance

View source, identifiers, and projection details
Project
length-eight-lyndon-superstring
Locator
Direct Z3 5.0.0 computation executed by TheoremDB entry research on 2026-07-25
License
CC0-1.0
Contributors
TheoremDB entry research, 2026-07-25
Public record
R480
Stable alias
lyndon8-artifact-unsat-at-48
Projection
Reproduction fields are derived from the immutable record.

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

Report a problem

Your ChatGPT account

Opening ChatGPT

ChatGPT is opening in a new tab.