From 4c6c9563454af67f028936cfa755e9b666e7a04f Mon Sep 17 00:00:00 2001 From: ocrampal Date: Fri, 19 Jun 2026 14:09:24 +0200 Subject: [PATCH] fill vs refill --- .../2026-06-19-biological-reference-v10.md | 32 ++++++++++++++ .../2026-06-19-tripartite-synapse_v10.md | 44 ++++++++++++------- 2 files changed, 60 insertions(+), 16 deletions(-) diff --git a/elements/neuron/appunti/2026-06-19-biological-reference-v10.md b/elements/neuron/appunti/2026-06-19-biological-reference-v10.md index 6049eab..9a9b3c7 100644 --- a/elements/neuron/appunti/2026-06-19-biological-reference-v10.md +++ b/elements/neuron/appunti/2026-06-19-biological-reference-v10.md @@ -242,3 +242,35 @@ of the whole synapse. ### Shockwave lockdown Emergency global astrocytic Ca²⁺ wave → GABA + ATP release → mass AMPA internalization and hyperpolarization. Bypasses budget gates. A circuit breaker against runaway excitation. + +--- + +## Pool-filling: private reserve vs contested supply + +The pseudocode uses two filling primitives, distinguished by where the resource comes from. + +**`fill` (private reserve).** The pool is replenished from a source the component owns +outright, uncontested by siblings, bounded by the component's own ceiling and a rate cap. +- RRP refill — vesicles mobilized from the bouton's own reserve pool toward the docking-slot + ceiling, rate-limited by VATPase. The reserve is private to the bouton. +- SOMA self-replenish — the soma fuels itself from its own mitochondria toward its budget + ceiling. No other component draws on it. + +**`refill` (contested supply).** The pool is replenished from a supply that multiple +components compete for, rationed by demand (gap to ceiling). +- pre/post/dend/axon budgets — drawn from astrocytic lactate (shared across all synapses the + astrocyte wraps) plus shipment from soma/axon/dendrite (shared across downstream targets). + +**Neither primitive (their own forms).** Some inflows are not fills toward a ceiling: +- AMPA surface insertion — Ca²⁺-driven rate from the spine's private endosomal reserve, with + an explicit passive drift-back (short-term depression) when Ca²⁺ is low. Not a steady fill. +- D-serine release — demand-driven (saturating in astro Ca²⁺) and budget-limited, like NT + release; a release process, not a pool top-up. +- Root productions — `glycolysis(glucose)` at the astrocyte and `CREB_synth(soma_tag)` at the + soma are the system's energy and material roots: raw inflows capped only by the external + vascular supply, not fills toward an internal ceiling. + +The distinction matters biologically: a private reserve guarantees a component some autonomy +(the bouton can refill its RRP from its own vesicles even when lactate is scarce), while a +contested supply couples a component's fate to its neighbours' demands (operational budget +fails first where many active synapses compete for the same lactate). diff --git a/elements/neuron/appunti/2026-06-19-tripartite-synapse_v10.md b/elements/neuron/appunti/2026-06-19-tripartite-synapse_v10.md index 2cdcbf2..d5fb9c8 100644 --- a/elements/neuron/appunti/2026-06-19-tripartite-synapse_v10.md +++ b/elements/neuron/appunti/2026-06-19-tripartite-synapse_v10.md @@ -66,17 +66,31 @@ Replenishment contexts (NOT_AP, NOT_bAP): competitive refill, ship downstream, d --- -## Shared competitive replenishment (used by all NOT contexts) +## Pool-filling primitives + +Two shapes share the core "rise toward a ceiling, bounded by the gap, paying budget": ``` +// PRIVATE: fill own pool from own reserve toward own ceiling, at a rate cap +fill(pool, ceiling, rate_cap, cost, budget): + amount = min(rate_cap, ceiling - pool)·Δt // bounded by rate AND gap + pool += amount + budget -= amount·cost + +// CONTESTED: fill toward ceiling by a rationed share of a shared supply S refill(component c from supply S): - demand = c.budget_ceiling - c.budget // claim = gap to ceiling - total = Σ demand over components on S - factor = min(1, S / (total + ε)) - c.budget += demand × factor // never exceeds ceiling - S -= demand × factor + demand = c.budget_ceiling - c.budget // claim = gap to ceiling + total = Σ demand over components on S + factor = min(1, S / (total + ε)) + c.budget += demand × factor // never exceeds ceiling + S -= demand × factor ``` +Choose by source: a pool drawn from a **private reserve** uses `fill`; a pool drawn from a +**contested shared supply** uses `refill`. The distinction is biologically real — RRP comes +from the bouton's private reserve pool, while operational budget comes from astrocytic lactate +that neighbours compete for. + --- ## PRE @@ -93,16 +107,13 @@ DAY | AP: if RRP > 0: NT_flux = RRP × drive glutamate += NT_flux·Δt; RRP -= NT_flux·Δt; pre_budget -= NT_flux·fusion_cost - RRP += min(refill_rate, pre_structure.refill_ceiling)·Δt - RRP = clamp(RRP, 0, pre_structure.slot_ceiling) - pre_budget -= RRP_refill·vatpase_cost - if glutamate > spillover: drive *= brake + fill(RRP, pre_structure.slot_ceiling, pre_structure.refill_ceiling, vatpase_cost, pre_budget) + if glutamate > spillover: drive *= brake // output brake (not a fill) DAY | NOT_AP: pre_fast_trace *= decay(100ms); pre_endurance_need *= decay(min) - refill(pre from astro_lactate[syn] + axon_ship_pre) - RRP += min(refill_rate, pre_structure.refill_ceiling)·Δt - RRP = clamp(RRP, 0, pre_structure.slot_ceiling) + refill(pre from astro_lactate[syn] + axon_ship_pre) // contested: lactate + shipment + fill(RRP, pre_structure.slot_ceiling, pre_structure.refill_ceiling, vatpase_cost, pre_budget) if pre_fast_trace > elig: pre_possible_tag += pre_fast_trace pre_possible_tag *= decay(s); dopamine *= decay(ms) if dopamine > dop_thr and pre_possible_tag > tag_thr: @@ -129,10 +140,11 @@ DAY | NOT_bAP: post_fast_trace *= decay(ms) - // CASE 1 — short-term potentiation: fill slots (no dopamine) + // CASE 1 — short-term potentiation: fill slots from private reserve (no dopamine) + // NOT generic fill(): rate is Ca-driven, and the else-branch is the STD consequence if post_fast_trace > Ca_STP: AMPA_surface = min(AMPA_surface + Ca_insert(post_fast_trace), - post_structure.slot_ceiling) + post_structure.slot_ceiling) // private: spine endosomal reserve post_budget -= traffic_cost else: AMPA_surface = max(AMPA_surface - drift·Δt, baseline) // STD = consequence @@ -223,7 +235,7 @@ DAY | NOT_AP: soma_fast_trace *= decay(τ_nuclear) soma_refractory_alignment *= decay(τ_align) // self-limiting soma_endurance_need *= decay(min) - soma_budget += mito_output·Δt // self-replenish (root) + fill(soma_budget, soma_budget_ceiling, mito_output, 0, soma_budget) // private: own mitochondria, no external cost branch_Vm = integrate(DEND.branch_Vm, branches) ship(soma_budget → dend_budget, gap_to(dend)) ship(soma_budget → axon_budget, gap_to(axon))