From cf9f4476f318a28abd4e1316463b8682180269c6 Mon Sep 17 00:00:00 2001 From: ocrampal Date: Tue, 7 Jul 2026 14:44:22 +0200 Subject: [PATCH] Update 2026-06-29-tripartite-synapse_v17.md --- .../2026-06-29-tripartite-synapse_v17.md | 265 ++++++++++-------- 1 file changed, 142 insertions(+), 123 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 6881f56..d558b5e 100644 --- a/elements/neuron/appunti/2026-06-29-tripartite-synapse_v17.md +++ b/elements/neuron/appunti/2026-06-29-tripartite-synapse_v17.md @@ -23,7 +23,8 @@ > (6) governing rule: NO actor authorizes its own restructuring — each is PUT IN POSITION by the actor > above (holds an aggregate it cannot see, opens a window it cannot open). Act locally, consolidate > hierarchically. Material recycles; ENERGY does not (the arrow of time). -> PENDING: ASTROSYNAPSE night still in the earlier NON_REM/REM form (its own pass — continuous case). +> ASTROSYNAPSE now converted: D-serine = POST gain (not gate) ; astrocyte Ca-spike = territory-coincidence +> broadcast (integrate-and-fire) ; astrosynapse = volume/gain modulator, build⇄release coverage. --- @@ -474,12 +475,12 @@ and compete; unmaintained ceilings drift down. ``` // PARAMETERS K_AMPA · AMPA_Ca · AMPA_cost · NMDA_cost · bAP_cost · pka_cost · traffic_cost -// req_cost · Mg_eject · Dserine_thr · Ca_STP · Ca_TAG · eCB_thr · drift · baseline +// req_cost · Mg_eject · K_Ds · Ca_STP · Ca_TAG · eCB_thr · drift · baseline // NO_synth_cost · eCB_synth_cost // INTERFACE // EMIT retro_NO (+), retro_eCB (−) → PRE // RECEIVE (signals) glutamate ← PRE ; astro_Dserine ← ASTRO ; bAP ← DEND/SOMA ; dopamine -// READ glutamate ; astro_Dserine ; bAP (dend_structure.bAP_fidelity) ; dopamine +// READ glutamate ; astro_Dserine (GAIN, not gate) ; bAP (dend_structure.bAP_fidelity) ; dopamine // OWN post_structure{slot_ceiling, spine_volume, reserve_ceiling} ; post_budget_ceiling // SUPPLY astro_lactate[syn] ← ASTRO ; dend_ship_post ← DEND ; post_material ← DEND(NIGHT) ; post_energy ← SOMA(NIGHT) // EMERGENCY shockwave_lockdown ← ASTRO @@ -502,8 +503,9 @@ DAY | NOT_bAP: // respond to arrived 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 + if Vm > Mg_eject and glutamate > 0: // SOURCE 2 NMDA (Mg relieved) + post_fast_trace += NMDA_Ca(glutamate) × sat(astro_Dserine, K_Ds)·rise_speed(); post_budget -= NMDA_cost + // D-serine sets the GAIN (how strongly POST responds), not a coincidence gate — dialed by the astrocyte 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 @@ -571,8 +573,8 @@ NIGHT | replay + measure + prime: if arrived_glutamate_replay or arrived_replay_AP: 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 Vm > Mg_eject: + post_fast_trace += NMDA_Ca(glutamate) × sat(astro_Dserine, K_Ds) // SAME NMDA machinery (D-serine = gain) 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 @@ -980,107 +982,114 @@ NIGHT | replay + measure + prime: > across all of them, just as the NEURON integrates over the soma). The astrosynapse behaves > locally here; the astrocyte integrates and broadcasts (see CELL ACTORS). -The astrosynapse is the synapse's gatekeeper and energy hub. It clears glutamate, supplies the -D-serine that gates postsynaptic NMDA, and distributes lactate across its territory by demand. -Unlike the others it runs in a single continuous context rather than spiking, and its structure -reshapes the synapse's operating point rather than just its range. +The astrosynapse is the synapse's **modulator** — the third party that tunes all three dimensions +of transmission without performing the deed itself. It clears glutamate (setting how long +transmitter dwells → **timing**), releases D-serine that dials the *gain* of the postsynaptic +response to a given release (**intensity**, via POST's sensitivity — not a coincidence gate but a +volume knob on POST), and its perisynaptic coverage sets spillover and isolation (**space**). Its +one error signal is **spillover**: when PRE outpowers the current coverage, glutamate escapes — the +direct physical sign that this astrosynapse is too small for its presynapse. Spillover coincident +with a real postsynaptic response (read from the eavesdropped retrograde NO) is what it tags; its +absence means the coverage can shrink. It reads the cleft it sits in: glutamate from PRE (spillover), +the retrograde eCB/NO from POST (postsynaptic pressure and success), and — from above — the +ASTROCYTE's territory-wide Ca²⁺ spike, which arrives at ALL the astrocyte's astrosynapses at once +when enough of them were co-active (a territory-scale coincidence broadcast, the astrocytic analog +of the soma's AP). -**During DAY, continuously — the astrosynapse clears, gates, and fuels.** It produces energy at -its cell body (glycolysis from glucose, the system's energy root), then allocates lactate across -its astrosynapses weighted by each one's clearance demand. At each astrosynapse it clears -spillover glutamate (EAAT) and supplies tonic D-serine; when spillover is high it adds a -demand-driven D-serine pulse, brakes nothing of the presynapse directly (the presynaptic brake -is PRE reading its own cleft), deposits its calcium trace, and accumulates a dopamine-gated tag. -A D-serine pulse cut short by low budget while demand was high is endurance evidence; one cut -short by precursor/material exhaustion is a material limit, not endurance. Excess overflow -triggers the protective shockwave lockdown. +**DAY · ACTION — clear + prime.** The defining local deed: take up glutamate (EAAT clearance) and +release D-serine to set POST's gain, biased by the astrocyte's slow priming field and pulsed up by +an arriving territory Ca²⁺ spike. Spillover deposits its Ca²⁺ fast trace. +**DAY · RECOVERY — restock clearance + D-serine capacity**, so it can service the next release (its +recovery speed *is* the synapse's timing resolution). +**DAY · PREPARATION — stock the volume/gain evidence.** Accumulate the tag: how often spillover +occurred coincident with a real postsynaptic response — "this synapse repeatedly outgrew its +coverage on genuine co-activation." Read the descended spike/prime that will bias the next action. -**During NIGHT — the astrosynapse's ceilings are rewritten.** NIGHT raises **structure** -(perisynaptic wrap, EAAT density, tonic D-serine) where a validated tag accumulated and **budget -capacity** where budget-limited synthesis recurred; astro_structure is self-reinforcing in both -directions, so it amplifies whatever trajectory the synapse is already on. +**NIGHT — build ⇄ release coverage.** Build perisynaptic coverage / clearance capacity / tonic +D-serine where the tag stands (repeated spillover → enlarge to clear faster, sharpen timing, contain +spillover — the build cancels the very spillover that signalled it) ⇄ release coverage where no +spillover occurred (over-provisioned → shrink, free material). Astrosynapses compete for the +astrocyte's produced material and energy. ``` -// PARAMETERS K_Dserine · Ds_max · Ds_frac · Ds_cost · EAAT_cost · lactate_cost · spillover · overload +// PARAMETERS K_Dserine · Ds_max · Ds_frac · Ds_cost · EAAT_cost · spillover · overload · spike_gain // INTERFACE -// EMIT astro_lactate[i] → pre/post/dend budgets ; astro_Dserine[i] → POST (gate) -// RECEIVE (signals) glutamate ← PRE (clearance + spillover) ; dopamine -// READ glutamate ; dopamine -// OWN astro_structure{perisynaptic_distance⁻¹, EAAT, Dserine_tonic, ECM} ; astro_budget_ceiling -// SUPPLY glucose (ROOT) ; astro_material, astro_energy ← cell body (NIGHT) -// NOTE ASTRO endurance fires on BUDGET-limited synthesis (got spillover: - astro_fast_trace[i] += mGluR_Ca(); astro_fast_trace[i] *= decay(s) // deposit fast trace +// ===== ACTION (clear glutamate + release D-serine = POST's gain; the defining local deed) ===== +DAY | CONTINUOUS · action | per astrosynapse i: + glutamate[i] -= astro_structure[i].EAAT × glutamate[i]·Δt; astro_budget[i] -= clearance·EAAT_cost // clear (timing) + gain = astro_structure[i].Dserine_tonic × astro_prime[i] × (1 + spike_gain × astro_Ca_spike) // prime POST gain + astro_Dserine[i] += gain·Δt // → POST (intensity) + if glutamate[i] > spillover: // SPILLOVER = PRE outpowered coverage (error signal) + astro_fast_trace[i] += mGluR_Ca() // deposit Ca fast trace (this action's residue) want = sat(astro_fast_trace[i], K_Dserine) × Ds_max - got = min(want, astro_central_budget × Ds_frac) - astro_Dserine[i] += got; astro_central_budget -= got·Ds_cost // D-serine pulse → POST gate - if got < want and astro_central_budget low and astro_fast_trace[i] > traj_thr: + got = min(want, astro_budget[i] × Ds_frac) + astro_Dserine[i] += got; astro_budget[i] -= got·Ds_cost // phasic D-serine (extra gain on spillover) + astro_localCa[i] = astro_fast_trace[i] // EMIT own Ca upward → ASTROCYTE integrates + if got < want and astro_budget[i] low and astro_fast_trace[i] > traj_thr: astro_endurance_need[i] += (want - got) // FUEL-limited synthesis → endurance - // EVAL: strength climb → token for NIGHT - if astro_fast_trace[i] > elig: astro_possible_tag[i] += astro_fast_trace[i] - if dopamine > dop_thr and astro_possible_tag[i] > tag_thr: - astro_tag[i] += dopamine × astro_possible_tag[i] - // DECAY (settle) - // MEDIUM (s–min) - astro_possible_tag[i] *= decay(s); astro_endurance_need[i] *= decay(min) - // SLOW (hr) - astro_tag[i] *= decay(hr) - // EMERGENCY - if astro_fast_trace[i] > overload: emit(shockwave_lockdown) + if astro_fast_trace[i] > overload: emit(shockwave_lockdown) // EMERGENCY -NIGHT · NON_REM_1 = PREPARATION | produce + distribute + prime: // ROOT: energy production + priming - // PRODUCTION (root): glycolysis + ECM synthesis this cycle, capped by glucose - astro_central_energy += overnight_glycolysis(glucose)·Δt_cycle // energy — NOT recoverable - astro_central_material += astro_cellbody_synth()·Δt_cycle // material — recoverable - night_energy_spent += overnight_glycolysis(glucose)·Δt_cycle - // distribute this cycle's batch across the territory, tag-weighted - W = Σ astro_tag[i] over astro_tag[i] > tag_expiry - for each i with astro_tag[i] > tag_expiry: - w = astro_tag[i]/W - astro_energy[i] += astro_central_energy·w; astro_material[i] += astro_central_material·w - astro_spont_thr[i] = spont_thr_base − thr_gain × astro_tag[i] // prime own responsiveness from own tag - astro_central_material += astro_ceiling_shrinkage·recycle // recycle +// ===== RECOVERY (restore clearance + D-serine capacity; alter-ego — its speed IS the synapse's timing) ===== +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 -NIGHT · REM = EVALUATION | respond to re-evoked glutamate, MEASURE participation (NO dopamine): - for each astrosynapse i: - // when its synapse's pattern re-evokes, spillover glutamate arrives → mGluR Ca response (a PROBE) - if arrived_glutamate_replay[i]: - astro_fast_trace[i] += mGluR_Ca() - astro_participation[i] = level(astro_fast_trace[i]) // high/medium/low = centrality - astro_fast_trace[i] *= decay(s) +// ===== PREPARATION (stock the volume/gain tag; read descended spike/prime; faces the NIGHT) ===== +DAY | CONTINUOUS · preparation | per astrosynapse i: + // tag = accumulated spillover COINCIDENT with real postsynaptic response (eavesdropped NO) + 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 -NIGHT · NON_REM_2 = ACTION | change the structure (per astrosynapse): // the night's defining deed - for each astrosynapse i: - astro_structure[i] -= decay_rate·Δt_cycle; astro_structure[i] += min(astro_maint[i], maint_cost) // lowering - if astro_tag[i] > tag_expiry and astro_participation[i] ≥ MEDIUM: - Δ = min(slot_batch, astro_material[i], astro_energy[i]·f_cap, astro_tag[i]) × astro_participation[i] - astro_structure[i] += Δ // self-reinforcing both directions - astro_material[i] -= Δ; astro_energy[i] -= Δ·assembly_cost; astro_tag[i] -= Δ +// ── 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. + +// ===== ACTION (build ⇄ release COVERAGE; participation gates direction; tag funds build, persists) ===== +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] + astro_structure[i] += Δ // enlarge coverage → faster clearance, less spillover + astro_material[i] -= Δ; astro_energy[i] -= Δ·assembly_cost; astro_tag[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: - astro_budget_ceiling[i] -= capacity_decay_rate·Δt_cycle; astro_budget_ceiling[i] += min(astro_cap_maint[i], cap_cost) - astro_endurance_need[i] *= decay(slow) + else if astro_participation[i] == LOW: // RELEASE coverage: shed, free material; tag untouched + 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 + // else: HOLD + +// ===== RECOVERY (acquire material/energy from the ASTROCYTE in CONTENTION with sibling astrosynapses) ===== +NIGHT | import + free | per astrosynapse i: + astro_material[i] += astro_alloc[i]·astro_central_material // receive this cycle's share (contested) + astro_energy[i] += astro_alloc[i]·astro_central_energy + astro_material[i] += astro_freed_material[i]; astro_freed_material[i] = 0 // reclaim what release freed + astro_structure[i] += min(astro_maint[i], maint_cost) // hold up what is used + +// ===== PREPARATION (REPLAY: respond to re-evoked spillover — SAME mGluR machinery — measure participation) ===== +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) emit(astro_fatigue, astro_demand → upward) ``` @@ -1108,8 +1117,10 @@ DAY or NIGHT | OVERLOAD: > 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).] +> ASTROSYNAPSE is now converted too (all six local components uniform): its ACTION is clear+prime +> (D-serine = POST gain), RECOVERY restocks clearance/D-serine, PREPARATION stocks the volume tag; +> NIGHT builds⇄releases COVERAGE. The ASTROCYTE adds a third role — a regenerative Ca spike that +> integrates astrosynaptic Ca and broadcasts territory-coincidence to all astrosynapses at once. --- --- @@ -1160,32 +1171,45 @@ CODA | on waking (scope_context → DAY): ## ASTROCYTE -The astrocyte is the territory actor over its astrosynapses — the exact parallel of the neuron, -with two roles the neuron lacks. First, it is the ROOT of synaptic energy and ECM material, and -therefore the system's METABOLIC SENSOR: it accrues territory energy debt and reports it upward as -the fatigue that drives the hypothalamus's DAY/NIGHT switch, and its discharge of that debt during -night is what permits waking. Second, by DAY it PRIMES its territory: reading its own slow calcium -wave (alpha-band), it raises or lowers the D-serine gate and fuel delivery across a field of -synapses — a localized, slow, neuromodulator-like gain signal, biasing which synapses can potentiate. +The astrocyte is the territory actor over its astrosynapses — the parallel of the neuron, with +three roles. First, it is the ROOT of synaptic energy and ECM material, and therefore the system's +METABOLIC SENSOR: it accrues territory energy debt and reports it upward as the fatigue that drives +the hypothalamus's DAY/NIGHT switch, and its discharge of that debt during night permits waking. +Second, it has its own ACTION — a regenerative Ca²⁺ SPIKE: it integrates the local Ca²⁺ emitted by +its astrosynapses, and when the sum crosses threshold it fires a Ca²⁺ wave that reaches ALL its +astrosynapses at once. This is the astrocytic analog of the soma's action potential — an +integrate-and-fire event that detects and broadcasts a TERRITORY-SCALE COINCIDENCE (many synapses +co-active), transiently boosting D-serine gain across the whole territory and marking every +participating astrosynapse. Third, by DAY it PRIMES its territory: reading its own slow calcium +wave (alpha-band), it sets a localized, slow, neuromodulator-like gain field on D-serine — +dialing postsynaptic response strength across a field of synapses. ``` -// PARAMETERS (territory reallocation) · alpha_gain +// PARAMETERS (territory reallocation) · alpha_gain · Ca_spike_thr · lactate_cost // INTERFACE -// EMIT astro_prime[·] (DAY gain field), astro_alloc[·] + rest_permission (NIGHT) → astrosynapses -// astro_fatigue → HYPOTHALAMUS (metabolic debt — the switch driver) ; energy+material → territory -// RECEIVE (signals) astrosynapse demand emissions (summed) ; scope_context ; replay_reweight ; glucose -// OWN astro_territory_demand[·] ; astro_slow_Ca (alpha wave) ; astro_central_{energy,material} -// NOTE ROOT of synaptic energy + ECM material; integrate-and-broadcast like the neuron, PLUS -// day-priming (localized neuromodulation) and metabolic sensing (drives the day/night switch). +// EMIT astro_prime[·] (DAY gain field) ; astro_Ca_spike (territory broadcast) ; astro_lactate[·] ; +// astro_alloc[·] + rest_permission (NIGHT) → astrosynapses ; astro_fatigue → HYPOTHALAMUS +// RECEIVE (signals) astro_localCa[·] (integrated up from astrosynapses) ; scope_context ; replay_reweight ; glucose +// OWN astro_integrated_Ca ; astro_slow_Ca (alpha wave) ; astro_central_{energy,material} +// NOTE THREE roles: ROOT (energy+material) · integrate-and-FIRE (Ca spike = territory coincidence) · +// PRIME (alpha gain field). Metabolic sensor: reports fatigue that drives the day/night switch. DAY | active: - // TRACE integrate territory-wide emitted demand (aggregator) + own slow Ca wave - for each astrosynapse i: astro_territory_demand[i] += emitted_demand[i]·Δt + // integrate the local Ca emitted by astrosynapses (aggregator) + own slow alpha wave + astro_integrated_Ca += Σ astro_localCa[i]·Δt astro_slow_Ca = integrate_slow(territory activity) // alpha-band astrocytic calcium - // BEHAVE/EMIT PRIME the territory: alpha-driven localized gain (like neuromodulation, but local) - for each astrosynapse i: - astro_prime[i] = 1 + alpha_gain × astro_slow_Ca // → biases i's D-serine gate + fuel (see ASTROSYNAPSE) - // EMIT report metabolic debt upward — this is the fatigue that drives the DAY/NIGHT switch + // ACTION: regenerative Ca SPIKE when integrated Ca crosses threshold → broadcast to ALL astrosynapses + if astro_integrated_Ca > Ca_spike_thr: + astro_Ca_spike = 1; astro_integrated_Ca = 0 // fire + reset (territory-coincidence event) + // → every astrosynapse reads astro_Ca_spike this step (boosts its D-serine gain; marks its tag) + else: + astro_Ca_spike = 0 + // PRIME: alpha-driven localized gain field on D-serine (dials POST response strength territory-wide) + for each astrosynapse i: astro_prime[i] = 1 + alpha_gain × astro_slow_Ca + // SUPPLY: distribute lactate across the territory by clearance demand (day metabolic support) + factor = min(1, astro_central_energy / (Σ clearance_load·lactate_cost + ε)) + for each i: astro_lactate[i] = clearance_load[i] × factor; astro_central_energy -= astro_lactate[i]·lactate_cost + // EMIT report metabolic debt upward — the fatigue that drives the DAY/NIGHT switch astro_fatigue = f(territory energy debt, unmet demand) NIGHT | cycle: // (within broadcast NIGHT context) @@ -1193,21 +1217,16 @@ NIGHT | cycle: // (within broadca astro_central_energy += overnight_glycolysis(glucose)·Δt_cycle // NOT recoverable astro_central_material += astro_cellbody_synth()·Δt_cycle // recoverable night_energy_spent += overnight_glycolysis(glucose)·Δt_cycle - // ADJUST reallocation weights across the territory (demand × replay) - for each i: astro_alloc[i] = (astro_territory_demand[i] × replay_reweight[i]) - / Σ(astro_territory_demand × replay_reweight) - // EMIT (broadcast) distribute this cycle's batch + grant restructuring window - for each i: - astro_energy[i] += astro_central_energy·astro_alloc[i] - astro_material[i] += astro_central_material·astro_alloc[i] - rest_permission[i] = TRUE // → each astrosynapse commits itself + // 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) + 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 // discharge: producing + distributing energy repays territory debt → astro_fatigue falls → wake permitted astro_fatigue -= discharge × astro_central_energy·Δt_cycle CODA | on waking: - astro_territory_demand[·] = 0 + astro_integrated_Ca = 0 ``` ## HYPOTHALAMUS