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

This commit is contained in:
2026-07-07 23:21:35 +02:00
parent cf9f4476f3
commit be8b241395
@@ -16,6 +16,11 @@
> MEDIUM; tag funds a slice, persists across cycles) vs release (participation LOW; frees material;
> tag untouched). Build/release compete WITHIN a component; material competes BETWEEN components.
> Two forgettings: structural pruning (low participation) · intention decay (tag unspent).
> TWO PATHWAYS: STRENGTH (possible_tag → dopamine → tag → structure) is dopamine-gated and belongs
> only to the significance-deciding sites — POST (primary), PRE, SOMA. ENDURANCE (endurance_need →
> budget_ceiling) is homeostatic, load-driven, NO dopamine. The relays AXON and DEND and the glial
> ASTROSYNAPSE are ENDURANCE-ONLY (no reward-validated strength tag); the astrosynapse's coverage
> build is driven by coverage_need (spillover coincident with postsynaptic NO), a homeostatic signal.
> (4) DAY collaborates (non-rival information; each acts so the next can act); NIGHT competes (rival
> conserved material) — but the competition is ADJUDICATED by collaborative replay (participation).
> (5) ASTROCYTE is the metabolic sensor (drives the switch, permits waking) and DAY primer (alpha-driven
@@ -651,32 +656,28 @@ DAY | NOT_bAP · recovered: // Ca clearance
// ===== 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
// DEND is an ENDURANCE-ONLY relay: NO dopamine-gated strength tag. Its consolidation is load-driven
// (endurance_need, deposited in ACTION on fuel-limited propagation) — not reward-validated potentiation.
// (structural strengthening of a branch is emergent from its spines' tags, not an independent dend tag.)
// 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
if dend_budget > translate_cost and dend_endurance_need > endur_thr: 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))
dend_possible_tag *= decay(s); dend_endurance_need *= decay(min) // MEDIUM
dend_tag *= decay(hr) // SLOW
dend_endurance_need *= decay(min) // MEDIUM (the only pathway)
// ── NIGHT: SAME three categories, subject = the pattern. DEND is an intermediate RELAY: its
// PREPARATION replay relays replay_AP onward to spines IF primed (carrying SOMA→DEND→POST).
// Rhythm: (ACTION ⇄ RECOVERY) × many, then PREPARATION. Build⇄release WITHIN; material BETWEEN.
// ENDURANCE-ONLY: night ACTION builds CAPACITY (from endurance_need) ⇄ releases where participation
// is low — no dopamine strength tag. Rhythm: (ACTION ⇄ RECOVERY) × many, then PREPARATION.
// ===== ACTION (build ⇄ release; participation gates direction; tag funds build, persists) =====
// ===== ACTION (build CAPACITY ⇄ release; participation gates direction; endurance funds build) =====
NIGHT | build or release:
if dend_tag > tag_expiry and dend_participation ≥ MEDIUM: // BUILD (slice)
Δ = min(slot_batch, dend_material, dend_energy·f_cap, dend_tag) × dend_participation
dend_structure += Δ; dend_material -= Δ; dend_energy -= Δ·assembly_cost; dend_tag -= Δ
if dend_endurance_need > endur_thr:
if dend_endurance_need > endur_thr and dend_participation ≥ MEDIUM: // BUILD capacity (load-driven, no dopamine)
Δ' = min(cap_batch, dend_material·f_cap, dend_energy·f_cap)
dend_budget_ceiling += Δ'; dend_material -= Δ'; dend_energy -= Δ'·biogenesis_cost
dend_endurance_need -= Δ'
else if dend_participation == LOW: // RELEASE: shed, free material; tag untouched
else if dend_participation == LOW: // RELEASE: shed, free material
shed = release_rate × max(dend_structure - homeostatic_floor, 0)
dend_structure -= shed; dend_freed_material += shed·recycle
dend_budget_ceiling -= capacity_decay_rate·Δt_cycle
@@ -705,10 +706,10 @@ NIGHT | replay + measure + prime:
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
// MEDIUM: prime bAP-relay excitability from the standing tag
dend_spont_thr = spont_thr_base thr_gain × dend_tag
// MEDIUM: a relay stays recruitable at baseline (no tag to prime from — it carries whatever reaches it)
dend_spont_thr = spont_thr_base
// SLOW: settle
dend_fast_trace *= decay(300ms); dend_tag *= decay(hr); dend_endurance_need *= decay(slow)
dend_fast_trace *= decay(300ms); dend_endurance_need *= decay(slow)
emit(dend_fatigue, dend_demand → upward)
```
@@ -913,30 +914,26 @@ DAY | NOT_AP · recovered: // ionic re-equilibr
// ===== 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
// AXON is an ENDURANCE-ONLY relay: NO dopamine-gated strength tag. Structural change (myelination,
// propagation reliability) is LOAD-driven — built from endurance_need where it repeatedly propagated
// hard — not reward-validated. An axon needs no signal that a memory was rewarding to know it ran hard.
// 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])
axon_possible_tag *= decay(s); axon_endurance_need *= decay(min) // MEDIUM
axon_tag *= decay(hr) // SLOW
axon_endurance_need *= decay(min) // MEDIUM (the only pathway)
// ── NIGHT: SAME three categories, subject = the pattern. AXON is an intermediate RELAY: its
// PREPARATION replay relays replay_AP onward to boutons IF primed (carrying SOMA→AXON→PRE).
// Rhythm: (ACTION ⇄ RECOVERY) × many, then PREPARATION. Build⇄release WITHIN; material BETWEEN.
// ENDURANCE-ONLY: night ACTION builds CAPACITY (from endurance_need) ⇄ releases where participation
// is low — no dopamine strength tag. Rhythm: (ACTION ⇄ RECOVERY) × many, then PREPARATION.
// ===== ACTION (build ⇄ release; participation gates direction; tag funds build, persists) =====
// ===== ACTION (build CAPACITY ⇄ release; participation gates direction; endurance funds build) =====
NIGHT | build or release:
if axon_tag > tag_expiry and axon_participation ≥ MEDIUM: // BUILD (slice)
Δ = min(slot_batch, axon_material, axon_energy·f_cap, axon_tag) × axon_participation
axon_structure += Δ; axon_material -= Δ; axon_energy -= Δ·assembly_cost; axon_tag -= Δ
if axon_endurance_need > endur_thr:
if axon_endurance_need > endur_thr and axon_participation ≥ MEDIUM: // BUILD capacity (load-driven, no dopamine)
Δ' = min(cap_batch, axon_material·f_cap, axon_energy·f_cap)
axon_budget_ceiling += Δ'; axon_material -= Δ'; axon_energy -= Δ'·biogenesis_cost
axon_endurance_need -= Δ'
else if axon_participation == LOW: // RELEASE: shed, free material; tag untouched
else if axon_participation == LOW: // RELEASE: shed, free material
shed = release_rate × max(axon_structure - homeostatic_floor, 0)
axon_structure -= shed; axon_freed_material += shed·recycle
axon_budget_ceiling -= capacity_decay_rate·Δt_cycle
@@ -966,10 +963,10 @@ NIGHT | replay + measure + prime:
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
// MEDIUM: prime relay excitability from the standing tag
axon_spont_thr = spont_thr_base thr_gain × axon_tag
// MEDIUM: a relay stays recruitable at baseline (no tag to prime from — it carries whatever reaches it)
axon_spont_thr = spont_thr_base
// SLOW: settle
axon_fast_trace *= decay(s); axon_tag *= decay(hr); axon_endurance_need *= decay(slow)
axon_fast_trace *= decay(s); axon_endurance_need *= decay(slow)
emit(axon_fatigue, axon_demand → upward)
```
@@ -1047,31 +1044,33 @@ DAY | CONTINUOUS · recovery | per astrosynapse i:
astro_budget[i] += refill(astro[i] from lactate ← ASTROCYTE) // restock (contested territory supply)
astro_fast_trace[i] *= decay(s) // Ca relaxes — ready to detect next spillover
// ===== PREPARATION (stock the volume/gain tag; read descended spike/prime; faces the NIGHT) =====
// ===== PREPARATION (stock the volume-need tag; read descended spike/prime; faces the NIGHT) =====
DAY | CONTINUOUS · preparation | per astrosynapse i:
// tag = accumulated spillover COINCIDENT with real postsynaptic response (eavesdropped NO)
// ENDURANCE-TYPE tag (NO dopamine): the volume-need is homeostatic, like fuel-shortfall endurance.
// It accumulates directly from spillover COINCIDENT with a real postsynaptic response (eavesdropped
// NO) — "I repeatedly outgrew my coverage on genuine co-activation" — not from reward validation.
// (dopamine reaches glia only as slow tone, folded into the astrocyte's prime — not a per-event gate.)
if astro_fast_trace[i] > elig and retro_NO > NO_thr:
astro_possible_tag[i] += astro_fast_trace[i] × (1 + retro_NO)·Δt
if dopamine > dop_thr and astro_possible_tag[i] > tag_thr:
astro_tag[i] += dopamine × astro_possible_tag[i] // token for NIGHT (volume decision)
astro_possible_tag[i] *= decay(s); astro_endurance_need[i] *= decay(min) // MEDIUM
astro_tag[i] *= decay(hr) // SLOW
astro_coverage_need[i] += astro_fast_trace[i] × (1 + retro_NO)·Δt // the volume tag, self-gated
astro_coverage_need[i] *= decay(hr) // SLOW (persists across cycles)
astro_endurance_need[i] *= decay(min) // MEDIUM (synthesis capacity)
// ── NIGHT: SAME three categories, subject = the pattern. Astrosynapses compete for the ASTROCYTE's
// produced material/energy (the astrocyte is their root). Build ⇄ release COVERAGE, participation
// from the Ca response to re-evoked spillover. (ACTION ⇄ RECOVERY) × many, then PREPARATION.
// produced material/energy (the astrocyte is their root). ENDURANCE-TYPE: coverage build is driven by
// coverage_need (homeostatic spillover signal), NOT a dopamine strength tag. Build ⇄ release COVERAGE,
// participation from the Ca response to re-evoked spillover. (ACTION ⇄ RECOVERY) × many, then PREPARATION.
// ===== ACTION (build ⇄ release COVERAGE; participation gates direction; tag funds build, persists) =====
// ===== ACTION (build ⇄ release COVERAGE; participation gates direction; coverage_need funds build) =====
NIGHT | build or release | per astrosynapse i:
if astro_tag[i] > tag_expiry and astro_participation[i] ≥ MEDIUM: // BUILD coverage (slice)
Δ = min(slot_batch, astro_material[i], astro_energy[i]·f_cap, astro_tag[i]) × astro_participation[i]
if astro_coverage_need[i] > tag_expiry and astro_participation[i] ≥ MEDIUM: // BUILD coverage (slice)
Δ = min(slot_batch, astro_material[i], astro_energy[i]·f_cap, astro_coverage_need[i]) × astro_participation[i]
astro_structure[i] += Δ // enlarge coverage → faster clearance, less spillover
astro_material[i] -= Δ; astro_energy[i] -= Δ·assembly_cost; astro_tag[i] -= Δ
astro_material[i] -= Δ; astro_energy[i] -= Δ·assembly_cost; astro_coverage_need[i] -= Δ
if astro_endurance_need[i] > endur_thr:
Δ' = min(cap_batch, astro_material[i]·f_cap, astro_energy[i]·f_cap)
astro_budget_ceiling[i] += Δ'; astro_material[i] -= Δ'
astro_energy[i] -= Δ'·biogenesis_cost; astro_endurance_need[i] -= Δ'
else if astro_participation[i] == LOW: // RELEASE coverage: shed, free material; tag untouched
else if astro_participation[i] == LOW: // RELEASE coverage: shed, free material
shed = release_rate × max(astro_structure[i] - homeostatic_floor, 0)
astro_structure[i] -= shed; astro_freed_material[i] += shed·recycle
astro_budget_ceiling[i] -= capacity_decay_rate·Δt_cycle
@@ -1089,7 +1088,7 @@ NIGHT | replay + measure | per astrosynapse i:
if arrived_glutamate_replay[i]: // re-evoked spillover arrives (probe)
astro_fast_trace[i] += mGluR_Ca() // SAME mGluR machinery as DAY ACTION
astro_participation[i] = level(astro_fast_trace[i]) // read replayed response as participation
astro_fast_trace[i] *= decay(s); astro_tag[i] *= decay(hr); astro_endurance_need[i] *= decay(slow)
astro_fast_trace[i] *= decay(s); astro_coverage_need[i] *= decay(hr); astro_endurance_need[i] *= decay(slow)
emit(astro_fatigue, astro_demand → upward)
```
@@ -1218,7 +1217,7 @@ NIGHT | cycle: // (within broadca
astro_central_material += astro_cellbody_synth()·Δt_cycle // recoverable
night_energy_spent += overnight_glycolysis(glucose)·Δt_cycle
// ADJUST allocation weights across the territory (tag × replay) — astrosynapses APPLY these in their RECOVERY
for each i: astro_alloc[i] = (astro_tag[i] × replay_reweight[i]) / Σ(astro_tag × replay_reweight)
for each i: astro_alloc[i] = (astro_coverage_need[i] × replay_reweight[i]) / Σ(astro_coverage_need × replay_reweight)
rest_permission[i] = TRUE // → each astrosynapse builds/releases itself
// RECOVER reclaim material from decayed astrosynapse ceilings (returned to central pool)
astro_central_material += astro_ceiling_shrinkage·recycle