This commit is contained in:
2026-06-26 17:43:48 +02:00
parent 844618db13
commit d9c55d0269
4 changed files with 1968 additions and 0 deletions
@@ -0,0 +1,360 @@
# Tripartite Synapse — Biological Reference (companion to v14 pseudocode)
> Companion to `tripartite_synapse_v14_pseudocode.md` · principle: `logic_principles_v3` (The
> Timescale Ladder). Explains the biology each variable and behavior conflates. v14 adds
> per-component plain-language intros, regroups budget refill under RECOVER, adds presynaptic
> short-term potentiation (possible_tag → VGCC coupling occupancy, the presynaptic parallel to
> postsynaptic AMPA-surface occupancy), and surfaces four timescale tiers — FAST (mss, traces),
> MEDIUM (smin, occupancy + evidence), SLOW (hr, tag), PERSISTENT (NIGHT-written capacity).
---
## The three synaptic components and their support structures
A SYNAPSE is composed of three first-class components:
- **PRE** — presynaptic bouton (the axon's terminal at this synapse)
- **POST** — postsynaptic spine (the dendrite's terminal at this synapse)
- **ASTRO** — astrosynapse, the perisynaptic astrocytic process (the astrocyte's terminal)
Each has an upstream support structure that supplies it:
- **AXON** supplies PRE (transmission + transport from soma)
- **DEND** supplies POST (integration + transport from soma)
- the **astrocyte cell body** supplies ASTRO (energy + ECM material)
- **SOMA** is the integrating center and the root of neuronal material
The compartment analogy: AXON:PRE = DEND:POST = astrocyte-body:ASTRO = supply line : terminal.
---
## Resource variables
### DAY budget (one per component)
Aggregates fast energy AND fast consumables — everything needed to run moment-to-moment.
- **pre_budget** — ATP for VGCC gating, vesicle fusion (SNARE), VATPase vesicle refill,
plus fast consumables: vesicle membrane lipids, synaptotagmin recycling.
- **post_budget** — ATP for the NaK pump (membrane reset after current), NMDA current
handling, plus fast actin monomers for transient spine changes and receptor-recycling lipids.
- **dend_budget** — ATP for bAP propagation (NaK reset along branch), local translation
(ribosome running cost), SERCA Ca²⁺ resequestration, plus fast mRNA consumed by translation.
- **soma_budget** — ATP for AP generation (Na⁺/K⁺ currents + NaK reset), CREB
phosphorylation, nuclear Ca²⁺ handling, plus shipping running costs.
- **axon_budget** — ATP for AP propagation at nodes of Ranvier, kinesin/dynein motor
running cost, fast myelin maintenance.
- **astro_central_budget** — ATP from glycolysis at the astrocyte cell body; funds EAAT
clearance, serine→D-serine synthesis, lactate export, fast process motility.
### astro_lactate[i]
Lactate exported from the astrocyte cell body to synapse i. Biologically: glucose →
(glycolysis) → lactate, released into extracellular space, absorbed by neuronal MCT2
transporters, converted to pyruvate → TCA → ATP in the neuron's mitochondria. The astrocyte
is the primary fast-energy supplier to pre, post, and dend.
### NIGHT energy (one per component) — NOT recoverable
ATP for structural assembly. Distinct from DAY budget because it is spent on building, and
the work of assembly is thermodynamically gone once done (cannot be recovered by disassembly).
- pre_energy: RIM/Munc13 incorporation, VGCC clustering.
- post_energy: CaMKII anchoring, actin polymerization, PSD scaffold remodeling.
- dend_energy: mitochondria incorporation, cytoskeletal reinforcement.
- soma_energy: ribosome biogenesis, ion-channel incorporation.
- axon_energy: myelination, microtubule stabilization.
- astro_energy: process retraction, ECM secretion, racemase upregulation.
### NIGHT material (one per component) — RECOVERABLE
Slow structural proteins. Recoverable because disassembly (LTD) returns the proteins to a
reusable pool (ubiquitin-proteasome → amino acids; internalized receptors → endosomal reserve).
- **soma_material** (root) — all neuronal structural proteins from CREB-driven synthesis:
AMPA subunits, PSD scaffold, AZ scaffold, mRNA transcripts (Arc, BDNF), organelles.
- **dend_material** — from soma: Arc/plasticity mRNA, mitochondria, cytoskeletal proteins,
AMPA subunits in transit to spines.
- **post_material** — from dend: AMPA receptor subunits (GluA1/2), PSD scaffold (PSD-95,
SHANK, Homer), structural actin, CaMKII.
- **axon_material** — from soma: kinesin/dynein motors, microtubule components, myelin proteins.
- **pre_material** — from axon: RIM, Munc13, VGCC subunits, structural vesicle proteins.
- **astro_material** (root: astrocyte cell body) — EAAT proteins, serine racemase, ECM
proteins (Glypicans, Thrombospondins), process cytoskeleton.
**Why energy and material are separate in NIGHT but combined in DAY:** during DAY both are
fast consumables replenished on the same timescale, so one `budget` variable suffices. During
NIGHT they diverge — material is recoverable after LTD, energy is not — so they must be two
variables. This asymmetry (material returns to the pool, energy is gone) is what makes one
synapse's depression genuinely fund another's potentiation.
---
## Structural variables (strength ceilings — written in NIGHT)
Each aggregates several correlated structural properties into one capacity.
- **pre_structure** — active zone capacity:
slot_ceiling (number of vesicle docking slots) + VGCC_coupling (Ca²⁺-channel proximity to
slots, sets release efficiency) + refill_ceiling (max RRP replenishment rate).
- **post_structure** — spine sensitivity capacity:
slot_ceiling (number of PSD anchoring slots for AMPA) + spine_volume (local reserve and
actin machinery) + reserve_ceiling (endosomal AMPA pool size).
- **dend_structure** — branch capacity:
bAP_fidelity(position) (mitochondrial density sets propagation strength, attenuates with
distance) + translation_ceiling (local mRNA capacity) + transport_speed (cytoskeletal integrity).
- **soma_structure** — somatic output capacity:
baseline_threshold (inverse: ion-channel density at axon initial segment) + AP_reliability
(Na⁺ channel density) + synthesis_ceiling (ribosome density + CREB machinery).
- **axon_structure** — axonal capacity:
propagation reliability (myelination density) + transport_ceiling (motor density + microtubule
integrity) + mitochondrial density.
- **astro_structure** — astrosynaptic environmental capacity:
perisynaptic_distance⁻¹ (wall proximity — closer = more glutamate contained) + EAAT_density
(clearance ceiling) + Dserine_tonic (baseline co-agonist) + ECM_integrity.
**Self-reinforcing both directions:** tighter wrap + more tonic D-serine make future
potentiation easier; looser wrap + zero tonic D-serine make future depression easier.
---
## Budget ceilings (endurance ceilings — written in NIGHT)
- **{component}_budget_ceiling** — the maximum fuel the component can hold / the maximum
duration of sustained behavior. Biologically: mitochondrial density and local fuel-storage
capacity. Built by activity-driven mitochondrial biogenesis; lost by mitophagy when idle.
Parallel to structure: structure is strength capacity, budget_ceiling is endurance capacity.
---
## Trace variables
### fast_trace (one per component) — DAY only, decays automatically
The local record of recent activity that biases the next behavior.
- **pre_fast_trace** — residual presynaptic Ca²⁺ after spikes (τ≈100ms). Biases NT release
(facilitation) and provides tagging eligibility.
- **post_fast_trace** — spine Ca²⁺ amplitude × rise-speed (τ≈tens ms). Encodes the LTP-vs-LTD
instruction (fast rise → CaMKII → potentiation; slow rise → phosphatase → depression).
- **dend_fast_trace** — branch Ca²⁺ from bAP + spine spillover (τ≈300ms). Integrates branch co-activity.
- **soma_fast_trace** — nuclear Ca²⁺ from each AP (τ≈seconds). Drives toward CREB activation.
- **axon_fast_trace** — propagation load (τ≈seconds). High load → Na⁺ inactivation at branch
points → propagation failure (this is axonal short-term depression).
- **astro_fast_trace** — perisynaptic Ca²⁺ from mGluR5 activation by glutamate spillover
(τ≈seconds). Drives D-serine release.
### soma timing traces (emergent refractory + adaptation + alignment)
- **soma_Na_inactivation** (τ≈ms) — sodium-channel inactivation after an AP. Its recovery IS
the refractory period (emergent, not a hardcoded timer). High → absolute refractory; decaying
→ relative refractory; recovered → normal.
- **soma_adaptation** (τ≈100s of ms) — slow K⁺ channel (SK/M-type) activation accumulating
over a spike train, raising threshold. This is spike-frequency adaptation.
- **soma_refractory_alignment** — deposited when a suprathreshold input arrives during
refractoriness (a missed coincidence). Speeds future recovery so the soma aligns to its input
rhythm. Bottom-up: no rhythm is represented; alignment emerges from accumulated local
mismatches and decays when mismatches stop (self-limiting).
### possible_tag (one per component) — intermediate, τ≈smin
Graded accumulation of tagging eligibility. For POST, this is the CANDIDATE tag lifetime.
### endurance_need (one per component) — intermediate, τ≈smin
Deposited when budget depletion interrupts a behavior that was on a LOCALLY successful
trajectory. Records that fuel — not structure, not significance — was the binding constraint
on a forming success. Requires NO dopamine (homeostatic, not associative).
**Local success proxy per component** (each uses only its own state + arrived signals):
- PRE: own fast_trace high (was releasing strongly), optionally amplified by retrograde
messenger (endocannabinoid / NO / BDNF) that has arrived.
- POST: own Ca²⁺ climbing toward tagging threshold (naturally local).
- DEND: own branch strongly active (high branch voltage/Ca²⁺) when propagation fell short.
- SOMA: own nuclear Ca²⁺ climbing toward CREB.
- AXON: own propagation load high (was carrying a strong train).
- ASTRO: own local glutamate/Ca²⁺ high (was under heavy clearance/D-serine demand).
### tag (one per component) — DAY→NIGHT bridge, τ≈hours
The validated record of significance that survives to NIGHT and gates strength commits.
Formed by coincidence of local eligibility + non-local validation (dopamine).
**POST is special — two-phase, three coincidences:**
- CANDIDATE: local Ca²⁺ above threshold + astrosynapse D-serine present (coincidence 1).
- amplified when bAP confirms soma fired (coincidence 2).
- STABLE: CANDIDATE + dopamine within stabilization window (coincidence 3).
Biologically: early CaMKII creates a labile tag (early-LTP); PKA driven by dopamine via D1R
stabilizes it (late-LTP). Without dopamine, the candidate degrades — early-LTP reverses.
---
## Behaviors — biological meaning
### PRE | AP — neurotransmitter release
`NT_flux = RRP × sat(pre_fast_trace, K_release)` models continuous NT release proportional to
the readily-releasable pool and a saturating Ca²⁺ drive (synaptotagmin's cooperative Ca²⁺
sensitivity, simplified to a saturating curve). RRP depletes as released (short-term depression
as a consequence) and refills via VATPase (energy-throttled, so low budget deepens depression).
The mGluR2/3 brake is presynaptic autoinhibition by spillover (Gi → reduced VGCC opening).
### POST | NOT_bAP — three calcium sources, two plasticity cases
- **Source 1 (AMPA):** glutamate opens AMPA → depolarizing current + small Ca²⁺; the
depolarization begins ejecting the NMDA Mg²⁺ block.
- **Source 2 (NMDA):** if depolarized enough (Mg²⁺ ejected) AND D-serine present (astrocyte
co-agonist) AND glutamate bound → large Ca²⁺ influx. This is the coincidence detector.
- **Source 3 (bAP, separate context):** back-propagating AP adds depolarization + Ca²⁺,
amplifying an existing signal supralinearly.
- **Case 1 (STP):** high Ca²⁺ drives AMPA receptors from the local reserve to the surface,
bounded by the anchoring-slot ceiling. Fast, reversible, NO dopamine. When Ca²⁺ falls,
receptors drift back — short-term depression as a passive consequence, never signaled.
- **Case 2 (LTP tag):** high Ca²⁺ + (later) dopamine sets the tag that NIGHT uses to raise the
slot ceiling. NIGHT builds slots; DAY fills them.
### DEND | bAP — bidirectional signaling
Propagates the bAP from soma toward spines (fidelity attenuates with distance — distal spines
get weaker confirmation, are harder to potentiate) and integrates spine signals toward the soma.
### SOMA | AP — integration, firing, emergent timing
Fires when integrated branch input exceeds a threshold that is the baseline (from structure)
raised by adaptation and modulated by neuromodulators, gated by the emergent refractory state.
Each AP deposits three traces (inactivation → refractory, adaptation → threshold rise, nuclear
Ca²⁺ → plasticity). The soma is the coincidence detector at the cellular scale (nuclear Ca²⁺ +
dopamine → CREB), and the production bottleneck: its tag gates how much material all downstream
components get in NIGHT.
### AXON | AP — reliable propagation with frequency-dependent failure
Propagation reliability is set by myelination and degraded by high-frequency load (Na⁺
inactivation at branch points = axonal STD). The axon also transports material to boutons and
sets the timescale of presynaptic structural commits.
### ASTRO | CONTINUOUS — gatekeeper and energy hub
Clears glutamate (EAAT), supplies D-serine (the NMDA co-agonist that gates postsynaptic LTP),
and distributes lactate to the territory by demand-weighting (active synapses generating more
clearance load pull more fuel; slow synapses get less). The same spillover that excites the
astrocyte (mGluR5 → Ca²⁺ → D-serine) also brakes the presynapse (mGluR2/3 → Gi) — one signal,
opposite effects via different receptors. The astrocyte is the energy root and the gain control
of the whole synapse.
---
## NIGHT operations — biological meaning
- **Step 1 (replenish/distribute):** overnight protein synthesis peaks (CREB-driven, gated by
soma_tag — corresponds to slow-wave-sleep replay). Soma material flows to branches/axon then
spines/boutons; astrocyte material flows to astrosynapses, tag-weighted.
- **Step 2 (strength commits):** tagged components build structure — more slots, tighter
coupling, tighter astrosynaptic wrap. Coherence bonus when pre+post+astro all tagged (the
whole synapse agrees). astro_structure self-reinforces.
- **Step 2b (endurance commits):** components with high endurance_need build budget_ceiling —
mitochondrial biogenesis. Competes with step 2 for the same material/energy.
- **Step 3 (passive decay):** both ceilings decay; maintenance from the remaining pool resists
decay only where sufficient. Depotentiation and endurance-loss are both by neglect — no
signal weakens anything; unmaintained capacity simply drifts down. Recovered material (not
energy) returns to pools.
- **Step 4 (homeostatic scaling):** if the soma fired too much overall, all synapses scale down
proportionally (sleep-associated global downscaling), preserving relative differences.
- **Step 5 (clear traces):** fast traces, possible tags, endurance needs, and soma timing traces
reset; tags below expiry clear, above-expiry tags carry forward (multi-night consolidation);
structure and budget_ceiling persist.
### 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).
---
## PRE ↔ POST interaction: local computation, message-only coupling
The presynapse and postsynapse never read each other's internal state. They interact only
by writing to and reading from shared cleft channels. Each side computes entirely locally on
what it has: its own variables plus whatever signals have arrived in the cleft. This is the
message-passing realization of the locality principle.
**Forward channel — glutamate (PRE → POST and ASTRO).** The presynapse writes glutamate via
NT_flux. The postsynapse reads it (AMPA, NMDA) and the astrosynapse reads it (clearance,
mGluR5). The astrosynapse clears it. PRE never knows whether POST responded — it only emits.
**Gate channel — astro_Dserine (ASTRO → POST).** The astrosynapse writes D-serine; the
postsynapse reads it as the obligatory NMDA co-agonist. POST cannot open NMDA without this
arrived signal, but it does not read the astrocyte's state — only the delivered D-serine.
**Backward channel + — retro_NO (POST → PRE).** When the postsynapse's NMDA opens (Mg²⁺
ejected, D-serine present, glutamate bound), nNOS — physically tethered to the NMDA receptor
through PSD-95 — synthesises nitric oxide (and, on a slower timescale, BDNF is released).
These diffuse retrogradely to the presynapse. Biologically this is the classic retrograde
messenger of LTP: it tells the bouton that its release landed on a postsynapse that genuinely
responded. In the model, POST emits `retro_NO` proportional to its own NMDA-driven calcium —
computed purely from POST's local state — and PRE reads it as `retro_NO_local`.
`retro_NO_local` is exactly the grounding of the presynaptic endurance signal. The
presynapse's local success proxy is "I was releasing strongly" (`pre_fast_trace` high). On
its own that only says the bouton was working hard, not that the work mattered. `retro_NO`
adds the missing confirmation — that the postsynapse responded — without PRE ever reading
POST's calcium. So PRE deposits endurance need as `pre_fast_trace × (1 + retro_NO_local)`:
strong release that was confirmed effective makes the strongest claim that fuel, not
futility, was what interrupted a forming success. retro_NO is short-lived (NO degrades and
diffuses within seconds), so the channel decays fast — confirmation must be recent to count.
**Backward channel — retro_eCB (POST → PRE).** When the postsynapse is strongly
depolarised, it synthesises endocannabinoids (2-AG, anandamide) that diffuse retrogradely and
bind presynaptic CB1 receptors, suppressing release. This is depolarisation-induced
suppression of excitation (DSE) — a homeostatic negative feedback: an over-driven postsynapse
tells the presynapse to release less. In the model, POST emits `retro_eCB` from its own
membrane potential, and PRE reads it as `retro_eCB_local`, which reduces the release drive
`sat(...) × (1 - retro_eCB_local)`. Again POST computes from its own state; PRE adjusts from
the arrived signal; neither reads the other's interior.
The two backward channels are opposite-signed messages the postsynapse sends about its own
condition: retro_NO says "your input was effective — worth sustaining," retro_eCB says "I am
saturated — ease off." Together with the forward glutamate and the D-serine gate, they make
the synapse a fully message-coupled system of locally-computing components.
**Why RRP refill is in NOT_AP only.** During an AP the bouton releases — RRP depletes. Refill
(VATPase reloading vesicles from the reserve pool) is a recovery process that proceeds between
spikes. Placing `fill(RRP, ...)` only in the NOT_AP context makes the AP context pure
depletion and the NOT_AP context pure recovery. A consequence falls out for free: during
sustained high-frequency firing there are many AP steps and few NOT_AP steps, so RRP depletes
faster than it recovers — short-term depression deepens with frequency, with no explicit
depression rule. The release itself is throttled further when budget is low (VATPase refill
is energy-limited), coupling metabolic state to the depth of depression.
---
## Presynaptic short-term potentiation — VGCC coupling occupancy
`VGCC_active` is the presynaptic parallel to the postsynaptic `AMPA_surface`. Both are MEDIUM-tier
occupancy variables: a current operating value filled toward a NIGHT-built ceiling, no dopamine,
reversible, drifting back when undriven.
Biologically, `VGCC_active` represents the effective coupling between voltage-gated calcium
channels and the vesicle docking slots — how reliably each calcium influx is converted into
release. Repeated eligible activity (accumulated `pre_possible_tag`) transiently tightens this
coupling — through calcium-channel facilitation, active-zone protein phosphorylation, and
channel-to-sensor proximity changes — raising release efficiency without changing the number of
channels (which is the structural ceiling `pre_structure.VGCC_coupling`, written only at NIGHT).
When eligibility falls, the coupling relaxes back to baseline over seconds-to-minutes: presynaptic
short-term depression as the passive consequence of undriven coupling, never a signalled act.
This gives the presynapse a genuine intermediate-timescale memory it previously lacked — a
"this bouton has been reliably active lately" state that outlasts individual spikes and bursts,
filling the gap between the fast trace (residual calcium, ~100 ms) and the tag (hours). It also
completes the capacity/occupancy symmetry across the synapse: both PRE and POST now fill a
MEDIUM occupancy variable toward a PERSISTENT structural ceiling, rather than PRE reading its
ceiling directly as if capacity and occupancy were the same thing.
@@ -0,0 +1,363 @@
## Da aggiungere
- intricazione
- top-down
- eterarchia
- questo tipo logica non ha un corrispettivo nella programmazione tradizionale.Perche' questa si ispira al nostro ragionando che e' unico. Ragionare su una logica unificante nella programmazione tradizionale non ha senso, perche' non c'e' una logica unica, ma una per ciascun programma
- in G esprimiamo la possibilità di eventi con RF che da la possibilità relativa. in enliving le possibilità diventano attualità. a quel punto possiamo interpretare temporaneamente le relative attializzazioni, perche abbiamo imposto la matrice spazio temporale.
- il fatto che possiamo far girare lenliving su un hardware piu o meno veloce, se manteniamo la relatività fra possibilità di eventi, non cambia nulla alle attualità. quello xhe cambia è la velocita di scorrimento del tempo, non le seqyenze di eventi.
# Logic Principles of the Tripartite Synapse Model
These are the principles that govern the system's logic — not the syntax in which it is
expressed, but the reasoning that shapes every variable, every behavior, and every
transition. They are organized into ten categories, from the most foundational to the
most emergent. The final category shows how principles that are stated entirely in local
terms necessarily produce a holistic system — a whole that no part represents but that
every part participates in.
---
## I. Resource and Conservation
**Nothing is free.** Every behavior consumes a resource. There is no operation in the
system that does not draw something down. This is not a constraint added on top of the
logic — it is the foundation. Selectivity, competition, and forgetting all emerge from
the single fact that resources are finite.
**Resources are redistributed, not created.** The total pool is bounded by an external
ceiling. Within it, the system only moves resources around — from one synapse to another,
from a dismantled structure back into the pool. No internal process manufactures capacity;
it only reallocates. Learning is therefore always at the expense of something else.
**Two distinct resources, two distinct conservation laws.** Energy is a flow — consumed
and replenished continuously, gone after use. Material is a stock — incorporated into
structures and recovered when structures are dismantled. They have different sources,
different timescales, and different recovery dynamics. A behavior can be energetically
affordable yet materially limited, or vice versa. Conflating them would destroy both
conservation laws; keeping them separate is what makes resource accounting honest.
**Every economy has a single capped root.** Each resource traces back to one producer
with a hard ceiling — the astrocyte cell body for synaptic energy, the soma for neuronal
material. Everything downstream competes for shares of that capped production. The ceiling
is the ultimate arbiter of how much the system can do, and it is set outside the system.
**Conservation makes one synapse's gain another's loss.** Because resources are shared and
finite, strengthening one site necessarily reduces what is available elsewhere. This
coupling is not designed — it is the automatic consequence of drawing from a common pool.
Depression at one synapse returns resources that partially fund potentiation at another.
---
## II. Time and Scope
**Behavior and structural change occupy separate scopes.** Fast behavior happens in DAY;
permanent change happens in NIGHT. This separation prevents transient activity from
directly rewriting architecture — otherwise every noise spike would remodel the system.
The scope boundary is what makes the system both responsive and stable.
**DAY accumulates evidence; NIGHT acts on it.** No permanent decision is made in the
moment. DAY only gathers traces. NIGHT reads the aggregated evidence and commits. The
system always defers commitment to a consolidation phase that operates on accumulated
evidence, never on a single instant.
**Timescale is meaning.** Fast traces decay in milliseconds, tags in hours, structures
over days. The decay constant of a variable is not a parameter — it is what the variable
means. A fast-decaying variable is a momentary signal; a slow-decaying one is a
commitment. Putting two timescales in one variable destroys both meanings — which is why
every quantity that carries both a momentary and a lasting role must be split into two
variables with two decay constants.
**Time windows are enforced by chemistry, not by clocks.** The system never checks a
timer. Coincidence windows emerge from the competition between accumulation and decay. A
signal must arrive while a trace is still elevated; the window opens when the trace crosses
threshold and closes when it decays below it. Timing is a consequence of dynamics, never
an explicit rule.
**The rest period is the execution window.** DAY fills the system with evidence but
commits nothing. NIGHT executes — writing structure and budget capacity, replenishing
pools, clearing traces. Neither scope alone suffices: DAY without NIGHT produces learning
that cannot consolidate; NIGHT without DAY produces replenishment with nothing to
consolidate. The alternation is not incidental — it is architectural.
---
## III. Capacity and Occupancy
**NIGHT builds containers; DAY fills them.** Every slow variable is a capacity — a ceiling
on what behavior can achieve. NIGHT changes the ceiling; DAY operates within it. The two
never do each other's job: NIGHT never places a receptor, DAY never builds a slot. This
single principle organizes the entire architecture.
**Short-term change is occupancy; long-term change is capacity.** Filling a container is
fast and reversible; resizing it is slow and persistent. The same physical quantity —
receptor count, vesicle count, fuel level — has a fast component (how full) and a slow
component (how big), governed by entirely different processes at entirely different scopes.
**Two capacities, two drives, one pool.** Structure is the capacity for strength — how
powerfully each behavior can act. Budget capacity is the capacity for endurance — how long
behavior can be sustained. Both are ceilings built at NIGHT and filled competitively at
DAY. Both draw from the same finite material and energy, so strength and endurance compete:
investing endurance somewhere cannot strengthen elsewhere.
**A ceiling is never free, even during DAY.** Building a ceiling at NIGHT costs material
and energy; filling it at DAY costs a competitive share of a shared resource. Structure
must be filled by winning occupancy; budget capacity must be filled by winning shared fuel.
A high ceiling of either kind makes a large standing claim that the component can satisfy
only if it out-competes its neighbors. Capacity that cannot be filled is capacity wasted.
**Structure shapes form, not just maximum.** Structure does not merely set a ceiling — it
shapes the transfer function between input and output at every moment. Tightly clustered
calcium channels make each spike more reliably coupled to release; more anchoring slots
make each glutamate pulse more faithfully converted to current; tonic D-serine keeps the
gate chronically primed. The architecture conditions the quality of behavior continuously,
not just its peak.
---
## IV. The Timescale Ladder
This is the spine the other principles hang from. The system's quantities occupy four nested
tiers, and timescale is not incidental to them — it *is* what distinguishes them.
**Four tiers, by timescale.** FAST traces (milliseconds to seconds) — the residual calcium, the
synaptic current, the immediate response. MEDIUM occupancy and evidence (seconds to minutes) —
the filled receptor surface and channel coupling, the accumulating possible-tag, the endurance
need. The SLOW tag (hours) — the validated bridge to consolidation. PERSISTENT capacity
(written only at NIGHT, drifting over days) — the structure and budget ceilings. Each tier
decays on its own timescale, and that decay constant is the tier's meaning: a fast-decaying
quantity is a momentary signal, a slow one a commitment, and a non-decaying one a capacity.
**The tiers are a ladder, not just four speeds.** Each rung's output is the next rung's input,
and the coupling runs in two directions at once.
**Capacity flows downward — each slower tier sets the ceiling for the faster one below it.**
Persistent structure bounds how far medium occupancy can fill; medium occupancy (current
coupling, current receptor surface) bounds how strongly fast behavior can act. A behavior never
acts beyond the occupancy currently filled, and occupancy never fills beyond the structure built
last night. The ceiling at every level was set by the level above, on a slower timescale.
**Evidence flows upward — each faster tier accumulates toward the slower one above it.** Fast
traces accumulate into medium evidence (possible-tag and endurance-need); medium evidence
bridges, on coincidence with validation, into the slow tag; the slow tag commits, at NIGHT, into
persistent capacity. Each tier is the evidence from which the next slower tier is built, and
nothing reaches a slower tier without having accumulated through the faster ones first.
**Both pathways are instances of the climb.** The strength pathway (fast trace → medium
possible-tag → slow tag → persistent structure) and the endurance pathway (fast trace → medium
endurance-need → persistent budget ceiling) are the same upward flow of evidence, differing only
in what validates the climb — associative dopamine for strength, homeostatic fuel-shortfall for
endurance. And both ceilings they build then flow back downward as the bounds the next day's
behavior runs within.
**This single image contains the model's whole logic.** Capacity-versus-occupancy is the
downward flow; the two evidence streams are the upward flow; the DAY/NIGHT split is just where
the ladder is climbed (evidence accumulates by DAY) versus where it is committed (capacity is
written at NIGHT). The functional groups enact the ladder: ADJUST and BEHAVE read capacity
downward, TRACE accumulates evidence upward, and NIGHT commits the top of the upward flow into
the source of the downward flow. To understand the system is to see that it is a four-rung ladder
with capacity descending and evidence ascending, turning once per DAY/NIGHT cycle.
---
## V. Locality
**Only local evaluation.** Every decision a component makes — to act, to deposit a trace,
to register an interrupted success — uses only information physically present in that
component. A component cannot read another compartment's internal state. The presynapse
does not know the postsynapse's calcium; the dendrite does not know which distal spines are
active; the astrosynapse does not know whether the postsynapse is waiting. Each judges from
its own state alone.
**Cross-compartment influence travels only as signals that arrive and become local.**
Information crosses a boundary only by being sent — feedforward transmission, retrograde
messengers, neuromodulatory broadcast. A signal in transit is invisible; a signal that has
arrived is local and can be read. The presynapse can incorporate downstream success only
through the portion the postsynapse chose to release as a retrograde messenger, and only
after it landed. Downstream reaches upstream by emitting; upstream never reaches into
downstream.
**Each component's notion of success is its own.** Because evaluation is local, "was my
interrupted behavior worth sustaining" is answered by the component's own activity —
was I working hard and effectively from my own point of view — optionally amplified by
feedback that has arrived. The local proxy differs by component (strong release for the
presynapse, climbing calcium for the postsynapse, strong propagation for the axon) but the
shape is identical everywhere: my own vigorous, effective activity, plus whatever feedback
reached me.
---
## VI. Validation and Non-Locality
**Short-term change is local; long-term change is non-local.** A component can transiently
strengthen from its own activity alone — occupancy rises with calcium, no permission needed.
But permanent change requires validation from beyond itself. Cheap reversible change is
autonomous; expensive permanent change requires external authorization.
**Permanent change requires coincidence across spatial scales.** A tag forms only when a
local eligibility signal meets one or more non-local confirmations that have arrived as
signals. The number of required coincidences reflects the component's position in the
hierarchy — the postsynapse, the primary memory locus, requires three (astrosynapse,
soma, organism). Each scale confirms something the previous scale cannot know about itself.
**The whole validates the part; the part cannot validate itself.** A synapse cannot know
whether its activity was behaviorally significant — that information exists only at the
organism level and arrives as the neuromodulatory broadcast. This is why the system is
open: the highest validation enters from outside any component being modified, carried
inward as a signal that becomes local at the point of use.
**Strength is associative; endurance is homeostatic.** Strength requires significance —
the dopamine coincidence that says "this was worth saving." Endurance requires only that
fuel, not structure or significance, was the binding constraint on a forming success — it
needs no validation, because metabolic sustainability is not the organism's to judge. A
component earns strength by completing validated coincidences and earns endurance by
running out of fuel at the verge of its own local success.
---
## VII. Selection and Asymmetry
**Potentiation is the active drive; depotentiation is its shadow.** The entire machinery
is oriented toward strengthening what is significant and sustaining what is fuel-limited.
There is no symmetric machinery for weakening. Weakening happens to whatever the building
machinery did not select, as a consequence of the resources building consumed. The system
is built to learn; forgetting is the cost of learning.
**Depression is never explicit — it is what happens when building does not.** No signal
says "weaken this." Ceilings of both kinds decay continuously and are held up only by
maintenance. When building consumes the shared resources, unmaintained ceilings drift down.
Depression is the absence of maintenance, not the presence of a depression signal — and the
same is true of lost endurance, which is idle metabolic capacity removed for lack of use.
**Selection requires winning on multiple independent criteria.** To be permanently
strengthened a synapse must be both active enough to be fueled and significant enough to be
validated — independent gates. To be sustainable it must additionally earn endurance where
fuel was the limit. Activity without significance is not saved; significance without
sustainable activity cannot be maintained. The conjunction filters for connections that are
genuinely valuable and genuinely viable.
**Equilibrium is the residual of imperfection.** Where alignment or balance is achieved,
the very success removes the signal that drove it, allowing slow drift back toward
imbalance, which regenerates the driving signal. The soma that aligns to its input rhythm
stops generating the mismatch that aligned it, drifts, and re-aligns. The component that
builds enough endurance stops depleting, loses the endurance signal, and lets capacity
decay until depletion returns. The system hovers near optimum, never resting there,
continuously corrected by the small errors its own imperfect state produces.
---
## VIII. Bottom-Up Emergence
**Complex temporal behavior emerges from local reactive traces, not explicit computation.**
The soma aligns with its input rhythm without representing the rhythm — it leaves a trace
when input arrives during refractoriness and lets that trace speed future recovery.
Prediction, anticipation, and rhythm-tracking emerge from purely local reactive deposits,
never from a model of the future.
**The system never represents what it is becoming tuned to.** A potentiated synapse does
not contain a representation of its pattern — it is physically biased toward it. The tuning
is the structure, not a description of the structure. Prediction is implicit physical bias,
not explicit expectation. The same is true of every adaptation: refractory alignment,
endurance conditioning, astrosynaptic wrapping — all are bias, none is description.
**Global organization arises from local competition.** Sparsification, normalization, and
winner-take-more dynamics are nowhere computed centrally. They emerge automatically from
many local units drawing from shared pools. The astrocyte does not decide which synapses to
fuel — the synapses' own demands, each a purely local quantity, competing for capped
production, produce the allocation. No allocator exists; the allocation is real.
---
## IX. Coupling, Openness, and Boundedness
**Couplings create trajectories, not just states.** Some variables, once moved, make
further movement in the same direction easier — the astrosynapse wrapping tighter after
potentiation, which makes future potentiation easier. These self-reinforcing couplings give
the system momentum: it does not merely occupy states, it follows trajectories, deepening
whatever direction it has begun. The astrosynapse is the strongest such coupling — the gain
control that reshapes the input itself, amplifying whatever trajectory the synapse is on.
**The same signal can serve opposite functions through different receptors.** Glutamate
spillover brakes the presynapse while exciting the astrocyte — one ligand, two receptor
types, opposite cascades, simultaneous opposite effects. Function is determined by the
receiver, not the signal. One event coordinates multiple responses with no coordinating
mechanism.
**Energy availability is itself a selective pressure, parallel to validation.** Beyond the
explicit activity-and-reward gating, the simple availability of fuel continuously selects
which components can participate. A synapse that cannot be fueled cannot generate the
activity that would let it be tagged. Metabolism silently shapes what can be learned, in
parallel with and independent of the plasticity machinery.
**The system is finite and open, not infinite and closed.** It has bounded components and a
bounded state space, and it receives inputs it cannot generate from within — sensory drive,
neuromodulatory validation, metabolic supply. Because it is finite, its self-modification
does not generate infinite regress. Because it is open, its highest validation comes from
outside itself.
**The fixed points are made explicit, not hidden.** The parameters the system cannot modify
from within — thresholds, the vascular ceiling, the neuromodulatory signals — are declared
as fixed. They are the system's boundary with what it did not set and cannot inspect.
Making them explicit is the honest acknowledgment that every self-modifying system operates
within constraints it did not choose.
**Validation comes from embedding, not from internal consistency.** The system does not
certify its own changes. Whether a structural change was good is answered by the organism's
subsequent experience in the world, fed back through the neuromodulatory system. Correctness
is determined by the coupling between system and environment, not by any internal criterion.
The fixed point lies outside: the system acts, the world responds, and the response — not
any internal check — determines what was worth keeping.
---
## X. From Local Expression to Holistic System
The preceding principles are stated almost entirely in local terms. Every behavior is a
local component acting on its own state within its own budget. Every evaluation uses only
local information and signals that have arrived. Every trace is a local record; every tag a
local conjunction; every commit a local draw on a shared pool. Nowhere is there a central
controller, a global plan, a representation of the whole. And yet the system behaves as a
whole. This final category states why the local necessarily becomes holistic.
**The whole exists in the shared pools, not in any component.** The only thing every
component touches is the finite resource it competes for. No component sees the whole, but
every component is coupled to every other through the pool they share. When one draws, all
others have less; when one returns, all others have more. The pool is the medium through
which purely local actions become globally consequential. The holism is not represented
anywhere — it is enacted in the competition for a common, capped resource.
**Coincidence across scales stitches the levels into one.** A permanent change at the
smallest scale requires confirmation from progressively larger scales — astrosynapse, soma,
organism. Each scale contributes what the scale below cannot know about itself. The result
is that no permanent change reflects a single level; every one reflects an agreement across
all levels that happened to align in a window. The system's memory is therefore never local
even though every step that produced it was. The whole writes itself into the part, through
the part's requirement for non-local confirmation.
**Signals make the boundaries permeable without dissolving them.** Components remain
strictly local — they cannot read each other — yet they are not isolated, because they emit
and receive signals. Feedforward transmission, retrograde feedback, and broadcast
neuromodulation knit the local components into a communicating whole without ever giving any
component access to another's interior. The system is simultaneously fully local in its
evaluation and fully connected in its dynamics. This is the precise sense in which a
holistic system is built from local parts: not by any part containing the whole, but by the
parts being coupled through resources and signals into a dynamics that no part could produce
alone.
**The whole has properties no component has.** Sparsification, rhythm, equilibrium,
prediction, memory, the joint selection for significance-and-sustainability — none of these
exists in any single component. They are properties of the coupled population drawing on
shared pools and exchanging signals over the DAY-NIGHT cycle. The component knows only its
own state and its own budget; the system knows what to remember, what to sustain, and what
to let fade. The gap between these is not bridged by any component understanding more — it
is bridged by the structure of the coupling itself. The holistic behavior is real, it is
not represented anywhere, and it could not be removed without removing the couplings that
constitute it.
**This is what it means for understanding to be enacted rather than encoded.** The system
does not contain a model of what it is doing. It does not represent the pattern it learns,
the rhythm it tracks, or the criterion by which it selects. Each of these is a physical bias
distributed across local components coupled through shared resources and signals. The whole
is not in any part and not in any representation — it is in the doing, in the ongoing
competitive, signal-mediated, scope-alternating process itself. A local expression, faithful
to locality at every step, produces a holistic system precisely because the locality is
coupled — and coupling, not representation, is what makes a whole.
@@ -0,0 +1,710 @@
# Tripartite Synapse — Pseudocode v14
> Companion: `tripartite_synapse_v14_biology.md` · principle: `logic_principles` (Timescale Ladder).
> Changes from v13:
> (1) every component has a plain-language intro (DAY/AP · DAY/NOT_AP · NIGHT)
> (2) budget refill regrouped RECEIVE → RECOVER everywhere (RECEIVE = signals only)
> (3) presynaptic short-term potentiation (possible_tag → VGCC occupancy) — see PRE
> (4) FOUR TIERS surfaced: FAST (mss) · MEDIUM (smin) · SLOW (hr) · PERSISTENT (NIGHT)
> DECAY groups are banded by tier; the group-to-tier ladder is stated once below
> (5) variable-type table in conventions maps each quantity to its tier
---
## Functional groups (seven-group grammar)
```
RECEIVE take in resources + signals that arrived from outside (boundary: in)
TRACE maintain the trace hierarchy — deposit fast trace; accumulate
possible_tag + endurance_need; stabilize tag on coincidence
ADJUST compute local operating parameters from structure + traces + modulators
BEHAVE the component's defining action, within both ceilings
EMIT send out — signals (messages) + resources (shipments) (boundary: out)
RECOVER refill own private pools consumed by behaving
DECAY let traces recede, closing their windows
```
EVALUATE merged into TRACE: judging a behavior is always maintaining a trace, whether or not
a trace is written. BEHAVE and EMIT stay separate — EMIT is the output half of the locality
interface (RECEIVE/EMIT are the only boundary crossings). TRACE spans all timescales: the
soma's inactivation, adaptation, and nuclear-Ca deposits are all TRACE. Order within a context
follows data dependencies; TRACE reads/writes whatever trace state is current.
EVERY FLOW HAS A TIMESCALE. Decay relaxes toward 0 over τ; creation/arrival relaxes toward a
target over τ — the same first-order operator. Within-step writes are the special case τ ≪ Δt.
Rate-limited inflows (fill/refill/flux·Δt) carry their τ implicitly; shipment carries an
explicit transit delay (see `transit`).
THE GROUPS MOVE BETWEEN TIERS (the ladder; see logic_principles "The Timescale Ladder").
Four tiers: FAST (mss) · MEDIUM (smin) · SLOW (hr) · PERSISTENT (NIGHT-written). The groups
move evidence UP the ladder and read capacity DOWN it:
```
ADJUST reads PERSISTENT ceiling + FAST trace → sets this step's operating point (down)
BEHAVE acts at FAST, bounded by the PERSISTENT ceiling (down)
TRACE deposits FAST, accumulates FAST→MEDIUM evidence, stabilizes MEDIUM→SLOW tag (up)
RECOVER refills toward the PERSISTENT ceiling (down)
DECAY relaxes FAST · MEDIUM · SLOW (PERSISTENT never decays in DAY)
NIGHT commits SLOW tag + MEDIUM endurance_need → PERSISTENT ceilings (up)
```
Capacity flows downward (slow sets the ceiling for fast); evidence flows upward (fast
accumulates toward slow). Each component's DECAY group below is banded by tier to show this.
---
## Conventions
```
SCOPE = {DAY, NIGHT} CONTEXT = {AP, NOT_AP, bAP, NOT_bAP, CONTINUOUS}
VARIABLE TIERS (timescale = meaning; see logic_principles "The Timescale Ladder")
FAST (mss) immediate response fast_trace
MEDIUM (smin) occupancy + evidence possible_tag · endurance_need · VGCC_active · AMPA_surface · RRP
SLOW (hr) consolidation bridge tag
─────────────────────────────────────────────────────────────────────────────
PERSISTENT (NIGHT) capacity (the ceilings) structure · budget_ceiling
energy (not recoverable) · material (recoverable)
DAY budget · fast_trace · possible_tag · endurance_need
BRIDGE tag (POST: CANDIDATE→STABLE)
NIGHT energy (not recoverable) · material (recoverable) · structure · budget_ceiling
LOCALITY only local state + arrived signals; no component reads another's internal state.
CLEFT MESSAGE CHANNELS SHIPMENT CHANNELS (transit-delayed)
glutamate PRE → POST, ASTRO soma_ship_dend SOMA→DEND
astro_Dserine ASTRO → POST soma_ship_axon SOMA→AXON
retro_NO POST → PRE (+) dend_ship_post DEND→POST
retro_eCB POST → PRE () axon_ship_pre AXON→PRE
```
---
## Primitives (return the increment; caller applies it)
```
sat(x, K) = x / (K + x)
fill(pool, ceiling, rate, cost, budget) -> amount: // PRIVATE reserve, rate-limited (implicit τ)
amount = min(rate, ceiling - pool)·Δt; budget -= amount·cost; return amount
refill(c from supply S) -> amount: // CONTESTED supply, gap-bounded
demand = c.budget_ceiling - c.budget
factor = min(1, S / (Σ demand over components on S + ε)); S -= demand·factor
return demand·factor
ship(from_budget, demand_sig, frac, cost) -> amount: // emit into transit (not to target directly)
amount = min(from_budget·frac, demand_sig); from_budget -= amount·(1+ship_cost); return amount
transit(channel, τ_transport) -> arrival: // delivers in-transit cargo over τ
arrival = channel·(Δt/τ_transport); channel -= arrival; return arrival
```
---
## SHARED parameters
```
dopamine NE ACh // organism broadcasts (external)
glucose geometry // physical (external)
elig dop_thr tag_thr tag_expiry // strength gates (universal)
traj_thr endur_thr // endurance gates (universal)
ship_cost // transport overhead (all shipments)
τ_transport_{dend,axon,spine,bouton} // shipment transit times (distance-dependent)
ε
```
## NIGHT parameters (consolidation only)
```
slot_cost cap_cost f_cap // commit sizes / endurance fraction
maint_frac cap_frac // maintenance allocation
decay_rate capacity_decay_rate recycle // passive decay + recovery
homeostatic_ceiling coherence_factor assembly_cost biogenesis_cost maint_cost
f_dend f_axon f_spine f_bouton // material distribution fractions
{dend,axon,pre,post}_ship_frac // DAY shipment fractions
{dend,axon,pre,post}_energy_frac // energy distribution fractions
```
---
---
# DAY
---
## PRE
The presynaptic bouton releases neurotransmitter and gathers evidence about whether that
release was worth strengthening and worth sustaining. Its behavior unfolds across two DAY
contexts and the NIGHT scope.
**During DAY, during AP — the bouton releases neurotransmitter.** The amount released depends on
residual **calcium** from recent spikes (the fast trace, setting the drive), the current
**VGCC coupling occupancy** (how tightly calcium channels are coupled to docking slots right
now — filled short-term, bounded by structure), the two **retrograde messages** from the
postsynapse (`retro_eCB` brakes the drive; `retro_NO` will confirm release reached a responsive
target), and the availability of both **fuel and vesicles**. Two shortfalls are read
differently: a fuel shortfall on a succeeding release is evidence the bouton needs more
*endurance*; an empty pool with fuel to spare is ordinary short-term depression.
**During DAY, during NOT_AP — the bouton consolidates, potentiates short-term, and recovers.**
With no spike to release, it latches the retrograde messages (RECEIVE); maintains its traces —
accumulating eligibility toward a dopamine-gated tag (TRACE); transiently tightens its VGCC
coupling from accumulated eligibility, with no dopamine, a reversible short-term potentiation
bounded by the structural ceiling (BEHAVE); refills both its budget (contested supply) and its
vesicle pool (private reserve) (RECOVER); and lets its traces decay, closing the windows (DECAY).
**During NIGHT — the bouton's ceilings are rewritten.** NIGHT raises the bouton's **structure**
(active-zone capacity, including the VGCC-coupling ceiling) where a validated tag accumulated,
and its **budget capacity** (mitochondrial endurance) where fuel repeatedly interrupted a
succeeding release. Both draw on the same finite material and energy shipped down the axon, so
the two kinds of growth compete — and whatever is not maintained drifts back down.
```
// PARAMETERS K_release · release_cost · fusion_cost · vatpase_cost · spillover · brake
// stp_thr · coupling_gain · coupling_drift · VGCC_baseline
// INTERFACE
// EMIT glutamate → POST, ASTRO
// RECEIVE retro_NO, retro_eCB ← POST (signals latched; resources refill in RECOVER)
// READ glutamate (own cleft, autobrake) ; dopamine (gates tag)
// OWN pre_structure{slot_ceiling, VGCC_coupling, refill_ceiling} ; pre_budget_ceiling
// VGCC_active (occupancy: current coupling, filled toward VGCC_coupling ceiling)
// SUPPLY astro_lactate[syn] ← ASTRO ; axon_ship_pre ← AXON ; pre_material ← AXON(NIGHT) ; pre_energy ← SOMA(NIGHT)
// EMERGENCY shockwave_lockdown ← ASTRO
DAY | AP:
// TRACE (Ca²⁺ bolus from THIS spike — also drives release; frequency is emergent)
pre_fast_trace += spike_Ca(pre_structure.VGCC_coupling)
// ADJUST (release drive from residual Ca²⁺ × current coupling occupancy, + DSE brake)
drive = sat(pre_fast_trace × VGCC_active, K_release) × (1 - retro_eCB_local)
// BEHAVE (release; two distinct failure modes)
if pre_budget < release_cost:
// FUEL shortfall → endurance evidence (retro_NO-confirmed local success)
suppress(NT_flux)
if pre_fast_trace > traj_thr:
pre_endurance_need += pre_fast_trace × (1 + retro_NO_local)
exit
if RRP == 0:
// OCCUPANCY shortfall → short-term depression (NOT endurance; fuel was fine)
suppress(NT_flux)
exit
NT_flux = RRP × drive; RRP -= NT_flux·Δt; pre_budget -= NT_flux·fusion_cost
// EMIT (glutamate into cleft)
glutamate += NT_flux·Δt
if glutamate > spillover: drive *= brake // own-cleft autobrake
DAY | NOT_AP:
// RECEIVE (latch backward messages — signals only)
retro_NO_local = retro_NO; retro_eCB_local = retro_eCB
// TRACE (strength: eligibility → tag via dopamine)
if pre_fast_trace > elig: pre_possible_tag += pre_fast_trace
if dopamine > dop_thr and pre_possible_tag > tag_thr:
pre_tag += dopamine × pre_possible_tag
// BEHAVE (short-term potentiation: eligibility tightens coupling, NO dopamine; drifts back)
if pre_possible_tag > stp_thr:
VGCC_active = min(VGCC_active + coupling_gain × pre_possible_tag, pre_structure.VGCC_coupling)
else:
VGCC_active = max(VGCC_active - coupling_drift·Δt, VGCC_baseline) // STD = consequence
// RECOVER (refill BOTH pools: contested budget + private RRP)
pre_budget += refill(pre from astro_lactate[syn] + transit(axon_ship_pre, τ_transport_bouton))
RRP += fill(RRP, pre_structure.slot_ceiling, pre_structure.refill_ceiling, vatpase_cost, pre_budget)
// DECAY
// FAST (mss)
pre_fast_trace *= decay(100ms)
// MEDIUM (smin)
pre_possible_tag *= decay(s); pre_endurance_need *= decay(min)
// SLOW (hr)
pre_tag *= decay(hr)
// (signals) arrived channels fade
dopamine *= decay(ms); retro_NO *= decay(s); retro_eCB *= decay(s)
// (PERSISTENT: pre_structure, pre_budget_ceiling — no DAY decay; NIGHT only)
```
---
## POST
The postsynaptic spine is the synapse's primary memory locus: it detects coincident input,
runs the calcium dynamics that decide potentiation versus depression, and requires the most
validation (three coincidences) before committing. Its behavior unfolds across two DAY
contexts and the NIGHT scope.
**During DAY, during NOT_bAP — the spine integrates input and decides plasticity.** Three
calcium sources feed its fast trace: AMPA current (small Ca, begins ejecting the NMDA Mg block),
NMDA (large Ca, but only on the local coincidence of depolarization + astrocyte D-serine +
glutamate), and — in the bAP context — the back-propagating spike. High calcium drives AMPA
receptors to the surface (short-term potentiation, occupancy filled toward the slot ceiling, no
dopamine); when calcium falls, they drift back (short-term depression as a consequence). The
spine also emits two retrograde messages from its own state — NO when it responded, an
endocannabinoid brake when over-driven — and accumulates a dopamine-gated tag toward
consolidation. 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.
**During DAY, during bAP — the back-propagating spike confirms coincidence.** The somatic spike
arrives at the spine, adds depolarization and calcium, and supralinearly amplifies an existing
candidate — the soma's confirmation that it fired, one of the three coincidences the spine
requires.
**During NIGHT — the spine's ceilings are rewritten.** NIGHT raises **structure** (the AMPA
slot ceiling, spine volume) where a validated tag accumulated — with a coherence bonus when pre,
post, and astro all tagged the same synapse — and **budget capacity** where fuel interrupted a
climbing calcium trajectory. Both draw the same finite pool, so they 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
// 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
// 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
// NOTE POST endurance is own-state only (own Ca climbing); no arrived feedback term.
DAY | NOT_bAP:
// ADJUST (AMPA drive from arrived glutamate)
a = sat(glutamate, K_AMPA)
// BEHAVE (SOURCE 1 AMPA: current + small Ca + begins Mg ejection)
AMPA_current = a × AMPA_surface; Vm += AMPA_current; post_budget -= AMPA_cost
// TRACE (Ca deposited by AMPA)
post_fast_trace += AMPA_Ca·AMPA_current
// BEHAVE (SOURCE 2 NMDA: large Ca on local coincidence)
if Vm > Mg_eject and astro_Dserine > Dserine_thr and glutamate > 0:
post_fast_trace += NMDA_Ca(glutamate)·rise_speed(); post_budget -= NMDA_cost
// EMIT (+ NO/BDNF: "release reached a responsive target")
retro_NO += NO_emit(post_fast_trace); post_budget -= NO_synth_cost
// EMIT ( endocannabinoid / DSE when over-driven)
if Vm > eCB_thr:
retro_eCB += eCB_emit(Vm); post_budget -= eCB_synth_cost
post_fast_trace *= decay(ms)
// BEHAVE (STP fill slots from private reserve ; else STD drift = consequence)
if post_fast_trace > Ca_STP:
if post_budget < traffic_cost:
// FUEL shortfall → endurance (own Ca was climbing toward a tag)
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:
AMPA_surface += Ca_insert(post_fast_trace); post_budget -= traffic_cost
// else: surface already at slot_ceiling → structure-limited (not endurance)
else:
AMPA_surface = max(AMPA_surface - drift·Δt, baseline) // STD = consequence
// TRACE (strength: CANDIDATE then STABLE via dopamine)
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
// RECOVER (refill budget from contested supply)
post_budget += refill(post from astro_lactate[syn] + transit(dend_ship_post, τ_transport_spine))
// DECAY
// FAST (mss) — post_fast_trace already decayed above (intra-step, pre-tagging)
// MEDIUM (smin)
post_possible_tag *= decay(min); post_endurance_need *= decay(min)
// SLOW (hr)
post_tag *= decay(hr)
// (signals)
dopamine *= decay(ms)
// (PERSISTENT: post_structure, post_budget_ceiling — no DAY decay; NIGHT only)
DAY | bAP:
// BEHAVE (SOURCE 3 bAP: depolarization + Ca, amplifies existing signal)
Vm += bAP_depol × dend_structure.bAP_fidelity; post_budget -= bAP_cost
// TRACE (supralinear boost only if a CANDIDATE is present)
if post_possible_tag > Ca_TAG: post_fast_trace += bAP_Ca_boost()
```
---
## DEND
The dendritic branch is the postsynapse's supply line and the neuron's input integrator. It
carries the back-propagating spike out to its spines, integrates their voltages toward the
soma, and ships material and budget to the spines it supports. Its behavior unfolds across two
DAY contexts and the NIGHT scope.
**During DAY, during bAP — the branch propagates and integrates.** When the soma fires, the
branch propagates the back-propagating spike toward its spines, with a fidelity that attenuates
with distance (distal spines get weaker confirmation, are harder to potentiate). It deposits
branch calcium and integrates its spines' voltages into a single branch signal sent on to the
soma. A fuel shortfall that cuts propagation short while the branch was strongly active is
endurance evidence; propagation that simply attenuates with distance is a structural limit, not
endurance.
**During DAY, during NOT_bAP — the branch consolidates, supplies, and recovers.** It maintains
its tag toward consolidation, lowers its commit threshold under acetylcholine (attention),
ships budget down to its spines (demand-weighted by their tags), runs local translation if
tagged, refills its own budget from astrocytic lactate and somatic shipment, and lets its
traces decay.
**During NIGHT — the branch's ceilings are rewritten.** NIGHT raises **structure** (bAP
fidelity, translation capacity) where a validated tag accumulated and **budget capacity** where
fuel interrupted strong branch activity, both from the shared pool, both competing; unmaintained
ceilings drift down.
```
// PARAMETERS prop_cost · branch_Ca_cost · integrate_cost · translate_cost · ACh_gain
// INTERFACE
// EMIT bAP_local → POST ; branch_Vm → SOMA ; dend_ship_post → POST
// RECEIVE (signals) SOMA.fired ; POST.Vm + spine spillover ; dopamine ; ACh
// READ SOMA.fired ; POST.Vm + spine spillover ; dopamine ; ACh
// OWN dend_structure{bAP_fidelity(pos), translation_ceiling, transport_speed} ; dend_budget_ceiling
// SUPPLY astro_lactate[branch] ← ASTRO ; soma_ship_dend ← SOMA ; dend_material, dend_energy ← SOMA(NIGHT)
// NOTE DEND endurance fires only on FUEL-limited propagation, not structural attenuation;
// own-state proxy (strong branch activity); no arrived feedback term.
DAY | bAP:
// ADJUST (propagation strength from structure — inside propagate())
// BEHAVE (propagate bAP; distinguish fuel-limited vs structure-limited shortfall)
if dend_budget < prop_cost:
// FUEL shortfall → endurance (branch was strongly active)
if dend_fast_trace > traj_thr:
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
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
DAY | NOT_bAP:
// TRACE (strength)
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
// ADJUST (commit threshold lowered by attention)
commit_threshold *= 1/(1 + ACh·ACh_gain)
// BEHAVE (local translation if tagged — fills dend capacity faster)
if dend_tag > tag_expiry and dend_budget > translate_cost: dend_budget -= translate_cost
// EMIT (ship budget to spines; demand = post tag)
dend_ship_post = ship(dend_budget, post_demand, post_ship_frac, ship_cost)
// RECOVER (refill budget from contested supply)
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)
```
---
## SOMA
The soma is the neuron's integrating center and the root of its structural material. It sums
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.
**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
its refractory state; if the integrated branch input clears the threshold and fuel allows, it
fires. One spike deposits three traces at three timescales — sodium inactivation (refractory),
slow-potassium adaptation (threshold rise), and nuclear calcium (toward CREB and the tag). A
fuel shortfall while nuclear calcium was climbing is endurance evidence; being refractory or
sub-threshold is a timing limit, not endurance.
**During DAY, during NOT_AP — the soma recovers, aligns, and supplies.** It self-replenishes
from its own mitochondria (its private root), integrates the latest branch inputs, deposits a
refractory-alignment trace when suprathreshold input arrived during its refractory period (so it
aligns to its input rhythm bottom-up), ships budget to dendrites and axon (demand-weighted by
their tags), recovers from refractoriness at a rate its alignment trace speeds up, and lets its
traces decay.
**During NIGHT — the soma's ceilings are rewritten, and it gates the whole neuron's material.**
NIGHT raises **structure** (excitability, synthesis capacity) and **budget capacity** from the
shared pool; crucially the soma's own tag gates CREB-driven synthesis, so how much material all
downstream components receive depends on the soma having been tagged.
```
// PARAMETERS ap_cost · nuclear_cost · creb_cost · mito_output · inactivation · ap_amp · ap_contrib
// base_recovery · τ_Na · τ_adapt · τ_nuclear · τ_align
// INTERFACE
// EMIT fired → AXON (propagate) + DEND (bAP) ; soma_ship_dend → DEND ; soma_ship_axon → AXON
// RECEIVE (signals) branch_Vm ← DEND ; dopamine ; NE ; ACh
// READ dopamine ; NE ; ACh
// OWN soma_structure{baseline_threshold, AP_reliability, synthesis_ceiling} ; soma_budget_ceiling
// SUPPLY self (mitochondria, ROOT — private)
// NOTE SOMA endurance fires only on FUEL shortfall (budget < ap_cost);
// refractory / sub-threshold are timing limits, not endurance. Own-state proxy.
DAY | AP:
// ADJUST (threshold from structure + adaptation + neuromodulators ; refractory gate)
threshold = soma_structure.baseline_threshold × (1 + soma_adaptation) × neuromod(NE, ACh)
can_fire = soma_Na_inactivation < inactivation
// BEHAVE (fire if able)
if branch_Vm > threshold and can_fire:
if soma_budget < ap_cost:
// FUEL shortfall → endurance (firing was approaching CREB)
if soma_fast_trace > traj_thr and soma_fast_trace_rising:
soma_endurance_need += soma_fast_trace
exit
// EMIT (fired → AXON, DEND)
fired = True; soma_budget -= ap_cost
// TRACE (three traces from one AP — FAST nuclear-Ca, MEDIUM adaptation, refractory)
soma_Na_inactivation += ap_amp // → refractory (emergent)
soma_adaptation += ap_contrib // → threshold rise
soma_fast_trace += nuclear_Ca(); soma_budget -= nuclear_cost
// TRACE (strength)
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
DAY | NOT_AP:
// RECEIVE (integrate latest branch input — signal)
branch_Vm = integrate(DEND.branch_Vm, branches)
// TRACE (bottom-up refractory alignment: suprathreshold input during refractory)
if branch_Vm > threshold and soma_Na_inactivation > inactivation:
soma_refractory_alignment += (branch_Vm - threshold) × soma_Na_inactivation
// EMIT (ship downstream into transit; demand = propagated tags)
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)
// RECOVER (self-replenish from private root ; inactivation recovery sped by alignment)
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 (sub-second to seconds)
soma_fast_trace *= decay(τ_nuclear); soma_refractory_alignment *= decay(τ_align) // self-limiting
// MEDIUM (smin) — adaptation + tagging evidence
soma_adaptation *= decay(τ_adapt)
soma_possible_tag *= decay(s); soma_endurance_need *= decay(min)
// SLOW (hr)
soma_tag *= decay(hr)
// (signals)
dopamine *= decay(ms)
// (PERSISTENT: soma_structure, soma_budget_ceiling — no DAY decay; NIGHT only)
```
---
## AXON
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.
**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 —
axonal short-term depression). A fuel shortfall while carrying a strong train is endurance
evidence; load-driven failure is short-term depression, a consequence, not endurance.
**During DAY, during NOT_AP — the axon supplies and recovers.** It maintains its tag, ships
budget to its boutons (demand-weighted by their tags), refills its own budget from somatic
shipment and astrocytic lactate, and lets its traces decay.
**During NIGHT — the axon's ceilings are rewritten.** NIGHT raises **structure** (myelination,
transport capacity) and **budget capacity** from the shared pool, both competing; unmaintained
ceilings drift down.
```
// PARAMETERS prop_cost · budget_factor
// INTERFACE
// EMIT APs_delivered → PRE (propagation) ; axon_ship_pre → PRE
// RECEIVE (signals) SOMA.fired ; dopamine
// READ SOMA.fired ; dopamine
// OWN axon_structure{propagation, transport_ceiling, mito_density} ; axon_budget_ceiling
// SUPPLY soma_ship_axon ← SOMA ; astro_lactate[shaft] ← ASTRO ; axon_material, axon_energy ← SOMA(NIGHT)
// NOTE AXON endurance fires only on FUEL shortfall; load-driven failure fail(fast_trace)
// is axonal STD (a consequence), not endurance. Own-state proxy.
DAY | AP:
// ADJUST (reliability from structure load-driven failure)
reliability = axon_structure.propagation × (1 - fail(axon_fast_trace)) // fail() = STD, not endurance
// BEHAVE (propagate; FUEL shortfall degrades + flags endurance)
if axon_budget < prop_cost:
reliability *= budget_factor
if axon_fast_trace > traj_thr: // FUEL-limited → endurance
axon_endurance_need += axon_fast_trace
delivered = fired × reliability; axon_budget -= prop_cost × delivered
// EMIT (delivered APs reach boutons)
// TRACE
axon_fast_trace += delivered; axon_fast_trace *= decay(s)
DAY | NOT_AP:
// TRACE (strength)
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
// EMIT (ship to boutons; demand = pre tag)
axon_ship_pre = ship(axon_budget, pre_demand, pre_ship_frac, ship_cost)
// RECOVER (refill budget from contested supply)
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)
// (PERSISTENT: axon_structure, axon_budget_ceiling — no DAY decay; NIGHT only)
```
---
## ASTRO
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.
**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.
**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.
```
// PARAMETERS K_Dserine · Ds_max · Ds_frac · Ds_cost · EAAT_cost · lactate_cost · spillover · overload
// 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<want via low budget);
// material/precursor-limited synthesis is a material limit, not endurance. Own-state proxy.
// EMERGENCY emits shockwave_lockdown on overload
DAY | CONTINUOUS: // per astrosynapse i
// RECEIVE (root production, capped by glucose)
astro_central_budget += glycolysis(glucose)·Δt
// ADJUST (demand weights across territory)
for each i: demand[i] = clearance_load[i] × astro_structure[i].delivery_eff
factor = min(1, astro_central_budget / (Σ demand·lactate_cost + ε))
// EMIT (demand-weighted lactate to all components)
for each i:
astro_lactate[i] = demand[i] × factor; astro_central_budget -= astro_lactate[i]·lactate_cost
// BEHAVE (clear glutamate ; supply tonic D-serine)
glutamate[i] -= astro_structure[i].EAAT × glutamate[i]·Δt; astro_central_budget -= clearance·EAAT_cost
astro_Dserine[i] += astro_structure[i].Dserine_tonic·Δt
if glutamate[i] > spillover:
// TRACE
astro_fast_trace[i] += mGluR_Ca(); astro_fast_trace[i] *= decay(s)
// ADJUST (D-serine demand from spillover)
want = sat(astro_fast_trace[i], K_Dserine) × Ds_max
got = min(want, astro_central_budget × Ds_frac)
// BEHAVE + EMIT (D-serine pulse to POST gate)
astro_Dserine[i] += got; astro_central_budget -= got·Ds_cost
// TRACE (endurance: BUDGET-limited synthesis under high own demand)
if got < want and astro_central_budget low and astro_fast_trace[i] > traj_thr:
astro_endurance_need[i] += (want - got)
// TRACE (strength)
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
// FAST (mss) — astro_fast_trace already decayed above (intra-step)
// MEDIUM (smin)
astro_possible_tag[i] *= decay(s); astro_endurance_need[i] *= decay(min)
// SLOW (hr)
astro_tag[i] *= decay(hr)
// (PERSISTENT: astro_structure, astro_budget_ceiling — no DAY decay; NIGHT only)
// EMERGENCY
if astro_fast_trace[i] > overload: emit(shockwave_lockdown)
```
---
## Special — Shockwave Lockdown
```
DAY or NIGHT | OVERLOAD:
Vm = HYPERPOLARIZED; AMPA_surface = mass_internalize() → post reserve
axon_fast_trace += overdrive(); astro_central_budget -= emergency_cost
```
---
---
# NIGHT
Same grammar on ceilings, once per cycle.
```
NIGHT | 1 RECEIVE + ADJUST + EMIT (replenish, weight, distribute)
// RECEIVE overnight production at roots (capped by glucose; gated by soma_tag)
astro_central_{budget,energy,material} += overnight_*(glucose, …)·Δt
soma_{budget,energy} += overnight_*()·Δt ; soma_material += CREB_synth(soma_tag)·Δt
// ADJUST tag-weighted shares
for each i with astro_tag[i] > tag_expiry: w = astro_tag[i]/Σastro_tag
// EMIT distribute material + energy down the supply chains
astro_energy[i] += astro_central_energy·w; astro_material[i] += astro_central_material·w
dend_material += soma_material·f_dend ; axon_material += soma_material·f_axon ; soma_material -= …
post_material += dend_material·f_spine ; pre_material += axon_material·f_bouton
{pre,post,dend,axon}_energy += soma_energy·{·}_energy_frac
{pre,post,dend,axon}_budget += astro_lactate_reserve·{·}_frac·Δt
NIGHT | 2 TRACE + BEHAVE (strength commits → raise structure)
// ADJUST coherence bonus when pre, post, astro tags align
coherence = (pre_tag, post_tag, astro_tag all > tag_expiry) ? coherence_factor : 1
// TRACE+BEHAVE build structure for tagged components
for each c with c_tag > tag_expiry:
Δ = min(slot_cost, c_material, c_energy·f_cap)
c_structure += Δ × (coherence if c in {pre,post,astro} else 1)
c_material -= Δ; c_energy -= Δ·assembly_cost; if Δ < slot_cost: queue(→ next NIGHT)
NIGHT | 2b TRACE + BEHAVE (endurance commits → raise budget_ceiling ; no dopamine ; competes w/ 2)
for each c with c_endurance_need > endur_thr:
Δ = min(cap_cost, c_material·f_cap, c_energy·f_cap)
c_budget_ceiling += Δ; c_material -= Δ; c_energy -= Δ·biogenesis_cost; if Δ<cap_cost: queue
NIGHT | 3 DECAY + RECOVER (both ceilings decay by neglect ; material recovered)
maint = (total_material - consumed) × maint_frac / synapse_count
for each synapse: // DECAY
{pre,post,dend,astro}_structure -= decay_rate·Δt
{pre,post,dend,astro}_budget_ceiling -= capacity_decay_rate·Δt
if maint ≥ maint_cost: structure += full_maint ; budget_ceiling += full_cap_maint
else: structure += maint·frac ; budget_ceiling += maint·cap_frac
for each synapse with net_change < 0: // RECOVER
{pre,post,astro}_material += |net_change|·recycle·frac // material recovered, energy not
NIGHT | 4 BEHAVE (homeostatic scaling)
if soma_tag > homeostatic_ceiling:
s = homeostatic_ceiling / soma_tag
for each synapse: post_structure.slot_ceiling *= s ; pre_structure.slot_ceiling *= s
soma_material += Σ reduction·recycle
NIGHT | 5 DECAY (clear traces)
all fast_trace, possible_tag, endurance_need = 0
soma_Na_inactivation = soma_adaptation = soma_refractory_alignment = 0
for each tag: if tag < tag_expiry: tag = 0 // else carry forward
// structure and budget_ceiling PERSIST
```
---
## One-view summary
```
SEVEN-GROUP GRAMMAR, TWO TIMESCALES
RECEIVE · TRACE · ADJUST · BEHAVE · EMIT · RECOVER · DECAY
DAY grammar on OCCUPANCY within two ceilings (structure=strength, budget_ceiling=endurance)
TRACE yields two evidence streams from local state + arrived signals:
fast_trace + dopamine → tag (strength)
FUEL shortfall + interrupted LOCAL success → endurance_need (endurance)
OCCUPANCY/structure/timing shortfalls → short-term depression (NOT endurance)
NIGHT same grammar on the CEILINGS:
tag → structure ; endurance_need → budget_ceiling ; both draw one pool (compete)
unmaintained ceilings decay → recovered material funds the rest
FLOWS every flow has a timescale: decay relaxes toward 0 over τ, arrival toward a target
over τ; shipment is transit-delayed; rate-limited inflows carry τ implicitly.
LOCAL every group uses only own state + arrived signals; RECEIVE/EMIT are the only crossings.
```
@@ -0,0 +1,535 @@
# Tripartite Synapse — Pseudocode v13
> Companion: `tripartite_synapse_v13_biology.md`.
> Changes from v12:
> (1) per-spike calcium deposit (frequency stays emergent, not a parameter)
> (2) BEHAVE splits FUEL shortfall (→ endurance) from OCCUPANCY shortfall (→ STD)
> (3) endurance feedback term only where a retrograde signal actually arrives
> (4) TRACE absorbs EVALUATE → seven-group grammar
> (5) parameter declarations completed (ship_cost, ACh_gain, NIGHT block)
> (6) shipment is a transit-delayed flow; every flow has a timescale
> (7) all group labels are standalone headers at one column
---
## Functional groups (seven-group grammar)
```
RECEIVE take in resources + signals that arrived from outside (boundary: in)
TRACE maintain the trace hierarchy — deposit fast trace; accumulate
possible_tag + endurance_need; stabilize tag on coincidence
ADJUST compute local operating parameters from structure + traces + modulators
BEHAVE the component's defining action, within both ceilings
EMIT send out — signals (messages) + resources (shipments) (boundary: out)
RECOVER refill own private pools consumed by behaving
DECAY let traces recede, closing their windows
```
EVALUATE merged into TRACE: judging a behavior is always maintaining a trace, whether or not
a trace is written. BEHAVE and EMIT stay separate — EMIT is the output half of the locality
interface (RECEIVE/EMIT are the only boundary crossings). TRACE spans all timescales: the
soma's inactivation, adaptation, and nuclear-Ca deposits are all TRACE. Order within a context
follows data dependencies; TRACE reads/writes whatever trace state is current.
EVERY FLOW HAS A TIMESCALE. Decay relaxes toward 0 over τ; creation/arrival relaxes toward a
target over τ — the same first-order operator. Within-step writes are the special case τ ≪ Δt.
Rate-limited inflows (fill/refill/flux·Δt) carry their τ implicitly; shipment carries an
explicit transit delay (see `transit`).
---
## Conventions
```
SCOPE = {DAY, NIGHT} CONTEXT = {AP, NOT_AP, bAP, NOT_bAP, CONTINUOUS}
DAY budget · fast_trace · possible_tag · endurance_need
BRIDGE tag (POST: CANDIDATE→STABLE)
NIGHT energy (not recoverable) · material (recoverable) · structure · budget_ceiling
LOCALITY only local state + arrived signals; no component reads another's internal state.
CLEFT MESSAGE CHANNELS SHIPMENT CHANNELS (transit-delayed)
glutamate PRE → POST, ASTRO soma_ship_dend SOMA→DEND
astro_Dserine ASTRO → POST soma_ship_axon SOMA→AXON
retro_NO POST → PRE (+) dend_ship_post DEND→POST
retro_eCB POST → PRE () axon_ship_pre AXON→PRE
```
---
## Primitives (return the increment; caller applies it)
```
sat(x, K) = x / (K + x)
fill(pool, ceiling, rate, cost, budget) -> amount: // PRIVATE reserve, rate-limited (implicit τ)
amount = min(rate, ceiling - pool)·Δt; budget -= amount·cost; return amount
refill(c from supply S) -> amount: // CONTESTED supply, gap-bounded
demand = c.budget_ceiling - c.budget
factor = min(1, S / (Σ demand over components on S + ε)); S -= demand·factor
return demand·factor
ship(from_budget, demand_sig, frac, cost) -> amount: // emit into transit (not to target directly)
amount = min(from_budget·frac, demand_sig); from_budget -= amount·(1+ship_cost); return amount
transit(channel, τ_transport) -> arrival: // delivers in-transit cargo over τ
arrival = channel·(Δt/τ_transport); channel -= arrival; return arrival
```
---
## SHARED parameters
```
dopamine NE ACh // organism broadcasts (external)
glucose geometry // physical (external)
elig dop_thr tag_thr tag_expiry // strength gates (universal)
traj_thr endur_thr // endurance gates (universal)
ship_cost // transport overhead (all shipments)
τ_transport_{dend,axon,spine,bouton} // shipment transit times (distance-dependent)
ε
```
## NIGHT parameters (consolidation only)
```
slot_cost cap_cost f_cap // commit sizes / endurance fraction
maint_frac cap_frac // maintenance allocation
decay_rate capacity_decay_rate recycle // passive decay + recovery
homeostatic_ceiling coherence_factor assembly_cost biogenesis_cost maint_cost
f_dend f_axon f_spine f_bouton // material distribution fractions
{dend,axon,pre,post}_ship_frac // DAY shipment fractions
{dend,axon,pre,post}_energy_frac // energy distribution fractions
```
---
---
# DAY
---
## PRE
The presynaptic bouton releases neurotransmitter and gathers evidence about whether that
release was worth strengthening and worth sustaining. Its behavior unfolds across two DAY
contexts and the NIGHT scope.
**During DAY, during AP — the bouton releases neurotransmitter.** The amount released depends on
residual **calcium** from recent spikes (the fast trace, setting the drive), the current
**VGCC coupling occupancy** (how tightly calcium channels are coupled to docking slots right
now — filled short-term, bounded by structure), the two **retrograde messages** from the
postsynapse (`retro_eCB` brakes the drive; `retro_NO` will confirm release reached a responsive
target), and the availability of both **fuel and vesicles**. Two shortfalls are read
differently: a fuel shortfall on a succeeding release is evidence the bouton needs more
*endurance*; an empty pool with fuel to spare is ordinary short-term depression.
**During DAY, during NOT_AP — the bouton consolidates, potentiates short-term, and recovers.**
With no spike to release, it latches the retrograde messages (RECEIVE); maintains its traces —
accumulating eligibility toward a dopamine-gated tag (TRACE); transiently tightens its VGCC
coupling from accumulated eligibility, with no dopamine, a reversible short-term potentiation
bounded by the structural ceiling (BEHAVE); refills both its budget (contested supply) and its
vesicle pool (private reserve) (RECOVER); and lets its traces decay, closing the windows (DECAY).
**During NIGHT — the bouton's ceilings are rewritten.** NIGHT raises the bouton's **structure**
(active-zone capacity, including the VGCC-coupling ceiling) where a validated tag accumulated,
and its **budget capacity** (mitochondrial endurance) where fuel repeatedly interrupted a
succeeding release. Both draw on the same finite material and energy shipped down the axon, so
the two kinds of growth compete — and whatever is not maintained drifts back down.
```
// PARAMETERS K_release · release_cost · fusion_cost · vatpase_cost · spillover · brake
// stp_thr · coupling_gain · coupling_drift · VGCC_baseline
// INTERFACE
// EMIT glutamate → POST, ASTRO
// RECEIVE retro_NO, retro_eCB ← POST (signals latched; resources refill in RECOVER)
// READ glutamate (own cleft, autobrake) ; dopamine (gates tag)
// OWN pre_structure{slot_ceiling, VGCC_coupling, refill_ceiling} ; pre_budget_ceiling
// VGCC_active (occupancy: current coupling, filled toward VGCC_coupling ceiling)
// SUPPLY astro_lactate[syn] ← ASTRO ; axon_ship_pre ← AXON ; pre_material ← AXON(NIGHT) ; pre_energy ← SOMA(NIGHT)
// EMERGENCY shockwave_lockdown ← ASTRO
DAY | AP:
// TRACE (Ca²⁺ bolus from THIS spike — also drives release; frequency is emergent)
pre_fast_trace += spike_Ca(pre_structure.VGCC_coupling)
// ADJUST (release drive from residual Ca²⁺ × current coupling occupancy, + DSE brake)
drive = sat(pre_fast_trace × VGCC_active, K_release) × (1 - retro_eCB_local)
// BEHAVE (release; two distinct failure modes)
if pre_budget < release_cost:
// FUEL shortfall → endurance evidence (retro_NO-confirmed local success)
suppress(NT_flux)
if pre_fast_trace > traj_thr:
pre_endurance_need += pre_fast_trace × (1 + retro_NO_local)
exit
if RRP == 0:
// OCCUPANCY shortfall → short-term depression (NOT endurance; fuel was fine)
suppress(NT_flux)
exit
NT_flux = RRP × drive; RRP -= NT_flux·Δt; pre_budget -= NT_flux·fusion_cost
// EMIT (glutamate into cleft)
glutamate += NT_flux·Δt
if glutamate > spillover: drive *= brake // own-cleft autobrake
DAY | NOT_AP:
// RECEIVE (latch backward messages — signals only)
retro_NO_local = retro_NO; retro_eCB_local = retro_eCB
// TRACE (strength: eligibility → tag via dopamine)
if pre_fast_trace > elig: pre_possible_tag += pre_fast_trace
if dopamine > dop_thr and pre_possible_tag > tag_thr:
pre_tag += dopamine × pre_possible_tag
// BEHAVE (short-term potentiation: eligibility tightens coupling, NO dopamine; drifts back)
if pre_possible_tag > stp_thr:
VGCC_active = min(VGCC_active + coupling_gain × pre_possible_tag, pre_structure.VGCC_coupling)
else:
VGCC_active = max(VGCC_active - coupling_drift·Δt, VGCC_baseline) // STD = consequence
// RECOVER (refill BOTH pools: contested budget + private RRP)
pre_budget += refill(pre from astro_lactate[syn] + transit(axon_ship_pre, τ_transport_bouton))
RRP += fill(RRP, pre_structure.slot_ceiling, pre_structure.refill_ceiling, vatpase_cost, pre_budget)
// DECAY
pre_fast_trace *= decay(100ms); pre_possible_tag *= decay(s)
pre_endurance_need *= decay(min); pre_tag *= decay(hr)
dopamine *= decay(ms); retro_NO *= decay(s); retro_eCB *= decay(s)
```
---
## POST
```
// 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
// NO_synth_cost · eCB_synth_cost
// INTERFACE
// EMIT retro_NO (+), retro_eCB () → PRE
// RECEIVE astro_lactate[syn] ← ASTRO ; dend_ship_post ← DEND ; post_material ← DEND(NIGHT) ; post_energy ← SOMA(NIGHT)
// READ glutamate ← PRE ; astro_Dserine ← ASTRO ; bAP (dend_structure.bAP_fidelity) ; dopamine
// OWN post_structure{slot_ceiling, spine_volume, reserve_ceiling} ; post_budget_ceiling
// EMERGENCY shockwave_lockdown ← ASTRO
// NOTE POST endurance is own-state only (own Ca climbing); no arrived feedback term.
DAY | NOT_bAP:
// RECEIVE
post_budget += refill(post from astro_lactate[syn] + transit(dend_ship_post, τ_transport_spine))
// ADJUST (AMPA drive from arrived glutamate)
a = sat(glutamate, K_AMPA)
// BEHAVE (SOURCE 1 AMPA: current + small Ca + begins Mg ejection)
AMPA_current = a × AMPA_surface; Vm += AMPA_current; post_budget -= AMPA_cost
// TRACE (Ca deposited by AMPA)
post_fast_trace += AMPA_Ca·AMPA_current
// BEHAVE (SOURCE 2 NMDA: large Ca on local coincidence)
if Vm > Mg_eject and astro_Dserine > Dserine_thr and glutamate > 0:
post_fast_trace += NMDA_Ca(glutamate)·rise_speed(); post_budget -= NMDA_cost
// EMIT (+ NO/BDNF: "release reached a responsive target")
retro_NO += NO_emit(post_fast_trace); post_budget -= NO_synth_cost
// EMIT ( endocannabinoid / DSE when over-driven)
if Vm > eCB_thr:
retro_eCB += eCB_emit(Vm); post_budget -= eCB_synth_cost
post_fast_trace *= decay(ms)
// BEHAVE (STP fill slots from private reserve ; else STD drift = consequence)
if post_fast_trace > Ca_STP:
if post_budget < traffic_cost:
// FUEL shortfall → endurance (own Ca was climbing toward a tag)
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:
AMPA_surface += Ca_insert(post_fast_trace); post_budget -= traffic_cost
// else: surface already at slot_ceiling → structure-limited (not endurance)
else:
AMPA_surface = max(AMPA_surface - drift·Δt, baseline) // STD = consequence
// TRACE (strength: CANDIDATE then STABLE via dopamine)
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
// DECAY
post_possible_tag *= decay(min); post_endurance_need *= decay(min)
post_tag *= decay(hr); dopamine *= decay(ms)
DAY | bAP:
// BEHAVE (SOURCE 3 bAP: depolarization + Ca, amplifies existing signal)
Vm += bAP_depol × dend_structure.bAP_fidelity; post_budget -= bAP_cost
// TRACE (supralinear boost only if a CANDIDATE is present)
if post_possible_tag > Ca_TAG: post_fast_trace += bAP_Ca_boost()
```
---
## DEND
```
// PARAMETERS prop_cost · branch_Ca_cost · integrate_cost · translate_cost · ACh_gain
// INTERFACE
// EMIT bAP_local → POST ; branch_Vm → SOMA ; dend_ship_post → POST
// RECEIVE astro_lactate[branch] ← ASTRO ; soma_ship_dend ← SOMA ; dend_material, dend_energy ← SOMA(NIGHT)
// READ SOMA.fired ; POST.Vm + spine spillover ; dopamine ; ACh
// OWN dend_structure{bAP_fidelity(pos), translation_ceiling, transport_speed} ; dend_budget_ceiling
// NOTE DEND endurance fires only on FUEL-limited propagation, not structural attenuation;
// own-state proxy (strong branch activity); no arrived feedback term.
DAY | bAP:
// ADJUST (propagation strength from structure — inside propagate())
// BEHAVE (propagate bAP; distinguish fuel-limited vs structure-limited shortfall)
if dend_budget < prop_cost:
// FUEL shortfall → endurance (branch was strongly active)
if dend_fast_trace > traj_thr:
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
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
DAY | NOT_bAP:
// RECEIVE
dend_budget += refill(dend from astro_lactate[branch] + transit(soma_ship_dend, τ_transport_dend))
// TRACE (strength)
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
// ADJUST (commit threshold lowered by attention)
commit_threshold *= 1/(1 + ACh·ACh_gain)
// EMIT (ship budget to spines; demand = post tag)
dend_ship_post = ship(dend_budget, post_demand, post_ship_frac, ship_cost)
// BEHAVE (local translation if tagged — fills dend capacity faster)
if dend_tag > tag_expiry and dend_budget > translate_cost: dend_budget -= translate_cost
// DECAY
dend_fast_trace *= decay(300ms); dend_possible_tag *= decay(s)
dend_endurance_need *= decay(min); dend_tag *= decay(hr)
```
---
## SOMA
```
// PARAMETERS ap_cost · nuclear_cost · creb_cost · mito_output · inactivation · ap_amp · ap_contrib
// base_recovery · τ_Na · τ_adapt · τ_nuclear · τ_align
// INTERFACE
// EMIT fired → AXON (propagate) + DEND (bAP) ; soma_ship_dend → DEND ; soma_ship_axon → AXON
// RECEIVE self (mitochondria, ROOT) ; branch_Vm ← DEND
// READ dopamine ; NE ; ACh
// OWN soma_structure{baseline_threshold, AP_reliability, synthesis_ceiling} ; soma_budget_ceiling
// NOTE SOMA endurance fires only on FUEL shortfall (budget < ap_cost);
// refractory / sub-threshold are timing limits, not endurance. Own-state proxy.
DAY | AP:
// ADJUST (threshold from structure + adaptation + neuromodulators ; refractory gate)
threshold = soma_structure.baseline_threshold × (1 + soma_adaptation) × neuromod(NE, ACh)
can_fire = soma_Na_inactivation < inactivation
// BEHAVE (fire if able)
if branch_Vm > threshold and can_fire:
if soma_budget < ap_cost:
// FUEL shortfall → endurance (firing was approaching CREB)
if soma_fast_trace > traj_thr and soma_fast_trace_rising:
soma_endurance_need += soma_fast_trace
exit
// EMIT (fired → AXON, DEND)
fired = True; soma_budget -= ap_cost
// TRACE (three traces from one AP — all timescales)
soma_Na_inactivation += ap_amp // → refractory (emergent)
soma_adaptation += ap_contrib // → threshold rise
soma_fast_trace += nuclear_Ca(); soma_budget -= nuclear_cost
// TRACE (strength)
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
DAY | NOT_AP:
// RECEIVE (self-replenish from private root ; integrate input)
soma_budget += fill(soma_budget, soma_budget_ceiling, mito_output, 0, soma_budget)
branch_Vm = integrate(DEND.branch_Vm, branches)
// TRACE (bottom-up refractory alignment: suprathreshold input during refractory)
if branch_Vm > threshold and soma_Na_inactivation > inactivation:
soma_refractory_alignment += (branch_Vm - threshold) × soma_Na_inactivation
// EMIT (ship downstream into transit; demand = propagated tags)
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)
// RECOVER (inactivation recovery sped by alignment trace → emergent refractory)
recovery = base_recovery × (1 + soma_refractory_alignment)
soma_Na_inactivation *= decay(τ_Na / recovery)
// DECAY
soma_adaptation *= decay(τ_adapt); soma_fast_trace *= decay(τ_nuclear)
soma_refractory_alignment *= decay(τ_align) // self-limiting
soma_possible_tag *= decay(s); soma_endurance_need *= decay(min)
soma_tag *= decay(hr); dopamine *= decay(ms)
```
---
## AXON
```
// PARAMETERS prop_cost · budget_factor
// INTERFACE
// EMIT APs_delivered → PRE (propagation) ; axon_ship_pre → PRE
// RECEIVE soma_ship_axon ← SOMA ; astro_lactate[shaft] ← ASTRO ; axon_material, axon_energy ← SOMA(NIGHT)
// READ SOMA.fired ; dopamine
// OWN axon_structure{propagation, transport_ceiling, mito_density} ; axon_budget_ceiling
// NOTE AXON endurance fires only on FUEL shortfall; load-driven failure fail(fast_trace)
// is axonal STD (a consequence), not endurance. Own-state proxy.
DAY | AP:
// ADJUST (reliability from structure load-driven failure)
reliability = axon_structure.propagation × (1 - fail(axon_fast_trace)) // fail() = STD, not endurance
// BEHAVE (propagate; FUEL shortfall degrades + flags endurance)
if axon_budget < prop_cost:
reliability *= budget_factor
if axon_fast_trace > traj_thr: // FUEL-limited → endurance
axon_endurance_need += axon_fast_trace
delivered = fired × reliability; axon_budget -= prop_cost × delivered
// EMIT (delivered APs reach boutons)
// TRACE
axon_fast_trace += delivered; axon_fast_trace *= decay(s)
DAY | NOT_AP:
// RECEIVE
axon_budget += refill(axon from soma_ship_axon + astro_lactate[shaft])
// TRACE (strength)
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
// EMIT (ship to boutons; demand = pre tag)
axon_ship_pre = ship(axon_budget, pre_demand, pre_ship_frac, ship_cost)
// DECAY
axon_fast_trace *= decay(s); axon_possible_tag *= decay(s)
axon_endurance_need *= decay(min); axon_tag *= decay(hr)
```
---
## ASTRO
```
// PARAMETERS K_Dserine · Ds_max · Ds_frac · Ds_cost · EAAT_cost · lactate_cost · spillover · overload
// INTERFACE
// EMIT astro_lactate[i] → pre/post/dend budgets ; astro_Dserine[i] → POST (gate)
// RECEIVE glucose (ROOT) ; astro_material, astro_energy ← cell body (NIGHT)
// READ glutamate ← PRE (clearance + spillover) ; dopamine
// OWN astro_structure{perisynaptic_distance⁻¹, EAAT, Dserine_tonic, ECM} ; astro_budget_ceiling
// NOTE ASTRO endurance fires on BUDGET-limited synthesis (got<want via low budget);
// material/precursor-limited synthesis is a material limit, not endurance. Own-state proxy.
// EMERGENCY emits shockwave_lockdown on overload
DAY | CONTINUOUS: // per astrosynapse i
// RECEIVE (root production, capped by glucose)
astro_central_budget += glycolysis(glucose)·Δt
// ADJUST (demand weights across territory)
for each i: demand[i] = clearance_load[i] × astro_structure[i].delivery_eff
factor = min(1, astro_central_budget / (Σ demand·lactate_cost + ε))
// EMIT (demand-weighted lactate to all components)
for each i:
astro_lactate[i] = demand[i] × factor; astro_central_budget -= astro_lactate[i]·lactate_cost
// BEHAVE (clear glutamate ; supply tonic D-serine)
glutamate[i] -= astro_structure[i].EAAT × glutamate[i]·Δt; astro_central_budget -= clearance·EAAT_cost
astro_Dserine[i] += astro_structure[i].Dserine_tonic·Δt
if glutamate[i] > spillover:
// TRACE
astro_fast_trace[i] += mGluR_Ca(); astro_fast_trace[i] *= decay(s)
// ADJUST (D-serine demand from spillover)
want = sat(astro_fast_trace[i], K_Dserine) × Ds_max
got = min(want, astro_central_budget × Ds_frac)
// BEHAVE + EMIT (D-serine pulse to POST gate)
astro_Dserine[i] += got; astro_central_budget -= got·Ds_cost
// TRACE (endurance: BUDGET-limited synthesis under high own demand)
if got < want and astro_central_budget low and astro_fast_trace[i] > traj_thr:
astro_endurance_need[i] += (want - got)
// TRACE (strength)
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
astro_possible_tag[i] *= decay(s); astro_endurance_need[i] *= decay(min); astro_tag[i] *= decay(hr)
// EMERGENCY
if astro_fast_trace[i] > overload: emit(shockwave_lockdown)
```
---
## Special — Shockwave Lockdown
```
DAY or NIGHT | OVERLOAD:
Vm = HYPERPOLARIZED; AMPA_surface = mass_internalize() → post reserve
axon_fast_trace += overdrive(); astro_central_budget -= emergency_cost
```
---
---
# NIGHT
Same grammar on ceilings, once per cycle.
```
NIGHT | 1 RECEIVE + ADJUST + EMIT (replenish, weight, distribute)
// RECEIVE overnight production at roots (capped by glucose; gated by soma_tag)
astro_central_{budget,energy,material} += overnight_*(glucose, …)·Δt
soma_{budget,energy} += overnight_*()·Δt ; soma_material += CREB_synth(soma_tag)·Δt
// ADJUST tag-weighted shares
for each i with astro_tag[i] > tag_expiry: w = astro_tag[i]/Σastro_tag
// EMIT distribute material + energy down the supply chains
astro_energy[i] += astro_central_energy·w; astro_material[i] += astro_central_material·w
dend_material += soma_material·f_dend ; axon_material += soma_material·f_axon ; soma_material -= …
post_material += dend_material·f_spine ; pre_material += axon_material·f_bouton
{pre,post,dend,axon}_energy += soma_energy·{·}_energy_frac
{pre,post,dend,axon}_budget += astro_lactate_reserve·{·}_frac·Δt
NIGHT | 2 TRACE + BEHAVE (strength commits → raise structure)
// ADJUST coherence bonus when pre, post, astro tags align
coherence = (pre_tag, post_tag, astro_tag all > tag_expiry) ? coherence_factor : 1
// TRACE+BEHAVE build structure for tagged components
for each c with c_tag > tag_expiry:
Δ = min(slot_cost, c_material, c_energy·f_cap)
c_structure += Δ × (coherence if c in {pre,post,astro} else 1)
c_material -= Δ; c_energy -= Δ·assembly_cost; if Δ < slot_cost: queue(→ next NIGHT)
NIGHT | 2b TRACE + BEHAVE (endurance commits → raise budget_ceiling ; no dopamine ; competes w/ 2)
for each c with c_endurance_need > endur_thr:
Δ = min(cap_cost, c_material·f_cap, c_energy·f_cap)
c_budget_ceiling += Δ; c_material -= Δ; c_energy -= Δ·biogenesis_cost; if Δ<cap_cost: queue
NIGHT | 3 DECAY + RECOVER (both ceilings decay by neglect ; material recovered)
maint = (total_material - consumed) × maint_frac / synapse_count
for each synapse: // DECAY
{pre,post,dend,astro}_structure -= decay_rate·Δt
{pre,post,dend,astro}_budget_ceiling -= capacity_decay_rate·Δt
if maint ≥ maint_cost: structure += full_maint ; budget_ceiling += full_cap_maint
else: structure += maint·frac ; budget_ceiling += maint·cap_frac
for each synapse with net_change < 0: // RECOVER
{pre,post,astro}_material += |net_change|·recycle·frac // material recovered, energy not
NIGHT | 4 BEHAVE (homeostatic scaling)
if soma_tag > homeostatic_ceiling:
s = homeostatic_ceiling / soma_tag
for each synapse: post_structure.slot_ceiling *= s ; pre_structure.slot_ceiling *= s
soma_material += Σ reduction·recycle
NIGHT | 5 DECAY (clear traces)
all fast_trace, possible_tag, endurance_need = 0
soma_Na_inactivation = soma_adaptation = soma_refractory_alignment = 0
for each tag: if tag < tag_expiry: tag = 0 // else carry forward
// structure and budget_ceiling PERSIST
```
---
## One-view summary
```
SEVEN-GROUP GRAMMAR, TWO TIMESCALES
RECEIVE · TRACE · ADJUST · BEHAVE · EMIT · RECOVER · DECAY
DAY grammar on OCCUPANCY within two ceilings (structure=strength, budget_ceiling=endurance)
TRACE yields two evidence streams from local state + arrived signals:
fast_trace + dopamine → tag (strength)
FUEL shortfall + interrupted LOCAL success → endurance_need (endurance)
OCCUPANCY/structure/timing shortfalls → short-term depression (NOT endurance)
NIGHT same grammar on the CEILINGS:
tag → structure ; endurance_need → budget_ceiling ; both draw one pool (compete)
unmaintained ceilings decay → recovered material funds the rest
FLOWS every flow has a timescale: decay relaxes toward 0 over τ, arrival toward a target
over τ; shipment is transit-delayed; rate-limited inflows carry τ implicitly.
LOCAL every group uses only own state + arrived signals; RECEIVE/EMIT are the only crossings.
```