# Tripartite Synapse — Pseudocode v6 Naming convention: DAY: {component}_budget = combined fast energy + fast consumable materials NIGHT: {component}_energy = ATP for structural assembly {component}_material = slow structural proteins (recoverable after LTD) ## Part 1 — Conventions ``` SCOPE = { DAY, NIGHT } CONTEXT = { AP, NOT_AP, bAP, NOT_bAP, CONTINUOUS } Variable types: FIXED = externally imposed — does not change during simulation VAR = changes dynamically FAST_TRACE = accumulates and decays within DAY — never reaches NIGHT role: biases next behavior within same context TAG = set during DAY, decays slowly, survives to NIGHT POST only: CANDIDATE (DAY) → STABLE (DAY) → commit (NIGHT) BUDGET = DAY only: combined fast energy + fast consumable materials one variable per component replenished continuously during DAY ENERGY = NIGHT only: ATP cost of structural assembly replenished overnight NOT recoverable after LTD MATERIAL = NIGHT only: slow structural proteins replenished by CREB synthesis + transport (hours–days) RECOVERABLE after LTD — returns to shared pools STRUCTURE = slow architectural variable READ during DAY, WRITTEN only in NIGHT ``` ## Part 2 — Fixed Parameters ``` // Thresholds FIXED Ca_TAG_threshold // Ca²⁺ sufficient to set post CANDIDATE tag FIXED Ca_HIGH // LTP-driving Ca²⁺ amplitude FIXED Ca_LOW // LTD-driving Ca²⁺ amplitude FIXED spillover_threshold // cleft saturation for mGluR activation FIXED eligibility_threshold // minimum fast_trace to be taggable FIXED dopamine_threshold // minimum dopamine for tag stabilization FIXED tagging_threshold // minimum possible_tagging for tag accumulation FIXED tag_expiry_threshold // minimum tag to survive to NIGHT commit FIXED homeostatic_ceiling // max soma firing before global downscale FIXED disuse_threshold // silence duration before passive depotentiation FIXED recycling_fraction // fraction of material recovered after LTD // Organism-level signals FIXED dopamine_level // VTA broadcast — reward/save signal FIXED NE_level // locus coeruleus — arousal/gain FIXED ACh_level // basal forebrain — attention/threshold // Physical constraints FIXED vascular_glucose_supply // hard energy ceiling — astrocyte root FIXED branch_geometry // dendritic topology — affects bAP decay FIXED Ca_cooperativity_n // Hill coefficient for Ca²⁺-driven NT release FIXED Ca_half_max_K // half-maximal Ca²⁺ for NT release ``` ## Part 3 — DAY Budget Declarations ``` // One budget variable per component — covers fast energy AND fast consumables // Replenished continuously. Consumed by all DAY behaviors. VAR astro_budget // SOURCE: vascular_glucose_supply → glycolysis (ROOT of all synaptic energy) // COVERS: ATP for EAAT glutamate clearance // serine → D-serine synthesis (serine racemase running cost) // lactate production and export to all neuronal components // fast process motility adjustments // (combines: astro_ATP + serine_precursor_fast_pool + EAAT_running_cost) VAR astro_lactate // Fuel exported by astrocyte → feeds pre, post, dend, axon budgets // = min(glycolysis(vascular_glucose_supply), astro_budget × export_fraction) // Hard cap: vascular_glucose_supply (FIXED) VAR pre_budget // SOURCE: astro_lactate × pre_fraction (primary) // COVERS: ATP for VGCC opening // vesicle fusion (SNARE-mediated) // VATPase refill of vesicles // fast vesicle membrane lipid turnover // synaptotagmin recycling // (combines: bouton_ATP + fast_vesicle_consumables) VAR post_budget // SOURCE: astro_lactate × post_fraction (primary) // COVERS: ATP for NaK pump membrane reset // NMDA current handling // AMPA receptor lateral diffusion + rapid recycling // actin monomers for transient spine changes // PKA phosphorylation (minor) // (combines: spine_ATP + fast_actin_pool + receptor_recycling_lipids) VAR dend_budget // SOURCE: astro_lactate × dend_fraction (primary) // soma organelle delivery (minor) // COVERS: ATP for bAP propagation along branch // local mRNA translation (ribosome running cost) // fast protein + organelle transport to spines // branch Ca²⁺ handling (SERCA pump) // mRNA consumed by local translation // (combines: dend_ATP + fast_mRNA_consumables + local_translation_running_cost) VAR soma_budget // SOURCE: own mitochondria (self-fueled — independent of astrocyte) // COVERS: ATP for AP generation (Na⁺/K⁺ currents + NaK reset) // CREB phosphorylation (minor) // nuclear Ca²⁺ handling // fast signaling molecule turnover // shipping costs for organelle delivery to branches + axon // (combines: soma_ATP + fast_signaling_consumables + shipping_running_cost) VAR axon_budget // SOURCE: soma_budget × axon_fraction (primary) // astro_lactate × axon_astro_fraction (minor, along shaft) // COVERS: ATP for AP propagation at each node of Ranvier // kinesin/dynein motor running cost (anterograde transport) // myelin maintenance fast costs // (combines: axon_ATP + transport_running_cost) ``` ## Part 4 — NIGHT Energy and Material Declarations ``` // ENERGY: ATP cost of structural assembly — replenished overnight, NOT recoverable // MATERIAL: slow structural proteins — replenished by CREB + transport, RECOVERABLE VAR astro_energy // NIGHT ATP for process retraction, ECM secretion, racemase upregulation // SOURCE: overnight glycolysis replenishment // NOT recovered after LTD structural reversal // (covers: process_motility_ATP + ECM_secretion_ATP) VAR astro_material // NIGHT slow structural components // SOURCE: astrocyte cell body synthesis (overnight) // CONTAINS: EAAT transporter proteins // serine racemase enzyme (upregulation) // ECM proteins (Glypicans, Thrombospondins) // process cytoskeleton components // RECOVERABLE: partially after LTD (recycling_fraction) // (combines: astro_ECM_pool + racemase_upregulation_proteins // + EAAT_new_proteins + process_cytoskeleton) VAR pre_energy // NIGHT ATP for active zone scaffold incorporation // SOURCE: replenished from soma overnight delivery // NOT recovered after LTD // (covers: RIM/Munc13_incorporation_ATP + VGCC_clustering_ATP) VAR pre_material // NIGHT slow structural components for bouton // SOURCE: soma_material via axon transport (anterograde) // CONTAINS: RIM, Munc13 (AZ scaffold) // VGCC subunits // vesicle membrane proteins (structural pool) // SNARE proteins (structural pool) // RECOVERABLE: significantly after LTD — proteins return to axonal pool // (combines: AZ_scaffold_proteins + VGCC_subunit_pool) VAR post_energy // NIGHT ATP for CaMKII anchoring, actin polymerization, PSD remodeling // SOURCE: replenished from soma overnight delivery // NOT recovered after LTD // (covers: CaMKII_anchoring_ATP + actin_polymerization_ATP // + PSD_scaffold_remodeling_ATP) VAR post_material // NIGHT slow structural components for spine // SOURCE: dend_material (branch pool + soma delivery) // CONTAINS: AMPA receptor subunits (GluA1, GluA2) // PSD scaffold proteins (PSD-95, SHANK, Homer) // structural actin pool // CaMKII (structural pool) // RECOVERABLE: significantly — internalized receptors return to // dendritic reserve pool after LTD // (combines: receptor_reserve + PSD_scaffold_pool + structural_actin) VAR dend_energy // NIGHT ATP for mitochondria incorporation, cytoskeletal reinforcement // SOURCE: soma overnight delivery // NOT recovered after LTD // (covers: mitochondria_incorporation_ATP + cytoskeletal_remodeling_ATP) VAR dend_material // NIGHT slow structural components for branch // SOURCE: soma_material (shipped during DAY NOT_AP + NIGHT) // CONTAINS: Arc mRNA + plasticity mRNAs (structural pool) // mitochondria (for local energy capacity) // cytoskeletal proteins (MAP2, tau) // AMPA subunits in transit to spines // RECOVERABLE: partially — organelles redistributed after branch pruning // (combines: dend_mRNA_structural_pool + organelle_store // + cytoskeletal_proteins) VAR soma_energy // NIGHT ATP for ribosome biogenesis, ion channel incorporation // SOURCE: own mitochondria overnight // NOT recovered // (covers: ribosome_biogenesis_ATP + channel_incorporation_ATP) VAR soma_material // NIGHT slow structural components produced by soma // SOURCE: CREB-driven synthesis (peaks in NIGHT) // CONTAINS: all structural proteins for downstream components // mRNA transcripts (Arc, BDNF, receptor subunits) // organelles (mitochondria, ribosomes) // DISTRIBUTES TO: dend_material + pre_material (via axon) // (combines: CREB_synthesis_output + organelle_biogenesis_output) VAR axon_energy // NIGHT ATP for myelination, microtubule stabilization // SOURCE: soma overnight delivery // NOT recovered // (covers: myelination_ATP + microtubule_stabilization_ATP) VAR axon_material // NIGHT slow structural components for axon // SOURCE: soma_material (motor proteins, myelin components) // CONTAINS: kinesin/dynein motor proteins (structural pool) // microtubule components // myelin maintenance proteins // RECOVERABLE: partially after axon structural reduction // (combines: transport_machinery + myelination_proteins) ``` ## Part 5 — Structural Variables (Written Only in NIGHT) ``` VAR pre_structure // active zone capacity // RRP_capacity ∝ pre_structure // VGCC_coupling ∝ pre_structure // refill_ceiling ∝ pre_structure VAR post_structure // spine sensitivity capacity // anchoring_slots ∝ post_structure // spine_volume ∝ post_structure // local_reserve_ceiling ∝ post_structure VAR dend_structure // branch transmission and supply capacity // bAP_fidelity ∝ dend_structure × attenuation(position) // translation_ceiling ∝ dend_structure // transport_speed ∝ dend_structure VAR soma_structure // somatic output and production capacity // baseline_threshold ∝ 1/soma_structure // AP_reliability ∝ soma_structure // synthesis_ceiling ∝ soma_structure VAR axon_structure // axonal transmission and transport capacity // propagation_reliability ∝ axon_structure // transport_rate_ceiling ∝ axon_structure VAR astro_structure // astrosynaptic environmental capacity — SELF-REINFORCING // perisynaptic_distance ∝ 1/astro_structure // EAAT_density ∝ astro_structure // D_serine_tonic ∝ astro_structure // ECM_integrity ∝ astro_structure ``` ## Part 6 — Trace Variables ``` // Fast traces: DAY only FAST_TRACE pre_fast_trace // residual Ca²⁺ — τ ≈ 100ms FAST_TRACE post_fast_trace // spine Ca²⁺ amplitude × rise_speed — τ ≈ tens of ms FAST_TRACE dend_fast_trace // branch Ca²⁺ integration — τ ≈ 300ms FAST_TRACE soma_fast_trace // nuclear Ca²⁺ — τ ≈ seconds FAST_TRACE axon_fast_trace // AP propagation load — τ ≈ seconds FAST_TRACE astro_fast_trace // perisynaptic Ca²⁺ from mGluR5 — τ ≈ seconds // Possible tagging: intermediate — τ ≈ seconds to minutes VAR pre_possible_tagging VAR post_possible_tagging // POST: CANDIDATE lifetime VAR dend_possible_tagging VAR soma_possible_tagging VAR axon_possible_tagging VAR astro_possible_tagging // Tags: slow, DAY→NIGHT bridge — τ ≈ hours TAG pre_tag TAG post_tag // POST only: CANDIDATE→STABLE before surviving to NIGHT TAG dend_tag TAG soma_tag TAG axon_tag TAG astro_tag ``` # SCOPE: DAY {component}_budget consumed. Traces written and decay. Structures READ only. No {component}_energy or {component}_material used in DAY. ## PRE | CONTEXT: AP ``` scope DAY | context AP: // Budget gate if pre_budget < AP_release_cost: suppress(NT_flux) exit context // covers: VGCC_ATP + fusion_ATP + fast_vesicle_consumables // Fast trace: residual Ca²⁺ pre_fast_trace += spike_Ca_influx(input_freq) pre_fast_trace *= decay(τ = 100ms) pre_budget -= Ca_handling_cost // NT flux: Hill function Ca²⁺ drive × RRP level Ca_drive = pre_fast_trace^Ca_cooperativity_n / (Ca_half_max_K^Ca_cooperativity_n + pre_fast_trace^Ca_cooperativity_n) if RRP_level > 0: NT_flux = RRP_level × Ca_drive glutamate += NT_flux × Δt RRP_level -= NT_flux × Δt pre_budget -= NT_flux × vesicle_fusion_cost // covers: SNARE_ATP + fast_membrane_lipid_turnover // RRP refill — rate limited by pre_budget and pre_structure (READ) RRP_refill = min(refill_rate_constant, pre_structure.refill_ceiling) RRP_level += RRP_refill × Δt RRP_level = clamp(RRP_level, 0, pre_structure.RRP_capacity) pre_budget -= RRP_refill × VATPase_cost // Overflow brake: mGluR2/3 → Gi → VGCC suppression if glutamate > spillover_threshold: Ca_drive *= mGluR_brake_factor // Refuel from astrocyte lactate pre_budget += astro_lactate × pre_fraction ``` ## PRE | CONTEXT: NOT_AP ``` scope DAY | context NOT_AP: // Fast trace decays pre_fast_trace *= decay(τ = 100ms) // RRP refills during silence RRP_refill = min(refill_rate_constant, pre_structure.refill_ceiling) RRP_level += RRP_refill × Δt RRP_level = clamp(RRP_level, 0, pre_structure.RRP_capacity) pre_budget -= RRP_refill × VATPase_cost // Possible tagging: graded, decays if pre_fast_trace > eligibility_threshold: pre_possible_tagging += pre_fast_trace pre_possible_tagging *= decay(τ = seconds) // Dopamine decays locally dopamine_local *= decay(τ = hundreds_of_ms) // Tag: local eligibility AND global validation must coincide if dopamine_local > dopamine_threshold and pre_possible_tagging > tagging_threshold: pre_tag += dopamine_local × pre_possible_tagging pre_tag *= decay(τ = hours) // pre_budget cost: negligible (PKA is already running from dopamine broadcast) ``` ## POST | CONTEXT: NOT_bAP ``` scope DAY | context NOT_bAP: // AMPA current — occupancy of existing slots, gated by post_structure (READ) AMPA_current = glutamate × post_structure.sensitivity Vm += AMPA_current post_budget -= AMPA_current_cost // covers: NaK_reset_ATP + fast_receptor_recycling_cost // NMDA gate: depolarization + D-serine + glutamate coincidence if Vm > Mg_eject_threshold and astro_D_serine > D_serine_threshold: Ca_influx = NMDA_Ca_influx(glutamate) post_fast_trace += Ca_influx × rise_speed(Ca_influx) post_budget -= NMDA_current_cost // covers: NMDA_handling_ATP + fast_actin_transient_cost // Fast trace decays post_fast_trace *= decay(τ = tens_of_ms) // CANDIDATE tag: Ca²⁺ crossed tagging threshold — Hebbian anticipation if post_fast_trace > Ca_TAG_threshold: post_possible_tagging += post_fast_trace post_possible_tagging *= decay(τ = minutes) // CANDIDATE lifetime post_budget -= PKA_phosphorylation_cost // minor — PKA priming of GluA1-Ser845 // Refuel post_budget += astro_lactate × post_fraction ``` ## POST | CONTEXT: bAP ``` scope DAY | context bAP: // bAP arrives — strength set by dend_structure (READ) Vm += bAP_depolarization × dend_structure.bAP_fidelity post_budget -= bAP_reset_cost // covers: NaK_reset_ATP for bAP depolarization // Coincidence confirmation: bAP finds CANDIDATE already set if post_possible_tagging > Ca_TAG_threshold: post_fast_trace += bAP_Ca_boost() // supralinear Ca²⁺ summation — trace amplified above Ca_HIGH // Dopamine decays locally dopamine_local *= decay(τ = hundreds_of_ms) // STABLE tag: CANDIDATE stabilized by dopamine within window if dopamine_local > dopamine_threshold and post_possible_tagging > tagging_threshold: post_tag += dopamine_local × post_possible_tagging post_tag *= decay(τ = hours) // post_budget cost: already covered by PKA_phosphorylation_cost in NOT_bAP ``` ## DEND | CONTEXT: CONTINUOUS ``` scope DAY | context CONTINUOUS: // Integrate spines upward branch_Vm = integrate(POST.Vm, all_spines_on_branch) // Propagate bAP downward — fidelity from dend_structure (READ) bAP_local = propagate_bAP(SOMA.AP_fired, dend_structure.bAP_fidelity, branch_geometry) dend_budget -= bAP_propagation_cost // covers: NaK_reset_ATP along branch + fast_Ca_handling // Fast trace: branch Ca²⁺ dend_fast_trace += bAP_Ca_influx(bAP_local) dend_fast_trace += spine_Ca_spillover(active_spines) dend_fast_trace *= decay(τ = 300ms) dend_budget -= branch_Ca_handling_cost // Possible tagging if dend_fast_trace > eligibility_threshold: dend_possible_tagging += dend_fast_trace dend_possible_tagging *= decay(τ = seconds) // Dopamine decays dopamine_local *= decay(τ = hundreds_of_ms) // Tag if dopamine_local > dopamine_threshold and dend_possible_tagging > tagging_threshold: dend_tag += dopamine_local × dend_possible_tagging dend_tag *= decay(τ = hours) // Local translation: runs when tag set, gated by dend_budget // uses fast mRNA consumables from dend_budget if dend_tag > tag_expiry_threshold and dend_budget > translation_cost: local_proteins = translate(dend_fast_trace) dend_budget -= translation_cost // covers: ribosome_running_cost + fast_mRNA_consumed // Note: this uses fast mRNA pool (in dend_budget), NOT dend_material // dend_material mRNA is the slow structural pool consumed only in NIGHT // ACh modulates commit threshold commit_threshold *= (1 / (1 + ACh_level × ACh_gain)) dend_budget -= branch_maintenance_cost dend_budget += astro_lactate × dend_fraction ``` ## SOMA | CONTEXT: AP ``` scope DAY | context AP: // Firing threshold: structure baseline × adaptation × neuromodulators × refractory AP_threshold = soma_structure.baseline_threshold × (1 + adaptation_factor(soma_fast_trace)) × neuromod_factor(NE_level, ACh_level) × refractory_factor(time_since_last_AP) if branch_Vm > AP_threshold: AP_fired = True soma_budget -= AP_generation_cost // covers: Na⁺/K⁺ current ATP + NaK_reset + fast_signaling_consumables // Fast trace: nuclear Ca²⁺ soma_fast_trace += nuclear_Ca_influx() soma_fast_trace *= decay(τ = seconds) // Refractory period refractory_timer = absolute_refractory_duration // Possible tagging if soma_fast_trace > eligibility_threshold: soma_possible_tagging += soma_fast_trace soma_possible_tagging *= decay(τ = seconds) // Dopamine decays dopamine_local *= decay(τ = hundreds_of_ms) // Tag: nuclear Ca²⁺ AND dopamine coincidence if dopamine_local > dopamine_threshold and soma_possible_tagging > tagging_threshold: soma_tag += dopamine_local × soma_possible_tagging soma_tag *= decay(τ = hours) soma_budget -= CREB_phosphorylation_cost // covers: CREB_phospho_ATP (minor fast cost) // Note: full CREB-driven synthesis is a NIGHT operation consuming soma_energy ``` ## SOMA | CONTEXT: NOT_AP ``` scope DAY | context NOT_AP: // Integrate dendritic inputs branch_Vm = integrate(DEND.branch_Vm, all_branches) refractory_timer = max(0, refractory_timer - Δt) soma_fast_trace *= decay(τ = seconds) // Ship to tagged branches — priority by tag magnitude for branch in branches_ranked_by(dend_tag): delivery = min(shipping_fraction × soma_budget, branch_demand(dend_tag)) dend_budget[branch] += delivery × fuel_fraction soma_budget -= delivery × shipping_cost // covers: kinesin_running_cost for fast organelle delivery // Note: structural protein shipping (soma_material → dend_material) // happens in NIGHT, not here // Ship to axon for bouton running costs axon_budget += soma_budget × axon_fuel_fraction soma_budget -= soma_budget × axon_fuel_fraction ``` ## AXON | CONTEXT: CONTINUOUS ``` scope DAY | context CONTINUOUS: // AP propagation reliability — set by axon_structure (READ) propagation_reliability = axon_structure.myelination × (1 - failure_rate(axon_fast_trace)) APs_delivered = AP_fired × propagation_reliability axon_budget -= AP_propagation_cost × APs_delivered // covers: NaK_reset_ATP at nodes + fast_myelin_maintenance // Fast trace: propagation load axon_fast_trace += APs_delivered axon_fast_trace *= decay(τ = seconds) // Anterograde transport — delivers running supplies to boutons transport_rate = min(axon_structure.transport_ceiling, axon_budget × transport_fraction) pre_budget += transport_rate × Δt // boutons receive running fuel axon_budget -= transport_cost × transport_rate × Δt // covers: kinesin_ATPase running cost // Note: structural pre_material transport (soma_material → pre_material) // happens in NIGHT, not here // Possible tagging if axon_fast_trace > eligibility_threshold: axon_possible_tagging += axon_fast_trace axon_possible_tagging *= decay(τ = seconds) // Dopamine decays dopamine_local *= decay(τ = hundreds_of_ms) // Tag if dopamine_local > dopamine_threshold and axon_possible_tagging > tagging_threshold: axon_tag += dopamine_local × axon_possible_tagging axon_tag *= decay(τ = hours) // Refuel axon_budget += soma_budget × axon_fuel_fraction axon_budget += astro_lactate × axon_astro_fraction ``` ## ASTRO | CONTEXT: CONTINUOUS ``` scope DAY | context CONTINUOUS: // ROOT energy production astro_budget += glycolysis(vascular_glucose_supply) × Δt // hard cap: vascular_glucose_supply (FIXED) // covers: all fast astrocyte operations + lactate export // Lactate export to all neuronal components astro_lactate = min(astro_budget × lactate_export_fraction, vascular_glucose_supply × max_export_fraction) astro_budget -= astro_lactate deliver(astro_lactate → pre_budget × pre_fraction, post_budget × post_fraction, dend_budget × dend_fraction, axon_budget × axon_fraction) // Glutamate clearance — rate from astro_structure (READ) clearance = astro_structure.EAAT_density × glutamate × Δt glutamate -= clearance astro_budget -= clearance × EAAT_ATP_cost // covers: EAAT_cotransport_ATP + NaK_secondary_cost // Overflow detection and D-serine release if glutamate > spillover_threshold: astro_fast_trace += mGluR5_Ca_influx() astro_fast_trace *= decay(τ = seconds) // D-serine release: budget-limited (serine + synthesis ATP both in budget) D_serine_released = min(proportional_to(astro_fast_trace), astro_budget × Ds_fraction) astro_budget -= D_serine_released × Ds_synthesis_cost // covers: serine_racemase_ATP + serine_precursor_fast_cost astro_D_serine += D_serine_released // Simultaneous presynaptic brake — cross-compartment, no astro budget cost Ca_drive_pre *= mGluR_brake_factor // Possible tagging if astro_fast_trace > eligibility_threshold: astro_possible_tagging += astro_fast_trace astro_possible_tagging *= decay(τ = seconds) // Dopamine decays dopamine_local *= decay(τ = hundreds_of_ms) // Tag if dopamine_local > dopamine_threshold and astro_possible_tagging > tagging_threshold: astro_tag += dopamine_local × astro_possible_tagging astro_tag *= decay(τ = hours) // Tonic D-serine from astro_structure (READ) — baseline supply astro_D_serine += astro_structure.D_serine_tonic × Δt astro_budget -= astro_structure.D_serine_tonic × tonic_synthesis_cost // covers: constitutive_racemase_ATP + baseline_serine_fast_cost // Global overload if astro_fast_trace > OVERLOAD_threshold: trigger(shockwave_lockdown) ``` ## Special Case — Shockwave Lockdown ``` scope DAY or NIGHT | context OVERLOAD: // Emergency — bypasses budget gates Vm = HYPERPOLARIZED AMPA_occupancy = mass_internalization() post_budget -= emergency_reset_cost // DAY: uses post_budget axon_fast_trace += overdrive_cluster() astro_budget -= emergency_cost // Note: in NIGHT, uses post_energy if structural receptors affected ``` # SCOPE: NIGHT {component}_energy and {component}_material used — NOT {component}_budget Structural variables WRITTEN. Tags evaluated and cleared. ## Step 1 — Replenish Energy, Material, and Budgets ``` scope NIGHT | step 1: // Astrocyte: replenishes first — fuels everything astro_budget += overnight_glycolysis(vascular_glucose_supply) × Δt_night // covers: fast running costs for next DAY astro_energy += overnight_astro_synthesis() × Δt_night // covers: process_motility_ATP + ECM_secretion_ATP for structural work astro_material += astrocyte_cellbody_synthesis() × Δt_night // covers: EAAT proteins + racemase upregulation + ECM proteins + process cytoskeleton // Soma: self-fueled, replenishes own energy + produces all structural material soma_budget += overnight_mitochondria_output() × Δt_night soma_energy += overnight_soma_energy_reserve() × Δt_night // covers: ribosome_biogenesis_ATP + ion_channel_incorporation_ATP soma_material += CREB_driven_synthesis(soma_tag) × Δt_night // peaks based on soma_tag magnitude — this is the production bottleneck // covers: all structural proteins + mRNA + organelles for downstream components // Distribute soma_material to downstream components dend_material += soma_material × dend_delivery_fraction // mRNA + plasticity proteins + organelles shipped to branches axon_material += soma_material × axon_delivery_fraction // AZ scaffold proteins + VGCC subunits shipped via anterograde transport soma_material -= (dend_delivery_fraction + axon_delivery_fraction) × soma_material // Branch delivers to spines post_material += dend_material × spine_delivery_fraction dend_material -= spine_delivery_fraction × dend_material // AMPA subunits + PSD scaffold proteins delivered to spine reserve // Axon delivers to boutons pre_material += axon_material × bouton_delivery_fraction axon_material -= bouton_delivery_fraction × axon_material // Downstream energy replenishment pre_energy += overnight_pre_energy_replenishment() post_energy += overnight_post_energy_replenishment() dend_energy += overnight_dend_energy_replenishment() axon_energy += overnight_axon_energy_replenishment() // all sourced from soma overnight mitochondrial output ``` ## Step 2 — Structural Commits (Parallel, Independent) ``` scope NIGHT | step 2: // Coherence bonus: if pre, post, astro all tagged → amplified commit all_aligned = (pre_tag > tag_expiry_threshold and post_tag > tag_expiry_threshold and astro_tag > tag_expiry_threshold) coherence_bonus = all_aligned ? coherence_factor : 1.0 // ── PRE COMMIT ────────────────────────────────────────────────── if pre_tag > tag_expiry_threshold: Δpre = min(AZ_expansion_cost, pre_material, // material gate pre_energy × pre_fraction) // energy gate pre_structure += Δpre × coherence_bonus // STRUCTURE WRITTEN pre_material -= Δpre // material consumed (RECOVERABLE) pre_energy -= Δpre × assembly_ATP_cost // energy consumed (NOT recoverable) if Δpre < AZ_expansion_cost: queue(pre_deficit → next NIGHT) // ── POST COMMIT ───────────────────────────────────────────────── if post_tag > tag_expiry_threshold: Δpost = min(AMPA_insertion_cost, post_material, post_energy × post_fraction) post_structure += Δpost × coherence_bonus // STRUCTURE WRITTEN post_material -= Δpost // RECOVERABLE post_energy -= Δpost × assembly_ATP_cost // NOT recoverable if Δpost < AMPA_insertion_cost: queue(post_deficit → next NIGHT) // ── DEND COMMIT ───────────────────────────────────────────────── if dend_tag > tag_expiry_threshold: Δdend = min(branch_expansion_cost, dend_material, dend_energy × dend_fraction) dend_structure += Δdend × coherence_bonus // STRUCTURE WRITTEN dend_material -= Δdend // RECOVERABLE (partially) dend_energy -= Δdend × assembly_ATP_cost if Δdend < branch_expansion_cost: queue(dend_deficit → next NIGHT) // ── SOMA COMMIT ───────────────────────────────────────────────── if soma_tag > tag_expiry_threshold: Δsoma = min(soma_expansion_cost, soma_material, soma_energy × soma_fraction) soma_structure += Δsoma // STRUCTURE WRITTEN soma_material -= Δsoma // RECOVERABLE (partially) soma_energy -= Δsoma × assembly_ATP_cost // ── AXON COMMIT ───────────────────────────────────────────────── if axon_tag > tag_expiry_threshold: Δaxon = min(axon_expansion_cost, axon_material, axon_energy × axon_fraction) axon_structure += Δaxon // STRUCTURE WRITTEN axon_material -= Δaxon // RECOVERABLE (partially) axon_energy -= Δaxon × assembly_ATP_cost if Δaxon < axon_expansion_cost: queue(axon_deficit → next NIGHT) // ── ASTRO COMMIT ──────────────────────────────────────────────── if astro_tag > tag_expiry_threshold: Δastro = min(process_retraction_cost, astro_material, // ECM proteins + process cytoskeleton astro_energy × astro_fraction) astro_structure += Δastro × coherence_bonus // STRUCTURE WRITTEN — SELF-REINFORCING astro_material -= Δastro // RECOVERABLE (recycling_fraction) astro_energy -= Δastro × assembly_ATP_cost if Δastro < process_retraction_cost: queue(astro_deficit → next NIGHT) ``` ## Step 3 — Passive Depotentiation ``` scope NIGHT | step 3: // Potentiation draws material first. // Remaining material distributed as maintenance. // What cannot be maintained decays passively. // No active LTD signal required — depotentiation is resource neglect. remaining_material = total_material_pool - material_consumed_by_potentiation maintenance_per_synapse = remaining_material × maintenance_fraction / total_synapse_count for each synapse: // Structural decay — passive, continuous pre_structure -= structural_decay_rate × Δt_night post_structure -= structural_decay_rate × Δt_night dend_structure -= structural_decay_rate × Δt_night astro_structure -= structural_decay_rate × Δt_night // Maintenance allocation from remaining material if maintenance_per_synapse >= maintenance_cost: // full maintenance — structure stable pre_structure += maintenance_pre post_structure += maintenance_post dend_structure += maintenance_dend astro_structure += maintenance_astro else: // partial maintenance — structure drifts downward // DEPOTENTIATION BY NEGLECT — no signal, no active process pre_structure += maintenance_per_synapse × pre_fraction post_structure += maintenance_per_synapse × post_fraction dend_structure += maintenance_per_synapse × dend_fraction astro_structure += maintenance_per_synapse × astro_fraction // LTD material recovery: returned to pools, enriches remaining material for each synapse where net_structure_change < 0: recovered_material = structure_loss × recycling_fraction pre_material += recovered_material × pre_fraction // AZ proteins recovered post_material += recovered_material × post_fraction // receptors to reserve astro_material += recovered_material × astro_fraction × recycling_fraction // energy is NOT recovered — assembly ATP is gone // this asymmetry is why material and energy must stay separate in NIGHT ``` ## Step 4 — Homeostatic Scaling ``` scope NIGHT | step 4: if soma_tag > homeostatic_ceiling: scale_factor = homeostatic_ceiling / soma_tag for each synapse: post_structure *= scale_factor // STRUCTURE WRITTEN pre_structure *= scale_factor // STRUCTURE WRITTEN // scaled-down material returned to pools soma_material += sum(structure_reduction) × recycling_fraction // energy NOT recovered ``` ## Step 5 — Clear All Traces ``` scope NIGHT | step 5: // Fast traces: confirmed zero (decayed during DAY) pre_fast_trace = post_fast_trace = dend_fast_trace = 0 soma_fast_trace = axon_fast_trace = astro_fast_trace = 0 // Possible tagging: confirmed zero (decayed during DAY) pre_possible_tagging = post_possible_tagging = dend_possible_tagging = 0 soma_possible_tagging = axon_possible_tagging = astro_possible_tagging = 0 // Tags: cleared after commit, carried forward if above expiry threshold if pre_tag < tag_expiry_threshold: pre_tag = 0 if post_tag < tag_expiry_threshold: post_tag = 0 if dend_tag < tag_expiry_threshold: dend_tag = 0 if soma_tag < tag_expiry_threshold: soma_tag = 0 if axon_tag < tag_expiry_threshold: axon_tag = 0 if astro_tag < tag_expiry_threshold: astro_tag = 0 ``` ## Summary: Energy and Material Flow ``` DAY — {component}_budget (combined fast energy + fast consumables): vascular_glucose_supply (FIXED) → astro_budget (glycolysis ROOT) → astro_lactate → pre_budget, post_budget, dend_budget, axon_budget → soma_budget (own mitochondria — independent root) → axon_budget (partial) → dend_budget (partial) NIGHT — {component}_energy (structural assembly ATP, NOT recoverable): vascular_glucose_supply (FIXED) → astro_energy (overnight glycolysis) → soma_energy (overnight mitochondria) → pre_energy, post_energy, dend_energy, axon_energy NIGHT — {component}_material (slow structural proteins, RECOVERABLE): soma (CREB synthesis — soma_tag driven) → soma_material → dend_material → post_material (spine delivery) → axon_material → pre_material (bouton delivery) astrocyte cell body (overnight synthesis) → astro_material (EAAT + racemase + ECM + process cytoskeleton) LTD recovery flows (material only — not energy): post LTD → post_material (receptors to dendritic reserve) pre LTD → pre_material (AZ proteins to axonal pool) astro LTD → astro_material (ECM fragments, recycling_fraction) ``` # Flows ## Energy flow ``` VASCULAR SUPPLY → ASTROCYTE CELL BODY glucose → lactate (glycolysis) → astro_budget (local ATP for clearance, D-serine, ECM, process motility) → lactate exported to: → pre_budget (ATP for VGCC, vesicle fusion, VATPase) → post_budget (ATP for NaK pump, AMPA trafficking, actin) → dend_budget (ATP for bAP propagation, local translation) → SOMA soma has own mitochondria — partly self-fueled soma_budget (ATP for AP generation, CREB, protein synthesis, shipping) → dend_budget top-up (organelle delivery) → axon_budget top-up (transport machinery) ``` ## Material flow ``` SOMA protein synthesis (CREB-driven, peaks in NIGHT) → soma_material (receptors, scaffold proteins, organelles, mRNA) → dend_material (branch receives proteins + mRNA from soma) → post_material (spine receives receptors + actin from branch) → axon_material (boutons receive AZ proteins + VGCCs from soma via axon) → pre_material (bouton active zone proteins) ASTROSYNAPSE ECM proteins synthesized in astrocyte cell body → astro_material (Glypicans, Thrombospondins, serine for D-serine) → cleft environment (ECM sealing, D-serine availability) ```