Automated Research into Computational Ontologies
ARCO is a computational science platform that asks a different question than most computer science: not "what can a given computational model compute?" but "what computational models are possible, and why do they emerge?"
It formalizes this through Information Universes — 6-tuples of state space, transformations, observations, resources, invariants, and schedule — and measures emergent computation via shuffle-corrected normalized mutual information calibrated against destructive null distributions. ARCO does not assume classical, quantum, or neural computation as fundamental. All known paradigms are treated as phenomena to be explained, not primitives to be assumed.
Across 30 independent runs (10 seeds × 3 scales), structured universes exhibit storage at ~97% compared to ~23% for noise. A 4.3× difference, stable at all sample sizes from n=300 to n=50,000.
| Structured Ratio | Storage Rate (Range) | Mean Storage |
|---|---|---|
| 0.00–0.15 (Noise) | 13.6–33.8% | 0.20 |
| 0.85–1.00 (Structured) | 92.0–100.0% | 0.64 |
The same storage metric, applied to all 256 elementary cellular automata without modification, independently separates Wolfram's Class 1/2 (high storage) from Class 3 (low storage). ARCO was never told about Wolfram classes. The classification is deterministic across 10 seeds: 227 high-storage rules, 29 low-storage rules — identical every time.
| Rule | Storage | Wolfram Class |
|---|---|---|
| 0, 255 | 0.00 | Class 1 (fixed point) |
| 30 | 0.32 | Class 3 (chaotic) |
| 110 | 0.47 | Class 4 (Turing-complete) |
| 90 | 0.73 | Class 2 (periodic) |
Rule sets containing information propagation operations (PROPAGATE, SWAP, COPY) exhibit storage at 60–85% accuracy above chance. Validated across two independent implementations (Python reference, Rust production) and two substrates (graph rewriting, symbolic tuple rewriting).
ARCO runs a six-step scientific cycle on any system that implements the InformationUniverse trait:
# Add to your Rust project
cargo add arco
# Or build from source
git clone https://github.com/kvernet/arco.git
cd arco
cargo build --release
Requires Rust 1.85+.
# Run the Binary Graph Universe experiment
cargo run --example binary_graph_cycle --release
# With a custom seed
cargo run --example binary_graph_cycle --release -- 99
# Run the Cellular Automata discovery experiment
cargo run --example ca_discovery --release
# Minimal example using the core traits
cargo run --example minimal_cycle --release
use arco::substrates::graph::{
BinaryGraphUniverse, generate_standard_hypotheses,
spectrum_rule_generator, verify_boolean_functions,
};
use arco::cycle::{CycleConfig, run_cycle};
let mut rng = StdRng::seed_from_u64(42);
let universe = BinaryGraphUniverse::new(3, "compound", &mut rng);
let config = CycleConfig::default();
let mut hypotheses = generate_standard_hypotheses();
let mut generator = spectrum_rule_generator(400, 42);
let record = run_cycle(&universe, &config, &mut hypotheses, &mut generator, None);
println!("{}", record.summary());
ARCO's core is substrate-independent. The Binary Graph Universe and Cellular Automata experiments use the same generic traits and the same scientific cycle without modification.
| Trait | Purpose |
|---|---|
State | Canonical encoding, distance metric |
Rule<S, Context> | Transformations with substrate-specific context |
Observation<S> | Observer-relative perception of states |
Schedule<S, R> | Temporal structure of rule application |
InformationUniverse | Bundles S, T, O, K into a single type |
Substrates implement these traits. The scientific cycle operates on any InformationUniverse.
The Binary Graph substrate
ships with ARCO. The CA experiment
demonstrates adding a new substrate in a single file.
The methodology was first validated in a Python reference implementation. It reproduces the Structure-Storage Gradient and the Transport Law independently of the Rust version. arco-python on GitHub.
InformationUniverse trait — it calls metrics directly.