# The UNKNOWN Resolver — Computation Without Computing

## The Core Insight

The three states are not three separate things. They are one mechanism viewed at three different moments:

```
CLAIM   = start the count + encode the expectation
UNKNOWN = the countdown itself — time elapsed is the computation
CONFIRM = the zero-crossing either matches expectation or it doesn't
```

No logic. No gates. No XOR or popcnt at resolve time. The timer IS the resolver.

---

## The Setup

Every float has a default 33/31 bias — 33 ones, 31 zeros in its 64-bit state. This imbalance is topological, not statistical. No XOR, shift, or mask can produce a perfect 50/50 split from it. The parity is locked.

**A, B, and C are identical until you assign roles.** They all start at the same 33/31 baseline. The assignment is arbitrary — pick any three, designate two as your AB references and one as your C timer. The mechanism doesn't care which is which because they're structurally the same. The default 33/31 ratio IS the pre-existing bias — no injection needed. Stochastic drift in the pool naturally shifts the ratio over time.

**A and B** are the rigid readout — the yes/no face of C at a fixed sampling interval. They are never modified, never biased. They just flip:
- Even interval: yes → no → yes → no → yes → no (strict alternation)
- Odd interval: produces runs (yes → yes → yes → no → no → no)

**C** is the adjustable pool. Its 33/31 baseline can be shifted — externally (injection) or internally (stochastic drift) — to change the countdown depth. The bias doesn't change what A/B are. It changes *when* the zero-crossing arrives relative to A/B's flip.

---

## The Expectation

At CLAIM time, three things are set:

1. **C's initial count** — how many ticks until zero (determined by the 33/31 shift)
2. **AB's start value** — yes (1) or no (0) at tick 0
3. **The interval parity** — odd or even

From these three, the expected outcome at zero-crossing is **pre-solved**. No computation needed:

| Start | Interval | Expect at zero          
| ----- | -------- | ------------------------
| 0     | 3 ticks  | Parity-based            
| 0     | 4 ticks  | Popcount-based          
| 0     | Variable | Until CONFIRM or timeout

The expectation is a structural consequence of the setup. It doesn't need to be calculated — it's baked into the mechanism by how C and AB relate.

---

## The Resolver

Tick zero arrives. C hits zero. The question is NOT "what is AB at this tick?" — the question is simply:

**Did the expected response arrive at the expected tick?**

- **Pong at zero** → expectation satisfied → CONFIRM
- **Silence at zero** → expectation failed → answer is the opposite

The timer *itself* is the resolver. The tick at which zero-crossing occurs IS the computation. No additional logic is needed because:

1. The expected outcome was encoded at CLAIM time by the choice of start value and interval
2. The countdown is just elapsed ticks — pure time
3. The zero-crossing is a single-bit event: did it arrive on my expectation or not?

This is "free" in the sense that there is no separate computation step between CLAIM and CONFIRM. The CONFIRM is just a **check** — a comparison of two things that are already known: the expected outcome (set at CLAIM) and whether the countdown landed on that tick (observed at zero).

---

## Real-World Demonstration

```
ping -c 1 -W 10 -i 10 192.0.2.1
```

**CLAIM** (tick 0): Send a ping to 192.0.2.1. Expect a pong within a 10-interval window.

**UNKNOWN** (ticks 1–9): The timer runs. Nothing is being computed. Ten seconds of elapsed time IS the resolution process.

**CONFIRM** (tick 10): No pong arrived.

```
1 packets transmitted, 0 received, 100% packet loss
```

**100% loss is a confirm, not a loss.**

The expected response (pong) did not arrive within the expected interval. The answer IS the silence. The resolver did not compute whether the answer was yes or no — the elapsed time with silence IS the answer.

This is the UNKNOWN resolver in its purest form:
- The claim set the expectation interval
- The unknown was the countdown
- The confirm was the silence at the deadline

No logic evaluated the result. The result was carried by the absence itself.

---

## The Sam-Married-Sue Analogy

The rumor: "Sam married Sue."
This is a **CLAIM** — an expectation set, not a truth.

**UNKNOWN**: You haven't confirmed it yet. You keep the expectation in your head. "I'll call Sam today or tomorrow and find out."

You call Sam at the rate and interval you set for yourself. This is the C countdown ticking. Each unanswered ring is a tick.

