Update 2026-06-29-tripartite-synapse_v17.md

This commit is contained in:
2026-07-06 16:45:34 +02:00
parent db08fb9770
commit 651f2847af
@@ -137,32 +137,37 @@ territory demand/load. Both have their own DAY (integrate, allocate in the gaps)
always integrating fatigue and emitting sleep-pressure, spanning every other actor's day and
night — the clock that never sleeps.
NIGHT IS A SEQUENCE OF REPLAY CYCLES (dual of DAY). DAY loops action-steps until energy/material
is exhausted; NIGHT loops NON_REM_1 → REM → NON_REM_2 cycles until the tag is exhausted. It is the
SAME three-phase ring as DAY (PREPARATION · ACTION · EVALUATION) — only the subjects and the
assignment of which phase is ACTION vs EVALUATION rotate:
NON_REM_1 = PREPARATION import material/energy; PRIME the threshold/VGCC from the standing tag
REM = EVALUATION release NT as a PROBE to MEASURE participation (fast_trace level);
NO dopamine — significance is settled; this reads circuit centrality only
NON_REM_2 = ACTION the structural change itself (the night's defining deed): general
homeostatic lowering, then increase where tag stands AND REM measured
high/medium participation, consuming the tag on the build
The SAME physical NT release is ACTION by DAY (transmit) and EVALUATION by NIGHT (probe to measure).
The structural change is only MARKED by day (the inert tag) and ENACTED by night. SOMA is the
ignition point: its REM firing propagates a replay_AP through the DAY PATHWAYS
EVERY SCOPE RUNS THE SAME THREE CATEGORIES: (ACTION ⇄ RECOVERY) × many, then PREPARATION.
ACTION the scope's defining deed (DAY: release/fire/respond/propagate — the cleft exchange;
NIGHT: change structure — the irreversible build).
RECOVERY the fast alter-ego of the action — restore the ability to act again (DAY: vesicle
refill, refractory de-inactivation, Ca clearance; NIGHT: import material/energy, prime).
PREPARATION shape what comes next — faces BOTH the next same-scope action AND the other scope.
This is where what earlier drafts called "evaluation" lives: depositing a trace is not
judging, it is provisioning. DAY-preparation stocks the tag (for NIGHT) and sets
occupancy/thresholds (for the next action). NIGHT-preparation REPLAYS the action —
re-runs the SAME machinery as DAY ACTION (same capacity/vesicle checks, same endurance
deposit into the SAME trace), but with NO dopamine and the release as a PROBE, read as
participation, not transmitted.
NIGHT IS A SEQUENCE OF REPLAY CYCLES (dual of DAY). DAY loops until energy/material is exhausted;
NIGHT loops until the tag is exhausted. The rotation across scopes: the SAME physical release/fire
is ACTION by DAY (the deed) and PREPARATION by NIGHT (the probe that replays it); the structural
change is only MARKED by day (the inert tag) and ENACTED by night (its action). SOMA is the ignition
point: its night-PREPARATION replay-fire propagates a replay_AP through the DAY PATHWAYS
(soma→axon→pre→glutamate→post→dend→soma), self-igniting the tagged pattern.
COHERENCE IS MECHANICAL, not a checked flag: a pattern re-evokes only where EVERY link in its
recurrent loop is primed (each component's own tag lowered its own threshold in NON_REM_1); one
recurrent loop is primed (each component's own tag lowered its own threshold in RECOVERY); one
un-primed link breaks the loop at the gap, so only patterns significant all the way around carry.
The assembly that replays is NOT an actor — it is the coincidence of many components' own lowered
thresholds propagating through recurrent coupling.
WHAT PERSISTS MUST HAVE EARNED PERSISTENCE. NON_REM_1 drives occupancy (VGCC_active, AMPA_surface,
possible_tag) toward baseline; NON_REM_2's homeostatic lowering trims all structure; only what is
rebuilt from a still-standing tag with confirmed participation carries forward. NIGHT ends when the
tag is exhausted (well-rested — every significant pattern replayed and its structure rebuilt) OR
energy is spent (overloaded — unspent tags carry to the next night).
WHAT PERSISTS MUST HAVE EARNED PERSISTENCE. Night-RECOVERY drives occupancy (VGCC_active,
AMPA_surface, possible_tag) toward baseline; night-ACTION's homeostatic lowering trims all
structure; only what is rebuilt from a still-standing tag with confirmed participation carries
forward. NIGHT ends when the tag is exhausted (well-rested — every significant pattern replayed and
its structure rebuilt) OR energy is spent (overloaded — unspent tags carry to the next night).
---
@@ -268,16 +273,16 @@ ship_cost // transport overhead (all shipments)
```
slot_batch cap_batch f_cap // per-CYCLE commit/allocation sizes / endurance fraction
night_energy_ceiling // total energy a single night can spend (supply bound)
Δt_cycle // duration of one NIGHT cycle (NON_REM_1→REM→NON_REM_2)
Δt_cycle // duration of one NIGHT cycle (recovery→preparation→action)
maint_frac cap_frac // maintenance allocation
decay_rate capacity_decay_rate recycle // passive ceiling decay + material recovery
homeostatic_ceiling assembly_cost biogenesis_cost maint_cost
f_dend f_axon f_spine f_bouton // per-cycle material/energy ship fractions (down the chain)
downscale_factor // per-cycle multiplicative occupancy reset (<1), NON_REM_1
downscale_factor // per-cycle multiplicative occupancy reset (<1), night RECOVERY
neuron_weight_ceiling // renormalization target (broadcast constraint)
// ── NIGHT RING (NON_REM_1 = PREPARATION · REM = EVALUATION · NON_REM_2 = ACTION) ──
spont_thr_base thr_gain // spontaneous threshold = base gain×own_tag (NON_REM_1 prime)
prime_thr prime_gain // tag threshold to raise VGCC, and the gain (NON_REM_1)
// ── NIGHT (RECOVERY = import/prime · PREPARATION = replay probe · ACTION = restructure) ──
spont_thr_base thr_gain // spontaneous threshold = base gain×own_tag (night RECOVERY prime)
prime_thr prime_gain // tag threshold to raise VGCC, and the gain (night RECOVERY)
intrinsic_fluctuation() // intrinsic sub-threshold noise (the night's ignition source)
mini_flux mini_Ca() // spontaneous mini release size + its Ca deposit (REM probe)
level(·) → {LOW, MEDIUM, HIGH} // reads fast_trace as circuit participation (REM, no dopamine)
@@ -395,9 +400,9 @@ DAY | NOT_SPIKE_TRAIN: // sustained quiet;
// ── NIGHT: the SAME three categories as DAY, at the consolidation timescale, subject = the pattern.
// (ACTION ⇄ RECOVERY) × many cycles, then PREPARATION — mirror of DAY's (release ⇄ refill) → prep.
// ACTION change the structure (the night's defining deed) [was NON_REM_2]
// RECOVERY restore the ability to restructure again: import material/energy, prime [was NON_REM_1]
// PREPARATION probe-release to MEASURE participation, shaping the next restructuring [was REM]
// ACTION change the structure (the night's defining deed)
// RECOVERY restore the ability to restructure again: import material/energy, prime
// PREPARATION replay the release as a probe, measure participation (SAME machinery as day ACTION)
// Cycle ordering: RECOVERY (import/prime) ⇄ ACTION (build) alternate across the night's cycles;
// PREPARATION (the probe) runs each cycle and its participation-measure feeds the NEXT ACTION —
// exactly as DAY's preparation shapes the next train. Loops until the tag is spent.
@@ -416,12 +421,24 @@ NIGHT | import + prime: // alter-ego of the n
emit(freed → recycled material pool)
pre_material += pre_ceiling_shrinkage·recycle // energy NOT recovered
// ===== PREPARATION (probe-release to measure participation; shapes the next ACTION; NO dopamine) =====
NIGHT | probe + measure: // release here is PREPARATION, not action
// ===== PREPARATION (REM: REPLAY the action — SAME machinery as DAY ACTION, read differently) =====
// Replay re-runs the release exactly as by day: same drive, same capacity + vesicle checks, same
// endurance deposit into the SAME pre_endurance_need trace (endurance discovered in replay is as
// real as in behaving). What differs from DAY ACTION: no dopamine (significance settled), and the
// glutamate is a PROBE — it drives the pattern onward and its own trace is read as participation.
NIGHT | replay + measure: // release here is PREPARATION, not the deed
spont = intrinsic_fluctuation()
if spont > pre_spont_thr or arrived_replay_AP: // spontaneous, or recruited by the pattern
pre_fast_trace += mini_Ca(VGCC_active); glutamate += mini_flux·Δt // release as a PROBE
pre_participation = level(pre_fast_trace) // high/medium/low — feeds the next ACTION
if spont > pre_spont_thr or arrived_replay_AP: // ignite: spontaneous, or recruited by the pattern
pre_fast_trace += mini_Ca(VGCC_active)·δ(replay) // SAME trace deposit as DAY ACTION
drive = sat(pre_fast_trace × VGCC_active, K_release)
if pre_budget < release_cost: // SAME capacity check → endurance evidence
suppress(replay_flux)
if pre_fast_trace > traj_thr:
pre_endurance_need += pre_fast_trace·Δt // SAME trace, fed by replay too
else if RRP > 0: // SAME vesicle check
replay_flux = RRP × drive; RRP -= replay_flux·Δt; pre_budget -= replay_flux·fusion_cost
glutamate += replay_flux·Δt // real glutamate → POST: carries the pattern onward
pre_participation = level(pre_fast_trace) // read the replayed response as participation
pre_fast_trace *= decay(100ms)
// ===== ACTION (change the structure — the night's defining deed) =====
@@ -465,16 +482,23 @@ below) are detected *in the action*; only the organism's dopamine coincidence is
depolarization and calcium, and supralinearly amplifies an existing candidate — the soma's
confirmation that it fired, detected in the action-moment (instantaneous coincidence).
**EVALUATION and PREPARATION share the quiet.** Evaluation reads the calcium trace and, on the
dopamine coincidence, climbs to the tag. Preparation fills AMPA surface toward the slot ceiling
from accumulated calcium (short-term potentiation, no dopamine), refills budget toward next demand,
and lets traces settle. A fuel shortfall while calcium was climbing toward a tag is endurance
evidence; a surface already at its ceiling is a structural limit, not endurance.
**EVALUATION FOLDS INTO PREPARATION.** POST runs the same three categories as every component.
ACTION is the synaptic response (integrate glutamate, detect the instantaneous coincidences, emit
the retrogrades). RECOVERY restores the ability to respond again — calcium extrusion and NMDA
Mg-block re-establishment, the fast alter-ego of the response. PREPARATION shapes what comes next:
fills AMPA surface toward the slot ceiling from accumulated calcium (short-term potentiation, no
dopamine — for the next response), climbs the tag on the dopamine coincidence (for the night),
refills budget, and settles. A fuel shortfall while calcium was climbing toward a tag is endurance
evidence (a preparation deposit made during action); a surface already at its ceiling is a
structural limit, not endurance.
**During NIGHT — the spine's ceilings are rewritten.** The ring turned inward: coherence check,
draw-and-commit (structure where a validated tag stood — with a coherence bonus when pre, post, and
astro all tagged the same synapse — or budget capacity where fuel interrupted a climbing trajectory),
make-room. Both ceilings draw the same finite pool and compete; unmaintained ceilings drift down.
**During NIGHT — the same three categories, turned inward.** RECOVERY imports material/energy and
primes AMPA responsiveness from the standing tag. PREPARATION replays: POST responds to the
re-evoked glutamate exactly as it responds by day (same AMPA/NMDA machinery, same endurance
deposit into the same trace), reading the response as participation rather than transmitting — no
dopamine. ACTION is the structural change: general homeostatic lowering, then rebuild where the tag
stands and participation was confirmed, consuming the tag. Both ceilings draw the same finite pool
and compete; unmaintained ceilings drift down.
```
// PARAMETERS K_AMPA · AMPA_Ca · AMPA_cost · NMDA_cost · bAP_cost · pka_cost · traffic_cost
@@ -488,31 +512,44 @@ make-room. Both ceilings draw the same finite pool and compete; unmaintained cei
// SUPPLY astro_lactate[syn] ← ASTRO ; dend_ship_post ← DEND ; post_material ← DEND(NIGHT) ; post_energy ← SOMA(NIGHT)
// EMERGENCY shockwave_lockdown ← ASTRO
// NOTE POST endurance is own-state only (own Ca climbing); no arrived feedback term.
// RING × CONTEXT: NOT_bAP → ACTION(integrate) + EVAL + PREP | bAP → second ACTION (vertical amplify)
// coincidences sort by timescale: D-serine/bAP detected IN ACTION (instantaneous),
// dopamine detected IN EVALUATION (integrable).
// coincidences sort by timescale: D-serine/bAP detected IN ACTION (instantaneous); dopamine in PREPARATION.
DAY | bAP: // ACTION (vertical): soma's spike confirms
// THE THREE CATEGORIES (same at DAY and NIGHT; here DAY, subject = arrived glutamate / bAP):
// ACTION respond: integrate glutamate, detect instantaneous coincidences, emit retro (NOT_bAP);
// bAP is a second, vertical action-context (soma's spike confirms)
// RECOVERY restore the ability to respond: Ca extrusion + NMDA Mg-block re-establish
// PREPARATION shape what comes next: AMPA fill (next response) + tag climb (NIGHT) + refill + settle
// Coincidences sort by timescale: D-serine/bAP detected IN ACTION (instantaneous); dopamine in PREPARATION.
// ===== ACTION =====
DAY | bAP: // second action-context (vertical): soma confirms
Vm += bAP_depol × dend_structure.bAP_fidelity; post_budget -= bAP_cost
if post_possible_tag > Ca_TAG: post_fast_trace += bAP_Ca_boost() // amplify only if candidate present
DAY | NOT_bAP: // ACTION(integrate) then EVAL + PREP
// ── ACTION (lateral): integrate arrived input, detect instantaneous coincidences, emit retro ──
DAY | NOT_bAP: // respond to arrived input (the defining deed)
a = sat(glutamate, K_AMPA)
AMPA_current = a × AMPA_surface; Vm += AMPA_current; post_budget -= AMPA_cost // SOURCE 1 AMPA
post_fast_trace += AMPA_Ca·AMPA_current
if Vm > Mg_eject and astro_Dserine > Dserine_thr and glutamate > 0: // SOURCE 2 NMDA
post_fast_trace += NMDA_Ca(glutamate)·rise_speed(); post_budget -= NMDA_cost // (coincidence #1,2 here)
post_fast_trace += NMDA_Ca(glutamate)·rise_speed(); post_budget -= NMDA_cost // coincidence #1,2 here
retro_NO += NO_emit(post_fast_trace); post_budget -= NO_synth_cost // EMIT + "responsive target"
if Vm > eCB_thr:
retro_eCB += eCB_emit(Vm); post_budget -= eCB_synth_cost // EMIT brake
// ── EVALUATION (local): climb toward the tag; dopamine is the integrable coincidence (#3) ──
// ===== RECOVERY (restore the ability to respond; alter-ego of the response) =====
DAY | NOT_bAP · recovered: // Ca extrusion + Mg-block re-establish
post_fast_trace *= decay(ms) // FAST — Ca extruded, trace relaxes
// (NMDA Mg-block re-establishes as Vm falls — implicit in the Vm>Mg_eject gate next response)
// ===== PREPARATION (shape the next response AND the NIGHT) =====
DAY | quiet: // sustained quiet
// for NIGHT: climb the tag; dopamine is the integrable coincidence (#3)
if post_fast_trace > Ca_TAG: post_possible_tag += post_fast_trace; post_budget -= pka_cost
if dopamine > dop_thr and post_possible_tag > tag_thr:
post_tag += dopamine × post_possible_tag // token minted for NIGHT
// ── PREPARATION (vertical): STP fill / STD drift, refill toward next demand, settle ──
// for the NEXT RESPONSE: STP fill / STD drift
if post_fast_trace > Ca_STP:
if post_budget < traffic_cost: // FUEL shortfall → endurance
if post_budget < traffic_cost: // FUEL shortfall → endurance (a PREPARATION deposit)
if post_fast_trace > traj_thr and post_fast_trace_rising:
post_endurance_need += post_fast_trace
else if AMPA_surface < post_structure.slot_ceiling:
@@ -521,15 +558,18 @@ DAY | NOT_bAP: // ACTION(integrate)
else:
AMPA_surface = max(AMPA_surface - drift·Δt, baseline) // STD = un-honored decay
post_budget += refill(post from astro_lactate[syn] + transit(dend_ship_post, τ_transport_spine))
post_fast_trace *= decay(ms) // FAST
post_possible_tag *= decay(min); post_endurance_need *= decay(min) // MEDIUM
post_tag *= decay(hr); dopamine *= decay(ms) // SLOW + signals
NIGHT · NON_REM_1 = PREPARATION | import + prime: // vertical: supply + set responsiveness
// ── NIGHT: SAME three categories, consolidation timescale, subject = the pattern.
// (ACTION ⇄ RECOVERY) × cycles, then PREPARATION. Night PREPARATION replays the DAY ACTION (same
// AMPA/NMDA machinery, same endurance trace), read for participation not significance.
// ===== RECOVERY (import + prime responsiveness) =====
NIGHT | import + prime:
post_material += transit(post_material_ship, τ_transport_spine)
post_energy += transit(post_energy_ship, τ_transport_spine)
// prime from the STANDING tag: high tag raises AMPA occupancy → primes NMDA responsiveness in REM
post_spont_thr = spont_thr_base thr_gain × post_tag
post_spont_thr = spont_thr_base thr_gain × post_tag // restore responsiveness from standing tag
if post_tag > prime_thr:
AMPA_surface = min(AMPA_surface + prime_gain × post_tag, post_structure.slot_ceiling)
post_possible_tag *= occupancy_downscale
@@ -538,15 +578,20 @@ NIGHT · NON_REM_1 = PREPARATION | import + prime: // vertical: supply
emit(freed → recycled material pool)
post_material += post_ceiling_shrinkage·recycle // energy NOT recovered
NIGHT · REM = EVALUATION | respond to re-evoked input, MEASURE participation (NO dopamine):
// a re-evoked pattern arrives as replayed glutamate (from PRE's mini) ± bAP; POST responds as a PROBE
if arrived_glutamate_replay or arrived_replay_AP:
post_fast_trace += AMPA_Ca·(a × AMPA_surface)
if Vm > Mg_eject and astro_Dserine > Dserine_thr: post_fast_trace += NMDA_Ca(glutamate)
post_participation = level(post_fast_trace) // high/medium/low = centrality in re-evoked pattern
// ===== PREPARATION (REM: REPLAY the response — SAME machinery as DAY ACTION) =====
NIGHT | replay + measure: // response here is PREPARATION, not the deed
if arrived_glutamate_replay or arrived_replay_AP: // re-evoked input arrives
a = sat(glutamate, K_AMPA)
post_fast_trace += AMPA_Ca·(a × AMPA_surface) // SAME AMPA machinery as DAY ACTION
if Vm > Mg_eject and astro_Dserine > Dserine_thr:
post_fast_trace += NMDA_Ca(glutamate) // SAME NMDA machinery
if post_budget < traffic_cost: // SAME capacity check → endurance evidence
if post_fast_trace > traj_thr: post_endurance_need += post_fast_trace // SAME trace, fed by replay
post_participation = level(post_fast_trace) // read replayed response as participation
post_fast_trace *= decay(ms)
NIGHT · NON_REM_2 = ACTION | change the structure: // the night's defining deed
// ===== ACTION (change the structure the night's defining deed) =====
NIGHT | change the structure:
post_structure -= decay_rate·Δt_cycle; post_structure += min(post_maint, maint_cost) // homeostatic lowering
if post_tag > tag_expiry and post_participation ≥ MEDIUM:
Δ = min(slot_batch, post_material, post_energy·f_cap, post_tag) × post_participation
@@ -601,66 +646,72 @@ ceilings drift down.
// NOTE DEND endurance fires only on FUEL-limited propagation, not structural attenuation;
// own-state proxy (strong branch activity); no arrived feedback term.
// RING × CONTEXT: bAP → ACTION(propagate+integrate) + EVAL | NOT_bAP → EVAL + PREP (ship/refill/settle)
// THE THREE CATEGORIES (same at DAY and NIGHT; here DAY, subject = soma's bAP / spine input):
// ACTION propagate the bAP to spines + integrate spine voltage to soma (context bAP)
// RECOVERY restore branch excitability: Ca clearance (fast alter-ego of propagation)
// PREPARATION shape the next: tag climb (NIGHT), attention threshold, ship to spines, refill, settle
// ONE fuel shortfall that cuts propagation short = endurance; distance attenuation = structural limit.
DAY | bAP: // ACTION (lateral/vertical): propagate + integrate
// ADJUST (propagation strength from structure — inside propagate())
// BEHAVE (propagate bAP; distinguish fuel-limited vs structure-limited shortfall)
// ===== ACTION =====
DAY | bAP: // propagate + integrate (the defining deed)
if dend_budget < prop_cost:
// FUEL shortfall → endurance (branch was strongly active)
if dend_fast_trace > traj_thr:
if dend_fast_trace > traj_thr: // FUEL shortfall → endurance (a PREPARATION deposit)
dend_endurance_need += dend_fast_trace
bAP_local, reached = propagate_partial(dend_budget)
else:
bAP_local, reached = propagate(SOMA.fired, dend_structure.bAP_fidelity, geometry)
// reached < full here is structural attenuation (distance), NOT endurance
dend_budget -= prop_cost × reached
// TRACE (deposit fast trace THIS action leaves)
dend_fast_trace += bAP_Ca(bAP_local) + spine_spillover(); dend_budget -= branch_Ca_cost
// EMIT (integrated voltage to soma ; propagated bAP already reached spines)
branch_Vm = integrate(POST.Vm, spines); dend_budget -= integrate_cost
branch_Vm = integrate(POST.Vm, spines); dend_budget -= integrate_cost // EMIT integrated Vm → SOMA
DAY | NOT_bAP: // EVALUATION (climb to tag) + PREPARATION (ship/refill/settle)
// EVAL: strength climb
// ===== RECOVERY (restore branch excitability; alter-ego of propagation) =====
DAY | NOT_bAP · recovered: // Ca clearance
dend_fast_trace *= decay(300ms) // FAST — branch Ca relaxes
// ===== PREPARATION (shape the next propagation AND the NIGHT) =====
DAY | NOT_bAP:
// for NIGHT: strength climb
if dend_fast_trace > elig: dend_possible_tag += dend_fast_trace
if dopamine > dop_thr and dend_possible_tag > tag_thr:
dend_tag += dopamine × dend_possible_tag // token minted for NIGHT
// PREP: attention lowers commit threshold; local translation; ship to spines; refill; settle
// for the next: attention lowers commit threshold; local translation; ship to spines; refill
commit_threshold *= 1/(1 + ACh·ACh_gain)
if dend_tag > tag_expiry and dend_budget > translate_cost: dend_budget -= translate_cost
dend_ship_post = ship(dend_budget, post_demand, post_ship_frac, ship_cost) // EMIT down to spines
dend_budget += refill(dend from astro_lactate[branch] + transit(soma_ship_dend, τ_transport_dend))
// DECAY
// FAST (mss)
dend_fast_trace *= decay(300ms)
// MEDIUM (smin)
dend_possible_tag *= decay(s); dend_endurance_need *= decay(min)
// SLOW (hr)
dend_tag *= decay(hr)
// (PERSISTENT: dend_structure, dend_budget_ceiling — no DAY decay; NIGHT only)
dend_possible_tag *= decay(s); dend_endurance_need *= decay(min) // MEDIUM
dend_tag *= decay(hr) // SLOW
NIGHT · NON_REM_1 = PREPARATION | import + prime + relay setup: // vertical: supply + excitability
// ── NIGHT: SAME three categories, consolidation timescale, subject = the pattern. DEND is an
// intermediate RELAY: its PREPARATION replay relays replay_AP onward to spines IF primed (carrying
// SOMA→DEND→POST). (ACTION ⇄ RECOVERY) × cycles, then PREPARATION.
// ===== RECOVERY (import + prime relay excitability + ship down) =====
NIGHT | import + prime:
dend_material += transit(soma_material_to_dend, τ_transport_dend)
dend_energy += transit(soma_energy_to_dend, τ_transport_dend)
dend_spont_thr = spont_thr_base thr_gain × dend_tag // prime own bAP-relay excitability from own tag
dend_spont_thr = spont_thr_base thr_gain × dend_tag // restore bAP-relay excitability from standing tag
if renorm_signal arrived:
freed = dend_structure × (1 - renorm_signal); dend_structure *= renorm_signal
emit(freed → recycled material pool)
dend_material += dend_ceiling_shrinkage·recycle // energy NOT recovered
// ship this cycle's batch one hop down to POST (feeds the pattern's spine links)
post_material_ship += ship(dend_material, post_demand, f_spine, ship_cost)
post_material_ship += ship(dend_material, post_demand, f_spine, ship_cost) // ship to feed spine links
post_energy_ship += ship(dend_energy, post_demand, f_spine, ship_cost)
NIGHT · REM = EVALUATION | relay replay_AP if primed + MEASURE participation (NO dopamine):
// an arrived replay_AP (from SOMA) re-evokes the branch — relay onward to spines IF primed
if arrived_replay_AP and dend_spont_thr < recruit_thr:
bAP_local = propagate(replay_AP, dend_structure.bAP_fidelity, geometry)
emit(bAP_local → POST) // carries the pattern to the spines IF primed
// ===== PREPARATION (REM: REPLAY the propagation — SAME machinery as DAY ACTION; relays the pattern) =====
NIGHT | replay + measure: // propagation here is PREPARATION, not the deed
if arrived_replay_AP and dend_spont_thr < recruit_thr: // relay onward to spines IF primed
bAP_local = propagate(replay_AP, dend_structure.bAP_fidelity, geometry) // SAME propagate machinery
emit(bAP_local → POST) // carries the pattern to the spines
dend_fast_trace += bAP_Ca(bAP_local)
dend_participation = level(dend_fast_trace) // high/medium/low = branch centrality
if dend_budget < prop_cost and dend_fast_trace > traj_thr: // SAME capacity check → endurance
dend_endurance_need += dend_fast_trace // SAME trace, fed by replay
dend_participation = level(dend_fast_trace) // read replayed response as participation
dend_fast_trace *= decay(300ms)
NIGHT · NON_REM_2 = ACTION | change the structure: // the night's defining deed
// ===== ACTION (change the structure the night's defining deed) =====
NIGHT | change the structure:
dend_structure -= decay_rate·Δt_cycle; dend_structure += min(dend_maint, maint_cost) // homeostatic lowering
if dend_tag > tag_expiry and dend_participation ≥ MEDIUM:
Δ = min(slot_batch, dend_material, dend_energy·f_cap, dend_tag) × dend_participation
@@ -683,7 +734,7 @@ The soma is the neuron's integrating center and the root of its structural mater
the branch inputs, fires when they exceed a threshold it sets from its own adaptation and the
neuromodulators, and ships material and budget out to the dendrites and axon. Its timing —
refractoriness, adaptation, rhythm alignment — emerges bottom-up from local traces, never from
a represented clock. Its behavior unfolds across two DAY contexts and the NIGHT scope.
a represented clock. Its behavior unfolds as the three categories at DAY and at NIGHT.
**During DAY, during AP — the soma integrates and fires.** It computes its firing threshold
from its baseline (structure), its accumulated adaptation, and the neuromodulators, and checks
@@ -717,97 +768,103 @@ downstream components receive depends on the soma having been tagged.
// NOTE SOMA endurance fires only on FUEL shortfall (budget < ap_cost);
// refractory / sub-threshold are timing limits, not endurance. Own-state proxy.
// RING × CONTEXT: AP → ACTION(fire) + EVAL(nuclear Ca→tag) | NOT_AP → EVAL + PREP
// the ONE spike's fast trace feeds TWO destinations: nuclear-Ca → tag (EVALUATION, cross-scope),
// and inactivation/adaptation/alignment → next-spike timing (PREPARATION, this scope).
// THE THREE CATEGORIES (same at DAY and NIGHT; here DAY, subject = the branch input / spike):
// ACTION fire (the defining deed) — context AP
// RECOVERY restore the ability to fire again: refractory de-inactivation + mito replenish —
// the alter-ego of the spike, runs in NOT_AP
// PREPARATION shape the next spike: alignment, adaptation, tag-climb (for NIGHT), ship, decay
// Pattern: (ACTION ⇄ RECOVERY) × many spikes, then PREPARATION.
// ONE spike's fast trace feeds TWO preparation destinations: nuclear-Ca → tag (for NIGHT),
// inactivation/adaptation/alignment → next-spike timing (this scope).
DAY | AP: // ACTION (lateral): fire; then EVAL climbs to tag
// ADJUST (threshold from structure + adaptation + neuromodulators ; refractory gate)
// ===== ACTION =====
DAY | AP: // integrate + fire (the defining deed)
threshold = soma_structure.baseline_threshold × (1 + soma_adaptation) × neuromod(NE, ACh)
can_fire = soma_Na_inactivation < inactivation
// ACTION (fire if able)
if branch_Vm > threshold and can_fire:
if soma_budget < ap_cost:
// FUEL shortfall → endurance (firing was approaching CREB)
if soma_budget < ap_cost: // FUEL shortfall → endurance (a PREPARATION deposit)
if soma_fast_trace > traj_thr and soma_fast_trace_rising:
soma_endurance_need += soma_fast_trace
exit
fired = True; soma_budget -= ap_cost // EMIT fired → AXON, DEND
// deposit the THREE traces from one AP: nuclear-Ca (→EVAL) + adaptation/inactivation (→PREP)
soma_Na_inactivation += ap_amp // PREP seed: refractory (emergent)
soma_adaptation += ap_contrib // PREP seed: threshold rise
soma_fast_trace += nuclear_Ca(); soma_budget -= nuclear_cost // EVAL seed
// EVALUATION: strength climb toward the tag (cross-scope token for NIGHT)
// deposit the THREE traces from one AP (all PREPARATION content, deposited in the action):
soma_Na_inactivation += ap_amp // refractory (recovery will undo this)
soma_adaptation += ap_contrib // threshold rise (next-spike timing)
soma_fast_trace += nuclear_Ca(); soma_budget -= nuclear_cost // → tag (for NIGHT)
if soma_fast_trace > elig: soma_possible_tag += soma_fast_trace
if dopamine > dop_thr and soma_possible_tag > tag_thr:
soma_tag += dopamine × soma_possible_tag
soma_budget -= creb_cost
soma_emitted_activity += 1; soma_emitted_structure = soma_structure // NEURON sums these
DAY | NOT_AP: // EVAL (align) + PREP (recover timing, ship, refill)
// ===== RECOVERY (restore the ability to fire; alter-ego of AP; runs in NOT_AP) =====
DAY | NOT_AP: // de-inactivate + replenish
soma_budget += fill(soma_budget, soma_budget_ceiling, mito_output, 0, soma_budget) // mito replenish
recovery = base_recovery × (1 + soma_refractory_alignment)
soma_Na_inactivation *= decay(τ_Na / recovery) // refractory recovery (sped by alignment)
soma_fast_trace *= decay(τ_nuclear) // FAST — nuclear-Ca relaxes
// ===== PREPARATION (shape the next spike AND the NIGHT; ⊂ NOT_AP, sustained quiet) =====
DAY | NOT_SPIKE_TRAIN:
branch_Vm = integrate(DEND.branch_Vm, branches) // RECEIVE latest branch input
// PREP seed: refractory alignment (suprathreshold input during refractory → tune next-spike timing)
// for next-spike timing: refractory alignment (suprathreshold input during refractory)
if branch_Vm > threshold and soma_Na_inactivation > inactivation:
soma_refractory_alignment += (branch_Vm - threshold) × soma_Na_inactivation
// PREP: ship downstream, self-replenish from root, recover refractoriness (sped by alignment)
// for downstream: ship budget to dendrites + axon (demand-weighted)
soma_ship_dend = ship(soma_budget, dend_demand, dend_ship_frac, ship_cost)
soma_ship_axon = ship(soma_budget, axon_demand, axon_ship_frac, ship_cost)
soma_budget += fill(soma_budget, soma_budget_ceiling, mito_output, 0, soma_budget)
recovery = base_recovery × (1 + soma_refractory_alignment)
soma_Na_inactivation *= decay(τ_Na / recovery)
// DECAY
// FAST (mss) — refractory + nuclear-Ca + alignment
soma_fast_trace *= decay(τ_nuclear); soma_refractory_alignment *= decay(τ_align) // self-limiting
// MEDIUM (smin) — adaptation + tagging evidence
soma_adaptation *= decay(τ_adapt)
// settle medium/slow stocks
soma_refractory_alignment *= decay(τ_align); soma_adaptation *= decay(τ_adapt)
soma_possible_tag *= decay(s); soma_endurance_need *= decay(min)
// SLOW (hr)
soma_tag *= decay(hr); dopamine *= decay(ms)
// ── NIGHT: NON_REM_1 → REM → NON_REM_2, until tag spent (same ring as PRE, rotated). SOMA is a
// ROOT (produces material each cycle) AND the IGNITION POINT: its REM firing propagates a replay
// AP down axon + dendrites, re-evoking the pattern through the DAY PATHWAY. A pattern carries only
// if every link is primed (each component's own tag lowered its own threshold). SOMA's own
// firing/participation is measured the way PRE measures release; NON_REM_2 is its structural act.
// ── NIGHT: SAME three categories, consolidation timescale, subject = the pattern. SOMA is a ROOT
// (produces material each cycle) AND the IGNITION POINT: its PREPARATION replay-fire propagates a
// replay_AP down axon + dendrites, re-evoking the pattern through the DAY PATHWAY. A pattern
// carries only if every link is primed. Night PREPARATION mirrors day ACTION (same fire machinery),
// read for participation, not significance. (ACTION ⇄ RECOVERY) × cycles, then PREPARATION.
NIGHT · NON_REM_1 = PREPARATION | produce + prime: // vertical: production + excitability + supply
// PRODUCTION (root): this cycle's material + energy batch, gated by own tag, capped externally
// ===== RECOVERY (produce + restore the ability to restructure: material, energy, excitability) =====
NIGHT | produce + prime: // ROOT production + alter-ego of night ACTION
soma_material += CREB_synth(soma_tag)·Δt_cycle // material — recoverable
soma_energy += mito_synth()·Δt_cycle // energy — NOT recoverable
night_energy_spent += mito_synth()·Δt_cycle
// prime OWN spontaneous-firing threshold from OWN standing tag (high tag → easier to ignite)
soma_spont_thr = spont_thr_base thr_gain × soma_tag
// ship this cycle's batch down to DEND and AXON (feeds the pattern's downstream links)
soma_material_to_dend += ship(soma_material, dend_demand, f_dend, ship_cost)
soma_spont_thr = spont_thr_base thr_gain × soma_tag // restore firing excitability from standing tag
soma_material_to_dend += ship(soma_material, dend_demand, f_dend, ship_cost) // ship to feed pattern links
soma_material_to_axon += ship(soma_material, axon_demand, f_axon, ship_cost)
soma_energy_to_dend += ship(soma_energy, dend_demand, f_dend, ship_cost)
soma_energy_to_axon += ship(soma_energy, axon_demand, f_axon, ship_cost)
soma_material += soma_ceiling_shrinkage·recycle // recycle
soma_material += soma_ceiling_shrinkage·recycle
NIGHT · REM = EVALUATION | fire to ignite + MEASURE participation (NO dopamine): // ignition + probe
// ===== PREPARATION (REM: REPLAY the fire — SAME machinery as DAY ACTION; ignites the pattern) =====
NIGHT | replay-fire + measure: // firing here is PREPARATION, not the deed
spont = intrinsic_fluctuation()
if spont > soma_spont_thr:
if spont > soma_spont_thr: // ignite (SAME threshold logic as day fire)
replay_AP = TRUE
soma_fast_trace += nuclear_Ca() // deposit trace (the measurement)
// propagate down the DAY PATHWAY (self-igniting): AP → axon → boutons ; bAPdendrites/spines
emit(replay_AP → AXON, DEND) // AXON/DEND relay onward IF primed
// pattern carries link by link, each relaying only if primed (mechanical coherence):
// SOMA →[replay_AP]→ AXON(primed?) →→ PRE(primed?) →[glutamate]→ POST(primed?) →→ DEND →→ SOMA
// a single un-primed link breaks the loop — only all-primed patterns re-evoke.
soma_participation = level(soma_fast_trace) // high/medium/low = circuit centrality (no dopamine)
soma_fast_trace += nuclear_Ca()·δ(replay) // SAME trace deposit as DAY ACTION
if soma_budget < ap_cost: // SAME capacity check → endurance evidence
if soma_fast_trace > traj_thr: soma_endurance_need += soma_fast_trace // SAME trace, fed by replay
else:
soma_budget -= ap_cost
emit(replay_AP → AXON, DEND) // propagate: AXON/DEND relay onward IF primed
// pattern carries link by link, primed→primed (mechanical coherence):
// SOMA →[replay_AP]→ AXON →→ PRE →[glutamate]→ POST →→ DEND →→ SOMA ; one un-primed link breaks it
soma_participation = level(soma_fast_trace) // read replayed response as participation
soma_fast_trace *= decay(τ_nuclear)
NIGHT · NON_REM_2 = ACTION | change the structure: // the night's defining deed
// ===== ACTION (change the structure the night's defining deed) =====
NIGHT | change the structure:
soma_structure -= decay_rate·Δt_cycle; soma_structure += min(soma_maint, maint_cost) // homeostatic lowering
if soma_tag > tag_expiry and soma_participation ≥ MEDIUM:
Δ = min(slot_batch, soma_material, soma_energy·f_cap, soma_tag) × soma_participation
soma_structure += Δ; soma_material -= Δ; soma_energy -= Δ·assembly_cost
soma_tag -= Δ // CONSUME on build → threshold rises next cycle
soma_tag -= Δ // CONSUME on build → excitability drops next cycle
if soma_endurance_need > endur_thr:
Δ' = min(cap_batch, soma_material·f_cap, soma_energy·f_cap)
soma_budget_ceiling += Δ'; soma_material -= Δ'; soma_energy -= Δ'·biogenesis_cost
soma_endurance_need -= Δ'
// if tag low or participation low: no build — never worth the spend (forgotten)
else:
soma_budget_ceiling -= capacity_decay_rate·Δt_cycle; soma_budget_ceiling += min(soma_cap_maint, cap_cost)
soma_endurance_need *= decay(slow)
```
@@ -817,7 +874,7 @@ NIGHT · NON_REM_2 = ACTION | change the structure: // the night's defin
The axon carries the soma's spike out to its boutons and is the presynapse's supply line. It
propagates reliably or not depending on its myelination and its recent load, and ships material
and budget to the boutons. Its behavior unfolds across two DAY contexts and the NIGHT scope.
and budget to the boutons. Its behavior unfolds as the three categories at DAY and at NIGHT.
**During DAY, during AP — the axon propagates the spike.** Reliability is set by structure
(myelination) and degraded by recent high-frequency load (sodium inactivation at branch points —
@@ -843,56 +900,68 @@ ceilings drift down.
// NOTE AXON endurance fires only on FUEL shortfall; load-driven failure fail(fast_trace)
// is axonal STD (a consequence), not endurance. Own-state proxy.
// RING × CONTEXT: AP → ACTION(propagate) | NOT_AP → EVAL(climb to tag) + PREP(ship/refill/settle)
// THE THREE CATEGORIES (same at DAY and NIGHT; here DAY, subject = soma's spike):
// ACTION propagate the delivered spike to boutons (context AP)
// RECOVERY restore axon excitability: ionic re-equilibration (fast alter-ego of propagation)
// PREPARATION shape the next: tag climb (NIGHT), ship to boutons, refill, settle
// fail(fast_trace) is load-driven axonal STD (a consequence); FUEL shortfall is endurance.
DAY | AP: // ACTION (lateral): propagate the spike
// ADJUST (reliability from structure load-driven failure)
// ===== ACTION =====
DAY | AP: // propagate the spike (the defining deed)
reliability = axon_structure.propagation × (1 - fail(axon_fast_trace)) // fail() = STD, not endurance
if axon_budget < prop_cost:
reliability *= budget_factor
if axon_fast_trace > traj_thr: // FUEL-limited → endurance
if axon_fast_trace > traj_thr: // FUEL-limited → endurance (a PREPARATION deposit)
axon_endurance_need += axon_fast_trace
delivered = fired × reliability; axon_budget -= prop_cost × delivered // EMIT delivered → boutons
axon_fast_trace += delivered; axon_fast_trace *= decay(s) // deposit fast trace
axon_fast_trace += delivered // deposit fast trace
DAY | NOT_AP: // EVALUATION (climb to tag) + PREPARATION
// EVAL: strength climb → token for NIGHT
// ===== RECOVERY (restore axon excitability; alter-ego of propagation) =====
DAY | NOT_AP · recovered: // ionic re-equilibration
axon_fast_trace *= decay(s) // FAST — shaft relaxes
// ===== PREPARATION (shape the next propagation AND the NIGHT) =====
DAY | NOT_AP:
// for NIGHT: strength climb → token for NIGHT
if axon_fast_trace > elig: axon_possible_tag += axon_fast_trace
if dopamine > dop_thr and axon_possible_tag > tag_thr:
axon_tag += dopamine × axon_possible_tag
// PREP: ship to boutons, refill toward next demand, settle
// for the next: ship to boutons, refill toward next demand
axon_ship_pre = ship(axon_budget, pre_demand, pre_ship_frac, ship_cost)
axon_budget += refill(axon from soma_ship_axon + astro_lactate[shaft])
// DECAY
// FAST (mss)
axon_fast_trace *= decay(s)
// MEDIUM (smin)
axon_possible_tag *= decay(s); axon_endurance_need *= decay(min)
// SLOW (hr)
axon_tag *= decay(hr)
axon_possible_tag *= decay(s); axon_endurance_need *= decay(min) // MEDIUM
axon_tag *= decay(hr) // SLOW
NIGHT · NON_REM_1 = PREPARATION | import + prime + relay setup: // vertical: supply + excitability
// ── NIGHT: SAME three categories, consolidation timescale, subject = the pattern. AXON is an
// intermediate RELAY: its PREPARATION replay relays replay_AP onward to boutons IF primed (carrying
// SOMA→AXON→PRE). (ACTION ⇄ RECOVERY) × cycles, then PREPARATION.
// ===== RECOVERY (import + prime relay excitability + ship down) =====
NIGHT | import + prime:
axon_material += transit(soma_material_to_axon, τ_transport_dend)
axon_energy += transit(soma_energy_to_axon, τ_transport_dend)
axon_spont_thr = spont_thr_base thr_gain × axon_tag // prime own relay excitability from own tag
axon_spont_thr = spont_thr_base thr_gain × axon_tag // restore relay excitability from standing tag
if renorm_signal arrived:
freed = axon_structure × (1 - renorm_signal); axon_structure *= renorm_signal
emit(freed → recycled material pool)
axon_material += axon_ceiling_shrinkage·recycle // energy NOT recovered
// ship this cycle's batch one hop down to PRE (feeds the pattern's bouton links)
pre_material_ship += ship(axon_material, pre_demand, f_bouton, ship_cost)
pre_material_ship += ship(axon_material, pre_demand, f_bouton, ship_cost) // ship to feed bouton links
pre_energy_ship += ship(axon_energy, pre_demand, f_bouton, ship_cost)
NIGHT · REM = EVALUATION | relay replay_AP if primed + MEASURE participation (NO dopamine):
// an arrived replay_AP (from SOMA) — relay onward to boutons IF primed (this carries SOMA→PRE)
if arrived_replay_AP and axon_spont_thr < recruit_thr:
// ===== PREPARATION (REM: REPLAY the propagation — SAME machinery as DAY ACTION; relays the pattern) =====
NIGHT | replay + measure: // propagation here is PREPARATION, not the deed
if arrived_replay_AP and axon_spont_thr < recruit_thr: // relay onward to boutons IF primed
reliability = axon_structure.propagation × (1 - fail(axon_fast_trace)) // SAME reliability machinery
delivered = reliability × axon_structure.propagation
emit(replay_AP → PRE) // carries the pattern to the boutons IF primed
emit(replay_AP → PRE) // carries the pattern to the boutons
axon_fast_trace += delivered
axon_participation = level(axon_fast_trace) // high/medium/low = shaft centrality
if axon_budget < prop_cost and axon_fast_trace > traj_thr: // SAME capacity check → endurance
axon_endurance_need += axon_fast_trace // SAME trace, fed by replay
axon_participation = level(axon_fast_trace) // read replayed response as participation
axon_fast_trace *= decay(s)
NIGHT · NON_REM_2 = ACTION | change the structure: // the night's defining deed
// ===== ACTION (change the structure the night's defining deed) =====
NIGHT | change the structure:
axon_structure -= decay_rate·Δt_cycle; axon_structure += min(axon_maint, maint_cost) // homeostatic lowering
if axon_tag > tag_expiry and axon_participation ≥ MEDIUM:
Δ = min(slot_batch, axon_material, axon_energy·f_cap, axon_tag) × axon_participation
@@ -1032,17 +1101,20 @@ DAY or NIGHT | OVERLOAD:
---
---
> NIGHT-BLOCK UNIFORMITY. ALL SIX local components now run the NIGHT ring
> (NON_REM_1 = PREPARATION · REM = EVALUATION · NON_REM_2 = ACTION), each adapted to its role:
> (a) NON_REM_1 imports/produces supply, primes its OWN threshold from its OWN standing tag,
> NIGHT-BLOCK UNIFORMITY (three categories). PRE, SOMA, POST, DEND, AXON now run both DAY and NIGHT
> chunked as (ACTION RECOVERY) × many, then PREPARATION, under explicit `// ===== =====` separators:
> (a) NIGHT-RECOVERY imports/produces supply, primes its OWN threshold from its OWN standing tag,
> applies the descended constraint to itself, recycles, and — for intermediate nodes AXON/DEND —
> ships downstream so the pattern's links are fed; (b) REM releases/fires/responds as a PROBE and
> reads its own fast_trace as participation (level: high/medium/low), NO dopamine — AXON/DEND also
> RELAY the arrived replay_AP onward IF primed (this carries the pattern SOMA→AXON→PRE and
> SOMA→DEND→POST); (c) NON_REM_2 lowers structure homeostatically, then rebuilds where the tag still
> stands AND participation ≥ medium, consuming the tag. Roots (SOMA material, ASTROSYNAPSE energy)
> additionally PRODUCE each cycle and track night_energy_spent. The replay pattern propagates entirely
> through the DAY PATHWAYS, self-igniting, carrying only where every link is primed.
> ships downstream so the pattern's links are fed; (b) NIGHT-PREPARATION REPLAYS the day action —
> re-runs the SAME release/fire/respond/propagate machinery (same capacity/vesicle checks, same
> endurance deposit into the SAME trace), read as participation (level: high/medium/low), NO dopamine;
> AXON/DEND/SOMA also propagate the replay_AP onward IF primed (carrying SOMA→AXON→PRE and
> SOMA→DEND→POST); (c) NIGHT-ACTION lowers structure homeostatically, then rebuilds where the tag
> still stands AND participation ≥ medium, consuming the tag. Roots (SOMA material) additionally
> PRODUCE each cycle. The replay pattern propagates entirely through the DAY PATHWAYS, self-igniting,
> carrying only where every link is primed.
> [ASTROSYNAPSE still shows the earlier NON_REM/REM form — pending its own pass (it is continuous and
> under-described; the three-category cut will be verified there separately).]
---
---
@@ -1079,8 +1151,8 @@ DAY | active: // (own_activity high
NIGHT | cycle: // (own_activity low AND sleep_pressure high)
// the neuron acts ONLY by signalling; components prime/measure/rebuild themselves. Each
// component's cycle is NON_REM_1→REM→NON_REM_2; the neuron just supplies the constraint.
occupancy_downscale = downscale_factor // → components reset own occupancy (in NON_REM_1)
// component's cycle is RECOVERY→PREPARATION→ACTION; the neuron just supplies the constraint.
occupancy_downscale = downscale_factor // → components reset own occupancy (in RECOVERY)
if neuron_total_weight > neuron_weight_ceiling:
renorm_signal = neuron_weight_ceiling / neuron_total_weight // → components scale own structure
rest_permission = TRUE // → components may restructure this cycle