[ { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/assertion", "@graph": [ { "@id": "https://w3id.org/delphi/resource/assessment/wolfram2002-ch09-02--claim-test", "http://purl.org/dc/terms/description": [ { "@value": "analysis.py compiles revca.c and runs the exhaustive depth-first enumeration of rule tables for (k,r) = (2,1), (2,2) and (3,1). Table entries are assigned in order of the period of their neighbourhood word; after each assignment the pair graph of the de Bruijn graph is built from definite edges (both labels assigned and equal) and the branch is cut if an off-diagonal cycle or a diagonal-to-diagonal path through off-diagonal nodes exists (both are sound: they witness two distinct configurations with the same image); the balance condition (each colour exactly k^(2r) times) also prunes. At a leaf the same test is exact. The 1800 rules found for k = 3 are then checked in Python with Wolfram's ReversibleQ (distinct successors of all cyclic configurations of length <= 9), 10000 random balanced k = 3 tables not in the list are checked to fail it, all 256 elementary rules are classified by both methods, and the k = 3 rules are grouped into symmetry families under colour permutations and reflection." } ], "@type": [ "https://w3id.org/delphi/ontology/Assessment" ], "http://www.w3.org/2000/01/rdf-schema#comment": [ { "@value": "Measured: 1800 reversible rules among the 3^27 three-colour nearest-neighbour cellular automata (claimed 1800) (n = 7625597484987, exact (exhaustive enumeration)). Interpretation: 'Reversible' is taken as injectivity of the global map on the full shift (bi-infinite configurations), the standard notion and the one Wolfram's note tests through periodic configurations. Rule numbering is Wolfram's (table entry for neighbourhood (l,c,r) at digit position l*k^2 + c*k + r of the base-k rule number). The count is of raw rule tables, not of symmetry classes (the note gives 172 families for k = 3). The enumeration is exact, so there is no sampling uncertainty; the only risks are implementation errors, which the k = 2 (r = 1 and r = 2) checks and the independent periodic-configuration test guard against. Note: the pruning search is written in C (compiled with gcc from analysis.py) because a Python search over the pruned tree would be too slow; this is a deviation from 'python3 only' tooling and is recorded." } ], "http://www.w3.org/2000/01/rdf-schema#label": [ { "@value": "Claim test of wolfram2002-ch09-02: supports, confidence 0.97" } ], "http://www.w3.org/2000/01/rdf-schema#seeAlso": [ { "@id": "https://github.com/fractastical/delphisci/blob/bf2af6ee0a84e23ffa6414ad7a0a50a8c276506e/test-data/claim-tests/wolfram-nks/wolfram2002-ch09-02/result.json" } ], "http://www.w3.org/ns/prov#wasAttributedTo": [ { "@id": "https://w3id.org/delphi/resource/agent/delphisci-claim-tester-claude-fable-5-1-cursor-cloud-agent" } ], "https://w3id.org/delphi/ontology/admissibleDatasets": [ { "@value": "Planned datasets: reversible-ca-enumeration-generator, nks-note-numbers-of-reversible-rules" } ], "https://w3id.org/delphi/ontology/assessmentType": [ { "@value": "claim-test/0.1.0" } ], "https://w3id.org/delphi/ontology/dataKind": [ { "@value": "computational" } ], "https://w3id.org/delphi/ontology/disconfirmingObservation": [ { "@value": "Pre-registered. 'Refutes' if the exhaustive enumeration completes and gives a count other than 6 for k = 2, r = 1 or other than 1800 for k = 3, r = 1 (with the k = 2, r = 2 check giving 62, so the method is validated). If the k = 3 enumeration cannot be completed within the compute budget (about 1 hour), the verdict is 'mixed' or 'inconclusive' (reason: other) with the k = 2 result and a lower bound on the k = 3 count reported." } ], "https://w3id.org/delphi/ontology/evidenceAgainst": [ { "@value": "Correctness of the pair-graph criterion is checked three ways: it reproduces the known 6 elementary rules and Wolfram's 62 for k = 2, r = 2; all 256 elementary rules are classified identically by the independent periodic-configuration test; and all 1800 three-colour rules found pass that test while 10000 random balanced tables outside the list fail it. The count of 172 symmetry families also matches Wolfram's note." }, { "@value": "Reversibility is tested on bi-infinite configurations (the full shift). On finite cyclic lattices of a fixed size a rule can be a bijection without being reversible in this sense; the claim and Wolfram's own test use the infinite-line notion." }, { "@value": "The search is written in C (revca.c) and analysis.py compiles it with gcc; this is a tooling deviation from the python-only guideline, recorded in the pre-registration. The search visits 25.7 million nodes for k = 3 (about 2 minutes)." }, { "@value": "The total 7,625,597,484,987 = 3^27 is a count of rule tables, confirmed arithmetically; the enumeration does not visit them individually but prunes soundly, so the count 1800 is exact." } ], "https://w3id.org/delphi/ontology/expectedObservation": [ { "@value": "Pre-registered. An exhaustive enumeration with an exact injectivity test (pair graph of the de Bruijn graph: a rule is injective iff the pair graph has no cycle through an off-diagonal node and no diagonal-to-diagonal path through off-diagonal nodes; used both as a sound pruning condition during depth-first assignment of the rule table and as the exact test at the leaves) yields exactly 6 reversible rules for k = 2, r = 1 and exactly 1800 for k = 3, r = 1. As a check of the method, the same program must give 62 for k = 2, r = 2 (NKS note 'Numbers of reversible rules'), and the 6 elementary rules must be {15, 51, 85, 170, 204, 240}. Also, every rule found must pass Wolfram's finite test (distinct successors for all periodic configurations of period <= 9, as his note says suffices for k = 3) and every rule not found that is sampled (10000 random balanced k = 3 rules) must fail it. 'Supports' requires the counts 6 and 1800 and the consistency checks." } ], "https://w3id.org/delphi/ontology/failCriterion": [ { "@value": "Pre-registered. 'Refutes' if the exhaustive enumeration completes and gives a count other than 6 for k = 2, r = 1 or other than 1800 for k = 3, r = 1 (with the k = 2, r = 2 check giving 62, so the method is validated). If the k = 3 enumeration cannot be completed within the compute budget (about 1 hour), the verdict is 'mixed' or 'inconclusive' (reason: other) with the k = 2 result and a lower bound on the k = 3 count reported." } ], "https://w3id.org/delphi/ontology/hasConfidence": [ { "@value": "0.97", "@type": "http://www.w3.org/2001/XMLSchema#double" } ], "https://w3id.org/delphi/ontology/hasEvidence": [ { "@id": "https://w3id.org/delphi/resource/evidence/wolfram2002-ch09-02--claim-test--dataset-1" }, { "@id": "https://w3id.org/delphi/resource/evidence/wolfram2002-ch09-02--claim-test--dataset-2" } ], "https://w3id.org/delphi/ontology/hasVerdict": [ { "@value": "supports" } ], "https://w3id.org/delphi/ontology/hypothesis": [ { "@value": "Among one-dimensional nearest-neighbour cellular automata, exactly 6 of the 256 two-colour rules and exactly 1800 of the 3^27 = 7,625,597,484,987 three-colour rules are reversible, where reversible means the global map on bi-infinite configurations is injective (equivalently bijective; equivalently, by Wolfram's note, all periodic configurations have distinct successors)." } ], "https://w3id.org/delphi/ontology/inferenceMethod": [ { "@value": "analysis.py compiles revca.c and runs the exhaustive depth-first enumeration of rule tables for (k,r) = (2,1), (2,2) and (3,1). Table entries are assigned in order of the period of their neighbourhood word; after each assignment the pair graph of the de Bruijn graph is built from definite edges (both labels assigned and equal) and the branch is cut if an off-diagonal cycle or a diagonal-to-diagonal path through off-diagonal nodes exists (both are sound: they witness two distinct configurations with the same image); the balance condition (each colour exactly k^(2r) times) also prunes. At a leaf the same test is exact. The 1800 rules found for k = 3 are then checked in Python with Wolfram's ReversibleQ (distinct successors of all cyclic configurations of length <= 9), 10000 random balanced k = 3 tables not in the list are checked to fail it, all 256 elementary rules are classified by both methods, and the k = 3 rules are grouped into symmetry families under colour permutations and reflection." } ], "https://w3id.org/delphi/ontology/passCriterion": [ { "@value": "Pre-registered. An exhaustive enumeration with an exact injectivity test (pair graph of the de Bruijn graph: a rule is injective iff the pair graph has no cycle through an off-diagonal node and no diagonal-to-diagonal path through off-diagonal nodes; used both as a sound pruning condition during depth-first assignment of the rule table and as the exact test at the leaves) yields exactly 6 reversible rules for k = 2, r = 1 and exactly 1800 for k = 3, r = 1. As a check of the method, the same program must give 62 for k = 2, r = 2 (NKS note 'Numbers of reversible rules'), and the 6 elementary rules must be {15, 51, 85, 170, 204, 240}. Also, every rule found must pass Wolfram's finite test (distinct successors for all periodic configurations of period <= 9, as his note says suffices for k = 3) and every rule not found that is sampled (10000 random balanced k = 3 rules) must fail it. 'Supports' requires the counts 6 and 1800 and the consistency checks." } ], "https://w3id.org/delphi/ontology/preregistered": [ { "@value": "false", "@type": "http://www.w3.org/2001/XMLSchema#boolean" } ] }, { "@id": "https://w3id.org/delphi/resource/evidence/wolfram2002-ch09-02--claim-test--dataset-1", "http://purl.org/dc/terms/description": [ { "@value": "the enumerated program family and the list of reversible rules found (derived/)" } ], "http://purl.org/dc/terms/license": [ { "@value": "CC0 (generated data)" } ], "@type": [ "https://w3id.org/delphi/ontology/EvidenceItem" ], "http://www.w3.org/2000/01/rdf-schema#label": [ { "@value": "Dataset: Exhaustive enumeration of nearest-neighbour cellular automaton rules (generated by analysis.py + revca.c)" } ] }, { "@id": "https://w3id.org/delphi/resource/evidence/wolfram2002-ch09-02--claim-test--dataset-2", "http://purl.org/dc/terms/description": [ { "@value": "the reversibility test Wolfram used (ReversibleQ) and the stated counts 6, 62, 1800 used as the method check" } ], "http://purl.org/dc/terms/license": [ { "@value": "copyright Stephen Wolfram LLC" } ], "@type": [ "https://w3id.org/delphi/ontology/EvidenceItem" ], "http://www.w3.org/2000/01/rdf-schema#label": [ { "@value": "Dataset: NKS notes 'Numbers of reversible rules' and 'Testing for reversibility' (p. 1017)" } ], "http://www.w3.org/ns/prov#atLocation": [ { "@id": "https://www.wolframscience.com/nks/notes-9-2--numbers-of-reversible-cellular-automaton-rules/" }, { "@id": "https://www.wolframscience.com/nks/notes-9-2--testing-for-reversibility-in-cellular-automata/" } ], "http://www.w3.org/ns/prov#wasDerivedFrom": [ { "@id": "https://www.wolframscience.com/nks/notes-9-2--numbers-of-reversible-cellular-automaton-rules/" } ], "https://w3id.org/delphi/ontology/hasChecksum": [ { "@value": "sha256:1af16edd18347077fb2a20db466fae3b110cf488c192824a2312ad915e2a0380" }, { "@value": "sha256:82e0511d9ad2fe0eef732823adc0b07abb129a9f0fd8d458147fd557d657d03b" } ] }, { "@id": "https://w3id.org/delphi/resource/claim/wolfram2002-ch09-02", "https://w3id.org/delphi/ontology/hasAssessment": [ { "@id": "https://w3id.org/delphi/resource/assessment/wolfram2002-ch09-02--claim-test" } ] } ] }, { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/provenance", "@graph": [ { "@id": "https://w3id.org/delphi/resource/agent/delphisci-claim-tester-claude-fable-5-1-cursor-cloud-agent", "@type": [ "http://www.w3.org/ns/prov#SoftwareAgent" ], "http://www.w3.org/2000/01/rdf-schema#label": [ { "@value": "delphisci claim tester (Claude Fable 5.1 (Cursor cloud agent); cursor/claim-tests-wolfram-nks-f0e1)" } ], "http://www.w3.org/ns/prov#actedOnBehalfOf": [ { "@id": "https://orcid.org/0009-0007-4948-9192" } ], "https://w3id.org/delphi/ontology/usesModel": [ { "@id": "https://w3id.org/delphi/resource/model/claude-fable-5-1-cursor-cloud-agent" } ] }, { "@id": "https://w3id.org/delphi/resource/model/claude-fable-5-1-cursor-cloud-agent", "http://purl.org/dc/terms/identifier": [ { "@value": "Claude Fable 5.1 (Cursor cloud agent)" } ], "@type": [ "https://w3id.org/delphi/ontology/LanguageModel" ] }, { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/assertion", "http://www.w3.org/ns/prov#wasAttributedTo": [ { "@id": "https://w3id.org/delphi/resource/agent/delphisci-claim-tester-claude-fable-5-1-cursor-cloud-agent" } ], "http://www.w3.org/ns/prov#wasDerivedFrom": [ { "@id": "https://github.com/fractastical/delphisci/blob/bf2af6ee0a84e23ffa6414ad7a0a50a8c276506e/test-data/claim-tests/wolfram-nks/wolfram2002-ch09-02/result.json" } ], "http://www.w3.org/ns/prov#wasGeneratedBy": [ { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/test" } ] }, { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/test", "@type": [ "http://www.w3.org/ns/prov#Activity" ], "http://www.w3.org/ns/prov#qualifiedAssociation": [ { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/plan" } ], "http://www.w3.org/ns/prov#wasAssociatedWith": [ { "@id": "https://w3id.org/delphi/resource/agent/delphisci-claim-tester-claude-fable-5-1-cursor-cloud-agent" } ] }, { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/plan", "http://www.w3.org/ns/prov#hadPlan": [ { "@id": "https://github.com/fractastical/delphisci/blob/bf2af6ee0a84e23ffa6414ad7a0a50a8c276506e/test-data/claim-tests/README.md" } ] } ] }, { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/pubinfo", "@graph": [ { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ", "http://purl.org/dc/terms/created": [ { "@value": "2026-11-08T16:24:31.932Z", "@type": "http://www.w3.org/2001/XMLSchema#dateTime" } ], "http://purl.org/dc/terms/creator": [ { "@id": "https://orcid.org/0009-0007-4948-9192" } ], "http://purl.org/dc/terms/license": [ { "@id": "https://creativecommons.org/licenses/by/4.0/" } ], "http://purl.org/nanopub/x/hasNanopubType": [ { "@id": "https://w3id.org/delphi/ontology/Assessment" } ], "http://purl.org/nanopub/x/introduces": [ { "@id": "https://w3id.org/delphi/resource/assessment/wolfram2002-ch09-02--claim-test" } ], "http://www.w3.org/2000/01/rdf-schema#label": [ { "@value": "Claim test of wolfram2002-ch09-02: supports, confidence 0.97" } ], "https://w3id.org/delphi/ontology/domain": [ { "@id": "https://w3id.org/delphi/resource/domain/wolfram-nks-2002" } ] }, { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/sig", "http://purl.org/nanopub/x/hasAlgorithm": [ { "@value": "RSA" } ], "http://purl.org/nanopub/x/hasPublicKey": [ { "@value": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyFHtPB6p0mCjDozxlOY9CmO3nBm7Te3jFbXyLmM+G1tGe47Da0jYIbhkl9Oo1ZjxmCa3LCwlEqK8gj6hEIcL4ahW30JXh9HycfKVk1bugkzMEV15tJdTzAU3sGMFnbNsn43xY2LFLy45tApkRm5byEiM7oRRrooIdwoQKnP4Wzq/bfAoJ9qvW+MGkelyOTd1jbSt+KfmT7xKmDfWzAHddUlWwMX2QJOLxDaffOteTop6ZRgPiNmPJKA/S62Gac9XtSYT3oDkZ6/nr5cxxNLpOyxTf5FPISiCe11xYO/unYjY+mwnOfA8yhJIyx1l0O9I0vpOpn+E5TvyHJV+oSTrvwIDAQAB" } ], "http://purl.org/nanopub/x/hasSignature": [ { "@value": "jTqmHnECSHII+5MGKc5l6FjBx1JyPje3TnSdKOMcMd6jvCBBvsK7obFOrOF0H3iclhz8ctu/hifO7muwxC4sVQAx5pVh8FHH0qTqjUTpFD9o2SoKni+RThUpAm3kRk+fXtlaDFY1Kumt/e9PS1az5PGO9p8OAfp/66y9HXzoaNCiMIb+wza0gfkPUwQ0uQ6dKRlvjuLALsQF7+RnLrDAZYWykMcAQam0RAX85a1hgTWRmDA3CIZZL7k8QtyiKn4j6U24QL6shbdf826nG7CjmretR5P3FIquH5yVAlwE2DM4Npjdhzxhy5r2Pv+dW1m3x3nlVhEjXXWFMVHOdLygFQ==" } ], "http://purl.org/nanopub/x/hasSignatureTarget": [ { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ" } ], "http://purl.org/nanopub/x/signedBy": [ { "@id": "https://orcid.org/0009-0007-4948-9192" } ] } ] }, { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/Head", "@graph": [ { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ", "http://www.nanopub.org/nschema#hasAssertion": [ { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/assertion" } ], "http://www.nanopub.org/nschema#hasProvenance": [ { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/provenance" } ], "http://www.nanopub.org/nschema#hasPublicationInfo": [ { "@id": "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/pubinfo" } ], "@type": [ "http://www.nanopub.org/nschema#Nanopublication" ] } ] } ]