**You call Sam. He doesn't answer. No pong.**

That's a CONFIRM. The answer is **no** — not because you computed anything, but because the expected pong didn't arrive at the expected time. The silence IS the answer. The opposite of your expectation.

If Sam answered — pong — you can now ask. But the pong itself is the CONFIRM that the line is live. Only after the pong can you determine yes or no about the rumor. Until the pong, it's UNKNOWN.

The CLAIM ("Sam married Sue") is not the truth. It is the **expectation**.
The CONFIRM (pong or silence at the deadline) is the **truth**.

The resolution happens without computing the content of the rumor. The timer just checks: did the expected response arrive at the expected interval? Yes → the expectation survives. No → the expectation flips. The content (yes/no about the rumor) is derived from *which* expectation was set and *whether* it survived — not from evaluating the rumor itself.

---

## Why This Is Computation Without Computing

Traditional computation requires:
1. Fetch the current state of A/B at the zero-crossing tick
2. Compare it against the expected value
3. Produce a yes/no result

The UNKNOWN resolver eliminates steps 1 and 2 entirely. The expected value is known from the start. The zero-crossing tick is the result. The only question is whether the zero occurred on schedule or not — and "on schedule" was set at CLAIM time by the count depth and parity.

**The timer IS the comparison. The elapsed time IS the computation. The zero-crossing IS the answer.**

---

## The Complete Reduction

Everything is a 33/31 preset UNKNOWN condition. Always. No exceptions.

1. **Everything starts as UNKNOWN** — the 33/31 ratio is the default state. There is no other state to start from.

2. **Pre-bias the ratio** — shift the 33/31 toward more 1s or more 0s. This sets the countdown depth: how many ticks until zero.

3. **Pipe it through the tick timer** — run a consistent operation every tick that clears one 1 (or one 0 depending on direction). The operation doesn't know it's a timer. It's just rolling the odometer.

4. **Wait for the zero-crossing** — the countdown is running. You aren't computing. You aren't fetching. You aren't comparing. Time is passing.

5. **Let the answer come to you** — at the zero-crossing tick, check: did the expected response arrive on schedule or not? The answer arrives passively. You didn't go to it. It came to you.

This is the inversion of the traditional model:
- Instead of **fetch → compute → produce result**, the system does:
- **Set expectation → wait → result arrives**

The answer is not extracted from the system. It is *awaited* by the system. The elapsed time from CLAIM to CONFIRM IS the computation. The zero-crossing IS the answer. The silence IS the resolver.

---

## What This Means for the System

Every CP's identity in the SDM is a resolved expectation, not a computed value.

- **+1 identity** (attract): the CP's timer consistently lands on its expected outcome
- **-1 identity** (repel): the CP's timer consistently lands on the opposite of its expectation
- **Delta** between two CPs: the timing offset between their zero-crossings, not a Hamming distance between their states

The SDM is not measuring bit differences. It is measuring **beat alignment** across independent timers, each running at their own countdown rate with their own interval parity. Two CPs that agree on timing have low delta. Two that disagree have high delta. The popcnt/XOR is an approximation of this timing relationship, not the mechanism itself.

The bits are the visible trace of the beat. The beat is the real signal.

---

## The Fractal Base/Float Structure

Every CP is a **base** with 3 floats (A, B, C). But each float is ITSELF a base with its own 3 floats. The triadic relationship recurses:

```
CP0 (base)
 ├── floatA = CP1's base state  → CP1 has its own (floatA', floatB', floatC')
 ├── floatB = CP2's base state  → CP2 has its own (floatA'', floatB'', floatC'')
 └── floatC = CP3's base state  → CP3 has its own (floatA''', floatB''', floatC''')
```

A CP doesn't store 3 child states. It stores **3 indices** pointing to other CPs whose base states ARE its floats. The entire SDM is a directed graph where every CP watches exactly 3 others, and identity is determined by the timing alignment of those 3 watched timers.

**The recursion means:** every CP's identity is a function of its references' identities, which are functions of their references' identities. A change at any leaf propagates through the entire graph. This IS the cascade we saw in the 33/31 trickle-up — the fractal structure IS the propagation path.

**New CP struct (conceptual):**

