ARCO

Automated Research into Computational Ontologies

crates.io docs.rs CI License: MIT

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.

Key Findings

Structure-Storage Gradient

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 RatioStorage 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

Paradigm-Neutrality

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.

RuleStorageWolfram Class
0, 2550.00Class 1 (fixed point)
300.32Class 3 (chaotic)
1100.47Class 4 (Turing-complete)
900.73Class 2 (periodic)

Transport Law

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).

How It Works

GENERATE → CALIBRATE → OBSERVE → HYPOTHESIZE → TEST → REVISE

ARCO runs a six-step scientific cycle on any system that implements the InformationUniverse trait:

  1. Generate — sample rule sets spanning a spectrum from purely destructive to purely structured.
  2. Calibrate — establish detection thresholds from a null distribution of information-scrambling rule sets.
  3. Observe — generate ensembles of trajectories and compute storage, memory, and persistence via shuffle-corrected mutual information.
  4. Hypothesize — formulate falsifiable structural hypotheses (e.g., "rules with property X exhibit storage above threshold").
  5. Test — evaluate hypotheses on held-out universes, penalizing complexity via minimum description length.
  6. Revise — discard falsified hypotheses, retain survivors, check failure conditions.

Getting Started

Installation

# 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+.

Quick Start

# 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 as a Library

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());

Documentation

Architecture

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.

TraitPurpose
StateCanonical 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
InformationUniverseBundles 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.

Python Reference

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.

Limitations & Honesty