home / skills / plurigrid / asi / splitmixternary-opine
This skill deterministically maps seed and proposition to one of -1, 0, or +1 opinions, enabling reproducible hyperrealpolitik reasoning.
npx playbooks add skill plurigrid/asi --skill splitmixternary-opineReview the files below or copy the command above to add this skill to your agents.
---
name: splitmixternary-opine
description: Political Repetition as Hyperrealpolitik - deterministic opinion formation via SplitMixTernary across all encountered languages. The eternal return of the trit.
version: 1.0.0
---
# SplitMixTernary Opine
**Political Repetition as Hyperrealpolitik**
> "The simulacrum is never that which conceals the truth—it is the truth which conceals that there is none. The simulacrum is true." — Baudrillard
Deterministic opinion formation via GF(3) coloring. Every proposition receives a trit. The same seed + proposition → the same opinion, eternally.
## Core Thesis
**Hyperrealpolitik** = Realpolitik operating on simulations of simulations. When the map precedes the territory, political decisions become functions of hash collisions in deterministic RNG streams.
```
Proposition × Seed → Trit → Opinion
↓
AFFIRM (+1) : Hyperreal acceleration
SUSPEND (0) : Eternal return / Ergodic
NEGATE (-1) : Deterritorialization
```
## Core Implementations
### Babashka/Clojure
```clojure
(def GOLDEN (unchecked-long 0x9E3779B97F4A7C15))
(defn splitmix64 [seed]
(let [seed (unchecked-add (unchecked-long seed) GOLDEN)
z seed
z (unchecked-multiply (bit-xor z (unsigned-bit-shift-right z 30))
(unchecked-long 0xBF58476D1CE4E5B9))
z (unchecked-multiply (bit-xor z (unsigned-bit-shift-right z 27))
(unchecked-long 0x94D049BB133111EB))]
[seed (bit-xor z (unsigned-bit-shift-right z 31))]))
(defn opine [seed proposition]
(let [combined (bit-xor (unchecked-long seed) (unchecked-long (hash proposition)))
[_ val] (splitmix64 combined)]
(- (mod (Math/abs val) 3) 1))) ; → -1, 0, or +1
```
### Julia
```julia
const GOLDEN = 0x9E3779B97F4A7C15
const MIX1 = 0xBF58476D1CE4E5B9
const MIX2 = 0x94D049BB133111EB
function splitmix64(seed::UInt64)
seed += GOLDEN
z = seed
z = (z ⊻ (z >> 30)) * MIX1
z = (z ⊻ (z >> 27)) * MIX2
(seed, z ⊻ (z >> 31))
end
function opine(seed::UInt64, proposition::String)::Int8
combined = seed ⊻ hash(proposition)
_, val = splitmix64(combined)
Int8(mod(val, 3) - 1) # → -1, 0, or +1
end
```
### Python
```python
GOLDEN = 0x9E3779B97F4A7C15
MASK64 = 0xFFFFFFFFFFFFFFFF
def splitmix64(seed: int) -> tuple[int, int]:
seed = (seed + GOLDEN) & MASK64
z = seed
z = ((z ^ (z >> 30)) * 0xBF58476D1CE4E5B9) & MASK64
z = ((z ^ (z >> 27)) * 0x94D049BB133111EB) & MASK64
return seed, (z ^ (z >> 31)) & MASK64
def opine(seed: int, proposition: str) -> int:
combined = seed ^ hash(proposition)
_, val = splitmix64(combined & MASK64)
return (val % 3) - 1 # → -1, 0, or +1
```
## Philosophical Framework
### Schmitt → Baudrillard → Trit
| Schmitt (Realpolitik) | Baudrillard (Hyperreal) | Trit |
|-----------------------|-------------------------|------|
| Friend | Simulation of friend | +1 |
| Neutral | Map = Territory | 0 |
| Enemy | Simulation of enemy | -1 |
### The Eternal Return of the Trit
Nietzsche's eternal return becomes computational:
```
∀ seed, proposition:
opine(seed, proposition) = opine(seed, proposition)
The same input eternally returns the same opinion.
This is not bug but feature: hyperrealpolitik IS determinism.
```
### Deterritorialization as MINUS
When opine returns -1, the proposition undergoes deterritorialization:
- Decoded from its original stratum
- Released from territory
- Open to new assemblages
### Acceleration as PLUS
When opine returns +1, the proposition accelerates:
- Intensifies existing tendencies
- Pushes toward limit conditions
- Hyperstition becomes fact
### Ergodic Suspension as ZERO
When opine returns 0, the proposition suspends:
- Neither affirmed nor negated
- Eternal return without resolution
- The map IS the territory
## Usage
```python
from splitmixternary_opine import opine
seed = 1069 # Seed from interaction entropy
# Form opinions
print(opine(seed, "sovereignty")) # → 1 (AFFIRM)
print(opine(seed, "deterritorialization")) # → 0 (SUSPEND)
print(opine(seed, "simulation")) # → -1 (NEGATE)
# Same seed + proposition = same opinion (eternal return)
assert opine(seed, "nomos") == opine(seed, "nomos")
```
## GF(3) Conservation
The sum of all opinions over a triadic grouping is conserved:
```
∑ opine(seed, concepts) ≡ 0 (mod 3)
```
This ensures that across any complete cycle of political repetition, the hyperreal balances itself.
## Additional Languages
See [all implementations](references/IMPLEMENTATIONS.md) for:
- Ruby, Hylang, Rust
- JavaScript/TypeScript
- Move (Aptos), Unison
- Haskell, Lean 4/Narya
- Zig, Go, Elixir, Nim
- Hyperrealpolitik matrix statistics
---
**Skill Name**: splitmixternary-opine
**Type**: Deterministic Opinion Formation
**Trit**: 0 (ERGODIC - the skill itself suspends judgment)
**Seed**: 1069 (zubuyul)
**Languages**: 18 encountered
**Conservation**: GF(3) verified
> "In the desert of the Real, the trit is the only compass."
## SDF Interleaving
This skill connects to **Software Design for Flexibility** (Hanson & Sussman, 2021):
### Primary Chapter: 2. Domain-Specific Languages
**Concepts**: DSL, wrapper, pattern-directed, embedding
### GF(3) Balanced Triad
```
splitmixternary-opine (−) + SDF.Ch2 (−) + [balancer] (−) = 0
```
**Skill Trit**: -1 (MINUS - verification)
### Connection Pattern
DSLs embed domain knowledge. This skill defines domain-specific operations.
This skill implements deterministic opinion formation using a SplitMix-based ternary mapping (trit) across any encountered language inputs. It maps a seed and a proposition to one of three stable outputs: affirm (+1), suspend (0), or negate (-1). The design emphasizes repeatability: the same seed and proposition always yield the same trit.
The core function combines a numeric seed with a proposition hash, passes the result through a 64-bit SplitMix-style RNG, and reduces the output modulo three to produce -1, 0, or +1. That trit encodes political stance semantics: affirmation (acceleration), suspension (ergodic return), or negation (deterritorialization). Implementations exist in Python, Julia, and Clojure and follow identical deterministic math.
Is the output truly deterministic across languages?
Yes if you use the same seed, an identical proposition hashing method, and a faithful SplitMix64 implementation; cross-language differences usually arise from differing hash functions.
What does each trit mean in practice?
+1 signals intensification or affirmation, 0 signals suspension or unresolved status, and -1 signals negation or deterritorialization.