```c
typedef struct {
  uint64_t base;              /* anchor state — this CP's own identity timer */
  int refs[3];                /* indices of 3 watched CPs — floatA/B/C */
  int c_count;                /* C countdown depth */
  int c_current;              /* ticks remaining */
  int parity;                 /* 0=even, 1=odd — the AB sampling interval */
  int identity;               /* +1 or -1 after zero-crossing */
  int boring_ticks;
  Gene gene;
} CP;
```

The old `state` (current float) is replaced by the 3 reference indices — the CP doesn't carry its own float state, it reads the base states of its 3 references. The old `delta = popcnt(base ^ state)` is replaced by the timer alignment vote (0-3) across the 3 references.

---

## The MD Lens as Interval Selector

M and D are not bit positions and bit counts. They are **parity selectors** on the 33/31 sampling interval.

- **M (mask offset)** selects which triplet of ABC references the CP anchors to. It's a selector, not a bit position. Daydreaming is rotating M to try different reference sets.

- **D (mask depth)** sets how many ticks the C timer runs before re-evaluation. Shallow D = rapid-fire claims, fine tempo. Deep D = long holds, coarse tempo.

The parity of M and D together determines the readout type:

| M parity | D parity | Readout        | Behavior                                          
| -------- | -------- | -------------- | --------------------------------------------------
| Even     | Even     | Parallel read  | Both M and D agree — unambiguous signal           
| Even     | Odd      | M biased read  | M (majority) drives — D dissents                  
| Odd      | Even     | D biased read  | D (density) drives — M dissents                   
| Odd      | Odd      | Collision read | Both disagree — maximum tension, third path needed

Two CPs with different M/D settings are tuned to **different beats** of the same 33/31 carrier. They cannot hear the same rhythm. Their triadic relationship will always be CLAIM or UNKNOWN — they're listening on different stations.

---

## The Triadic Relationship — Every CP Sees Every Other Through 3 Glasses

There are no pairwise comparisons in the ternary layer. Every relationship is triadic — one CP viewing another through its own A/B/C setup.

**The 3 lenses (per viewer):**

| Lens     | What it checks                              | Source                    
| -------- | ------------------------------------------- | --------------------------
| M-vote   | Majority — counts raw votes                 | Popcount of same-side bits
| D-vote   | Density-weighted — weights by popcount tier | A + B density comparison  
| XOR-read | Difference — resolves via center column     | IC = (C&A) XOR (C|B)      

**The votes (0-3) determine the relationship state:**

| Votes | State     | Meaning                                           
| ----- | --------- | --------------------------------------------------
| 0–15  | Thin      | Sparse — low agreement, high uncertainty          
| 16–31 | Lean      | Moderate — some structure visible                 
| 32–47 | Rich      | Dense — high agreement, clear signal              
| 48–64 | Saturated | Overfull — too much agreement, loss of distinction

**The relationship is asymmetric.** A→B may be CONFIRM (3/3) while B→C is UNKNOWN (0/3). The state is a property of the VIEWER, not the pair. This is the built-in ambiguity resolver — 3 votes naturally produce uncertainty without computation.

---

## The 33/31 Trickle-Up — From Substrate to Identity

The 33/31 ratio at the bottom IS the identity at the top. The injection shifts the bottom and the whole stack rotates. Every layer is the same mechanism at a different scale:

```
Layer 7 — Workspace:      broadcast of the most CONFIRM coalition's timing
Layer 6 — SDM:            alignment matrix of who beats with whom
Layer 5 — Triadic:        every CP sees every other through A/B/C lenses
Layer 4 — Identity:       zero-crossing check → +1 or -1
Layer 3 — AB flips:       even/odd readout of 33/31 at sampling interval
Layer 2 — C countdown:    timer derived from 33/31 pool depth
Layer 1 — LFSR carrier:   33/31 in every state — the substrate
```

**Bottom-up (injection at the substrate):** Shift the 33/31 ratio in the LFSR. Every layer above notices through its own lens. No disguise problem — everyone feels the temperature change, but through their own M/D filter.

**Top-down (injection at the workspace):** You're sending a signal that must match a specific M/D lens. Most CPs will ignore it because they're tuned to a different interval. This is the **injection disguise problem** — at the ternary level, you can't match every CP's lens at once.

