Update 2026-06-29-tripartite-synapse_v17.md

This commit is contained in:
2026-07-01 11:36:42 +02:00
parent d523660db9
commit d80643425c
@@ -236,37 +236,42 @@ early_phase_frac // fraction of night cycles that are D
## PRE ## PRE
The presynaptic bouton releases neurotransmitter and gathers evidence about whether that The presynaptic bouton releases neurotransmitter and gathers evidence about whether that
release was worth strengthening and worth sustaining. Its behavior unfolds across two DAY release was worth strengthening and worth sustaining. Like every component it turns one ring —
contexts and the NIGHT scope. ACTION → EVALUATION → PREPARATION — in two directions: outward by DAY (against the cleft), inward
by NIGHT (against the economy).
**During DAY, during AP — the bouton releases neurotransmitter.** The amount released depends on **DAY · ACTION (the AP) — the bouton releases.** The amount released depends on residual
residual **calcium** from recent spikes (the fast trace, setting the drive), the current **calcium** (the fast trace, set by this spike), the current **VGCC coupling occupancy** (how
**VGCC coupling occupancy** (how tightly calcium channels are coupled to docking slots right tightly channels are coupled right now, bounded by structure), the two **retrograde messages**
now — filled short-term, bounded by structure), the two **retrograde messages** from the (`retro_eCB` brakes, `retro_NO` confirms release reached a responsive target), and the
postsynapse (`retro_eCB` brakes the drive; `retro_NO` will confirm release reached a responsive availability of **fuel and vesicles**. The action deposits the fast trace the rest of the turn
target), and the availability of both **fuel and vesicles**. Two shortfalls are read reads. Two shortfalls read differently: a fuel shortfall on a succeeding release is *endurance*
differently: a fuel shortfall on a succeeding release is evidence the bouton needs more evidence; an empty pool with fuel to spare is ordinary short-term depression.
*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.** **DAY · EVALUATION (after the AP, trace fresh) — climb toward the tag.** Reading the fast trace,
With no spike to release, it latches the retrograde messages (RECEIVE); maintains its traces the bouton accumulates eligibility (`possible_tag`) and, on the dopamine coincidence, the `tag`
accumulating eligibility toward a dopamine-gated tag (TRACE); transiently tightens its VGCC the inert token minted for the night. It never acts here; it lays down evidence.
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** **DAY · PREPARATION (trace decaying) — ready the next release.** The bouton latches the retrograde
(active-zone capacity, including the VGCC-coupling ceiling) where a validated tag accumulated, messages, tightens its VGCC coupling from accumulated eligibility (reversible short-term
and its **budget capacity** (mitochondrial endurance) where fuel repeatedly interrupted a potentiation, no dopamine, bounded by structure — readiness, not evidence), refills budget and
succeeding release. Both draw on the same finite material and energy shipped down the axon, so vesicles *toward the next demand* (not a restoration — forward-facing), and lets its traces decay.
the two kinds of growth compete — and whatever is not maintained drifts back down. Preparation is the sole gateway to the next action.
**NIGHT — the ring turned inward.** ACTION is the coherence check (does post and astro concur this
change should be kept). EVALUATION is draw-and-commit: burn shipped material and energy into
**structure** (where a validated tag stood) or **budget capacity** (where fuel interrupted a
succeeding release), spending the tag — the token minted for the next day. PREPARATION is
make-room: take the descended constraint, recycle material from decayed ceilings, ready for the
next round. The bouton is not a sink — by night it emits inward and upward (fatigue, demand,
recycled material).
``` ```
// PARAMETERS K_release · release_cost · fusion_cost · vatpase_cost · spillover · brake // PARAMETERS K_release · release_cost · fusion_cost · vatpase_cost · spillover · brake
// stp_thr · coupling_gain · coupling_drift · VGCC_baseline // stp_thr · coupling_gain · coupling_drift · VGCC_baseline
// INTERFACE // INTERFACE
// EMIT glutamate → POST, ASTRO // EMIT glutamate → POST, ASTRO
// RECEIVE retro_NO, retro_eCB ← POST (signals latched; resources refill in RECOVER) // RECEIVE retro_NO, retro_eCB ← POST (signals latched in EVALUATION/PREPARATION; pools refill in PREPARATION)
// READ glutamate (own cleft, autobrake) ; dopamine (gates tag) // READ glutamate (own cleft, autobrake) ; dopamine (gates tag)
// OWN pre_structure{slot_ceiling, VGCC_coupling, refill_ceiling} ; pre_budget_ceiling // OWN pre_structure{slot_ceiling, VGCC_coupling, refill_ceiling} ; pre_budget_ceiling
// VGCC_active (occupancy: current coupling, filled toward VGCC_coupling ceiling) // VGCC_active (occupancy: current coupling, filled toward VGCC_coupling ceiling)
@@ -276,89 +281,76 @@ the two kinds of growth compete — and whatever is not maintained drifts back d
// TRACE CREATION MODES (every trace: trace += input·Δt trace·(Δt/τ_decay)) // TRACE CREATION MODES (every trace: trace += input·Δt trace·(Δt/τ_decay))
// impulse input = quantum·δ(event) — a point event; no rise time, τ = decay only (FAST) // impulse input = quantum·δ(event) — a point event; no rise time, τ = decay only (FAST)
// accumulate input = rate(condition)·Δt — ramps while a condition holds; τ = rise AND decay (MEDIUM/SLOW) // accumulate input = rate(condition)·Δt — ramps while a condition holds; τ = rise AND decay (MEDIUM/SLOW)
// A trace's tier is set by BOTH its creation mode and its decay: the fast trace is impulse-created //
// and fast-decaying; possible_tag/endurance_need are slowly accumulated and medium-decaying. // THE RING: ACTION (lateral, punctate — the AP) → EVALUATION (local, trace fresh — climb to tag)
// → PREPARATION (vertical, trace decaying — ready next release). Phase edges are
// event/decay-timed, not clocked: AP ends preparation; fast-trace decay ends evaluation.
DAY | AP: DAY · ACTION | AP: // lateral: release into the cleft
// TRACE FAST · impulse (Ca²⁺ bolus from THIS spike — a point event; no rise time, // deposit the fast trace THIS action leaves (FAST · impulse)
// decay alone sets its τ; frequency is emergent from impulse-rate vs decay)
pre_fast_trace += spike_Ca(pre_structure.VGCC_coupling)·δ(spike) pre_fast_trace += spike_Ca(pre_structure.VGCC_coupling)·δ(spike)
// ADJUST (release drive from residual Ca²⁺ × current coupling occupancy, + DSE brake)
drive = sat(pre_fast_trace × VGCC_active, K_release) × (1 - retro_eCB_local) 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
if pre_budget < release_cost:
// FUEL shortfall → endurance evidence (retro_NO-confirmed local success)
suppress(NT_flux) suppress(NT_flux)
// TRACE MEDIUM · accumulate (ramps while fuel keeps interrupting a succeeding release) if pre_fast_trace > traj_thr: // MEDIUM · accumulate
if pre_fast_trace > traj_thr:
pre_endurance_need += pre_fast_trace × (1 + retro_NO_local)·Δt pre_endurance_need += pre_fast_trace × (1 + retro_NO_local)·Δt
exit exit
if RRP == 0: if RRP == 0: suppress(NT_flux); exit // OCCUPANCY shortfall → STD (not endurance)
// 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 NT_flux = RRP × drive; RRP -= NT_flux·Δt; pre_budget -= NT_flux·fusion_cost
// EMIT (glutamate into cleft) glutamate += NT_flux·Δt // EMIT glutamate → POST, ASTRO
glutamate += NT_flux·Δt
if glutamate > spillover: drive *= brake // own-cleft autobrake if glutamate > spillover: drive *= brake // own-cleft autobrake
DAY | NOT_AP: DAY · EVALUATION | after AP, fast trace fresh: // local: climb the ladder toward the tag
// RECEIVE (latch backward messages — signals only) if pre_fast_trace > elig: pre_possible_tag += pre_fast_trace·Δt // MEDIUM · accumulate
retro_NO_local = retro_NO; retro_eCB_local = retro_eCB if dopamine > dop_thr and pre_possible_tag > tag_thr: // SLOW · accumulate
// TRACE (strength pathway — evidence climbs the ladder) pre_tag += dopamine × pre_possible_tag·Δt // the inert token minted for NIGHT
// MEDIUM · accumulate (ramps while fast_trace stays eligible; rise-rate is its τ_rise)
if pre_fast_trace > elig: pre_possible_tag += pre_fast_trace·Δt DAY · PREPARATION | fast trace decaying: // vertical: ready the next action
// SLOW · accumulate (ramps only on dopamine coincidence; rise gated by validation) retro_NO_local = retro_NO; retro_eCB_local = retro_eCB // latch descended/arrived signals
if dopamine > dop_thr and pre_possible_tag > tag_thr: // short-term potentiation: eligibility → coupling readiness (NO dopamine; drifts back)
pre_tag += dopamine × pre_possible_tag·Δt
// BEHAVE (short-term potentiation: eligibility tightens coupling, NO dopamine; drifts back)
if pre_possible_tag > stp_thr: if pre_possible_tag > stp_thr:
VGCC_active = min(VGCC_active + coupling_gain × pre_possible_tag, pre_structure.VGCC_coupling) VGCC_active = min(VGCC_active + coupling_gain × pre_possible_tag, pre_structure.VGCC_coupling)
else: else:
VGCC_active = max(VGCC_active - coupling_drift·Δt, VGCC_baseline) // STD = consequence VGCC_active = max(VGCC_active - coupling_drift·Δt, VGCC_baseline) // STD = un-honored decay
// RECOVER (refill BOTH pools: contested budget + private RRP) // refill BOTH pools TOWARD next demand (forward-facing, not restoration)
pre_budget += refill(pre from astro_lactate[syn] + transit(axon_ship_pre, τ_transport_bouton)) 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) RRP += fill(RRP, pre_structure.slot_ceiling, pre_structure.refill_ceiling, vatpase_cost, pre_budget)
// DECAY // decay times the phase edges (fast clears evaluation; medium/slow settle; persistent waits for NIGHT)
// FAST (mss) pre_fast_trace *= decay(100ms) // FAST
pre_fast_trace *= decay(100ms) pre_possible_tag *= decay(s); pre_endurance_need *= decay(min) // MEDIUM
// MEDIUM (smin) pre_tag *= decay(hr) // SLOW
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) dopamine *= decay(ms); retro_NO *= decay(s); retro_eCB *= decay(s)
// (PERSISTENT: pre_structure, pre_budget_ceiling — no DAY decay; NIGHT only)
NIGHT | cycle: // leaf consumer (no downstream emit) NIGHT · ACTION | coherence check: // lateral: does post & astro concur?
// RECEIVE batch arrived from AXON (material) + SOMA (energy) + neuron broadcasts coh = coherence_signal // arrived verdict (pre+post+astro tags aligned)
pre_material += transit(pre_material_ship, τ_transport_bouton) // (this is the night's "release": signal the standing claim, read what returns; leaves coh as trace)
pre_energy += transit(pre_energy_ship, τ_transport_bouton)
// BEHAVE (DOWNSCALE phase) — reset OWN occupancy / renorm OWN structure on arrived signals NIGHT · EVALUATION | draw & commit (only if coherent + permitted): // local: mint structure for next DAY
if occupancy_downscale arrived:
VGCC_active *= occupancy_downscale; pre_possible_tag *= occupancy_downscale
if renorm_signal arrived:
freed = pre_structure × (1 - renorm_signal); pre_structure *= renorm_signal
emit(freed → recycled material pool) // I scale myself; neuron only signalled
// TRACE read standing demand (pre_tag → structure ; pre_endurance_need → budget_ceiling)
// ADJUST size commits from material + energy on hand
coh = coherence_signal // arrived: pre+post+astro tags aligned
// BEHAVE (COMMIT phase) — build ceilings; spend tag/need as fuel
if rest_permission and pre_tag > tag_expiry: if rest_permission and pre_tag > tag_expiry:
Δ = min(slot_batch, pre_material, pre_energy·f_cap) Δ = min(slot_batch, pre_material, pre_energy·f_cap)
pre_structure += Δ × coh; pre_material -= Δ; pre_energy -= Δ·assembly_cost pre_structure += Δ × coh; pre_material -= Δ; pre_energy -= Δ·assembly_cost
pre_tag -= Δ // tag-as-fuel pre_tag -= Δ // tag-as-fuel; energy burned only here (irreversible)
if rest_permission and pre_endurance_need > endur_thr: if rest_permission and pre_endurance_need > endur_thr:
Δ' = min(cap_batch, pre_material·f_cap, pre_energy·f_cap) Δ' = min(cap_batch, pre_material·f_cap, pre_energy·f_cap)
pre_budget_ceiling += Δ'; pre_material -= Δ'; pre_energy -= Δ'·biogenesis_cost pre_budget_ceiling += Δ'; pre_material -= Δ'; pre_energy -= Δ'·biogenesis_cost
pre_endurance_need -= Δ' pre_endurance_need -= Δ'
// EMIT (none downstream — bouton is a leaf) ; pre_fatigue → HYPOTHALAMUS // if not coherent / not permitted: draw nothing, hold the tag, leave resource for peers — defer
// RECOVER reclaim material from any ceiling that decayed this cycle
NIGHT · PREPARATION | make room: // vertical: take constraint, recycle, ready
// receive shipped batch for the next round (forward-facing)
pre_material += transit(pre_material_ship, τ_transport_bouton)
pre_energy += transit(pre_energy_ship, τ_transport_bouton)
// apply the descended constraint to MYSELF (neuron only broadcasts; I scale myself)
VGCC_active *= occupancy_downscale; pre_possible_tag *= occupancy_downscale
if renorm_signal arrived:
freed = pre_structure × (1 - renorm_signal); pre_structure *= renorm_signal
emit(freed → recycled material pool)
// recycle material from decayed ceilings; unmaintained ceilings drift; emit inward/upward
pre_material += pre_ceiling_shrinkage·recycle // energy NOT recovered pre_material += pre_ceiling_shrinkage·recycle // energy NOT recovered
// DECAY unmaintained ceilings + tags drift down a little
pre_structure -= decay_rate·Δt_cycle; pre_budget_ceiling -= capacity_decay_rate·Δt_cycle pre_structure -= decay_rate·Δt_cycle; pre_budget_ceiling -= capacity_decay_rate·Δt_cycle
pre_structure += min(pre_maint, maint_cost); pre_budget_ceiling += min(pre_cap_maint, cap_cost) pre_structure += min(pre_maint, maint_cost); pre_budget_ceiling += min(pre_cap_maint, cap_cost)
pre_tag *= decay(slow); pre_endurance_need *= decay(slow) pre_tag *= decay(slow); pre_endurance_need *= decay(slow)
emit(pre_fatigue, pre_demand → upward) // not a sink: emits inward/upward by night
``` ```
--- ---