1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//! Binary Graph Universe — ARCO's validation substrate.
//!
//! This module implements the Information Universe traits for
//! directed graphs with binary vertex labels and binary edge
//! labels. This is the first substrate built for ARCO and
//! served as the validation case for the measurement apparatus.
//!
//! # Components
//!
//! - **State**: [`BinaryGraphState`] — a directed graph with n
//! vertices, each labeled {0, 1}, each edge labeled {0, 1}.
//! - **Rules**: [`RewriteRule`] — local graph rewrite rules with
//! pattern matching via [`MatchInfo`]. Includes 16 structured
//! rules (logic gates, transport, identity) and 8 destructive
//! rules (scramblers, constants).
//! - **Observation**: Single-state and windowed observers at
//! varying granularities (full state, labels only, edges only,
//! scalar aggregates).
//! - **Schedule**: [`AllVerticesSchedule`] — asynchronous
//! exhaustive update: every vertex visited once per timestep
//! in random order, first matching rule fires.
//! - **Universe**: [`BinaryGraphUniverse`] — bundles all components
//! and implements [`InformationUniverse`].
//! - **Hypotheses**: Standard hypothesis set including the
//! Transport Law (H5) and the Structure-Storage Gradient.
//! - **Validation**: Boolean function verification for NAND, AND,
//! OR, NOR, and XOR under stochastic scheduling.
//!
//! # Usage
//!
//! ```rust
//! // use arco::substrates::graph::{
//! // BinaryGraphUniverse, AllVerticesSchedule,
//! // create_structured_rules, create_destructive_rules,
//! // generate_standard_hypotheses,
//! // };
//! // use arco::cycle::{CycleConfig, run_cycle};
//! //
//! // let universe = BinaryGraphUniverse::new(3, "compound", 42);
//! // let config = CycleConfig::default();
//! // let mut hypotheses = generate_standard_hypotheses();
//! // let record = run_cycle(&universe, &config, &mut hypotheses, &my_generator, None);
//! // ```
// Re-export commonly used types
pub use generate_standard_hypotheses;
pub use observe_compound;
pub use ;
pub use AllVerticesSchedule;
pub use BinaryGraphState;
pub use ;
pub use ;