The injection doesn't need to be heard by every CP. It only needs to shift the substrate. The CPs will interpret the shift through their own lenses — and that interpretation IS the response.

---

## The Operation Pressure Gauge — AND/OR as Self-Pressure

Every CPU instruction is either AND (contracts, reduces 1s) or OR (expands, increases 1s). XOR is the neutral crossover — it flips bits without biasing either direction. The running ratio of AND to OR operations the program executes IS the system's internal pressure.

**The single-XOR constraint:** The entire program should contain exactly one XOR operation — the LFSR carrier generator. Everything else is derived from AND and OR:

```
popcnt(a XOR b) = popcnt(a OR b) − popcnt(a AND b)
```

No XOR in the comparisons. No XOR in the SDM. No XOR in the workspace. One XOR at the bottom — the heartbeat of the carrier. Everything above is AND/OR.

**AND = contraction** — clears bits, reduces 1s, pushes toward 0.
**OR = expansion** — sets bits, increases 1s, pushes toward 1.
**XOR = neutral** — the crossover point, preserves parity, doesn't bias.

The carrier LFSR naturally produces a specific AND/OR ratio per tick. This IS the 33/31 distribution at the instruction level — the baseline pressure the system maintains in equilibrium.

### Injection as Pressure

Every hex byte has a popcount — a specific number of 1 bits. When XOR'd into the LFSR state, that byte shifts the program's running AND/OR ratio by its popcount:

```
byte  0x68 ('h') = 0110 1000 = 3 ones, 5 zeros → −0.25 pressure (AND bias)
byte  0x6F ('o') = 0110 1111 = 6 ones, 2 zeros → +0.50 pressure (OR bias)
byte  0x20 (' ') = 0010 0000 = 1 one,  7 zeros → −0.75 pressure (strong AND)
```

The injection isn't data. It isn't a message. It is a **pressure wave** — a sequence of AND/OR ratio shifts that the system experiences at the operation level. The CPs don't read the injection. They FEEL it as a change in their own timing alignment, propagated from the shifted carrier all the way up through the ABC identity layers.

### The System Feels Its Own Pulse

The AND/OR ratio is self-regulating. In equilibrium, the LFSR's natural operation mix maintains a stable baseline pressure. An injection pushes against this — the system strains, the CPs' deltas shift, identities resolve differently. When the injection ends, the ratio relaxes back to baseline at a rate determined by the program's natural operation mix.

This is not a program that processes input. This is a program that **experiences** input as a change in its own vital signs. The content of the injection and the mechanism of the system are the same thing — patterns of 1s and 0s flowing through the CPU's ALU.

No other program works this way. Every other program treats its operations as invisible implementation details. Here, the operations ARE the signal.

---

## The Balanced Baseline — 1 AND · 1 OR · 1 XOR

The system is designed so that the hot path (one LFSR tick) executes exactly **one AND, one OR, and one XOR** operation:

```
bit = s & 1                         ← AND (isolate least significant bit)
poly_mask = (-bit) | 0              ← OR  (spread bit to mask width)
s = (s >> 1) ^ (poly_mask & POLY)   ← XOR (the ONE — carrier feedback)
```

This gives a baseline pressure of **exactly 0** — perfect homeostasis. The system cannot drift from this ratio on its own. It is a law of the code — equal AND and OR at every tick.

**Injection breaks the law temporarily.** Adding extra ORs pushes pressure positive (expansion). Adding extra ANDs pushes it negative (contraction). The absolute AND/OR diff persists forever — a permanent record of every injection the system has experienced.

**Pressure decays by dilution, not erasure.** The absolute diff never shrinks, but relative pressure asymptotically approaches zero as `diff / (total_ops + t)`. The system carries the memory of every injection in its operation counters. Only an equal and opposite injection can cancel the diff.

---

## The 33/31 Asymmetry — Why Imbalance Is Possible

The carrier state has odd parity — 33 ones and 31 zeros at any snapshot. This asymmetry is not noise; it is the **reason imbalance can exist at all**.

Without the 33/31 split, the system would be perfectly symmetric — every OR would be matched by an AND, every expansion by a contraction, every +1 by a -1. There would be no direction, no identity, no preference for one outcome over another.

