git-subtree-dir: vendor/ruvector git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
629 lines
27 KiB
Markdown
629 lines
27 KiB
Markdown
# Proof-Gated Mutation: The Control Substrate for Graph Transformer Intelligence
|
|
|
|
> **Thesis:** Proof-gated mutation is not a feature of graph transformers — it is the control substrate. Every research axis in graph transformer design becomes an enforceable structural program when mutation requires a machine-checked proof. The 10 axes below are not independent research directions. They are 10 instantiations of one principle: **no state transition without a witness.**
|
|
|
|
## 1. The Principle
|
|
|
|
Every system that mutates state can be decomposed into:
|
|
|
|
```
|
|
state_n → mutation → state_n+1
|
|
```
|
|
|
|
In conventional systems, the mutation is **unconstrained** — any function can transform state, and correctness is checked after the fact (testing, monitoring, rollback).
|
|
|
|
In a proof-gated system, the mutation is **structurally constrained**:
|
|
|
|
```
|
|
state_n → proof(invariant) → mutation → state_n+1
|
|
```
|
|
|
|
The proof must validate **before** the mutation executes. If the proof fails, the mutation is rejected. Not caught. Not rolled back. **Never executed.**
|
|
|
|
This is the difference between:
|
|
- A guardrail (detects violations after they occur)
|
|
- A gate (prevents violations from being expressible)
|
|
|
|
RuVector's `ruvector-verified` implements this gate. The question is: what happens when you make it foundational to every graph transformer operation?
|
|
|
|
## 2. The Algebra of Proof-Gated Mutation
|
|
|
|
### 2.1 Local Proofs
|
|
|
|
The atomic unit is a single proof-gated mutation:
|
|
|
|
```rust
|
|
// Local: one proof, one mutation
|
|
let proof = prove_dim_eq(&mut env, expected_dim, actual_dim)?;
|
|
let attestation = create_attestation(&env, proof); // 82 bytes
|
|
// Only now: mutate
|
|
store.insert(vector, id);
|
|
```
|
|
|
|
**Cost:** ~500ns per proof. **Guarantee:** dimensional invariant holds.
|
|
|
|
### 2.2 Composed Proofs
|
|
|
|
Local proofs compose into pipeline proofs via `compose_chain`:
|
|
|
|
```rust
|
|
// Regional: N local proofs → 1 pipeline proof
|
|
let stages = vec![
|
|
("embed", type_in, type_mid),
|
|
("transform", type_mid, type_mid2),
|
|
("classify", type_mid2, type_out),
|
|
];
|
|
let (in_type, out_type, pipeline_proof) = compose_chain(&stages, &mut env)?;
|
|
let attestation = create_attestation(&env, pipeline_proof);
|
|
```
|
|
|
|
**Property:** If stages A→B and B→C each have valid proofs, then A→C has a valid proof. Composition is **transitive and associative**.
|
|
|
|
### 2.3 Global Coherence via Min-Cut Boundaries
|
|
|
|
The key insight: global coherence doesn't require a separate verification layer. It emerges from proof composition across partition boundaries.
|
|
|
|
```
|
|
Global System
|
|
├── Partition A (locally proved)
|
|
│ ├── subgraph proofs compose → partition proof A
|
|
│ └── attestation chain: [att_1, att_2, ..., att_k]
|
|
├── Partition B (locally proved)
|
|
│ ├── subgraph proofs compose → partition proof B
|
|
│ └── attestation chain: [att_k+1, ..., att_m]
|
|
└── Cut Edges (cross-partition)
|
|
├── Each edge carries: attestation from A + attestation from B
|
|
└── Cross-partition proof = compose(proof_A, proof_B) via shared types
|
|
```
|
|
|
|
**Min-cut defines the boundary.** If:
|
|
1. Every partition has a valid composed proof
|
|
2. Every cut edge carries valid attestations from both sides
|
|
3. The type contracts across cut edges are satisfied
|
|
|
|
Then: **the global system is coherent by construction.**
|
|
|
|
No global verifier needed. No consensus protocol for correctness. The proof algebra is the consensus.
|
|
|
|
### 2.4 The Three-Tier Gate
|
|
|
|
RuVector's gated proof routing maps naturally to mutation urgency:
|
|
|
|
| Tier | Latency | Gate Type | Use Case |
|
|
|------|---------|-----------|----------|
|
|
| **Reflex** | <10ns | Cached proof lookup | Hot-path mutations (attention updates, message passing) |
|
|
| **Standard** | <1μs | Full proof construction | Structural mutations (edge add/remove, topology change) |
|
|
| **Deep** | <100μs | Multi-step reduction | Rare mutations (architecture change, curvature switch, growth event) |
|
|
|
|
The tier routes automatically based on `ProofKind`. Reflex handles 99%+ of mutations in production.
|
|
|
|
## 3. The 10 Axes as Structural Programs
|
|
|
|
Each axis below transforms from "speculative research" to "enforceable program" when proof-gated mutation is foundational.
|
|
|
|
### 3.1 Billion-Node Scalability → Bounded Cognition at Scale
|
|
|
|
**Without proof gate:** Attention can silently densify. O(log n) algorithms degrade to O(n) under adversarial or drifted conditions. Memory grows without bound.
|
|
|
|
**With proof gate:**
|
|
```rust
|
|
// Every attention routing step proves complexity bound
|
|
let routing_proof = prove_complexity_bound(&mut env,
|
|
ComplexityClass::SubLinear { base: n, exponent: 0.12 },
|
|
actual_ops
|
|
)?;
|
|
// Only if proof passes: execute attention
|
|
let result = sublinear_attention(query, graph, routing_proof);
|
|
```
|
|
|
|
**Invariants enforced:**
|
|
- Attention sparsity cannot exceed certified threshold
|
|
- Memory allocation must prove O(log n) bound before growing
|
|
- Retrieval mutations validate dimensional contracts
|
|
|
|
**Result:** Guaranteed bounded cognition. The system literally cannot think harder than its proof budget allows.
|
|
|
|
### 3.2 Physics-Informed → Structurally Constrained Simulation
|
|
|
|
**Without proof gate:** Hamiltonian integrators accumulate numerical drift. Energy "conservation" is approximate. Symmetries are soft constraints.
|
|
|
|
**With proof gate:**
|
|
```rust
|
|
// Hamiltonian step must prove energy conservation
|
|
let energy_before = compute_hamiltonian(&graph_state);
|
|
let proposed_state = symplectic_step(&graph_state, dt);
|
|
let energy_after = compute_hamiltonian(&proposed_state);
|
|
|
|
let conservation_proof = prove_energy_conservation(&mut env,
|
|
energy_before, energy_after,
|
|
tolerance: 1e-12
|
|
)?;
|
|
// Only if proof passes: commit state transition
|
|
graph_state = proposed_state;
|
|
```
|
|
|
|
**Invariants enforced:**
|
|
- Energy conservation per step (not accumulated drift)
|
|
- Symmetry group membership before/after transformation
|
|
- No illegal state transitions in phase space
|
|
|
|
**Result:** Physics is not heuristically stable — it is structurally constrained. Drift is not corrected; it is prevented.
|
|
|
|
### 3.3 Biological → Plasticity That Cannot Explode
|
|
|
|
**Without proof gate:** Hebbian learning is unstable. Spiking rates can cascade. Weight growth is unbounded without careful tuning.
|
|
|
|
**With proof gate:**
|
|
```rust
|
|
// Hebbian weight update requires local coherence proof
|
|
let pre_activity = neuron_a.spike_rate();
|
|
let post_activity = neuron_b.spike_rate();
|
|
let proposed_weight = current_weight + learning_rate * pre_activity * post_activity;
|
|
|
|
let stability_proof = prove_weight_bound(&mut env,
|
|
proposed_weight,
|
|
max_weight: MAX_SYNAPTIC_STRENGTH,
|
|
spectral_radius: graph.spectral_radius(),
|
|
max_spectral_radius: 1.0 // stability threshold
|
|
)?;
|
|
```
|
|
|
|
**Invariants enforced:**
|
|
- Synaptic weights within certified bounds
|
|
- Network spectral radius < 1.0 (stability guarantee)
|
|
- Spike rate bounded by reflex-tier proof
|
|
|
|
**Result:** Neuromorphic learning with formal stability certificates. Plasticity is governed, not tuned.
|
|
|
|
### 3.4 Quantum → Verified Unitary Evolution
|
|
|
|
**Without proof gate:** Quantum circuits drift from unitarity due to noise and approximation. Error correction is probabilistic.
|
|
|
|
**With proof gate:**
|
|
```rust
|
|
// Quantum state update proves unitary invariance
|
|
let proposed_unitary = quantum_gate.matrix();
|
|
let unitarity_proof = prove_unitary(&mut env,
|
|
matrix: proposed_unitary,
|
|
tolerance: 1e-15
|
|
)?;
|
|
// Prove error syndrome is correctable
|
|
let syndrome = measure_stabilizers(&quantum_state);
|
|
let correction_proof = prove_correctable_syndrome(&mut env,
|
|
code: &surface_code,
|
|
syndrome: &syndrome
|
|
)?;
|
|
```
|
|
|
|
**Invariants enforced:**
|
|
- No invalid unitary drift
|
|
- Error syndromes verified correctable before correction applied
|
|
- Topological code transitions carry structural proofs
|
|
|
|
**Result:** Quantum computation with structural safety envelope. Not probabilistically correct — proof-gated correct.
|
|
|
|
### 3.5 Self-Organizing → Controlled Emergence
|
|
|
|
**Without proof gate:** Morphogenetic growth is unbounded. Topology mutation can create pathological structures. Autopoiesis is hand-tuned.
|
|
|
|
**With proof gate:**
|
|
```rust
|
|
// Growth step requires developmental invariant proof
|
|
let proposed_topology = morphogenetic_step(¤t_graph, growth_rule);
|
|
|
|
let growth_proof = prove_developmental_invariant(&mut env,
|
|
max_nodes: growth_budget,
|
|
max_degree: degree_bound,
|
|
connectivity: ConnectivityClass::Connected,
|
|
current: ¤t_graph,
|
|
proposed: &proposed_topology
|
|
)?;
|
|
// Deep tier: this is a rare, structural mutation
|
|
```
|
|
|
|
**Invariants enforced:**
|
|
- Topology mutation within growth budget
|
|
- Connectivity preserved through development
|
|
- Degree distribution remains within certified bounds
|
|
|
|
**Result:** Self-organization that is bounded. The system grows, but within a formal envelope.
|
|
|
|
### 3.6 Formally Verified Learning → Proof-Carrying Epochs
|
|
|
|
**Without proof gate:** Training is a black box. Gradient steps may violate fairness, increase loss, or break equivariance without detection.
|
|
|
|
**With proof gate:**
|
|
```rust
|
|
// Each gradient step produces a Lipschitz certificate
|
|
let gradients = backprop(&model, &batch);
|
|
let proposed_weights = apply_gradients(&model, &gradients, lr);
|
|
|
|
let lipschitz_proof = prove_lipschitz_bound(&mut env,
|
|
old_weights: &model.weights(),
|
|
new_weights: &proposed_weights,
|
|
bound: certified_lipschitz_constant
|
|
)?;
|
|
let monotonicity_proof = prove_loss_decrease(&mut env,
|
|
old_loss, new_loss
|
|
)?;
|
|
```
|
|
|
|
**Invariants enforced:**
|
|
- Lipschitz continuity per epoch
|
|
- Loss monotonicity (or bounded increase)
|
|
- Equivariance preservation across updates
|
|
|
|
**Result:** Training history is replayable with proof certificates. Every epoch is auditable.
|
|
|
|
### 3.7 Hyperbolic/Mixed-Curvature → Governed Geometry
|
|
|
|
**Without proof gate:** Mixed-curvature products silently produce geometry mismatches. Parallel transport accumulates holonomy errors.
|
|
|
|
**With proof gate:**
|
|
```rust
|
|
// Curvature compatibility proof before manifold merge
|
|
let curvature_a = manifold_a.sectional_curvature();
|
|
let curvature_b = manifold_b.sectional_curvature();
|
|
|
|
let compatibility_proof = prove_curvature_compatible(&mut env,
|
|
curvature_a, curvature_b,
|
|
product_structure: ProductManifold::HxRxS
|
|
)?;
|
|
// Parallel transport proves holonomy bound
|
|
let transport_proof = prove_holonomy_bound(&mut env,
|
|
path: &geodesic,
|
|
max_holonomy: holonomy_tolerance
|
|
)?;
|
|
```
|
|
|
|
**Invariants enforced:**
|
|
- No geometry mismatch corruption in product manifolds
|
|
- Holonomy bounded along transport paths
|
|
- Lie group membership verified before equivariant operations
|
|
|
|
**Result:** Geometry becomes governed. Curvature is not approximate — it is certified.
|
|
|
|
### 3.8 Temporal/Causal → Formalized Memory Drift
|
|
|
|
**Without proof gate:** Temporal graph updates can violate causal ordering. Retrocausal smoothing may corrupt forward state. Granger inference is statistical, not structural.
|
|
|
|
**With proof gate:**
|
|
```rust
|
|
// Temporal mutation proves causal consistency
|
|
let proposed_edge = TemporalEdge {
|
|
src: node_a, dst: node_b,
|
|
timestamp: t_new
|
|
};
|
|
let causal_proof = prove_causal_consistency(&mut env,
|
|
graph: &temporal_graph,
|
|
new_edge: &proposed_edge,
|
|
causal_order: &partial_order
|
|
)?;
|
|
```
|
|
|
|
**Invariants enforced:**
|
|
- No mutation that violates causal partial order
|
|
- Granger inference steps carry structural certificates
|
|
- Time-gated mutation prevents illegal retrocausal updates in online mode
|
|
|
|
**Result:** Memory drift is formalized. Temporal state cannot be silently corrupted.
|
|
|
|
### 3.9 Economic → Economics as Law
|
|
|
|
**Without proof gate:** Agent incentives are soft constraints. Nash equilibria are computed but not enforced. Token budgets drift.
|
|
|
|
**With proof gate:**
|
|
```rust
|
|
// Market mutation requires incentive compatibility proof
|
|
let proposed_trade = Trade {
|
|
agent: agent_id,
|
|
bid: attention_price,
|
|
resource: subgraph_access
|
|
};
|
|
let ic_proof = prove_incentive_compatible(&mut env,
|
|
mechanism: &vcg_mechanism,
|
|
trade: &proposed_trade,
|
|
truthful: true
|
|
)?;
|
|
let budget_proof = prove_budget_invariant(&mut env,
|
|
agent_balance: agent.balance(),
|
|
cost: proposed_trade.cost(),
|
|
min_balance: 0
|
|
)?;
|
|
```
|
|
|
|
**Invariants enforced:**
|
|
- Mechanism design constraints (truthfulness, individual rationality)
|
|
- Budget balance cannot go negative
|
|
- Nash equilibrium conditions verified before trade execution
|
|
|
|
**Result:** Economics is not policy — it is law. The mechanism is the enforcement.
|
|
|
|
### 3.10 Consciousness/AGI → Bounded Self-Reference
|
|
|
|
**Without proof gate:** Global workspace broadcasts hallucinated state. Self-referential loops diverge. Integrated information is unmeasured.
|
|
|
|
**With proof gate:**
|
|
```rust
|
|
// Global workspace broadcast requires coherence threshold
|
|
let candidate_broadcast = workspace.highest_activation();
|
|
let coherence = compute_phi(&candidate_broadcast, &workspace);
|
|
|
|
let broadcast_proof = prove_coherence_threshold(&mut env,
|
|
phi: coherence,
|
|
threshold: MIN_BROADCAST_PHI,
|
|
// Must exceed min-cut coherence boundary
|
|
mincut_coherence: graph.mincut_coherence()
|
|
)?;
|
|
// Self-referential loop bounded by depth proof
|
|
let loop_proof = prove_recursion_depth(&mut env,
|
|
current_depth: self_model.depth(),
|
|
max_depth: MAX_SELF_REFERENCE_DEPTH
|
|
)?;
|
|
```
|
|
|
|
**Invariants enforced:**
|
|
- No hallucinated global broadcast (coherence threshold gating)
|
|
- Self-referential loops bounded by structural depth invariant
|
|
- Integrated information exceeds minimum before state becomes "conscious"
|
|
|
|
**Result:** Self-reference that cannot diverge. Consciousness-like properties are not emergent accidents — they are gated structural properties.
|
|
|
|
## 4. Local vs Global: The Same Mechanism at Different Scales
|
|
|
|
### The Hard Question
|
|
|
|
> Do you want proof to certify local invariants only, or global system coherence as well?
|
|
|
|
### The Answer: Both, Because They're the Same Algebra
|
|
|
|
**Local proof:** `prove_dim_eq(384, 384)` → attestation (82 bytes)
|
|
|
|
**Composed proof:** `compose_chain([stage_1, stage_2, stage_3])` → pipeline attestation
|
|
|
|
**Global coherence:** `min_cut(graph) → partitions → compose(partition_proofs) across cut edges`
|
|
|
|
The key insight:
|
|
|
|
```
|
|
Global coherence = transitive closure of local proof composition
|
|
across min-cut partition boundaries
|
|
```
|
|
|
|
There is no separate "global verifier." The proof algebra **is** the coherence protocol.
|
|
|
|
### How It Works
|
|
|
|
```
|
|
┌─────────────────────────────────┐
|
|
│ Global System │
|
|
│ │
|
|
│ ┌──────────┐ ┌──────────┐ │
|
|
│ │Partition A│ │Partition B│ │
|
|
│ │ │ │ │ │
|
|
│ │ proof_A │ │ proof_B │ │
|
|
│ │ = compose│ │ = compose│ │
|
|
│ │ (local │ │ (local │ │
|
|
│ │ proofs) │ │ proofs) │ │
|
|
│ └────┬─────┘ └─────┬────┘ │
|
|
│ │ cut edges │ │
|
|
│ │ ┌────────┐ │ │
|
|
│ └──┤att_A ├──┘ │
|
|
│ │att_B │ │
|
|
│ │type_eq │ │
|
|
│ └────────┘ │
|
|
│ │
|
|
│ global_proof = compose( │
|
|
│ proof_A, proof_B, │
|
|
│ cut_edge_proofs │
|
|
│ ) │
|
|
└─────────────────────────────────┘
|
|
```
|
|
|
|
**This is not consensus.** Consensus asks: "do we agree?" Proof composition asks: "is this structurally valid?" The answer is computed, not negotiated.
|
|
|
|
### Scaling Properties
|
|
|
|
| Scope | Proof Type | Cost | Guarantee |
|
|
|-------|-----------|------|-----------|
|
|
| Single operation | Local proof | ~500ns | Invariant holds for this mutation |
|
|
| Pipeline | Composed proof | ~1.2μs | Invariant holds across N stages |
|
|
| Partition | Partition proof | ~O(k) local proofs | Invariant holds within partition |
|
|
| Global | Cross-cut composition | ~O(cut_size) compositions | **System-wide coherence** |
|
|
|
|
The cost of global coherence is **O(cut_size)**, not O(n). Min-cut minimizes this by definition. The proof system and the partitioning system are co-optimized.
|
|
|
|
## 5. What This Actually Builds
|
|
|
|
This is not 10 research directions with a verification layer on top.
|
|
|
|
This is **one governed intelligence fabric** with 10 mutation domains.
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────┐
|
|
│ Proof-Gated Mutation Substrate │
|
|
│ │
|
|
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
|
│ │ Scalable│ │ Physics │ │ Biology │ ...7 more │
|
|
│ │ Attn │ │ Sim │ │ Neuro │ │
|
|
│ └────┬────┘ └────┬────┘ └────┬────┘ │
|
|
│ │ │ │ │
|
|
│ ▼ ▼ ▼ │
|
|
│ ┌─────────────────────────────────────┐ │
|
|
│ │ prove() → attestation → mutate │ │
|
|
│ │ │ │
|
|
│ │ Reflex (<10ns) │ Standard (<1μs) │ │
|
|
│ │ Standard (<1μs) │ Deep (<100μs) │ │
|
|
│ └─────────────────────────────────────┘ │
|
|
│ │ │ │ │
|
|
│ ▼ ▼ ▼ │
|
|
│ ┌─────────────────────────────────────┐ │
|
|
│ │ compose_chain() across partitions │ │
|
|
│ │ min-cut boundaries = proof scope │ │
|
|
│ │ global coherence = Σ(local proofs) │ │
|
|
│ └─────────────────────────────────────┘ │
|
|
│ │
|
|
│ This is a governed intelligence fabric. │
|
|
│ Not 10 features. One substrate. │
|
|
└─────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## 6. The RuVector Position
|
|
|
|
RuVector already has:
|
|
|
|
| Component | Crate | Role in Substrate |
|
|
|-----------|-------|-------------------|
|
|
| Proof engine | `ruvector-verified` | Gate: prove before mutate |
|
|
| Attestation | `proof_store` | Witness: 82-byte proof receipts |
|
|
| Composition | `compose_chain` | Algebra: local → regional → global |
|
|
| Partitioning | `ruvector-mincut` | Boundary: defines proof scope |
|
|
| Coherence | `ruvector-coherence` | Measurement: Phi / coherence metrics |
|
|
| Gated routing | `gated::route_proof` | Tiering: reflex / standard / deep |
|
|
| Arena dedup | `FastTermArena` | Performance: <2ns cached proofs |
|
|
| Type system | `lean-agentic` | Foundation: dependent types |
|
|
|
|
The substrate exists. The 10 axes are instantiation targets.
|
|
|
|
## 7. Formal Thesis: Proof-Gated Cognition as Compositional Coherence
|
|
|
|
### Definition
|
|
|
|
**Proof-gated cognition** is a system where:
|
|
|
|
1. **Local mutation** is only permitted if accompanied by a proof term.
|
|
|
|
```
|
|
prove(invariant) → mutate(state) → attest(proof)
|
|
```
|
|
|
|
2. **Proofs compose.** If P₁ proves invariant I₁ and P₂ proves invariant I₂, and composition rule C is itself proven, then:
|
|
|
|
```
|
|
P₁ ⊗ P₂ ⊢ I₁ ∧ I₂
|
|
```
|
|
|
|
3. **Min-cut defines structural boundary.** A cut partitions the graph into regions R₁ and R₂.
|
|
|
|
4. **If every mutation inside R₁ and R₂ is proof-gated, and every cross-boundary edge carries an attested proof, then the entire graph is coherent by construction.**
|
|
|
|
No separate global validator is required.
|
|
|
|
> **Global coherence is the transitive closure of locally gated mutations over a graph whose boundaries are structurally defined.**
|
|
|
|
### The Three Layers of Law
|
|
|
|
All three layers use the same primitive: proof term + attestation + capability-gated mutation.
|
|
|
|
| Layer | Scope | Invariants | Example |
|
|
|-------|-------|------------|---------|
|
|
| **Layer 1: Atomic** | Single operation | Dimension equality, metric compatibility, type safety, pipeline legality | `prove_dim_eq(384, 384)` |
|
|
| **Layer 2: Composed** | Pipeline / region | Stage chaining, index mutation, learning step bounds, quantization constraints | `compose_chain([embed, transform, classify])` |
|
|
| **Layer 3: Graph** | System-wide | Min-cut boundary integrity, attestation chain continuity, no mutation without cross-cut proof | `compose(proof_A, proof_B, cut_edge_proofs)` |
|
|
|
|
### Key Properties
|
|
|
|
- **Min-cut is not just a sensor — it is a jurisdiction boundary.** Attestations crossing the cut are the only legal imports and exports of state.
|
|
- **Coherence scales with graph topology, not central authority.** If local proofs are small and fast, and composition is associative, billion-node cognition requires no global lock.
|
|
- **One compositional proof engine + one structural boundary detector + one attestation fabric = everything else is instantiation.**
|
|
|
|
## 8. Monotonic vs Revocable: Mathematics or Law?
|
|
|
|
### The Question
|
|
|
|
> Once a mutation is attested, can it be invalidated?
|
|
|
|
Two choices:
|
|
|
|
**Monotonic (mathematics):** An attested proof is permanent. The attestation chain is append-only. No proof can retroactively invalidate a prior attestation. Rollback requires a new, forward proof that explicitly supersedes.
|
|
|
|
**Revocable (law):** Later proofs can retroactively invalidate earlier regions. A higher-authority proof can revoke attestations, creating a partial order of proof validity.
|
|
|
|
### The Answer: Monotonic by Default, Revocation as Explicit Second-Class Operation
|
|
|
|
**Monotonic is correct for the base layer.** Here's why:
|
|
|
|
1. **Composition requires monotonicity.** If P₁ ⊗ P₂ is valid, and later P₁ is revoked, then P₁ ⊗ P₂ is invalidated — but any proof P₃ that depended on P₁ ⊗ P₂ is also invalidated. Revocation cascades. In a billion-node graph, cascade analysis is O(n) in the worst case. This destroys the sublinear scaling property.
|
|
|
|
2. **Monotonicity preserves the transitive closure property.** If global coherence = transitive closure of local proofs, and local proofs are permanent, then global coherence is stable. Add proofs, never remove them. The coherence metric only increases.
|
|
|
|
3. **Rollback is a forward operation.** Instead of revoking attestation A₁, you produce a new proof P_rollback that:
|
|
- Proves A₁'s invariant no longer holds (e.g., the external world changed)
|
|
- Establishes a new invariant I₂ that supersedes I₁
|
|
- Attests P_rollback as a successor to A₁
|
|
|
|
```rust
|
|
// Monotonic rollback: not revocation, but supersession
|
|
let rollback_proof = prove_supersession(&mut env,
|
|
original: attestation_a1,
|
|
reason: SupersessionReason::InvariantViolated {
|
|
old_invariant: dim_eq_384,
|
|
new_invariant: dim_eq_512, // dimension changed
|
|
}
|
|
)?;
|
|
let new_attestation = create_attestation(&env, rollback_proof);
|
|
// A₁ is still in the chain. It was valid when issued.
|
|
// new_attestation supersedes it going forward.
|
|
```
|
|
|
|
4. **The attestation chain is a log, not a ledger.** Like an append-only log (think: git, blockchain, event sourcing), you never rewrite history. You add new entries that reinterpret it.
|
|
|
|
### Why This Is Simpler
|
|
|
|
| Property | Monotonic | Revocable |
|
|
|----------|-----------|-----------|
|
|
| Composition | Always valid (append-only) | Requires cascade analysis |
|
|
| Global coherence | Stable (only increases) | Can decrease retroactively |
|
|
| Audit | Complete history preserved | History can be rewritten |
|
|
| Scaling | O(cut_size) for coherence | O(n) worst case for revocation cascade |
|
|
| Implementation | Append-only attestation chain | Requires validity DAG + garbage collection |
|
|
|
|
**Mathematics is simpler.** The system behaves like a proof assistant, not a legal system. Proofs are permanent. New proofs can supersede old ones, but the old proofs remain valid in their original context.
|
|
|
|
### The Exception: Epoch Boundaries
|
|
|
|
There is one place where revocation semantics are useful: **epoch transitions.**
|
|
|
|
When the system upgrades its proof algebra (new invariants, new types, new composition rules), a clean epoch boundary allows:
|
|
|
|
```
|
|
Epoch N: all proofs valid under algebra A_N
|
|
─────────── epoch boundary ───────────────
|
|
Epoch N+1: all proofs valid under algebra A_{N+1}
|
|
proofs from epoch N are "sealed" — valid but non-composable with N+1 proofs
|
|
cross-epoch composition requires an explicit migration proof
|
|
```
|
|
|
|
This is how you handle proof evolution without invalidating existing chains. Old proofs are not revoked — they are sealed into their epoch and require a migration proof to participate in new compositions.
|
|
|
|
## 9. Constitutional Cognition
|
|
|
|
What emerges from this framework is not a collection of verified components. It is a **constitution for machine cognition.**
|
|
|
|
The constitution says:
|
|
|
|
1. No mutation without proof. (Due process)
|
|
2. Proofs compose transitively. (Rule of law applies uniformly)
|
|
3. Min-cut boundaries define jurisdiction. (Federalism)
|
|
4. Attestations are permanent. (Precedent)
|
|
5. Supersession requires explicit forward proof. (Amendment process)
|
|
6. Epoch boundaries seal prior law. (Constitutional convention)
|
|
|
|
This is not a metaphor. These are structural properties of the proof algebra that happen to mirror constitutional principles because both solve the same problem: **how to maintain coherence in a distributed system without central authority.**
|
|
|
|
## 10. Open Questions
|
|
|
|
1. **Cross-domain composition:** Can a physics proof compose with an economic proof? They have different type universes. The answer likely requires a shared meta-type system — a "constitution" that both domains reference.
|
|
|
|
2. **Proof cost under adversarial load:** What happens when an adversary forces all mutations into Deep tier? Defense: proof-of-work gating at the Deep tier boundary (you must spend computation to request expensive proofs).
|
|
|
|
3. **Incompleteness:** Gödel applies. Some invariants are undecidable. Defense: bounded fuel + escalation. If proof construction exceeds fuel budget, escalate to human oracle or reject mutation.
|
|
|
|
4. **Liveness:** Safety (nothing bad) is guaranteed by proof gating. Liveness (something good eventually happens) requires that the proof engine terminates. Defense: fuel bounds guarantee termination. The system may reject valid mutations, but it never deadlocks.
|
|
|
|
5. **Epoch migration cost:** Sealing an epoch and migrating proofs has non-trivial cost. How often can epochs transition? What is the minimum viable epoch length?
|
|
|
|
---
|
|
|
|
*This document is the foundational thesis for the graph transformer research program. The 10 axis documents (21-30) should be read as instantiations of this substrate, not independent research directions. The substrate is: one compositional proof engine, one structural boundary detector, one attestation fabric. Everything else is instantiation.*
|