# ternary-version
Version vectors with ternary comparison for distributed GPU state. {+1=newer, 0=concurrent, -1=older}. Conflict detection, merge, dominance.
## Why This Matters
# ternary-version
Version vectors with ternary comparison for distributed GPU state.
## The Five-Layer Stack
This crate is part of the **Oxide Stack** — a distributed GPU runtime built on five layers:
```
┌─────────────────┐
│ cudaclaw │ Persistent GPU kernels, warp consensus, SmartCRDT
├─────────────────┤
│ cuda-oxide │ Flux → MIR → Pliron → NVVM → PTX compiler
├─────────────────┤
│ flux-core │ Bytecode VM + A2A agent protocol
├─────────────────┤
│ pincher │ "Vector DB as runtime, LLM as compiler"
├─────────────────┤
│ open-parallel │ Async runtime (tokio fork)
└─────────────────┘
```
The key insight: **ternary values {-1, 0, +1} map directly to GPU compute**. They pack 16× denser than FP32, enable XNOR+popcount matmul, and conservation laws become compile-time checks.
## Design
Every value in this crate follows **ternary algebra** (Z₃):
| +1 | Positive / Active / Healthy | Warp vote yes |
| 0 | Neutral / Pending / Balanced | Warp vote abstain |
| -1 | Negative / Failed / Overloaded | Warp vote no |
This isn't arbitrary — ternary is the natural encoding for:
1. **BitNet b1.58** (Microsoft) — ternary LLMs at 60% less power
2. **GPU warp voting** — hardware ballot returns ternary consensus
3. **Conservation laws** — {-1, 0, +1} preserves quantity
## Key Types
```rust
pub enum VersionOrder
pub struct VersionVector
pub fn new
pub fn increment
pub fn get
pub fn set
pub fn compare
pub fn merge
pub fn is_empty
pub fn node_count
pub struct ConflictResolver
pub fn new
```
## Usage
```toml
[dependencies]
ternary-version = "0.1.0"
```
```rust
use ternary_version::*;
// See src/lib.rs tests for complete working examples
```
## Testing
```bash
git clone https://github.com/SuperInstance/ternary-version.git
cd ternary-version
cargo test # 8 tests
```
## Stats
| Tests | 8 |
| Lines of Rust | 166 |
| Public API | 14 items |
## License
Apache-2.0