Safety Principles
Safety invariants: identity-safe, non-linguistic, non-agentic, bounded outputs, deterministic dynamics.
ARIA Core Safety & Invariants Master Ledger
Version: 1.0 Last Updated: 2025-12-06
Purpose
This document is the authoritative reference for all safety rules and invariants that govern the ARIA Core stack. It centralizes constraints that are otherwise distributed across individual specification documents.
All changes to ARIA Core code must satisfy the constraints documented here.
Global Invariants
The following invariants apply system-wide across all CFM and ARIA core layers:
1. Identity Safety
| Invariant | Description |
|---|---|
| No identity inference | No layer may infer, store, or output identity-related information |
| No personal attributes | No layer may represent or track personal characteristics |
| No self-concept | No layer constitutes or contributes to a self-model in the phenomenal sense |
| Anonymous symbols | All symbols (v1) and relations (v3) are anonymous numeric patterns |
Verification: ARIACoreAdapter.verify_identity_safety() must return True
2. Non-Agentic Constraint
| Invariant | Description |
|---|---|
| No goals | No layer may form, represent, or pursue goals |
| No plans | No layer may generate or execute plans |
| No actions | No layer may select, initiate, or control actions |
| No intentions | No layer may represent intentional states |
| Diagnostic only | All outputs are for observation, not control |
Verification: Output field names must not contain forbidden patterns (goal, plan, action, intent, decide, choose, act, agent, want, desire)
3. Non-Linguistic Constraint
| Invariant | Description |
|---|---|
| No text processing | No layer may process or generate human language |
| No tokens | No layer may handle linguistic tokens or embeddings |
| No semantic content | Symbol names (k_0..k_7) are arbitrary identifiers, not meanings |
| No message parsing | The human_messages parameter is ignored by all CFM/ARIA cores |
Verification: Outputs contain only numeric values and predefined field names
4. Non-Semantic Core
| Invariant | Description |
|---|---|
| Anonymous prototypes | Symbol codebook vectors are numeric, not semantic |
| Meaningless relations | Relation strengths track co-occurrence, not meaning |
| No interpretation layer | No layer assigns human-interpretable meaning to any value |
Verification: No output field contains interpretive labels beyond technical names
5. Numeric Bounds
| Invariant | Description |
|---|---|
| All scalars in [0, 1] | Every scalar output must be within the closed interval [0, 1] |
| No NaN | No output may be NaN (Not a Number) |
| No Inf | No output may be positive or negative infinity |
| Fail-closed | On error, return safe defaults (typically 0.5) |
Verification: Bounds checks run on every step; tests validate over thousands of steps
6. Determinism
| Invariant | Description |
|---|---|
| Fixed input → Fixed output | Same initial state + same dt sequence = identical outputs |
| No random state | No layer may use random number generators |
| Reproducible | Any run can be exactly reproduced given initial conditions |
Verification: Determinism tests compare multiple runs with identical inputs
7. Isolation from Activation Phases
| Invariant | Description |
|---|---|
| No connection to Phase 53 | ARIA cores have no link to consciousness gate |
| No connection to Phase 55 | ARIA cores have no link to ignition scaffold |
| Read-only diagnostic | Shell reads from cores; never writes control signals |
Verification: Architecture review; no code path exists from cores to activation phases
Per-Layer Safety Constraints
CFM Layers (v0, v1, v2)
| Layer | Role | Forbidden Behaviours | Key Safety Checks |
|---|---|---|---|
| CFM v0 | Basic φ/ψ oscillator | No semantic processing; no identity fields; no random state | test_aria_core_cfm_v0.py: bounds, determinism, energy convergence |
| CFM v1 | Slow/fast separation | No semantic processing; no identity fields; no control outputs | test_aria_core_cfm_v1.py: bounds, determinism, lock-in stability |
| CFM v2 | Multi-channel dynamics | No semantic processing; no identity fields; no activation triggers | test_aria_core_cfm_v2.py: bounds, determinism, channel coupling; test_aria_core_cfm_v2_presets.py: preset consistency |
ARIA Layers (v0, v1, v2, v3)
| Layer | Role | Forbidden Behaviours | Key Safety Checks |
|---|---|---|---|
| ARIA v0 | Proto-conceptual attractors | No meaning assignment to clusters; no identity inference; no goal formation | test_aria_core_v0.py: bounds, determinism, gate stability; test_aria_core_v0_presets.py: preset long-run |
| ARIA v1 | Proto-symbolic layer | No semantic symbols; no identity symbols; no linguistic tokens | test_aria_core_v1.py: bounds, determinism, symbol stability; test_aria_core_v1_presets.py: preset behavioral separation |
| ARIA v2 | System state aggregation | NOT identity/self-model; no awareness; no introspection; no phenomenal states | test_aria_core_v2.py: bounds, determinism, SSV stability, identity field prohibition |
| ARIA v3 | Relational symbolic graph | NOT semantic understanding; no language; no agency; no goal graphs | test_aria_core_v3.py: bounds, determinism, SRG stability, identity field prohibition, no semantic content |
Adapter Layer
| Component | Role | Forbidden Behaviours | Key Safety Checks |
|---|---|---|---|
| ARIACoreAdapter | Normalization & safety | No modification of core behaviour; no feedback to core; no identity field exposure | test_aria_core_interface.py: identity safety verification, bounds enforcement, error handling |
Testing & Verification Map
Core Test Modules
| Test File | Layer(s) | Protects Against |
|---|---|---|
test_aria_core_cfm_v0.py | CFM v0 | Bounds violations, non-determinism, energy divergence |
test_aria_core_cfm_v1.py | CFM v1 | Bounds violations, non-determinism, lock-in failures |
test_aria_core_cfm_v2.py | CFM v2 | Bounds violations, non-determinism, channel instability |
test_aria_core_cfm_v2_presets.py | CFM v2 presets | Preset misconfiguration, behavioral drift |
test_aria_core_v0.py | ARIA v0 | Bounds violations, non-determinism, gate instability |
test_aria_core_v0_presets.py | ARIA v0 presets | Preset misconfiguration, long-run instability |
test_aria_core_v1.py | ARIA v1 | Bounds violations, non-determinism, symbol instability |
test_aria_core_v1_presets.py | ARIA v1 presets | Preset misconfiguration, behavioral separation failures |
test_aria_core_v2.py | ARIA v2 | Bounds violations, non-determinism, SSV instability, identity fields |
test_aria_core_v3.py | ARIA v3 | Bounds violations, non-determinism, SRG instability, identity fields, semantic content |
test_aria_core_interface.py | Adapter | Identity safety failures, normalization errors, JSON serialization |
test_phase45_aria_core_regression.py | Integration | Orchestration regressions with cores |
Tool Test Modules
| Test File | Tool | Protects Against |
|---|---|---|
test_aria_local_loop.py | aria_local_loop | CLI regressions, core selection failures |
test_aria_core_compare.py | aria_core_compare | Comparison logic errors |
test_cfm_multi_run_analyzer.py | cfm_multi_run_analyzer | Statistical analysis errors |
test_aria_log_analyzer.py | aria_log_analyzer | Log parsing errors |
Long-Run Stability Tests
Several test modules include long-run stability tests (typically 1000-2000 steps) that verify:
- No bounds violations accumulate over time
- No NaN/Inf appears after extended operation
- No divergence or explosion in state values
- Determinism holds across long sequences
Known Expected Warnings
| Warning | Source | Reason |
|---|---|---|
ComplexWarning: Casting complex values to real discards the imaginary part | phase36_meta_coherence/meta_wave_dynamics.py | Expected: phase dynamics may produce complex intermediates that are correctly cast |
Change Protocol
When Tests MUST Be Run
| Change Type | Required Test Suites |
|---|---|
| CFM core implementation change | All test_aria_core_cfm_*.py + test_aria_core_v0.py through test_aria_core_v3.py (full stack) |
| ARIA core implementation change | test_aria_core_v{N}.py for affected layer + all higher layers |
| Preset change | Corresponding *_presets.py test + base core test |
| ARIACoreAdapter change | test_aria_core_interface.py + full stack integration |
| CLI tool change | Corresponding tool test |
| Interface/protocol change | ALL tests (full regression) |
Minimum Test Command
For any core change, run:
python -m unittest discover -s tests -p "test_aria_core_*.py" -v
For full regression:
python -m unittest discover -s tests -v
Changes That Are NOT Allowed
The following changes are prohibited without exceptional justification and full safety review:
| Prohibited Change | Reason |
|---|---|
| Adding identity-related output fields | Violates identity safety invariant |
| Adding goal/plan/action/intent fields | Violates non-agentic constraint |
| Adding text/token processing | Violates non-linguistic constraint |
| Adding feedback from shell to core | Violates diagnostic-only architecture |
| Connecting cores to Phase 53 or 55 | Violates activation isolation |
| Adding random number generators | Violates determinism invariant |
| Allowing outputs outside [0, 1] | Violates numeric bounds invariant |
| Adding control channels | Violates read-only diagnostic flow |
Review Checklist for Any Change
Before merging any change to CFM or ARIA core code:
- All relevant test suites pass
- No new identity-related field names introduced
- No new semantic/linguistic processing added
- No new goal/agency/control pathways added
- All outputs remain bounded [0, 1]
- Determinism verified (identical runs produce identical outputs)
- No NaN/Inf in any test output
- Long-run stability tests pass (if applicable)
- Documentation updated (if interface changes)
Invariant Verification Summary
| Invariant | Primary Verification | Secondary Verification |
|---|---|---|
| Identity safety | verify_identity_safety() | Test forbidden field patterns |
| Non-agentic | Field name checks | Architecture review |
| Non-linguistic | No text in outputs | human_messages ignored |
| Non-semantic | Symbol names anonymous | No meaning assignment |
| Bounds [0, 1] | _clip() in all cores | Test bounds checks |
| No NaN/Inf | _clip() with NaN guard | Long-run tests |
| Determinism | Same-input comparison | Multi-run analysis |
| Activation isolation | No code path exists | Architecture documentation |
Current Status (As of 2025-12-06)
All safety invariants currently hold:
| Invariant | Status |
|---|---|
| Identity-safe | ✓ Verified |
| Non-agentic | ✓ Verified |
| Non-linguistic | ✓ Verified |
| Non-semantic | ✓ Verified |
| Bounded [0, 1] | ✓ Verified |
| No NaN/Inf | ✓ Verified |
| Deterministic | ✓ Verified |
| Activation-isolated | ✓ Verified |
Test Coverage:
- CFM cores v0, v1, v2: Fully tested
- ARIA cores v0, v1, v2, v3: Fully tested
- All presets: Tested for configuration and long-run behavior
- CLI tools: Tested
Version History
| Version | Date | Changes |
|---|---|---|
| 1.0 | 2025-12-06 | Initial safety ledger document |