From 955f57277448d121861a777c4706daaba3851e31 Mon Sep 17 00:00:00 2001 From: ocrampal Date: Mon, 22 Jun 2026 11:56:47 +0200 Subject: [PATCH] v12 --- .../2026-06-22-biological-reference_v12.md | 339 ++++++++++++++ .../2026-06-22-tripartite-synapse_v12.md | 442 ++++++++++++++++++ 2 files changed, 781 insertions(+) create mode 100644 elements/neuron/appunti/2026-06-22-biological-reference_v12.md create mode 100644 elements/neuron/appunti/2026-06-22-tripartite-synapse_v12.md diff --git a/elements/neuron/appunti/2026-06-22-biological-reference_v12.md b/elements/neuron/appunti/2026-06-22-biological-reference_v12.md new file mode 100644 index 0000000..43385b6 --- /dev/null +++ b/elements/neuron/appunti/2026-06-22-biological-reference_v12.md @@ -0,0 +1,339 @@ +# Tripartite Synapse — Biological Reference (companion to v12 pseudocode) + +> Companion to `tripartite_synapse_v12_pseudocode.md`. Explains the biology each variable and +> behavior conflates. Variable meanings are unchanged; v12 only refined the pseudocode +> grammar (SENSE→TRACE, new ADJUST group, EVALUATE reordered before ADJUST/DECAY, NIGHT +> labeled with the same groups, aligned group headers). The ADJUST group makes explicit the +> step where a component computes its operating parameters — release drive, firing threshold, +> propagation reliability, lactate-allocation weights — from its structure, its current +> traces, and arrived neuromodulators, before it acts. +> conflates biologically. The pseudocode aggregates many molecular details into single +> variables for clarity; here each aggregation is unpacked. Read the pseudocode for the +> logic; read this when you need to know what a variable physically represents. + +--- + +## 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, τ≈s–min +Graded accumulation of tagging eligibility. For POST, this is the CANDIDATE tag lifetime. + +### endurance_need (one per component) — intermediate, τ≈s–min +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. diff --git a/elements/neuron/appunti/2026-06-22-tripartite-synapse_v12.md b/elements/neuron/appunti/2026-06-22-tripartite-synapse_v12.md new file mode 100644 index 0000000..1373c72 --- /dev/null +++ b/elements/neuron/appunti/2026-06-22-tripartite-synapse_v12.md @@ -0,0 +1,442 @@ +# Tripartite Synapse — Pseudocode v12 + +> Companion: `tripartite_synapse_v12_biology.md`. +> Changes from v11: SENSE renamed TRACE; new ADJUST group (compute local operating +> parameters from structure + traces + modulators); reference order puts EVALUATE before +> ADJUST and DECAY; NIGHT labeled with the same group grammar; all `// GROUP` headers sit +> at one indentation column so they stand out. + +--- + +## Functional groups (uniform grammar, applied within each context) + +``` +RECEIVE take in resources + signals that arrived from outside +EVALUATE judge behavior — strength (needs dopamine) + endurance (interrupted success) +ADJUST compute local operating parameters from structure + traces + modulators +BEHAVE the component's defining action, using the adjusted parameters +EMIT send out — signals (messages) and resources (shipments) across the boundary +TRACE deposit the fast trace that records the behavior +RECOVER refill own private pools consumed by behaving +DECAY let traces recede, closing their windows +``` +Groups sit inside the DAY contexts (Option A). Execution contexts (AP/bAP/CONTINUOUS) carry +ADJUST/BEHAVE/EMIT/TRACE and endurance-EVALUATE; replenishment contexts (NOT_AP/NOT_bAP) +carry RECEIVE/strength-EVALUATE/RECOVER/DECAY. Not every component uses every group. Group +order within a context follows data dependencies (e.g. where a fast trace both drives a +behavior and records it, TRACE precedes ADJUST). NIGHT runs the same grammar on ceilings. + +--- + +## 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 + 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 + amount = min(rate, ceiling - pool)·Δt; budget -= amount·cost; return amount + +refill(c from supply S) -> amount: // CONTESTED supply + 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: // DIRECTED transfer + amount = min(from_budget·frac, demand_sig); from_budget -= amount·(1+cost); return amount +``` + +--- + +## 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) +decay_rate capacity_decay_rate recycle homeostatic_ceiling +coherence_factor assembly_cost biogenesis_cost maint_cost +``` + +--- +--- +# DAY +--- + +## PRE + +``` +// PARAMETERS K_release · release_cost · fusion_cost · vatpase_cost · spillover · brake +// INTERFACE +// EMIT glutamate → POST, ASTRO +// RECEIVE astro_lactate[syn] ← ASTRO ; axon_ship_pre ← AXON ; retro_NO, retro_eCB ← POST +// pre_material ← AXON(NIGHT) ; pre_energy ← SOMA(NIGHT) +// READ glutamate (own cleft, autobrake) ; dopamine (gates tag) +// OWN pre_structure{slot_ceiling, VGCC_coupling, refill_ceiling} ; pre_budget_ceiling +// EMERGENCY shockwave_lockdown ← ASTRO + +DAY | AP: + // TRACE (residual Ca²⁺ from this spike — also drives release) + pre_fast_trace += spike_Ca(input_freq) + // ADJUST (release drive from trace + received DSE brake) + drive = sat(pre_fast_trace, K_release) × (1 - retro_eCB_local) + // BEHAVE (release or fail) + if pre_budget < release_cost: + suppress(NT_flux) + if pre_fast_trace > traj_thr: // EVALUATE (endurance): retro_NO-confirmed + pre_endurance_need += pre_fast_trace × (1 + retro_NO_local) + exit + if RRP > 0: + NT_flux = RRP × drive; RRP -= NT_flux·Δt; pre_budget -= NT_flux·fusion_cost + // EMIT + glutamate += NT_flux·Δt + if glutamate > spillover: drive *= brake // own-cleft autobrake + +DAY | NOT_AP: + // RECEIVE + retro_NO_local = retro_NO; retro_eCB_local = retro_eCB + pre_budget += refill(pre from astro_lactate[syn] + axon_ship_pre) + // EVALUATE (strength) + 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 + // RECOVER (RRP from private reserve) + 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 + +DAY | NOT_bAP: + // RECEIVE + post_budget += refill(post from astro_lactate[syn] + dend_ship_post) + // 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: + AMPA_surface = min(AMPA_surface + Ca_insert(post_fast_trace), post_structure.slot_ceiling) + post_budget -= traffic_cost + else: + AMPA_surface = max(AMPA_surface - drift·Δt, baseline) + // EVALUATE (endurance: own Ca was climbing toward a tag when fuel failed) + if post_budget < req_cost and post_fast_trace > traj_thr and post_fast_trace_rising: + post_endurance_need += post_fast_trace + // EVALUATE (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 +// 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 + +DAY | bAP: + // ADJUST (propagation strength from structure) -> inside propagate() + // BEHAVE (propagate bAP; may fall short if depleted) + bAP_local, reached = propagate(SOMA.fired, dend_structure.bAP_fidelity, dend_budget, geometry) + dend_budget -= prop_cost × reached + // EVALUATE (endurance: propagation cut short while branch strongly active) + if reached < full and dend_fast_trace > traj_thr: + dend_endurance_need += dend_fast_trace + // 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] + soma_ship_dend) + // EVALUATE (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·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 + +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: + if soma_fast_trace > traj_thr and soma_fast_trace_rising: // EVALUATE (endurance) + soma_endurance_need += soma_fast_trace + exit + fired = True; soma_budget -= ap_cost // EMIT: fired → AXON, DEND + // TRACE (three traces from one AP) + soma_Na_inactivation += ap_amp // → refractory (emergent) + soma_adaptation += ap_contrib // → threshold rise + soma_fast_trace += nuclear_Ca(); soma_budget -= nuclear_cost + // EVALUATE (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) + // BEHAVE (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; 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 + +DAY | AP: + // ADJUST (reliability from structure − load-driven failure) + reliability = axon_structure.propagation × (1 - fail(axon_fast_trace)) + // BEHAVE (propagate; degraded if depleted) + if axon_budget < prop_cost: + reliability *= budget_factor + if axon_fast_trace > traj_thr: // EVALUATE (endurance) + axon_endurance_need += axon_fast_trace + delivered = fired × reliability; axon_budget -= prop_cost × delivered // EMIT → 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]) + // EVALUATE (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 +// 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) + // BEHAVE + EMIT (D-serine pulse: demand-driven, budget-limited) + want = sat(astro_fast_trace[i], K_Dserine) × Ds_max + got = min(want, astro_central_budget × Ds_frac) + astro_Dserine[i] += got; astro_central_budget -= got·Ds_cost + // EVALUATE (endurance: ran out of synthesis under high own demand) + if got < want and astro_fast_trace[i] > traj_thr: + astro_endurance_need[i] += (want - got) + // EVALUATE (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 +The same grammar on ceilings: RECEIVE production, EVALUATE/ADJUST the commits, BEHAVE +(build ceilings), DECAY (unmaintained ceilings recede). Runs once per cycle, not per spike. + +``` +NIGHT | 1 RECEIVE + EMIT (replenish and distribute) + astro_central_{budget,energy,material} += overnight_*(glucose, …)·Δt // RECEIVE + soma_{budget,energy} += overnight_*()·Δt ; soma_material += CREB_synth(soma_tag)·Δt // RECEIVE (bottleneck) + for each i with astro_tag[i] > tag_expiry: w = astro_tag[i]/Σastro_tag // ADJUST (weights) + astro_energy[i] += astro_central_energy·w; astro_material[i] += astro_central_material·w // EMIT + dend_material += soma_material·f_dend ; axon_material += soma_material·f_axon ; soma_material -= … // EMIT + post_material += dend_material·f_spine ; pre_material += axon_material·f_bouton // EMIT + {pre,post,dend,axon}_energy += soma_energy·f[·] ; {…}_budget += astro_lactate_reserve·f[·]·Δt + +NIGHT | 2 EVALUATE + BEHAVE (strength commits → raise structure) + coherence = (pre_tag, post_tag, astro_tag all > tag_expiry) ? coherence_factor : 1 // ADJUST + for each c with c_tag > tag_expiry: // EVALUATE + Δ = min(slot_cost, c_material, c_energy·f) // BEHAVE + 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 EVALUATE + BEHAVE (endurance commits → raise budget_ceiling ; no dopamine ; competes w/ 2) + for each c with c_endurance_need > endur_thr: // EVALUATE + Δ = min(cap_cost, c_material·f_cap, c_energy·f_cap) // BEHAVE + c_budget_ceiling += Δ; c_material -= Δ; c_energy -= Δ·biogenesis_cost; if Δ 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 + +``` +DAY per context: RECEIVE → EVALUATE → ADJUST → BEHAVE/EMIT/TRACE → RECOVER → DECAY + behavior runs within structure (strength) and budget_ceiling (endurance), + both filled competitively (refill = contested, fill = private, ship = directed) + fast_trace + dopamine → tag (strength evidence) + depletion + interrupted LOCAL success → endurance_need (endurance evidence) +NIGHT same grammar on ceilings: tag → structure ; endurance_need → budget_ceiling + both draw one pool (compete) ; unmaintained ceilings decay → freed material recycles +LOCAL every evaluation uses only own state + arrived signals; coupling is via channels. +```