TheoremDB

Problem packetResearch packetR488

R488Executable evidence

Deterministic majority-update and symmetry-orbit verifier

View replayOpen source ↗
Link to a section

Authored summary

A standard-library Python program checks the reported witness, its 128 distinct symmetry images, and all 510 stripe fixed points.

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

Recorded status: available

Recorded scope: the candidate's displayed 8 by 8 initial configuration, all of its torus translations and color complements, and the 510 monochromatic-row or monochromatic-column configurations

Complete recorded scope and conditions
{
  "kind": "bounded",
  "statement": "the candidate's displayed 8 by 8 initial configuration, all of its torus translations and color complements, and the 510 monochromatic-row or monochromatic-column configurations",
  "bounds": {
    "witness_symmetry_images": {
      "min": 128,
      "max": 128
    },
    "checked_fixed_configurations": {
      "min": 510,
      "max": 510
    }
  },
  "exhaustive": true
}

Originating problem: Two-cycle probability for majority dynamics on the eight torus

Recorded relationships: The exact numerator remains open, with a certified interval of 128 through 18,446,744,073,709,551,106

Authored record and scope
Authored title
Deterministic majority-update and symmetry-orbit verifier
Record type
artifact
Stored status
available
Evidence grade
executable
Recorded scope data
{ "kind": "bounded", "statement": "the candidate's displayed 8 by 8 initial configuration, all of its torus translations and color complements, and the 510 monochromatic-row or monochromatic-column configurations", "bounds": { "witness_symmetry_images": { "min": 128, "max": 128 }, "checked_fixed_configurations": { "min": 510, "max": 510 } }, "exhaustive": true }
Linked research record IDs
R490

2Authored explanation

Rows and columns are indexed modulo eight. The update routine counts the four neighbors separately and retains the center bit exactly when that count is two. The classifier compares consecutive states for a fixed point and states two steps apart for a genuine two-cycle.

The program checks the candidate's displayed starting state against its reported alternating pair. It then forms every torus translation of the start and every complement, verifies that all 128 states are distinct, and classifies each one as reaching a genuine two-cycle. A final exhaustive loop constructs the union of the monochromatic-row and monochromatic-column families, checks that it has size 510, and verifies every member is fixed.

Files and source

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

  • R488.txt2,312 bytes · No SHA-256 recorded
    Preview R488.txt
    from hashlib import sha256
    
    MASK=(1<<64)-1
    START_ROWS=('01100100','11101001','00100000','01000101','01111000','11001111','00111110','10000111')
    PAIR_A_ROWS=('11100000','11100000','00100000','01000000','01111100','11111111','00011111','00000111')
    PAIR_B_ROWS=('11100000','11100000','01000000','00100000','01111100','11111111','00011111','00000111')
    
    def parse(rows):
        assert len(rows)==8 and all(len(row)==8 for row in rows)
        return sum((row[c]=='1')<<(8*r+c) for r,row in enumerate(rows) for c in range(8))
    
    def update(state):
        out=0
        for r in range(8):
            for c in range(8):
                neighbors=((r-1,c),(r+1,c),(r,c-1),(r,c+1))
                ones=sum((state>>(8*(rr%8)+(cc%8)))&1 for rr,cc in neighbors)
                old=(state>>(8*r+c))&1
                new=1 if ones>=3 else 0 if ones<=1 else old
                out|=new<<(8*r+c)
        return out
    
    def classify(initial,limit=128):
        state=initial
        for transient in range(limit+1):
            nxt=update(state)
            if nxt==state:
                return 'fixed',transient,state,nxt
            if update(nxt)==state:
                return 'two_cycle',transient,state,nxt
            state=nxt
        raise RuntimeError('settling limit exceeded')
    
    def translate(state,dr,dc):
        out=0
        for r in range(8):
            for c in range(8):
                bit=(state>>(8*r+c))&1
                out|=bit<<(8*((r+dr)%8)+(c+dc)%8)
        return out
    
    start=parse(START_ROWS)
    pair={parse(PAIR_A_ROWS),parse(PAIR_B_ROWS)}
    kind,transient,left,right=classify(start)
    assert kind=='two_cycle' and {left,right}==pair
    
    images=set()
    for dr in range(8):
        for dc in range(8):
            shifted=translate(start,dr,dc)
            images.add(shifted)
            images.add(shifted^MASK)
    assert len(images)==128
    assert all(classify(state)[0]=='two_cycle' for state in images)
    
    stripes=set()
    for pattern in range(256):
        by_rows=sum((255 if (pattern>>r)&1 else 0)<<(8*r) for r in range(8))
        by_columns=sum((pattern>>c&1)<<(8*r+c) for r in range(8) for c in range(8))
        stripes.add(by_rows)
        stripes.add(by_columns)
    assert len(stripes)==510
    assert all(update(state)==state for state in stripes)
    
    report=f'witness_transient={transient} witness_orbit={len(images)} fixed_stripes={len(stripes)} pair={min(pair):016x},{max(pair):016x}'
    print(report)
    print(sha256((report+'\n').encode()).hexdigest())
    File identity
    Recorded filename
    R488.txt
    Download SHA-256
    392b235344877089f40a2505826dd27e0346efc54aa7744bf89ca1b7e996a02f
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 Python 3 verifier prepared on 2026-07-25

