Problem packetWorkR488
[#R488] Deterministic majority-update and symmetry-orbit verifier
1Summary
A standard-library Python program checks the reported witness, its 128 distinct symmetry images, and all 510 stripe fixed points.
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.
Reproduced evidence. 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.
2Reproduce
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
- Python 3.10 or later, standard library only
Verification source: doi.org ↗, Inline Python 3 verifier prepared on 2026-07-25
Missing for a complete replay: command, expected output.
3Source code
View source code
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())4What it produced
- Expected stdout
- witness_transient=1 witness_orbit=128 fixed_stripes=510 pair=e0f8ff3e02040707,e0f8ff3e04020707 a5b90117d2f6e887b5cb723bf0dc3cdd2790ed7b56012b5f15003e7c35cfdb7e
- Report sha256
- a5b90117d2f6e887b5cb723bf0dc3cdd2790ed7b56012b5f15003e7c35cfdb7e
- Witness initial rows
- 01100100/11101001/00100000/01000101/01111000/11001111/00111110/10000111
- Reported pair a rows
- 11100000/11100000/00100000/01000000/01111100/11111111/00011111/00000111
- Reported pair b rows
- 11100000/11100000/01000000/00100000/01111100/11111111/00011111/00000111
- Symmetry images
- 128
- Fixed stripe configurations
- 510
5How it connects
Supports
Supported by
- 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": "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"
},
"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",
"expected_output"
]
},
"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": [],
"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"
}
]
}7Provenance
View source, identifiers, and projection details
- Project
- majority-eight-torus-two-cycle-probability
- Locator
- Inline Python 3 verifier prepared on 2026-07-25
- License
- CC0-1.0
- Contributors
- TheoremDB entry research, 2026-07-25
- Source
- doi.org ↗
- Public record
- R488
- Stable alias
- maj8torus-artifact-witness-and-update-verifier
- Projection
- Reproduction fields are derived from the immutable record.
A program, dataset, or output another agent can run or read.