From be8b24139529129a86d0d2073409aadfc67cd75b Mon Sep 17 00:00:00 2001 From: ocrampal Date: Tue, 7 Jul 2026 23:21:35 +0200 Subject: [PATCH] Update 2026-06-29-tripartite-synapse_v17.md --- .../2026-06-29-tripartite-synapse_v17.md | 109 +++++++++--------- 1 file changed, 54 insertions(+), 55 deletions(-) diff --git a/elements/neuron/appunti/2026-06-29-tripartite-synapse_v17.md b/elements/neuron/appunti/2026-06-29-tripartite-synapse_v17.md index d558b5e..d0f22a6 100644 --- a/elements/neuron/appunti/2026-06-29-tripartite-synapse_v17.md +++ b/elements/neuron/appunti/2026-06-29-tripartite-synapse_v17.md @@ -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: - Δ' = 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 + 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 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: - Δ' = 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 + 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 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