Update 2026-06-29-tripartite-synapse_v17.md
This commit is contained in:
@@ -476,7 +476,10 @@ rather than spike-punctate, so POST's action-context is "no descending AP arrivi
|
|||||||
channels and responds to whatever glutamate has arrived. Three calcium sources feed the fast trace —
|
channels and responds to whatever glutamate has arrived. Three calcium sources feed the fast trace —
|
||||||
AMPA current (small Ca, begins ejecting the NMDA Mg block) and NMDA (large Ca, scaled by the local
|
AMPA current (small Ca, begins ejecting the NMDA Mg block) and NMDA (large Ca, scaled by the local
|
||||||
coincidence of depolarization + astrocyte D-serine + glutamate). The action deposits the calcium
|
coincidence of depolarization + astrocyte D-serine + glutamate). The action deposits the calcium
|
||||||
trace and emits the two retrograde messages. Crucially POST's ACTION **continues through the soma's
|
trace and emits **NO** — the fast retrograde, tracking the NMDA calcium transient, confirming the
|
||||||
|
response reached a responsive target. (The other retrograde, **eCB**, is slow — produced from
|
||||||
|
*accumulated* depolarization and emitted in PREPARATION as an integrated brake on the next release,
|
||||||
|
not per-response.) Crucially POST's ACTION **continues through the soma's
|
||||||
refractory period**: the refractory belongs to the soma, not to POST — from POST it is simply NOT_AP,
|
refractory period**: the refractory belongs to the soma, not to POST — from POST it is simply NOT_AP,
|
||||||
so the spine keeps responding and integrating, charging up so the neuron is ready to fire again once
|
so the spine keeps responding and integrating, charging up so the neuron is ready to fire again once
|
||||||
its refractory ends.
|
its refractory ends.
|
||||||
@@ -538,9 +541,8 @@ DAY | NOT_AP: // respond to arrived
|
|||||||
if Vm > Mg_eject and glutamate > 0: // SOURCE 2 NMDA (Mg relieved)
|
if Vm > Mg_eject and glutamate > 0: // SOURCE 2 NMDA (Mg relieved)
|
||||||
post_fast_trace += NMDA_Ca(glutamate) × sat(astro_Dserine, K_Ds)·rise_speed(); post_budget -= NMDA_cost // @cut affords: THE pre-post-astro COINCIDENCE — joint three-component read (glutamate × depolarisation × D-serine gain); the meeting-site owning none of its inputs [ms, three-component space]
|
post_fast_trace += NMDA_Ca(glutamate) × sat(astro_Dserine, K_Ds)·rise_speed(); post_budget -= NMDA_cost // @cut affords: THE pre-post-astro COINCIDENCE — joint three-component read (glutamate × depolarisation × D-serine gain); the meeting-site owning none of its inputs [ms, three-component space]
|
||||||
// D-serine sets the GAIN (how strongly POST responds), not a coincidence gate — dialed by the astrocyte
|
// D-serine sets the GAIN (how strongly POST responds), not a coincidence gate — dialed by the astrocyte
|
||||||
retro_NO += NO_emit(post_fast_trace); post_budget -= NO_synth_cost // EMIT + "responsive target"
|
retro_NO += NO_emit(post_fast_trace); post_budget -= NO_synth_cost // EMIT + "responsive target" (fast: tracks the NMDA Ca transient)
|
||||||
if Vm > eCB_thr:
|
// (eCB is NOT emitted here — it is slow/integrated, produced in PREPARATION from accumulated depolarisation)
|
||||||
retro_eCB += eCB_emit(Vm); post_budget -= eCB_synth_cost // EMIT − brake
|
|
||||||
|
|
||||||
// ===== RECOVERY (AP: brief descending-spike arrival — restore + boost traces) =====
|
// ===== RECOVERY (AP: brief descending-spike arrival — restore + boost traces) =====
|
||||||
DAY | AP: // soma's spike arrives (ms event), driven from above
|
DAY | AP: // soma's spike arrives (ms event), driven from above
|
||||||
@@ -551,6 +553,10 @@ DAY | AP: // soma's spike arriv
|
|||||||
|
|
||||||
// ===== PREPARATION (NOT_SPIKE_TRAIN: shape the next response AND the NIGHT) =====
|
// ===== PREPARATION (NOT_SPIKE_TRAIN: shape the next response AND the NIGHT) =====
|
||||||
DAY | NOT_SPIKE_TRAIN: // sustained quiet (emitted by NEURON — above SOMA)
|
DAY | NOT_SPIKE_TRAIN: // sustained quiet (emitted by NEURON — above SOMA)
|
||||||
|
// slow retrograde: eCB is produced from ACCUMULATED depolarisation (integrated, not per-response) —
|
||||||
|
// a brake on the NEXT release, so it is prepared here, not deposited in the action
|
||||||
|
if post_fast_trace > eCB_thr:
|
||||||
|
retro_eCB += eCB_emit(post_fast_trace); post_budget -= eCB_synth_cost // EMIT − brake (slow, integrated)
|
||||||
// for NIGHT: climb the tag; dopamine is the integrable coincidence (#3)
|
// for NIGHT: climb the tag; dopamine is the integrable coincidence (#3)
|
||||||
if post_fast_trace > Ca_TAG: post_possible_tag += post_fast_trace; post_budget -= pka_cost // @cut affords: participation / consistency of co-activity (running average) [min]
|
if post_fast_trace > Ca_TAG: post_possible_tag += post_fast_trace; post_budget -= pka_cost // @cut affords: participation / consistency of co-activity (running average) [min]
|
||||||
if dopamine > dop_thr and post_possible_tag > tag_thr:
|
if dopamine > dop_thr and post_possible_tag > tag_thr:
|
||||||
@@ -784,20 +790,26 @@ downstream components receive depends on the soma having been tagged.
|
|||||||
// NOTE SOMA endurance fires only on FUEL shortfall (budget < ap_cost);
|
// NOTE SOMA endurance fires only on FUEL shortfall (budget < ap_cost);
|
||||||
// refractory / sub-threshold are timing limits, not endurance. Own-state proxy.
|
// refractory / sub-threshold are timing limits, not endurance. Own-state proxy.
|
||||||
|
|
||||||
// THE THREE CATEGORIES (same at DAY and NIGHT; here DAY, subject = the branch input / spike):
|
// THE THREE CATEGORIES (SOMA is an INITIATOR — it fires from its OWN integration crossing its OWN
|
||||||
// ACTION fire (the defining deed) — context AP
|
// threshold, so nothing external licenses its ACTION. It runs CONTINUOUS and the ACTION⇄RECOVERY
|
||||||
// RECOVERY restore the ability to fire again: refractory de-inactivation + mito replenish —
|
// alternation is decided INTERNALLY by its own condition. It EMITS AP and REFRACTORY as signals of
|
||||||
// the alter-ego of the spike, runs in NOT_AP
|
// these internal phases — it cannot be contextualized by them, since it is their source. Only its
|
||||||
// PREPARATION shape the next spike: alignment, adaptation, tag-climb (for NIGHT), ship, decay
|
// PREPARATION is externally contextualized, by the NEURON's NOT_SPIKE_TRAIN. See logic_principles §1.):
|
||||||
|
// ACTION (CONTINUOUS; internal guard: branch_Vm > threshold and can_fire) fire — the defining
|
||||||
|
// deed. Self-triggered. Emits AP.
|
||||||
|
// RECOVERY (CONTINUOUS; internal: not firing) restore the ability to fire again: refractory
|
||||||
|
// de-inactivation + mito replenish — the alter-ego of the spike. Emits REFRACTORY.
|
||||||
|
// PREPARATION (NOT_SPIKE_TRAIN, from the NEURON) shape the next spike: alignment, adaptation,
|
||||||
|
// tag-climb (for NIGHT), ship, decay.
|
||||||
// Pattern: (ACTION ⇄ RECOVERY) × many spikes, then PREPARATION.
|
// Pattern: (ACTION ⇄ RECOVERY) × many spikes, then PREPARATION.
|
||||||
// ONE spike's fast trace feeds TWO preparation destinations: nuclear-Ca → tag (for NIGHT),
|
// ONE spike's fast trace feeds TWO preparation destinations: nuclear-Ca → tag (for NIGHT),
|
||||||
// inactivation/adaptation/alignment → next-spike timing (this scope).
|
// inactivation/adaptation/alignment → next-spike timing (this scope).
|
||||||
|
|
||||||
// ===== ACTION =====
|
// ===== ACTION (CONTINUOUS — self-triggered by internal threshold-crossing; emits AP) =====
|
||||||
DAY | AP: // integrate + fire (the defining deed)
|
DAY | CONTINUOUS · action: // integrate + fire (the defining deed)
|
||||||
threshold = soma_structure.baseline_threshold × (1 + soma_adaptation) × neuromod(NE, ACh)
|
threshold = soma_structure.baseline_threshold × (1 + soma_adaptation) × neuromod(NE, ACh)
|
||||||
can_fire = soma_Na_inactivation < inactivation
|
can_fire = soma_Na_inactivation < inactivation
|
||||||
if branch_Vm > threshold and can_fire:
|
if branch_Vm > threshold and can_fire: // INTERNAL guard licenses the action (no external context)
|
||||||
if soma_budget < ap_cost: // FUEL shortfall → endurance (a PREPARATION deposit)
|
if soma_budget < ap_cost: // FUEL shortfall → endurance (a PREPARATION deposit)
|
||||||
if soma_fast_trace > traj_thr and soma_fast_trace_rising:
|
if soma_fast_trace > traj_thr and soma_fast_trace_rising:
|
||||||
soma_endurance_need += soma_fast_trace
|
soma_endurance_need += soma_fast_trace
|
||||||
@@ -813,8 +825,8 @@ DAY | AP: // integrate + fire (
|
|||||||
soma_budget -= creb_cost
|
soma_budget -= creb_cost
|
||||||
soma_emitted_activity += 1; soma_emitted_structure = soma_structure // NEURON sums these
|
soma_emitted_activity += 1; soma_emitted_structure = soma_structure // NEURON sums these
|
||||||
|
|
||||||
// ===== RECOVERY (restore the ability to fire; alter-ego of AP; runs in NOT_AP) =====
|
// ===== RECOVERY (CONTINUOUS — self-entered when not firing; emits REFRACTORY) =====
|
||||||
DAY | NOT_AP: // de-inactivate + replenish
|
DAY | CONTINUOUS · recovery: // de-inactivate + replenish (soma's own refractory dynamics)
|
||||||
soma_budget += fill(soma_budget, soma_budget_ceiling, mito_output, 0, soma_budget) // mito replenish
|
soma_budget += fill(soma_budget, soma_budget_ceiling, mito_output, 0, soma_budget) // mito replenish
|
||||||
recovery = base_recovery × (1 + soma_refractory_alignment)
|
recovery = base_recovery × (1 + soma_refractory_alignment)
|
||||||
soma_Na_inactivation *= decay(τ_Na / recovery) // refractory recovery (sped by alignment)
|
soma_Na_inactivation *= decay(τ_Na / recovery) // refractory recovery (sped by alignment)
|
||||||
@@ -840,7 +852,7 @@ DAY | NOT_SPIKE_TRAIN:
|
|||||||
// contend WITHIN (participation arbitrates); material contends BETWEEN components (recovery).
|
// contend WITHIN (participation arbitrates); material contends BETWEEN components (recovery).
|
||||||
|
|
||||||
// ===== ACTION (build ⇄ release; participation gates direction; tag funds build, persists across cycles) =====
|
// ===== ACTION (build ⇄ release; participation gates direction; tag funds build, persists across cycles) =====
|
||||||
NIGHT | build or release:
|
NIGHT | NON_REM_1:
|
||||||
if soma_tag > tag_expiry and soma_participation ≥ MEDIUM: // BUILD (slice)
|
if soma_tag > tag_expiry and soma_participation ≥ MEDIUM: // BUILD (slice)
|
||||||
Δ = min(slot_batch, soma_material, soma_energy·f_cap, soma_tag) × soma_participation
|
Δ = min(slot_batch, soma_material, soma_energy·f_cap, soma_tag) × soma_participation
|
||||||
soma_structure += Δ; soma_material -= Δ; soma_energy -= Δ·assembly_cost
|
soma_structure += Δ; soma_material -= Δ; soma_energy -= Δ·assembly_cost
|
||||||
@@ -856,7 +868,7 @@ NIGHT | build or release:
|
|||||||
// else: HOLD — tag waits for its pattern
|
// else: HOLD — tag waits for its pattern
|
||||||
|
|
||||||
// ===== RECOVERY (ROOT production + acquire/free material in CONTENTION; ship to feed the pattern) =====
|
// ===== RECOVERY (ROOT production + acquire/free material in CONTENTION; ship to feed the pattern) =====
|
||||||
NIGHT | produce + import + free:
|
NIGHT | NON_REM_2: // (SOMA also ROOT-produces here)
|
||||||
soma_material += CREB_synth(soma_tag)·Δt_cycle // ROOT: produce material — recoverable
|
soma_material += CREB_synth(soma_tag)·Δt_cycle // ROOT: produce material — recoverable
|
||||||
soma_energy += mito_synth()·Δt_cycle // ROOT: produce energy — NOT recoverable
|
soma_energy += mito_synth()·Δt_cycle // ROOT: produce energy — NOT recoverable
|
||||||
night_energy_spent += mito_synth()·Δt_cycle
|
night_energy_spent += mito_synth()·Δt_cycle
|
||||||
@@ -869,7 +881,7 @@ NIGHT | produce + import + free:
|
|||||||
soma_structure += min(soma_maint, maint_cost) // hold up what is used
|
soma_structure += min(soma_maint, maint_cost) // hold up what is used
|
||||||
|
|
||||||
// ===== PREPARATION (REPLAY the fire — SAME machinery as day ACTION; ignites the pattern; multi-timescale) =====
|
// ===== PREPARATION (REPLAY the fire — SAME machinery as day ACTION; ignites the pattern; multi-timescale) =====
|
||||||
NIGHT | replay-fire + measure + prime:
|
NIGHT | REM: // (SOMA replay-fires: ignites the pattern)
|
||||||
// FAST: replay-fire (probe); ignites the pattern down the day pathway
|
// FAST: replay-fire (probe); ignites the pattern down the day pathway
|
||||||
spont = intrinsic_fluctuation()
|
spont = intrinsic_fluctuation()
|
||||||
if spont > soma_spont_thr: // ignite (SAME threshold logic as day fire)
|
if spont > soma_spont_thr: // ignite (SAME threshold logic as day fire)
|
||||||
|
|||||||
Reference in New Issue
Block a user