This commit is contained in:
2026-06-21 19:42:46 +02:00
parent 3ff76fb9a5
commit 58a19df8e3
2 changed files with 85 additions and 68 deletions
@@ -103,39 +103,81 @@ that neighbours compete for.
## PRE
```
// Backward messages from POST (computed by POST from its own local state, read here):
// retro_NO (+) : POST responded — release reached a responsive target
// retro_eCB () : POST over-driven — suppress release (DSE)
// PRE reads these as arrived signals; it never reads POST's internal state.
// ─── PRESYNAPSE EXTERNAL INTERFACE ────────────────────────────────────────
// PRE computes locally. Everything below crosses its boundary as a signal it
// emits or a resource/signal it receives. It never reads another component's state.
//
// OUTPUT (PRE writes; others read)
// glutamate → POST, ASTRO forward transmitter; ASTRO clears it
//
// RESOURCES IN (others write; PRE reads in NOT_AP)
// astro_lactate[syn] ← ASTRO primary fast fuel → pre_budget
// axon_ship_pre ← AXON secondary fuel → pre_budget
// ship(axon_budget → pre_budget, gap_to(pre))
// pre_material ← AXON (NIGHT) AZ proteins (RIM, Munc13, VGCC subunits)
// pre_energy ← SOMA (NIGHT) assembly ATP for active-zone construction
//
// BACKWARD MESSAGES IN (POST writes from its own state; PRE reads)
// retro_NO (+) ← POST "release reached a responsive target" → endurance
// retro_eCB () ← POST DSE: "over-driven, release less" → brake
//
// CLEFT SELF-FEEDBACK (PRE reads the channel it writes)
// glutamate ← cleft spillover autoreceptor brake (mGluR2/3 on PRE)
//
// ORGANISM BROADCAST IN (external; arrives as a local level)
// dopamine ← VTA gates pre_tag (the non-local coincidence)
// NE, ACh ← LC, basal excitability/threshold context
//
// OWN STRUCTURE (written NIGHT, read DAY)
// pre_structure slot_ceiling, VGCC_coupling, refill_ceiling
// pre_budget_ceiling endurance ceiling (bounds replenishment)
//
// EMERGENCY
// shockwave_lockdown ← ASTRO global Ca²⁺ wave overrides PRE
// ──────────────────────────────────────────────────────────────────────────
DAY | AP:
// SENSE — deposit fast trace (residual Ca²⁺ from this spike; also drives release)
pre_fast_trace += spike_Ca(input_freq)
// BEHAVE — release, or fail if depleted
if pre_budget < release_cost:
suppress(NT_flux)
// interrupted LOCAL success: I was releasing strongly (own fast_trace),
// confirmed by retro_NO that POST actually responded
// EVALUATE (endurance) — interrupted LOCAL success, confirmed by retro_NO
if pre_fast_trace > traj_thr:
pre_endurance_need += pre_fast_trace × (1 + retro_NO_local)
exit
pre_fast_trace += spike_Ca(input_freq); pre_fast_trace *= decay(100ms)
drive = sat(pre_fast_trace, K_release) × (1 - retro_eCB_local) // DSE brake from POST
drive = sat(pre_fast_trace, K_release) × (1 - retro_eCB_local) // received DSE brake
if RRP > 0:
NT_flux = RRP × drive
glutamate += NT_flux·Δt; RRP -= NT_flux·Δt; pre_budget -= NT_flux·fusion_cost
if glutamate > spillover: drive *= brake // autoreceptor/astro brake (output)
// NO fill here — AP only depletes RRP; recovery happens in NOT_AP
// (sustained high-frequency firing therefore deepens short-term depression)
NT_flux = RRP × drive
// EMIT — glutamate into cleft (read by POST, ASTRO)
glutamate += NT_flux·Δt
RRP -= NT_flux·Δt; pre_budget -= NT_flux·fusion_cost
if glutamate > spillover: drive *= brake // own-cleft autoreceptor brake
// no RECOVER here — RRP refills in NOT_AP; high-frequency firing depletes
// faster than it recovers → short-term depression deepens
DAY | NOT_AP:
pre_fast_trace *= decay(100ms); pre_endurance_need *= decay(min)
retro_NO_local = retro_NO; retro_NO *= decay(s) // receive + channel clears (NO short-lived)
retro_eCB_local = retro_eCB; retro_eCB *= decay(s) // receive + channel clears
refill(pre from astro_lactate[syn] + axon_ship_pre) // contested: lactate + shipment
fill(RRP, pre_structure.slot_ceiling, pre_structure.refill_ceiling, vatpase_cost, pre_budget) // private reserve
// RECEIVE — latch arrived backward messages; replenish budget (contested supply)
retro_NO_local = retro_NO
retro_eCB_local = retro_eCB
refill(pre from astro_lactate[syn] + axon_ship_pre)
// RECOVER — refill RRP from private reserve toward its ceiling
fill(RRP, pre_structure.slot_ceiling, pre_structure.refill_ceiling, vatpase_cost, pre_budget)
// EVALUATE (strength) — eligibility → possible_tag → tag (needs dopamine)
if pre_fast_trace > elig: pre_possible_tag += pre_fast_trace
pre_possible_tag *= decay(s); dopamine *= decay(ms)
if dopamine > dop_thr and pre_possible_tag > tag_thr:
pre_tag += dopamine × pre_possible_tag
pre_tag *= decay(hr)
// DECAY — all traces and channels recede, closing their windows
pre_fast_trace *= decay(100ms)
pre_possible_tag *= decay(s)
pre_endurance_need *= decay(min)
pre_tag *= decay(hr)
dopamine *= decay(ms) // broadcast transient fades
retro_NO *= decay(s); retro_eCB *= decay(s) // backward channels clear
```
---