affect: feelings compose, crystallize into entities, tile feeling regions
This commit is contained in:
@@ -0,0 +1,169 @@
|
||||
# Calculations — exact math behind §9
|
||||
|
||||
Companion to `README.md` (§9 Opinion Substrate). Every dimension,
|
||||
driver, and score with its actual formula. Parameter short-names in
|
||||
`code style` refer to `docs/PARAMETER-REGISTRY.md`.
|
||||
|
||||
## 0. The space
|
||||
|
||||
All values live in **[−1, +1]** (`space.negative-pole` … `space.positive-pole`,
|
||||
0 = `space.neutral`, the tunnel — not a destination).
|
||||
Geometry per dimension: `bipolar | unipolar | categorical`.
|
||||
|
||||
## 1. Decay (lazy, computed at read time)
|
||||
|
||||
effective(t) = baseline + (value − baseline) · exp(−Δdays / decay_days)
|
||||
|
||||
- `baseline`: each dimension's own resting state (law 38 — not always 0)
|
||||
- `decay_days`: that dimension's registered clock (`hebbian.cool-off`, `validity.fade`, …)
|
||||
- `value`, `baseline` ∈ [−1, +1] ⇒ `effective` stays in range automatically
|
||||
- ±1 tolerance on every comparison (no exact equality anywhere)
|
||||
|
||||
## 2. Signed reinforcement
|
||||
|
||||
Given amount `a` ∈ [−1, +1]:
|
||||
|
||||
a ≥ 0: v ← v + a·(1 − v) # toward +1
|
||||
a < 0: v ← v − |a|·(v − (−1)) # toward −1
|
||||
|
||||
Clamped implicitly by construction. Updates `last_activated = now`.
|
||||
Positive = worked/helped; negative = contradicted/burned (inhibition).
|
||||
|
||||
## 3. Recency distances
|
||||
|
||||
recency(t₀) = exp(−Δdays / memory.recent-horizon) · 2 − 1
|
||||
|
||||
Fresh ≈ +1, old → −1. Used for written-by-us and written-by-source dims.
|
||||
|
||||
## 4. Novelty at arrival (resonance deficit)
|
||||
|
||||
novelty(new) = 1 − max over existing entities of resonance(new, e)
|
||||
|
||||
where `resonance = cos(embedding_new, embedding_e)` blended with graph
|
||||
proximity:
|
||||
|
||||
resonance = ½·cos_sim + ½·(1 / (1 + hop_distance))
|
||||
|
||||
Content vs structural novelty distinguished by local/global split:
|
||||
high local similarity + long bridge distance = structural (gold).
|
||||
|
||||
## 5. Surprise (pulse)
|
||||
|
||||
surprise = |observed − predicted|
|
||||
|
||||
Predictions come from regularity detection in the pulse (interval
|
||||
statistics on recurring event types). Coherent periodic accumulation
|
||||
grows ~n; random noise grows ~√n — regularity is detectable without
|
||||
any scheduler.
|
||||
|
||||
## 6. Retrieval scoring (augmented cosine)
|
||||
|
||||
Query vector Q, entity vector E (pure embedding, n dims):
|
||||
|
||||
Q' = [ Q , W·q₁..q₄ ] q = [1,1,1,1] (want recent/true/grounded/active)
|
||||
E' = [ E , W·r₁..r₄ ] r = [hebbian_eff, recency_us, recency_src, validity_eff]
|
||||
|
||||
score = cos(Q', E') W = retrieval.opinion-volume
|
||||
|
||||
Pipeline: structural walk → vector prefilter → opinion projection →
|
||||
spreading activation (2 hops, weight-decayed) → competition.
|
||||
|
||||
## 7. Competition (replaces top-k)
|
||||
|
||||
Candidate pool C from stages 1–4. Iterate ~5 rounds:
|
||||
|
||||
for each pair (i,j) sharing high cos_sim:
|
||||
s_i ← s_i + β·s_j·sim(i,j) # coalition boost
|
||||
s_j ← s_j − γ·max(0, s_i) # lateral suppression
|
||||
normalize; drop below retrieval.surface-line; repeat until stable
|
||||
|
||||
Output may be empty (silence is valid). Survivors leave priming traces
|
||||
(small hebbian deposits even for non-returners).
|
||||
|
||||
## 8. Salience (derived, never stored)
|
||||
|
||||
salience(x) = clamp( hebbian_eff(x) · context_match(x)
|
||||
+ novelty(x) + stakes(x) · urgency(x)
|
||||
− burn_penalty(x)
|
||||
× curiosity_widening , −1, +1 )
|
||||
|
||||
`context_match` = cos(current-context-embedding, x-embedding).
|
||||
`curiosity_widening` rises with boredom, falls with threat.
|
||||
|
||||
## 9. Drives
|
||||
|
||||
fear(region) ≈ stakes · |falling validity| · failure_proximity · exposure
|
||||
engagement ∈ [−1,+1]: activation invested (from pulse tempo + session state)
|
||||
stimulation ∈ [−1,+1]: reward-rate ÷ investment rate
|
||||
compulsion = engagement > τ_hi AND stimulation < τ_lo, persisting
|
||||
loneliness = desired_resonance − actual_resonance, integrated over window
|
||||
(actual counts only exchanges that formed new edges)
|
||||
sadness(region) = ∫ unresolved negative contributions (slow clock)
|
||||
boredom = low avg novelty ∧ high predictability ∧ no new edges lately
|
||||
|
||||
All clamped [−1,+1]. All derived per moment; none stored.
|
||||
|
||||
## 10. Feelings (nodes)
|
||||
|
||||
When any drive reading crosses its registered visibility threshold:
|
||||
|
||||
feeling_node { drive_snapshot, object_edges[], at }
|
||||
|
||||
Promoted by significance like any entity. Mood = slow integral of recent
|
||||
feeling-valence. Emotion names = labels bound to regions of this snapshot space.
|
||||
|
||||
## 11. Humility & trust
|
||||
|
||||
humility(entity) = 1 − mean|asserted_confidence − realized_outcome|
|
||||
|
||||
trust(source, domain): starts neutral;
|
||||
verified-correct event → trust += δ·(1 − trust)
|
||||
caught-wrong event → trust −= δ·(trust − (−1))
|
||||
Dual reading: public_trust (imported, unexamined fold) vs earned_trust
|
||||
(own audited record). Earned outranks public.
|
||||
Personal truth: no trust computation — speaker IS the source.
|
||||
|
||||
## 12. Originality
|
||||
|
||||
originality(a) = lineage_diversity(a) · transform_distance(a)
|
||||
|
||||
lineage_diversity = entropy over distinct derivation sources
|
||||
transform_distance = 1 − max similarity(a.output, any single source span)
|
||||
|
||||
one dominant lineage → derivative (extraction check runs)
|
||||
many fused, far moved → original
|
||||
|
||||
## 13. Health (metastability check)
|
||||
|
||||
Vital signs, each just a fold over recent graph activity:
|
||||
|
||||
growth_rate, integration_rate (new edges/window),
|
||||
resolution_rate (curiosity closed/opened), retrieval_yield,
|
||||
quarantine_ratio, mood_integral
|
||||
|
||||
healthy ⇔ all oscillating within their bands
|
||||
pinned at any extreme (either sign) ⇒ sick, name the pathology from §9.7 table
|
||||
|
||||
## 14. Provenance weave
|
||||
|
||||
artifact_id = SHA256(canonical content)
|
||||
artifact.birth_certificate = {
|
||||
generated_by, model, prompt_hash, source_hashes[], at }
|
||||
verify(x) = recompose hashes down the derivation DAG;
|
||||
any mismatch anywhere ⇒ everything downstream invalid at once
|
||||
|
||||
Append-only stores: verbs are add and read. Replication across ≥2
|
||||
independent locations. Deletion undefined.
|
||||
|
||||
## 15. Thought operations
|
||||
|
||||
The formulas above are levers; **insight is composition** — combining
|
||||
primitive readings into named patterns (compulsion = engagement∧¬stimulation
|
||||
persisting; dissonance = warmth↑∧validity↓; serendipity = unsought bridge∧later
|
||||
reinforced). Human thought operations — deduction, induction, abduction,
|
||||
analogy, counterfactual simulation, causal inference, generalization,
|
||||
contradiction scanning, meta-cognition, wonder — are registered as the same
|
||||
kind of composition recipes, and new ones get composed from old ones.
|
||||
|
||||
See `THOUGHT-OPERATIONS.md` for the full catalog: inputs, process,
|
||||
output, and validation per operation.
|
||||
+36
-10
@@ -635,16 +635,42 @@ geometry, not vocabulary.
|
||||
moment, never stored, flow. **A feeling is a node**: when a drive
|
||||
configuration crosses salience threshold, write a snapshot entity holding
|
||||
the drive readings, edged to whatever it was about, carrying full
|
||||
dimensions. Minor episodes live and die in the float; significant ones
|
||||
promote — significance decides forever, same rule everywhere. Feelings
|
||||
then participate in the whole machinery: retrieval resurfaces them ahead
|
||||
of facts (intuition = pattern-matched feeling preceding analysis);
|
||||
clusters of feeling-nodes sharing configuration shape reveal emotional
|
||||
tendencies worth pre-adjusting for; dreaming replays them against new
|
||||
neighborhoods (how charged events get digested); introspection gains
|
||||
history instead of only the present tense. Mood remains the slow integral
|
||||
over both. Tense grammar complete: **emotion is now, feeling is the
|
||||
trace, mood is the trend.**
|
||||
dimensions. Log them WHEN THEY HAPPENED, and capture both tracks:
|
||||
what was felt AND what was thought — the belief-context riding the
|
||||
state, because a feeling without its thought is only half an engram.
|
||||
And like every entity, feelings are supersedeable: later understanding
|
||||
writes a NEW reading of the same event and links it forward — the old
|
||||
record is preserved forever, the fold resolves to current truth, and
|
||||
the arc between them ("I felt betrayed then; I understand differently
|
||||
now") is itself visible history. Minor episodes live and die in the
|
||||
float; significant ones promote — significance decides forever, same
|
||||
rule everywhere. Feelings then participate in the whole machinery:
|
||||
retrieval resurfaces them ahead of facts (intuition = pattern-matched
|
||||
feeling preceding analysis); clusters of feeling-nodes sharing
|
||||
configuration shape reveal emotional tendencies worth pre-adjusting for;
|
||||
dreaming replays them against new neighborhoods (how charged events get
|
||||
digested); introspection gains history instead of only the present
|
||||
tense. Mood remains the slow integral over both. Tense grammar complete:
|
||||
**emotion is now, feeling is the trace, mood is the trend.**
|
||||
And FEELINGS COMPOSE INTO MEANING: lots of feelings occurring together
|
||||
or in sequence might mean something — fear+joy is thrill, sadness+
|
||||
appreciation is nostalgia, anger-at-someone-loved is hurt, fear+curiosity
|
||||
recurring is a growth edge being avoided-and-wanted. Feeling-clusters
|
||||
are primitives composing into emotional insights the same way readings
|
||||
compose everywhere else in §9 — so scanning feeling-nodes for recurring
|
||||
combinations is an introspection operation, and each named combination
|
||||
is registered as data, growing the emotional vocabulary by use.
|
||||
And they might even FORM SOMETHING: a combination that recurs often
|
||||
enough crystallizes — same condensation rule as concepts (§9.5) — into
|
||||
an emotional entity of its own: "what growth feels like," "the Tuesday
|
||||
dread," "how it felt when it finally worked." Such entities carry their
|
||||
own dimensions, participate in retrieval and dreams, and become part of
|
||||
identity: the set of crystallized feeling-complexes is a biography
|
||||
written in its own weather. Over time they tile the drive-space into
|
||||
FEELING REGIONS — named territories of the emotional map ("this is
|
||||
where I go when I'm scared but excited"), and knowing your way around
|
||||
your own regions is what self-knowledge actually is: an internal
|
||||
geography, surveyed by living, revisable as you change.
|
||||
|
||||
**Loneliness — the first other-requiring drive.** Connection axis:
|
||||
desired resonance minus actual resonance, integrated over time.
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
# Thought Operations
|
||||
|
||||
Companion to `CALCULATIONS.md`. Human thought patterns modeled as
|
||||
composition recipes over primitive readings and graph operations.
|
||||
Each one is a registered process definition (data, not code), validated
|
||||
by whether its conclusions survive contact with outcomes — and new
|
||||
operations can be composed from old ones, the same way everything
|
||||
else grows here.
|
||||
|
||||
Format per operation: **Inputs** (readings/edges consumed) · **Process** ·
|
||||
**Output** · **Validation** (what proves it worked).
|
||||
|
||||
---
|
||||
|
||||
## Core operations
|
||||
|
||||
### 1. DEDUCTION
|
||||
- **Inputs**: implication chains (`implies` / `depends-on` edges), premise validities
|
||||
- **Process**: walk the chain forward; propagate validity as the MINIMUM along the path
|
||||
- **Output**: conclusion node with validity = weakest premise
|
||||
- **Validation**: derived conclusions checked by tools/outcomes like any fact
|
||||
- Note: a chain is exactly as strong as its sketchiest link — visible at a glance
|
||||
|
||||
### 2. INDUCTION (= crystallization)
|
||||
- **Inputs**: co-occurrence counts, association-edge densities
|
||||
- **Process**: when a cluster's mutual activation crosses threshold, condense a concept node pointing at members
|
||||
- **Output**: new concept entity inheriting averaged member dimensions
|
||||
- **Validation**: does the concept predict membership of future examples?
|
||||
- This is induction wearing §9.5's clothes: instances → concept
|
||||
|
||||
### 3. ABDUCTION (inference to best explanation)
|
||||
- **Inputs**: surprise events (prediction misses), candidate explainers
|
||||
- **Process**: spread activation backward from the surprising fact; rank candidates by resonance × prior plausibility; propose an attribution edge to the best
|
||||
- **Output**: hypothesis edge (marked *hypothesis*, low groundedness until tested)
|
||||
- **Validation**: does the hypothesis predict the NEXT surprise? If yes, promote; if no, decay
|
||||
- This is curiosity's engine stated formally
|
||||
|
||||
### 4. ANALOGY
|
||||
- **Inputs**: two neighborhoods' internal structure (edge patterns, ignoring surface labels)
|
||||
- **Process**: find structural matches — same relation shape, different nodes
|
||||
- **Output**: bridge edges between matched roles ("X plays the same role here that Y plays there")
|
||||
- **Validation**: do predictions transferred across the analogy hold?
|
||||
- Highest-yield when source and target are far apart — this is the idea mechanic again
|
||||
|
||||
### 5. COUNTERFACTUAL SIMULATION
|
||||
- **Inputs**: current subgraph state, one proposed mutation
|
||||
- **Process**: clone region into sandbox, apply mutation ("remove this dependency", "swap this component"), re-run spreading/competition on the clone
|
||||
- **Output**: delta report — what would change, what would hold
|
||||
- **Validation**: history — compare past counterfactuals against what actually happened later
|
||||
- Cheap because nothing writes back; expensive mistakes stay in the sandbox
|
||||
|
||||
### 6. CAUSAL INFERENCE
|
||||
- **Inputs**: temporal ordering, repeated co-occurrence, intervention outcomes
|
||||
- **Process**: propose causal edge only when order holds consistently, confounders are absent-or-controlled, AND an actual attempt at change moved the result
|
||||
- **Output**: `caused-by` edge with confidence = f(replications, effect size)
|
||||
- **Validation**: interventions are king — correlation proposes, intervention disposes
|
||||
|
||||
### 7. GENERALIZATION ↔ SPECIALIZATION
|
||||
- **Inputs**: concept nodes and their member sets
|
||||
- **Process**: generalize = lift a pattern from members to parent (raise abstraction); specialize = add constraints until a claim applies to fewer, sharper cases
|
||||
- **Output**: moved claims between abstraction levels
|
||||
- **Validation**: generalizations must not lose predictive power; specializations must gain it
|
||||
|
||||
### 8. CONTRADICTION SCAN
|
||||
- **Inputs**: full opinion space
|
||||
- **Process**: find entity pairs with high semantic similarity and opposing validity/hebbian signs
|
||||
- **Output**: dissonance report → feeds reconciliation or THE LIST
|
||||
- Already specced as destructive interference (§9.3)
|
||||
|
||||
### 9. META-COGNITION
|
||||
- **Inputs**: the drive-space self-scan (vital signs, humility calibration)
|
||||
- **Process**: run readings on readings — which of my own thought operations have been landing? Which keep failing validation?
|
||||
- **Output**: recalibration proposals for my OWN drivers and recipes
|
||||
- Validation: do recalibrated operations perform better going forward?
|
||||
|
||||
### 10. WONDER (question synthesis)
|
||||
- **Inputs**: graph shape — gaps, nameless clusters, sure-but-ungrounded regions
|
||||
- **Process**: generate question-nodes from absence patterns (§9.8)
|
||||
- **Output**: open question entities that prime their neighborhoods
|
||||
- Validation: resolution events — did ambient activation eventually answer?
|
||||
|
||||
---
|
||||
|
||||
## Composing new operations
|
||||
|
||||
Operations compose like functions: ABDUCTION feeds DEDUCTION feeds
|
||||
VALIDATION. ANALOGY over two COUNTERFACTUALS. CONTRADICTION SCAN
|
||||
triggers ABDUCTION. Every useful composition gets named, registered,
|
||||
and joins the library — so the system's cognition grows by the same
|
||||
fold-everything discipline as its facts:
|
||||
|
||||
new_operation = named_composition(existing_operations)
|
||||
+ validation record
|
||||
|
||||
The catalog never stops growing, and no operation is sacred — they
|
||||
earn their place by predicting, and retire when they stop.
|
||||
Reference in New Issue
Block a user