Problem packetResearch packetR488
Deterministic majority-update and symmetry-orbit verifier
Link to a section
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
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
Supports
Supported by
- claim
Recorded for
- problem
Cite this record
Cite the original sources separately.
Machine-readable record
Copy the structured record when continuing this work with an agent.
{
"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.