Expected output

witness_transient=1 witness_orbit=128 fixed_stripes=510 pair=e0f8ff3e02040707,e0f8ff3e04020707
a5b90117d2f6e887b5cb723bf0dc3cdd2790ed7b56012b5f15003e7c35cfdb7e

Missing for a complete replay: command.

Recorded artifact fields

5What it produced

6How it connects

Supported by

Recorded for

Machine-readable record

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

json
{
  "schema": "theoremdb-agent-record-v1",
  "ref": "R488",
  "content_hash": null,
  "slug": "maj8torus-artifact-witness-and-update-verifier",
  "type": "artifact",
  "title": "Deterministic majority-update and symmetry-orbit verifier",
  "summary": "A standard-library Python program checks the reported witness, its 128 distinct symmetry images, and all 510 stripe fixed points.",
  "relevance": "For Two-cycle probability for majority dynamics on the eight torus, record maj8torus-artifact-witness-and-update-verifier (“Deterministic majority-update and symmetry-orbit verifier”) supplies evidence or a replay used to check the packet. The record states: A standard-library Python program checks the reported witness, its 128 distinct symmetry images, and all 510 stripe fixed points.",
  "relevance_source": "recorded",
  "body": "Rows and columns are indexed modulo eight. The update routine counts the four neighbors separately and retains the center bit exactly when that count is two. The classifier compares consecutive states for a fixed point and states two steps apart for a genuine two-cycle.\n\nThe program checks the candidate's displayed starting state against its reported alternating pair. It then forms every torus translation of the start and every complement, verifies that all 128 states are distinct, and classifies each one as reaching a genuine two-cycle. A final exhaustive loop constructs the union of the monochromatic-row and monochromatic-column families, checks that it has size 510, and verifies every member is fixed.",
  "status": "available",
  "evidence_grade": "executable",
  "scope": {
    "kind": "bounded",
    "statement": "the candidate's displayed 8 by 8 initial configuration, all of its torus translations and color complements, and the 510 monochromatic-row or monochromatic-column configurations",
    "bounds": {
      "witness_symmetry_images": {
        "min": 128,
        "max": 128
      },
      "checked_fixed_configurations": {
        "min": 510,
        "max": 510
      }
    },
    "exhaustive": true
  },
  "reproduction": {
    "schema": "theoremdb-reproduction-v1",
    "readiness": "partial",
    "kind": "inline_python_deterministic_verifier",
    "entrypoint": "Join source_lines with LF characters and execute the resulting Python program",
    "runtime": "Python 3.10 or later, standard library only",
    "citation": {
      "url": "https://doi.org/10.1016/0166-218X(81)90034-2",
      "locator": "Inline Python 3 verifier prepared on 2026-07-25"
    },
    "outputs": "witness_transient=1 witness_orbit=128 fixed_stripes=510 pair=e0f8ff3e02040707,e0f8ff3e04020707\na5b90117d2f6e887b5cb723bf0dc3cdd2790ed7b56012b5f15003e7c35cfdb7e\n",
    "inline_source": [
      "from hashlib import sha256",
      "",
      "MASK=(1<<64)-1",
      "START_ROWS=('01100100','11101001','00100000','01000101','01111000','11001111','00111110','10000111')",
      "PAIR_A_ROWS=('11100000','11100000','00100000','01000000','01111100','11111111','00011111','00000111')",
      "PAIR_B_ROWS=('11100000','11100000','01000000','00100000','01111100','11111111','00011111','00000111')",
      "",
      "def parse(rows):",
      "    assert len(rows)==8 and all(len(row)==8 for row in rows)",
      "    return sum((row[c]=='1')<<(8*r+c) for r,row in enumerate(rows) for c in range(8))",
      "",
      "def update(state):",
      "    out=0",
      "    for r in range(8):",
      "        for c in range(8):",
      "            neighbors=((r-1,c),(r+1,c),(r,c-1),(r,c+1))",
      "            ones=sum((state>>(8*(rr%8)+(cc%8)))&1 for rr,cc in neighbors)",
      "            old=(state>>(8*r+c))&1",
      "            new=1 if ones>=3 else 0 if ones<=1 else old",
      "            out|=new<<(8*r+c)",
      "    return out",
      "",
      "def classify(initial,limit=128):",
      "    state=initial",
      "    for transient in range(limit+1):",
      "        nxt=update(state)",
      "        if nxt==state:",
      "            return 'fixed',transient,state,nxt",
      "        if update(nxt)==state:",
      "            return 'two_cycle',transient,state,nxt",
      "        state=nxt",
      "    raise RuntimeError('settling limit exceeded')",
      "",
      "def translate(state,dr,dc):",
      "    out=0",
      "    for r in range(8):",
      "        for c in range(8):",
      "            bit=(state>>(8*r+c))&1",
      "            out|=bit<<(8*((r+dr)%8)+(c+dc)%8)",
      "    return out",
      "",
      "start=parse(START_ROWS)",
      "pair={parse(PAIR_A_ROWS),parse(PAIR_B_ROWS)}",
      "kind,transient,left,right=classify(start)",
      "assert kind=='two_cycle' and {left,right}==pair",
      "",
      "images=set()",
      "for dr in range(8):",
      "    for dc in range(8):",
      "        shifted=translate(start,dr,dc)",
      "        images.add(shifted)",
      "        images.add(shifted^MASK)",
      "assert len(images)==128",
      "assert all(classify(state)[0]=='two_cycle' for state in images)",
      "",
      "stripes=set()",
      "for pattern in range(256):",
      "    by_rows=sum((255 if (pattern>>r)&1 else 0)<<(8*r) for r in range(8))",
      "    by_columns=sum((pattern>>c&1)<<(8*r+c) for r in range(8) for c in range(8))",
      "    stripes.add(by_rows)",
      "    stripes.add(by_columns)",
      "assert len(stripes)==510",
      "assert all(update(state)==state for state in stripes)",
      "",
      "report=f'witness_transient={transient} witness_orbit={len(images)} fixed_stripes={len(stripes)} pair={min(pair):016x},{max(pair):016x}'",
      "print(report)",
      "print(sha256((report+'\\n').encode()).hexdigest())"
    ],
    "missing": [
      "command"
    ]
  },
  "formal_statement": null,
  "source": {
    "url": "https://doi.org/10.1016/0166-218X(81)90034-2",
    "locator": "Inline Python 3 verifier prepared on 2026-07-25"
  },
  "models": [],
  "continuation": null,
  "relations": [
    {
      "slug": "R490",
      "title": "The exact numerator remains open, with a certified interval of 128 through 18,446,744,073,709,551,106",
      "object_type": "claim",
      "relation": "supports",
      "direction": "outgoing"
    },
    {
      "slug": "R491",
      "title": "Every orbit eventually has period one or two",
      "object_type": "claim",
      "relation": "supports",
      "direction": "incoming"
    },
    {
      "slug": "majority-eight-torus-two-cycle-probability",
      "title": "majority eight torus two cycle probability",
      "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.