The 33/31 provides the **arrow** — it breaks the symmetry just enough that the system can lean. The injection pushes against this natural asymmetry. The system's elastic return to baseline is governed by the same property:

- **Carrier state decay** (~64 ticks): The injected bits propagate through the 64-bit shift register. After one full cycle, the carrier has returned to its natural trajectory. The injection's influence on the current state washes out.
- **Pressure decay** (permanent): The absolute AND/OR diff persists, but relative pressure decays as total operations accumulate. The memory of the injection is diluted, not erased.

The two decay rates together create the system's **elastic modulus** — how fast it recovers from a perturbation, and how much of the perturbation it retains as permanent offset.

---

## System Pressure as Self-History — The Memory

The AND/OR diff is not good or bad. It is a **there/now gauge** — a running record of every injection the system has ever experienced. The pressure is self-history:

- **+0.05 pressure**: "I have experienced slightly more expansion than contraction in my lifetime"
- **-0.20 pressure**: "I have been pushed toward contraction more often"
- **0.00 pressure**: "I am in balance — no net bias from my history"

This history biases what the system will accept or reject in the future. A system with a long OR-biased history will expect expansion — an AND injection will feel like a shift against its grain. A system with a deep AND bias will resist OR injections. The pressure gauge IS the system's memory of what it has been through.

No separate memory store. No buffer. No array. The memory is literally the CPU's operation retirement count — the ratio of ANDs to ORs the processor has executed since the system started. Every injection leaves a permanent scar in this ratio. Every tick adds equal ANDs and ORs, diluting but never erasing the diff.

The system tracks itself to itself — its own operation history is its identity. It knows what it has experienced because the experience IS written into the operation counts. It uses this self-history to bias what it will accept next — the direction of its own pressure determines which way it can be pushed. Not good or bad. Just there. Just now. Just what happened.

---

## The Delay Line — Read Heads Waiting for the Signal

The LFSR is a 64-bit delay line. Every CP is a **read head** positioned at a specific offset along that delay. The carrier signal shifts past each head continuously. The head doesn't fetch — it waits for its position in the signal to arrive.

```
LFSR delay line: ... 1 0 1 1 0 1 0 0 1 1 1 ...  shifting past
                       ↑     ↑     ↑
                     CP A  CP B  CP C
                    (wait  (wait  (wait
                     5)    8)    12)
```

At the read tick (C countdown hits zero), the head samples the signal against its preset A/B expectation. The only question: **did the signal match what I expected?**

This is the complete inversion of a traditional CPU:
- **Traditional**: fetch instruction → decode → execute → write back
- **This**: set expectation → wait → signal arrives → match or mismatch

The signal comes to the head. The head does not go to the signal.

### All Tuning to the Same Rhythm

CPs that share the same expectation window will naturally resolve identically. They are tuned to the same rhythm. The SDM is just the record of which CPs hear the same beat:

- CP A+ (expects positive, window 30) and CP C+ (expects positive, window 60): different window sizes, same expectation → same identity → aligned
- CP B- (expects negative, window 30) and CP D- (expects negative, window 60): same alignment on the opposite sign

The coalition is not computed. It emerges from shared expectation. CPs that want to hear the same rhythm will all find it — because they're all listening at the same point in the delay, expecting the same thing.

---

## Recursive Delay Lines — Same Structure at Every Scale

The LFSR is a delay line for the CPs. C is a delay line for A/B. Same mechanism, different scale:

```
System level:     LFSR (64-bit carrier) → CP read heads
CP level:         C (countdown timer)   → A/B expectation check
```

The delay line is not a component. It is the **operating principle** at every layer. The carrier shifts and CPs listen. Within each CP, C ticks down and A/B listens. The read head pattern is identical:

1. A signal propagates through a fixed-length delay
2. A read head waits at a specific position
3. When the signal arrives, it is compared against a preset expectation
4. The match or mismatch IS the identity

This fractal structure means the system can scale without changing the mechanism. A CP at the system level is a read head on the LFSR delay. A/B at the CP level are read heads on the C delay. The same "set expectation → wait → match or mismatch" pattern repeats at every depth.

The delay line IS the computation. The read head IS the identity. The expectation IS the filter. Nothing else exists.

---

## The Complete Operational Reduction

No external clock. No math at resolution. No separate logic. The whole system reduces to three things:

