rows { options { physical_type: PHYSICAL_STREAM_TYPE_QUADS max_name_table_size: 128 max_prefix_table_size: 16 max_datatype_table_size: 16 logical_type: LOGICAL_STREAM_TYPE_DATASETS version: 2 } } rows { prefix { value: "https://w3id.org/np/" } } rows { name { value: "RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ" } } rows { namespace { name: "this" value { prefix_id: 1 } } } rows { prefix { value: "https://w3id.org/np/RA_p-Wzd6BeXHLLIoi6Cncr1guP0myeKdp4tb6fCLTDaQ/" } } rows { name { } } rows { namespace { name: "sub" value { prefix_id: 2 } } } rows { prefix { value: "http://www.nanopub.org/nschema#" } } rows { namespace { name: "np" value { prefix_id: 3 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/1999/02/22-rdf-syntax-ns#" } } rows { namespace { name: "rdf" value { prefix_id: 4 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/ns/prov#" } } rows { namespace { name: "prov" value { prefix_id: 5 name_id: 2 } } } rows { prefix { value: "http://purl.org/nanopub/x/" } } rows { namespace { name: "npx" value { prefix_id: 6 name_id: 2 } } } rows { prefix { value: "http://purl.org/dc/terms/" } } rows { namespace { name: "dc" value { prefix_id: 7 name_id: 2 } } } rows { prefix { value: "http://www.w3.org/2001/XMLSchema#" } } rows { namespace { name: "xsd" value { prefix_id: 8 name_id: 2 } } } rows { name { value: "hasAssertion" } } rows { name { value: "assertion" } } rows { name { value: "Head" } } rows { quad { s_iri { prefix_id: 1 name_id: 1 } p_iri { prefix_id: 3 name_id: 3 } o_iri { prefix_id: 2 } g_iri { } } } rows { name { value: "hasProvenance" } } rows { name { value: "provenance" } } rows { quad { p_iri { prefix_id: 3 } o_iri { prefix_id: 2 } } } rows { name { value: "hasPublicationInfo" } } rows { name { value: "pubinfo" } } rows { quad { p_iri { prefix_id: 3 } o_iri { prefix_id: 2 } } } rows { name { value: "type" } } rows { name { value: "Nanopublication" } } rows { quad { p_iri { prefix_id: 4 } o_iri { prefix_id: 3 } } } rows { prefix { value: "https://w3id.org/delphi/resource/assessment/" } } rows { name { value: "wolfram2002-ch09-02--claim-test" } } rows { name { value: "description" } } rows { quad { s_iri { prefix_id: 9 } p_iri { prefix_id: 7 } o_literal { lex: "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." } g_iri { prefix_id: 2 name_id: 4 } } } rows { prefix { value: "https://w3id.org/delphi/ontology/" } } rows { name { value: "Assessment" } } rows { quad { p_iri { prefix_id: 4 name_id: 10 } o_iri { prefix_id: 10 name_id: 14 } } } rows { prefix { value: "http://www.w3.org/2000/01/rdf-schema#" } } rows { name { value: "comment" } } rows { quad { p_iri { prefix_id: 11 } o_literal { lex: "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." } } } rows { name { value: "label" } } rows { quad { p_iri { } o_literal { lex: "Claim test of wolfram2002-ch09-02: supports, confidence 0.97" } } } rows { name { value: "seeAlso" } } rows { prefix { value: "https://github.com/fractastical/delphisci/blob/bf2af6ee0a84e23ffa6414ad7a0a50a8c276506e/test-data/claim-tests/wolfram-nks/wolfram2002-ch09-02/" } } rows { name { value: "result.json" } } rows { quad { p_iri { } o_iri { prefix_id: 12 } } } rows { name { value: "wasAttributedTo" } } rows { prefix { value: "https://w3id.org/delphi/resource/agent/" } } rows { name { value: "delphisci-claim-tester-claude-fable-5-1-cursor-cloud-agent" } } rows { quad { p_iri { prefix_id: 5 } o_iri { prefix_id: 13 } } } rows { name { value: "admissibleDatasets" } } rows { quad { p_iri { prefix_id: 10 } o_literal { lex: "Planned datasets: reversible-ca-enumeration-generator, nks-note-numbers-of-reversible-rules" } } } rows { name { value: "assessmentType" } } rows { quad { p_iri { } o_literal { lex: "claim-test/0.1.0" } } } rows { name { value: "dataKind" } } rows { quad { p_iri { } o_literal { lex: "computational" } } } rows { name { value: "disconfirmingObservation" } } rows { quad { p_iri { } o_literal { lex: "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." } } } rows { name { value: "evidenceAgainst" } } rows { quad { p_iri { } o_literal { lex: "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." } } } rows { quad { o_literal { lex: "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." } } } rows { quad { o_literal { lex: "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)." } } } rows { quad { o_literal { lex: "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." } } } rows { name { value: "expectedObservation" } } rows { quad { p_iri { } o_literal { lex: "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." } } } rows { name { value: "failCriterion" } } rows { quad { p_iri { } o_literal { lex: "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." } } } rows { name { value: "hasConfidence" } } rows { datatype { value: "http://www.w3.org/2001/XMLSchema#double" } } rows { quad { p_iri { } o_literal { lex: "0.97" datatype: 1 } } } rows { name { value: "hasEvidence" } } rows { prefix { value: "https://w3id.org/delphi/resource/evidence/" } } rows { name { value: "wolfram2002-ch09-02--claim-test--dataset-1" } } rows { quad { p_iri { } o_iri { prefix_id: 14 } } } rows { name { value: "wolfram2002-ch09-02--claim-test--dataset-2" } } rows { quad { o_iri { } } } rows { name { value: "hasVerdict" } } rows { quad { p_iri { prefix_id: 10 } o_literal { lex: "supports" } } } rows { name { value: "hypothesis" } } rows { quad { p_iri { } o_literal { lex: "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)." } } } rows { name { value: "inferenceMethod" } } rows { quad { p_iri { } o_literal { lex: "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." } } } rows { name { value: "passCriterion" } } rows { quad { p_iri { } o_literal { lex: "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." } } } rows { name { value: "preregistered" } } rows { datatype { value: "http://www.w3.org/2001/XMLSchema#boolean" } } rows { quad { p_iri { } o_literal { lex: "false" datatype: 2 } } } rows { prefix { value: "https://w3id.org/delphi/resource/claim/" } } rows { name { value: "wolfram2002-ch09-02" } } rows { name { value: "hasAssessment" } } rows { quad { s_iri { prefix_id: 15 } p_iri { prefix_id: 10 } o_iri { prefix_id: 9 name_id: 12 } } } rows { quad { s_iri { prefix_id: 14 name_id: 30 } p_iri { prefix_id: 7 name_id: 13 } o_literal { lex: "the enumerated program family and the list of reversible rules found (derived/)" } } } rows { name { value: "license" } } rows { quad { p_iri { name_id: 39 } o_literal { lex: "CC0 (generated data)" } } } rows { name { value: "EvidenceItem" } } rows { quad { p_iri { prefix_id: 4 name_id: 10 } o_iri { prefix_id: 10 name_id: 40 } } } rows { quad { p_iri { prefix_id: 11 name_id: 16 } o_literal { lex: "Dataset: Exhaustive enumeration of nearest-neighbour cellular automaton rules (generated by analysis.py + revca.c)" } } } rows { quad { s_iri { prefix_id: 14 name_id: 31 } p_iri { prefix_id: 7 name_id: 13 } o_literal { lex: "the reversibility test Wolfram used (ReversibleQ) and the stated counts 6, 62, 1800 used as the method check" } } } rows { quad { p_iri { name_id: 39 } o_literal { lex: "copyright Stephen Wolfram LLC" } } } rows { quad { p_iri { prefix_id: 4 name_id: 10 } o_iri { prefix_id: 10 name_id: 40 } } } rows { quad { p_iri { prefix_id: 11 name_id: 16 } o_literal { lex: "Dataset: NKS notes \'Numbers of reversible rules\' and \'Testing for reversibility\' (p. 1017)" } } } rows { name { value: "atLocation" } } rows { prefix { value: "https://www.wolframscience.com/nks/notes-9-2--numbers-of-reversible-cellular-automaton-rules/" } } rows { quad { p_iri { prefix_id: 5 name_id: 41 } o_iri { prefix_id: 16 name_id: 2 } } } rows { prefix { id: 6 value: "https://www.wolframscience.com/nks/notes-9-2--testing-for-reversibility-in-cellular-automata/" } } rows { quad { o_iri { prefix_id: 6 name_id: 2 } } } rows { name { value: "wasDerivedFrom" } } rows { quad { p_iri { prefix_id: 5 name_id: 42 } o_iri { prefix_id: 16 name_id: 2 } } } rows { name { value: "hasChecksum" } } rows { quad { p_iri { prefix_id: 10 name_id: 43 } o_literal { lex: "sha256:1af16edd18347077fb2a20db466fae3b110cf488c192824a2312ad915e2a0380" } } } rows { quad { o_literal { lex: "sha256:82e0511d9ad2fe0eef732823adc0b07abb129a9f0fd8d458147fd557d657d03b" } } } rows { name { value: "SoftwareAgent" } } rows { quad { s_iri { prefix_id: 13 name_id: 20 } p_iri { prefix_id: 4 name_id: 10 } o_iri { prefix_id: 5 name_id: 44 } g_iri { prefix_id: 2 name_id: 7 } } } rows { quad { p_iri { prefix_id: 11 name_id: 16 } o_literal { lex: "delphisci claim tester (Claude Fable 5.1 (Cursor cloud agent); cursor/claim-tests-wolfram-nks-f0e1)" } } } rows { name { value: "actedOnBehalfOf" } } rows { prefix { id: 8 value: "https://orcid.org/" } } rows { name { value: "0009-0007-4948-9192" } } rows { quad { p_iri { prefix_id: 5 name_id: 45 } o_iri { prefix_id: 8 } } } rows { name { value: "usesModel" } } rows { prefix { id: 1 value: "https://w3id.org/delphi/resource/model/" } } rows { name { value: "claude-fable-5-1-cursor-cloud-agent" } } rows { quad { p_iri { prefix_id: 10 } o_iri { prefix_id: 1 } } } rows { name { value: "identifier" } } rows { quad { s_iri { name_id: 48 } p_iri { prefix_id: 7 } o_literal { lex: "Claude Fable 5.1 (Cursor cloud agent)" } } } rows { name { value: "LanguageModel" } } rows { quad { p_iri { prefix_id: 4 name_id: 10 } o_iri { prefix_id: 10 name_id: 50 } } } rows { quad { s_iri { prefix_id: 2 name_id: 4 } p_iri { prefix_id: 5 name_id: 19 } o_iri { prefix_id: 13 } } } rows { quad { p_iri { prefix_id: 5 name_id: 42 } o_iri { prefix_id: 12 name_id: 18 } } } rows { name { value: "wasGeneratedBy" } } rows { name { value: "test" } } rows { quad { p_iri { prefix_id: 5 name_id: 51 } o_iri { prefix_id: 2 } } } rows { name { value: "plan" } } rows { name { value: "hadPlan" } } rows { prefix { id: 3 value: "https://github.com/fractastical/delphisci/blob/bf2af6ee0a84e23ffa6414ad7a0a50a8c276506e/test-data/claim-tests/" } } rows { name { value: "README.md" } } rows { quad { s_iri { } p_iri { prefix_id: 5 } o_iri { prefix_id: 3 } } } rows { name { value: "Activity" } } rows { quad { s_iri { prefix_id: 2 name_id: 52 } p_iri { prefix_id: 4 name_id: 10 } o_iri { prefix_id: 5 name_id: 56 } } } rows { name { value: "qualifiedAssociation" } } rows { quad { p_iri { } o_iri { prefix_id: 2 name_id: 53 } } } rows { name { value: "wasAssociatedWith" } } rows { quad { p_iri { prefix_id: 5 name_id: 58 } o_iri { prefix_id: 13 name_id: 20 } } } rows { prefix { id: 15 value: "https://w3id.org/np/" } } rows { name { value: "created" } } rows { datatype { value: "http://www.w3.org/2001/XMLSchema#dateTime" } } rows { quad { s_iri { prefix_id: 15 name_id: 1 } p_iri { prefix_id: 7 name_id: 59 } o_literal { lex: "2026-11-08T16:24:31.932Z" datatype: 3 } g_iri { prefix_id: 2 name_id: 9 } } } rows { name { value: "creator" } } rows { quad { p_iri { prefix_id: 7 name_id: 60 } o_iri { prefix_id: 8 name_id: 46 } } } rows { prefix { id: 9 value: "https://creativecommons.org/licenses/by/4.0/" } } rows { quad { p_iri { prefix_id: 7 name_id: 39 } o_iri { prefix_id: 9 name_id: 2 } } } rows { prefix { id: 14 value: "http://purl.org/nanopub/x/" } } rows { name { value: "hasNanopubType" } } rows { quad { p_iri { prefix_id: 14 name_id: 61 } o_iri { prefix_id: 10 name_id: 14 } } } rows { name { value: "introduces" } } rows { prefix { id: 6 value: "https://w3id.org/delphi/resource/assessment/" } } rows { quad { p_iri { prefix_id: 14 name_id: 62 } o_iri { prefix_id: 6 name_id: 12 } } } rows { quad { p_iri { prefix_id: 11 name_id: 16 } o_literal { lex: "Claim test of wolfram2002-ch09-02: supports, confidence 0.97" } } } rows { name { value: "domain" } } rows { prefix { id: 16 value: "https://w3id.org/delphi/resource/domain/" } } rows { name { value: "wolfram-nks-2002" } } rows { quad { p_iri { prefix_id: 10 name_id: 63 } o_iri { prefix_id: 16 } } } rows { name { value: "sig" } } rows { name { value: "hasAlgorithm" } } rows { quad { s_iri { prefix_id: 2 } p_iri { prefix_id: 14 } o_literal { lex: "RSA" } } } rows { name { value: "hasPublicKey" } } rows { quad { p_iri { } o_literal { lex: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyFHtPB6p0mCjDozxlOY9CmO3nBm7Te3jFbXyLmM+G1tGe47Da0jYIbhkl9Oo1ZjxmCa3LCwlEqK8gj6hEIcL4ahW30JXh9HycfKVk1bugkzMEV15tJdTzAU3sGMFnbNsn43xY2LFLy45tApkRm5byEiM7oRRrooIdwoQKnP4Wzq/bfAoJ9qvW+MGkelyOTd1jbSt+KfmT7xKmDfWzAHddUlWwMX2QJOLxDaffOteTop6ZRgPiNmPJKA/S62Gac9XtSYT3oDkZ6/nr5cxxNLpOyxTf5FPISiCe11xYO/unYjY+mwnOfA8yhJIyx1l0O9I0vpOpn+E5TvyHJV+oSTrvwIDAQAB" } } } rows { name { value: "hasSignature" } } rows { quad { p_iri { } o_literal { lex: "jTqmHnECSHII+5MGKc5l6FjBx1JyPje3TnSdKOMcMd6jvCBBvsK7obFOrOF0H3iclhz8ctu/hifO7muwxC4sVQAx5pVh8FHH0qTqjUTpFD9o2SoKni+RThUpAm3kRk+fXtlaDFY1Kumt/e9PS1az5PGO9p8OAfp/66y9HXzoaNCiMIb+wza0gfkPUwQ0uQ6dKRlvjuLALsQF7+RnLrDAZYWykMcAQam0RAX85a1hgTWRmDA3CIZZL7k8QtyiKn4j6U24QL6shbdf826nG7CjmretR5P3FIquH5yVAlwE2DM4Npjdhzxhy5r2Pv+dW1m3x3nlVhEjXXWFMVHOdLygFQ==" } } } rows { name { value: "hasSignatureTarget" } } rows { quad { p_iri { } o_iri { prefix_id: 15 name_id: 1 } } } rows { name { value: "signedBy" } } rows { quad { p_iri { prefix_id: 14 name_id: 70 } o_iri { prefix_id: 8 name_id: 46 } } }