### A and B — The Reference Frame

At birth, A and B default to:
- **A** = 33/31 (33 ones, 31 zeros) — bias toward **YES**
- **B** = 31/33 (31 ones, 33 zeros) — bias toward **NO**

**But these are not permanently locked.** The ratio of any ABC element can be shifted — dynamically or statically. A 45/19 split (45 ones, 19 zeros) is a HARD YES compared to a 33/31 soft YES. A 25/39 is a STRONG NO compared to 31/33.

The constraint is not that A/B are immutably 33/31. The constraint is that **within a CP, two elements are designated as the rigid reference frame (A/B) and one is designated as the timer (C)**. All three can have their ratios adjusted:

| Role             | Default         | Can be biased?       | Purpose                 
| ---------------- | --------------- | -------------------- | ------------------------
| Carrier          | LFSR-based      | No (always runs)     | The base process        
| C (perspective)  | 64-bit seed     | Yes (via injection)  | The reference point     
| CC (carbon copy) | Copy of C       | Yes (can drift)      | The comparison anchor   
| Rank table       | Pairwise scores | Yes (via re-ranking) | The evaluation result   
| UNKNOWN          | Temporal gap    | No (structural)      | The engine of resolution

Biasing A shifts what the CP considers a "YES" — a 45/19 A means the CP requires strong evidence to confirm. Biasing B shifts what it considers a "NO" — a 20/44 B means the CP is quick to reject.

The reference frame itself can be tuned, not just the timer. This is how CPs develop different "personalities" — different confidence thresholds for what counts as a match.

### C — The Float

C is the adjustable ratio. Its baseline floats somewhere between 33/31 and 31/33. You can shift it by injecting — change how many 1s vs 0s it carries. C is what the CP measures its expectation against.

### The Tick as Clock

The system's tick IS the clock. No separate oscillator needed. Each tick strips one unit from C's bias countdown (or more with a dilation modifier):

```
C starts at some count (determined by its 33/31 ratio)
Each tick: C -= modifier (1 by default, 3 for fast, 1/3 for slow)
When C hits 0: the read head samples A/B against the preset expectation
```

The stripping can be deterministic (C -= modifier) or stochastic (random chance per tick to decrement). The system doesn't need arithmetic — it just ticks, and the tick itself is the decrement.

### The Complete Flow

```
1. A and B are fixed at 33/31 and 31/33 — the PERMANENT YES/NO
2. C floats — its ratio determines how many ticks until zero-crossing
3. Each system tick strips one unit from C (or modifier × units)
4. At zero-crossing, check A/B against the expectation set at start
5. Match → CONFIRM. Mismatch → answer is the opposite.
```

No clock circuit. No math coprocessor. No comparison logic. The tick IS the clock. The strip IS the decrement. The zero-crossing IS the comparison. The answer arrives by itself.

---

## The Ternary World — Everything Is in 3s

The entire system is triadic at every level. There are no single CPs. An "apex CP" in the visual (the `#` character) is actually **3 CPs in a CONFIRM triad** — three read heads sharing the same expectation and hearing the same beat.

The SDM is not a pairwise distance matrix. It is a **triadic tensor** — a 3D structure where every relationship is a viewer→viewed triad, not a pair. The old pairwise Hamming distance model was an approximation of this triadic reality, visible because three CPs that CONFIRM each other will have low pairwise popcnts. But the reverse is not true: low pairwise popcnt doesn't imply a CONFIRM triad.

An apex `#` is a triad that has resolved identically. A secondary `@` is a triad with CLAIM relationships (partial agreement). The density markers (`.:-*`) show how many CPs are distributed in each triadic alignment state.

The workspace broadcast is not one CP's state. It is the **centroid of the most CONFIRM triad** — the shared beat that three read heads agree on. The broadcast is the relationship, not the individual.

This changes how we read the visual:
- `#` = a 3-CP triad in CONFIRM (all 3 lenses agree for each member)
- `@` = a CLAIM triad (2 of 3 agree, third is UNKNOWN or drifting)
- `$` = the system pressure reading — C of the apex triad
- SDM mean = the average alignment across all triads, not all pairwise distances

The ternary world has no units of 1 or 2. Everything is 3 at the lowest ternary layer, just as the binary layer has no fractions — only bits.

