Compare commits

...

10 Commits

4 changed files with 292 additions and 230 deletions
@@ -183,6 +183,18 @@ NIGHT energy (not recoverable) · material (recoverable) · structure · budg
LOCALITY only local state + arrived signals; no component reads another's internal state.
CUT SIGNPOSTS (@cut) — an INDEX into the possibility, not part of it. The pseudocode expresses the
POSSIBILITY of verifying behaviours in time/space/quantity; a CUT is a reading of that possibility
at chosen levels, and cuts are UNBOUNDED, so they are NOT in the code — they live in the companion
`logic_of_aggregations` (there, a "cut" fixes levels on time/space/quantity + scope, and an OBJECT
is a name over the behaviours so read). A signpost is only a reminder at a STORE, marking what that
store AFFORDS reading and at what grain. It computes nothing and privileges no reading; deleting
every @cut leaves the expression unchanged. Form:
<store> ... // @cut affords: <behaviours readable here> [grain]
Rules: one per load-bearing store (the traces, tags, occupancies, coincidence sites — not every
line); names affordances, never computes them; must be deletable with zero effect. For the worked
readings, see logic_of_aggregations.
CLEFT MESSAGE CHANNELS SHIPMENT CHANNELS (transit-delayed)
glutamate PRE → POST, ASTRO soma_ship_dend SOMA→DEND
astro_Dserine ASTRO → POST soma_ship_axon SOMA→AXON
@@ -324,16 +336,16 @@ by night. The bouton is not a sink — by night it emits inward and upward.
// ===== ACTION =====
DAY | AP: // release into the cleft (the defining deed)
// deposit the fast trace THIS action leaves (FAST · impulse)
pre_fast_trace += spike_Ca(pre_structure.VGCC_coupling)·δ(spike)
pre_fast_trace += spike_Ca(pre_structure.VGCC_coupling)·δ(spike) // @cut affords: NT-emission frequency, recency (elapsed-since-release) [ms]
drive = sat(pre_fast_trace × VGCC_active, K_release) × (1 - retro_eCB_local)
if pre_budget < release_cost: // FUEL shortfall → endurance evidence
suppress(NT_flux)
if pre_fast_trace > traj_thr: // MEDIUM · accumulate (a PREPARATION deposit)
pre_endurance_need += pre_fast_trace × (1 + retro_NO_local)·Δt
pre_endurance_need += pre_fast_trace × (1 + retro_NO_local)·Δt // @cut affords: stamina / sustained-load need (endurance pathway) [min]
exit
if RRP == 0: suppress(NT_flux); exit // OCCUPANCY shortfall → STD (not endurance)
NT_flux = RRP × drive; RRP -= NT_flux·Δt; pre_budget -= NT_flux·fusion_cost
glutamate += NT_flux·Δt // EMIT glutamate → POST, ASTRO
glutamate += NT_flux·Δt // EMIT glutamate → POST, ASTRO // @cut affords: NT flow into cleft; joint pre-post coincidence read downstream at POST.NMDA [ms]
if glutamate > spillover: drive *= brake // own-cleft autobrake
// ===== RECOVERY (alter-ego of ACTION; runs in the inter-spike gaps, rides the train) =====
@@ -346,9 +358,9 @@ DAY | NOT_AP: // restore the abilit
DAY | NOT_SPIKE_TRAIN: // sustained quiet; ⊂ NOT_AP
retro_NO_local = retro_NO; retro_eCB_local = retro_eCB // latch arrived signals
// for NIGHT: climb the tag (stock the token the night-action will spend) (MEDIUM→SLOW accumulate)
if pre_fast_trace > elig: pre_possible_tag += pre_fast_trace·Δt
if pre_fast_trace > elig: pre_possible_tag += pre_fast_trace·Δt // @cut affords: participation / consistency-of-co-activity (running average) [min]
if dopamine > dop_thr and pre_possible_tag > tag_thr:
pre_tag += dopamine × pre_possible_tag·Δt
pre_tag += dopamine × pre_possible_tag·Δt // @cut affords: structural-consolidation need (spent overnight; precision pathway) [hr→night]
// for the NEXT TRAIN: STP read-out (eligibility → coupling readiness; NO dopamine; drifts back)
if pre_possible_tag > stp_thr:
VGCC_active = min(VGCC_active + coupling_gain × pre_possible_tag, pre_structure.VGCC_coupling)
@@ -382,7 +394,7 @@ NIGHT | build or release: // the night's defini
// BUILD (participation confirmed AND tag stands): spend a SLICE of the tag — persists next cycle
if rest_permission and pre_tag > tag_expiry and pre_participation ≥ MEDIUM:
Δ = min(slot_batch, pre_material, pre_energy·f_cap, pre_tag) × pre_participation
pre_structure += Δ; pre_material -= Δ; pre_energy -= Δ·assembly_cost
pre_structure += Δ; pre_material -= Δ; pre_energy -= Δ·assembly_cost // @cut affords: overnight build⇄release, structural persistence [night]
pre_tag -= Δ // SLICE only — tag survives for successive cycles
if pre_endurance_need > endur_thr: // endurance capacity builds on the same act
Δ' = min(cap_batch, pre_material·f_cap, pre_energy·f_cap)
@@ -502,9 +514,9 @@ DAY | bAP: // second action-cont
DAY | NOT_bAP: // respond to arrived input (the defining deed)
a = sat(glutamate, K_AMPA)
AMPA_current = a × AMPA_surface; Vm += AMPA_current; post_budget -= AMPA_cost // SOURCE 1 AMPA
post_fast_trace += AMPA_Ca·AMPA_current
post_fast_trace += AMPA_Ca·AMPA_current // @cut affords: channel-opening frequency, response magnitude (quantity of response) [ms]
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
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
retro_NO += NO_emit(post_fast_trace); post_budget -= NO_synth_cost // EMIT + "responsive target"
if Vm > eCB_thr:
@@ -518,14 +530,14 @@ DAY | NOT_bAP · recovered: // Ca extrusion + Mg
// ===== PREPARATION (shape the next response AND the NIGHT) =====
DAY | quiet: // sustained quiet
// 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
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:
post_tag += dopamine × post_possible_tag // token minted for NIGHT
post_tag += dopamine × post_possible_tag // token minted for NIGHT // @cut affords: structural-consolidation need (precision pathway; dopamine-gated) [hr→night]
// for the NEXT RESPONSE: STP fill / STD drift
if post_fast_trace > Ca_STP:
if post_budget < traffic_cost: // FUEL shortfall → endurance (a PREPARATION deposit)
if post_fast_trace > traj_thr and post_fast_trace_rising:
post_endurance_need += post_fast_trace
post_endurance_need += post_fast_trace // @cut affords: stamina / sustained-load need (endurance pathway) [min]
else if AMPA_surface < post_structure.slot_ceiling:
AMPA_surface += Ca_insert(post_fast_trace); post_budget -= traffic_cost
// else: surface at slot_ceiling → structure-limited (not endurance)
@@ -577,7 +589,7 @@ NIGHT | replay + measure + prime:
post_fast_trace += NMDA_Ca(glutamate) × sat(astro_Dserine, K_Ds) // SAME NMDA machinery (D-serine = gain)
if post_budget < traffic_cost: // SAME capacity check → endurance evidence
if post_fast_trace > traj_thr: post_endurance_need += post_fast_trace // SAME trace, fed by replay
post_participation = level(post_fast_trace) // read replayed response as participation
post_participation = level(post_fast_trace) // read replayed response as participation // @cut IS A READING: level() buckets the continuous trace into HIGH/MEDIUM/LOW — a chosen 3-bin quantity cut, kept executable because the build/release decision depends on it (see logic_of_aggregations: participation cut)
// MEDIUM: prime responsiveness (AMPA occupancy) from the standing tag
post_spont_thr = spont_thr_base thr_gain × post_tag
if post_tag > prime_thr:
@@ -2,183 +2,204 @@
*The objects the mechanism implies but never expresses. The pseudocode has PRE, POST,
ASTROSYNAPSE — three components, each running its own local loop. It has no `synapse`: no variable
holds one, no line makes one act. Yet the synapse is real — the system builds it, sustains it,
consolidates or forgets it. The synapse is an object that is **verified but never expressed**: it
exists only as a behavior that three components continuously constitute together, along the axes of
time, space, and quantity. This document is the catalogue of such objects — the synapse, the branch,
the cell, the assembly, the rhythm — each real, each acted upon, none appearing in the mechanism,
each existing only as a sustained mutual project its parts are always working at without any of them
containing it.*
holds one, no line makes one act. Yet we speak of the synapse constantly. This document is about what
kind of thing "the synapse" is, given that it is nowhere in the mechanism — and the answer, worked
out below, is that an object is a name we lay over an aggregation of behaviours, each behaviour read
at a chosen cut.*
*How this document differs from the other two. The pseudocode describes what is **directly
expressed**: local components and their loops. logic_principles describes **why** the model is the
kind of object it is, and the general operations (integrate, coincide, broadcast, inject) by which
the unexpressed becomes verifiable. This document describes the **unexpressed objects themselves**
a distinct ontological layer: the things that exist by verification rather than by expression. It is
not a higher-level summary of the pseudocode; the pseudocode does not contain these objects at all.
It is the ontology the mechanism implies but never states.*
## The machinery — expression, cut, behaviours, and the name
*Why the framing matters. If read as "a convenient higher-level view," this document collapses into
redundancy. Its actual claim is stronger: there is a whole layer of real objects that the mechanism
acts upon but expresses nowhere, and describing that layer honestly is a genuine addition. Each
object below is real in the only sense the model allows — it is continuously verified — and expressed
in no component.*
Three things, in a fixed relation:
**The expression is possibility.** The components express the *possibility* of verifying behaviours
in time, space, and quantity. Nowhere is a frequency, a flow, a duration expressed directly — only
the latent possibility of reading them. Time, space, and quantity are never *in* the expression; they
become readable only when we cut.
**A cut is a choice of level.** To read anything, we choose a level on each axis — time (ms · sec ·
min · hr), space (channel · synapse · branch · cell · territory), quantity (single quantum · occupancy
· total) — plus a scope (day · night). The cut is the grain at which we verify; nothing more. It is
what makes behaviours *actually* verifiable, out of the possibility the expression laid down.
**Behaviours are what a cut lets us read.** Put the expression through a cut and you get behaviours —
just behaviours, read at that level. This is the whole verification act:
```
expression → cut → behaviours
```
and it runs once per cut. The same expression, through a different cut, yields different behaviours.
**An object is a name over a set of these results.** "The synapse" is not a step in the chain, not an
input, not an output. It is the name we lay over a *collection* of chains —
```
the synapse = name over { expression→cut₁→behaviours A,
expression→cut₂→behaviours B,
expression→cut₃→behaviours C, ... }
```
— a grouping we perform across many cuts and label with one stable word. The object contributes
nothing to what is read; behaviours are all there is on the mechanism's side. "Synapse" adds no
behaviour and no verification — it adds only a grouping in our account. This is the cleanest form of
*verified but not expressed*: the object is not even verified; **behaviours** are verified, at cuts,
and the object is just the name over a chosen set of them. An object is therefore *not constituted by
components* — it is not built out of parts. It is a name over behaviours. Dopamine, the retrograde
messengers, the astrocytic spike, the shipment lines all enter the behaviours we call "the synapse";
listing three "constituents" would draw a false boundary and reimport the classical picture (object =
sum of parts) we are leaving behind.
**Components are objects too — there is no privileged level.** It is tempting to think the *components*
(PRE, POST, ASTROSYNAPSE) are the real objects and the synapse an emergent name over them. They are
not. A component is itself only a name over the behaviours readable at the **finest grain** — "PRE" is
the name over the ms-emission cut, the recovery cut, the tag cut, and so on, all read at the
single-component space level. So "PRE" and "the synapse" and "the assembly" are the *same kind of
thing* — names over collections of cut-behaviours — differing only in which cuts they gather (finer or
coarser). None is the bedrock the others are built from. The only bedrock is the expression as
possibility; everything above it, component included, is a name over cuts. The pseudocode's `pre_*`
variables are not "PRE the object" — they are the possibility of cutting behaviours at the finest
grain, which we name "PRE" for convenience.
**The name is one; the cuts are many.** Because "synapse" names the collection, it stays fixed
whichever cuts the collection gathers — synapse at ms, synapse at night, synapse as third party to
pre and post. These are not different objects; they are the same name, read at different cuts. It is
*always the synapse* — but always the synapse *at a cut*. The name gives stability (we can speak of
one thing across contexts); the cut gives specificity (we know which of its behaviours are in view).
Neither alone suffices: a name with no cut is vague (which behaviours?), a cut with no name is
unanchored (behaviours of what?).
## Orthogonal to classical reduction
This runs perpendicular to the habit classical physics trained into us. The reductive default
isolates a system at a **static object-boundary** — this mass, that charge, this cell — treats the
object as a persisting thing with fixed identity, and explains behaviour by **cause and effect
between such objects**: A strikes B, B moves. The object comes first and is real; behaviours are its
properties; causation runs between objects.
Here the order is inverted. **Behaviours come first** — read at cuts — and the object comes last, as
a name over some of them. There is no privileged object, not because we must choose among many
objects, but because objects were never on the mechanism's side at all: only behaviours are, and
"object" is our bookkeeping. Ask "what is the neuron trying to achieve," and any answer is partial —
the neuron is part of an assembly it cannot see, part of an organ, part of an organism, with no top
where the question closes, and made of synapses and channels, with no bottom either. The question
presumes a privileged object; there is none. This is the descriptive face of the model's founding
principle (logic_principles, Part I): as there is no global state and no privileged actor *inside*
the system, there is no privileged *object* from which to *describe* it. A name-over-cuts is to
description what one history is to simulation — the only tractable thing, necessarily partial,
honestly chosen.
Two riders. First, ordinary cause and effect still holds *within a single cut* (at the ms synapse
cut, this release causes that response); what has no clean analogue is cause/effect *between the
named objects* — the synapse does not cause anything and is caused by nothing, because it is not a
thing in the mechanism; it is a name over behaviours. Second,
the useful cuts are not arbitrary: they fall at the **joints**, where the system's own coupling is
denser inside than across (the behaviours we gather as one synapse couple more tightly to each other
than to those of the next synapse). We prefer these because they carve where the coupling already is
— but they remain cuts, still level-choices, still partial. There are affinities here with the
scale-relative frontier of physics — the renormalization group, non-equilibrium thermodynamics —
which also make description depend on the scale of the cut; but as the simulation argument showed,
those point in the direction without solving this system. They tell us cut-relative description is
legitimate physics; they do not hand us the object.
*The pseudocode is itself the finest cut* — it reads behaviours at the single-component level and
treats every larger whole as context arriving at the boundary (dopamine, the day/night context, the
renormalization are the organism and the hypothalamus reduced to inputs). This document lays names
over *coarser* collections of cuts in the same web.
## How each object is written
Given the machinery, each object below has one shape: **the name, then a series of `cut → behaviours`
entries, then the note that the name is simply the collection.** The compound observables — a
**frequency** (events per time), a **flow** (quantity per time), an **elapsed interval**, an **amount
at a moment**, a **spatial extent**, a **coincidence** — are just behaviours read along one or more
axes at a stated cut. Each entry names its cut (the levels on time, space, quantity, and the scope)
and reads the behaviours that cut makes verifiable. The object is nothing over and above the set.
---
## The frame: verified but not expressed
## Object 1 — The Synapse
The three axes along which any behavior is conceptualized are **time, space, and quantity**. An
unexpressed object is *verified* when its behavior, read along these axes, is constituted by its
parts and held as the level of some store — the object's present shadow (see logic_principles §7,
Integrate). Behaviors read along the axes compose into the observables: a **frequency** (events per
time), a **flow** (quantity per time), an **elapsed interval** (time between events), an **amount at
a moment** (quantity at a time), a **spatial extent** (quantity over space), a **coincidence**
(several things at one time and place). None is emitted by any component; each is constituted by many
local acts and readable only where they accumulate. The verification is not a computation anyone
performs — it is the automatic consequence of local acts accumulating in a store.
"The synapse" is a name over the behaviours read across the cuts below. Each cut names its levels —
time, space, quantity, scope — and reads what becomes verifiable there. None of these is more "the
synapse" than another; the word is the collection. Note in passing how much *one* observable, say
frequency, fractures across cuts: frequency of what, at what grain, in which scope — each a different
behaviour, all called "the synapse's."
But an unexpressed object is more than a passively-observed pattern. It is an **active project**: its
parts are continuously *aligning* along the three axes — tuning toward each other so the behavior
lands better and lasts longer. So each object is described through two lenses that are the same
structure still and moving:
**Cut — ms · single-component space · per-quantum · day.** At the finest time grain, cutting the
space at one component and the quantity at single events, the readable behaviours are the raw rates:
the **frequency of NT emission** (PRE's release events, read as PRE's fast-trace level), the
**frequency of channel opening** in POST (its fast trace), the **elapsed interval** since the last
release (how far a trace has decayed), the **quantity** of a single release (occupancy × drive). Each
is one component's behaviour; nothing joint yet.
- **Decomposed (still):** what behavior the object's parts constitute, and how it separates along the
three axes — which part owns which axis, and where the axes recombine.
- **Aligned (moving):** how the parts actively tune toward each other along those axes — and, because
each part belongs to its own larger whole, how the object is really the *discovered compatibility
of several larger rhythms*, sustained under a stamina budget (align well **and** align long).
**Cut — ms · cleft space · concentration · day.** Widen the spatial level from one component to the
cleft, keep time at ms. Now the readable behaviour is the **flow of NT out of the cleft** and its
**persistence** — the dwell time, set by the astrosynapse's clearance. This is a behaviour no single
component has; it lives at the cleft level, and the astrosynapse is where its shadow is held. "How
long transmitter stays" is a synapse behaviour only at *this* cut.
To describe an unexpressed object, five questions:
**Cut — ms · three-component space · joint · day (the third-party cut).** Cut the space to include
all three components at once and read their *joint* behaviour. Now a new behaviour is verifiable that
none of the previous cuts could reach: the **coincidence** — glutamate and depolarisation and
D-serine present together — read at POST's NMDA, which holds none of the three inputs but is where
their shadows overlap. At this cut the three axes have three owners (PRE: quantity; astrosynapse:
timing and space; POST: recombination), so the coincidence reads as *how much, how sharply timed, how
contained*. This is the cut at which "the synapse detects coincidence" is true — and it is true only
here, because coincidence is a joint behaviour and only a three-component space cut makes it
verifiable. (This is the tripartite decomposition of logic_principles §2, now located as one cut
among the synapse's many.)
1. **What behavior** does it constitute, read along time, space, quantity, or their compounds?
2. **Which part owns which axis**, and at what site do the axes recombine (the meeting-site that owns
none of them)?
3. **Over what timescales at once** — the object is verified concurrently at several grains, each a
store the faster fills and the slower reads.
4. **As what alignment project** — what are the parts tuning toward, within which larger wholes, and
under what stamina budget?
5. **How does it turn day to night** — day constitutes the object from behavior; night re-evokes it
as a probe to decide what structure to keep.
**Cut — tens-to-hundreds of ms · three-component space · burst · day.** Coarsen the time level from
single spikes to bursts. The readable behaviour is now **train-to-train alignment** — does PRE's
*burst* fall in POST's depolarised *window* — and the **frequency of pre-post coincidence over a
train**, not spike by spike. Short-term plasticity is the synapse's behaviour at this cut: the gain
adjusting so the next burst lands better. Synchronisation here is over multiples of spikes; the
single-spike cut could not see it.
The objects below are the ones where these have interesting, non-obvious answers.
**Cut — minutes · three-component space · running average · day.** Coarsen time further. The
behaviour is **participation** — is this synapse consistently in the co-active set — read as the
occupancy and tag trajectories accumulating. "Is this synapse reliably aligned" is verifiable only at
the minutes cut; below it there are only instantaneous events, no reliability.
**Cut — overnight · three-component space · structural · night.** Switch scope to night and the time
level to the consolidation cycle. The behaviours are **build ⇄ release of structure** — PRE's active
zone, POST's receptor field, the astrosynapse's coverage — read against the tag and the replayed
participation. "The synapse consolidates" or "is pruned" is a behaviour of this cut alone: the same
name, now naming an overnight restructuring rather than a millisecond coincidence.
---
**One cut worth dwelling on — the alignment reading (any of the day cuts, read as motion).** Read the
day cuts not as snapshots but as a process, and a single compound behaviour appears across them: the
synapse **aligning along three axes** — PRE and POST tuning the quantity match, the astrosynapse
tuning the timing and space match — and doing so never bilaterally, since each party belongs to a
larger whole (PRE's neuron, POST's neuron, the astrocyte's territory). At this reading the synapse
verifies the *discovered compatibility of three larger rhythms* in when, how much, and where. And
because alignment costs fuel, it carries two success-conditions at once — **precision** (did the
alignment land: the strength tag) and **stamina** (could it be held: the endurance need) — the two
consolidation pathways seen as the two dimensions of one project: be good at coincidence, for as long
as it takes. This is not a different object; it is the day cuts read as a sustained project rather
than a series of instants.
## Object 1 — The Synapse (constituted by PRE ⇄ POST ⇄ ASTROSYNAPSE)
The synapse is the first unexpressed object: nowhere in the mechanism, everywhere in the behaviour.
Three components constitute it, and it is real only as what they verify together.
### Decomposed — the coincidence, separated into three owned axes
A coincidence is several things at one time and place. In a two-party contact it would be an
undifferentiated fact — release met response, or it did not. The third party decomposes it, because
each party owns one axis:
- **PRE owns quantity** — how much is released, set by its own occupancy × drive.
- **The astrosynapse owns timing and space** — its clearance sets how long transmitter dwells (the
temporal window); its coverage sets whether release stays contained or spills (spatial isolation).
- **POST owns the recombination** — its NMDA receptor is where quantity (glutamate), the postsynaptic
contribution (depolarisation), and the astrosynapse's gain (D-serine) meet; it reads the
coincidence *as scaled by* the timing and gain the others set.
So the synapse verifies not "did they coincide" but "how much, how sharply timed, how contained" —
three separable reads because three owners. This is why the synapse is tripartite and not bipartite
(logic_principles §2, here made concrete as a division of who-holds-what). And the sites are plural:
quantity is integrated in PRE's release, timing/space in the astrosynapse's clearance and coverage,
the coincidence *event* at a fourth site — POST's NMDA — which holds none of the three axis-stores
but is where their shadows overlap. The astrosynapse is what makes the coincidence witnessable under
locality: it supplies the third input neither coinciding party owns, so the event registers without
any party reading another's interior.
### Aligned — the same three axes, in motion, as a sustained project
The decomposition is the object at rest. In motion, the synapse is not detecting a coincidence but
**working toward one, repeatedly, along all three axes** — the two sides tuning toward each other so
the next attempt lands better:
- **quantity alignment** — PRE and POST tune the match between how much is released and how strongly
POST responds (release capacity against receptor sensitivity);
- **timing alignment** — the astrosynapse tunes the window (clearance → dwell) so release and
response fall within the same instant;
- **space alignment** — the astrosynapse tunes coverage so the contact is contained, not bleeding
into neighbours.
The synapse is the *project of aligning along three axes at once*. And it is never bilateral: each
party belongs to its own larger whole — PRE to its neuron, POST to its neuron, the astrosynapse to
the astrocyte's territory (with its alpha rhythm and territory-wide calcium spike). So the two
synaptic partners are not free agents agreeing to meet; each is already committed to a larger rhythm.
The synapse therefore verifies the **discovered compatibility of larger rhythms** — do PRE's neuron
and POST's neuron (and the astrocyte's territory) turn out to match in *when*, in *how much*, and in
*where*, often enough and sustainably enough to be worth cementing. Strengthening happens where three
larger wholes prove temporally, quantitatively, and spatially compatible at one contact point. The
astrosynapse's "indirect assistance" is precisely its folding of a *third* larger rhythm (the
territory's) into the two-neuron alignment.
### Concurrent — several alignments at once, at different grains, coupled through stores
The alignment is not one process but a stack of them, running **at the same time** at different
temporal grains, and this is the hard thing to say plainly: at any instant the synapse is
simultaneously
- attempting a **spike-to-spike** alignment (does this release meet this depolarisation? — ms),
- tracking a **train-to-train** alignment (does the *burst* fall in the depolarised *window*? — tens
to hundreds of ms; synchronisation is over multiples of spikes, not single ones — short-term
plasticity lives here),
- accumulating a **participation** alignment (is this synapse *consistently* in the co-active set? —
minutes; the running average),
- and holding a **structural** alignment (is this worth permanent structure? — the overnight tag).
They run concurrently but communicate only through stores, and the coupling has a direction: **the
fast attempts deposit into stores the slower processes integrate, and the slow decisions set the
configuration the fast attempts run within.** Last night's structural alignment is this morning's
starting bias (the standing ceilings); the participation average reads the train-level's success; the
train-level tunes the gain the next spike-attempt uses; each spike deposits the fast trace the
train-level reads. So one does not describe them in sequence — one describes a stack of servos, each
closing its loop at its own rate, nested so that slow sets the frame and fast fills the evidence. This
is the timescale ladder (logic_principles §4) read as concurrent alignment rather than as static
decay rates.
### Under a budget — precision and stamina are the two success-conditions of one project
Alignment is not free; it costs fuel, and the budget limits how long the synapse can keep trying. So
the project has *two* success-conditions, not one: **align well** (land the coincidence hard enough
to matter) **and align long** (hold the alignment as long as the task demands). These are exactly the
two consolidation pathways the mechanism separates — strength and endurance — now revealed as the two
dimensions of a single project: *be good at coincidence, for as long as it takes*. Strength is
**precision** (did the alignment land?); endurance is **stamina** (could you sustain it?). A memory
must be both — well-aligned and sustainable — which is why the model carries both a dopamine-gated
strength tag (precision, at the significance-deciding sites) and a homeostatic endurance need
(stamina, everywhere). The synapse is not just trying to align; it is trying to align *and hold*,
within a budget that says how long the holding can last.
### Day to night — constitute, then re-verify
By day the synapse constitutes the coincidence from behaviour and deposits evidence (the tag at
PRE/POST, the coverage-need at the astrosynapse). By night the same three parties re-run the
coincidence as a probe — replay release, replay response, replay clearance — not to transmit but to
verify whether the alignment still holds when the pattern is re-evoked without the world driving it.
The participation this re-verification measures decides whether each party keeps its structure. So the
synapse's day-role (constitute the alignment) and night-role (re-verify it to consolidate) are the
identical three-party project read for two purposes — the rotation of logic_principles §3, at the
level of the object.
**The synapse in one line:** *three larger rhythms, meeting at one contact, trying to align along
when / how-much / where — concurrently at four grains, under a stamina budget — so that a coincidence
is decomposed into three owned axes by day and re-verified as a sustained alignment by night.*
**The name is the collection.** Synapse-at-ms, synapse-at-the-cleft, synapse-as-third-party,
synapse-over-a-train, synapse-at-participation, synapse-at-night, synapse-as-alignment — these are
not different objects, and none is the real one. They are one name laid over behaviours read at
different cuts. It is always the synapse; it is always the synapse *at a cut*. What the word buys us
is the ability to move between these cuts without losing the thread — to say "the synapse" and then
choose, by the cut, which of its behaviours we mean.
---
## The queue — objects still to build
- **The dendritic branch** (constituted by its spines → DEND). The clearest spatial integrator: how
spatially distributed spine alignments sum into one branch behaviour; how attention (ACh) reweights
the spatial sum; what "a branch" verifies that no spine does.
- **The neuron's decision** (constituted by branches → SOMA). Convergence of dendritic integrals into
one fire/no-fire; where the neuron's own **frequency** (its firing rate) and **flow** (summed input)
become verifiable; the point at which continuous integration turns into a discrete event.
- **The astrocytic territory** (constituted by processes → ASTROCYTE). Coincidence one scale up —
synapse-synapse-synapse co-activity, not pre-post — integrated into the regenerative calcium spike
and broadcast back; a higher-order unexpressed object detecting a higher-order coincidence.
- **The dendritic branch** (the name over cuts read at the branch's spatial grain, DEND). The
clearest spatial integrator: how behaviours read at branch-level space — the summed spine input —
become verifiable there; how attention (ACh) reweights that spatial read; what is readable at the
branch grain that no finer cut reaches.
- **The neuron's decision** (the name over cuts read at the whole-cell grain, SOMA). Where the
neuron's own **frequency** (its firing rate) and **flow** (summed input) become verifiable; the
cut at which continuous integration reads out as a discrete event.
- **The astrocytic territory** (the name over cuts read at the territory grain, ASTROCYTE).
Coincidence one scale up — synapse-synapse-synapse co-activity, not pre-post — readable at the
territory grain where the regenerative spike integrates local calcium and broadcasts it back.
- **The pathway loop / assembly** (PRE→POST→DEND→SOMA→AXON→PRE). The largest unexpressed object: how
a recurrent loop verifies flow and timing around itself, and how the night's replay reads the whole
loop's coherence as mechanical all-or-nothing (every link primed or the pattern breaks). The
+65 -46
View File
@@ -14,44 +14,51 @@ Expansions and modulations:
```Gen
include:
post_ampa.md
POSTSYNAPSE
type: comprehension
expansion:
_@PostAmpaAll: TUB [ comprehension: POST-AMPA, full: 10x, active: 5x, empty: 2x ]
include: post_ampa.md
intrication:
# Scope
!DAY: INTRICATION [ ref: &ORGANISM.!DAY ]
!NIGHT: INTRICATION [ ref: &ORGANISM.!NIGHT ]
// ########################## Intrication ##########################
# Context
*bAP: INTRICATION [ ref: &SOMA.*bAP ]
*TunPossible: INTRICATION [ ref: &NEURON.*TunPossible ]
# Tub
_NT: INTRICATION [ ref: &ASTROSYNAPSE._NT ]
_Vpost: INTRICATION [ ref: ??._VPost ]
// Scope
!DAY: INTRICATE [ scope: &ORGANISM.!DAY ]
!NIGHT: INTRICATE [ scope: &ORGANISM.!NIGHT ]
instantiation:
# Context
// Context
*bAP: INTRICATE [ context: &SOMA.*bAP ]
*TunPossible: INTRICATE [ context: &NEURON.*TunPossible ]
# Tub
_Ca2: TUB [ full: 60x, active: 30x, empty: 0x ]
_Na: TUB [ full: 60x, active: 30x, empty: 0x ]
_Nox: TUB [ full: 100x, active: 20x, empty: 0x ] # Nitric Oxide (NO): A gas that diffuses freely.
_eCB: TUB [ full: 100x, active: 20x, empty: 0x ] # Endocannabinoids (e.g., 2-AG)
// Tub
_NT: INTRICATE [ tub: &ASTROSYNAPSE._NT ]
_Vpost: INTRICATE [ tub: ??._VPost ]
_posMod: TUB [ full: None, active: ??, empty: 0x) # riferimento a possible di BEH-PRE
_actMod: TUB [ full: None, active: ??, empty: ??) # riferimento a active di BEH-PRE
// ########################## Instantiation ##########################
# Behaviour
$: BEHAVIOUR [ behaviour: MAIN_POST ]
$: BEHAVIOUR [ behaviour: TUN-POST-AMPA ]
// Context
// Tub
_Ca2: INSTANTIATE [ tub: local, full: 60x, act: 30x, empty: 0x ]
_Na: INSTANTIATE [ tub: local, full: 60x, act: 30x, empty: 0x ]
_Nox: INSTANTIATE [ tub: local, full: 100x, act: 20x, empty: 0x ] # Nitric Oxide (NO): A gas that diffuses freely.
_eCB: INSTANTIATE [ tub: local, full: 100x, act: 20x, empty: 0x ] # Endocannabinoids (e.g., 2-AG)
_posMod: INSTANTIATE [ tub: local, full: None, act: ??, empty: 0x) # riferimento a possible di BEH-PRE
_actMod: INSTANTIATE [ tub: local, full: None, act: ??, empty: ??) # riferimento a active di BEH-PRE
// Container
void: INSTANTIATE [ scope: !DAY, container: ACTION, context: *bAP ]
void: INSTANTIATE [ scope: !DAY, container: RECOVERY, context: NOT *bAP, *Spike_train ]
void: INSTANTIATE [ scope: !DAY, container: PREPARE, context: * NOT Spike_train ]
void: INSTANTIATE [ scope: !NIGHT, container: ACTION, context: *Not_rem_1 ]
void: INSTANTIATE [ scope: !NIGHT, container: RECOVERY, context: *Not_rem_2 ]
void: INSTANTIATE [ scope: !NIGHT, container: PREPARE, context: *Rem ]
// ########################## Expansion ##########################
_@PostAmpaAll: INSTANTIATE [ tub: EXPAND [ comprehension: POST-AMPA ], full: 10x, active: 5x, empty: 2x ]
```
@@ -64,7 +71,9 @@ POSTSYNAPSE
- **_eCB**:
- **_Nox**:?
### MAIN_POST: !DAY
## !DAY | ACTION | *bAP
//### MAIN_POST: !DAY
```
MAIN_POST
type: behaviour
@@ -89,12 +98,12 @@ MAIN_POST
```
#### *bAP
//#### *bAP
![post-ltp-ltd.png](.attachments/post-ltp-ltd.png)
##### CaNDMAEnterMax
//##### CaNDMAEnterMax
```Gen
CaNDMAEnterMax
@@ -108,7 +117,7 @@ CaNDMAEnterMax
trace:
```
##### CaNDMAEnterMed
//##### CaNDMAEnterMed
```Gen
CaNDMAEnterMed
@@ -121,9 +130,10 @@ CaNDMAEnterMed
trace:
```
#### NOT *bAP
## !DAY | RECOVERY | NOT *bAP, *Spike_train
//#### NOT *bAP
##### CaNDMAEnterLow
//##### CaNDMAEnterLow
```Gen
CaNDMAEnterLow
@@ -136,7 +146,7 @@ CaNDMAEnterLow
trace:
```
##### CaNDMAEnterMedNotBap
//##### CaNDMAEnterMedNotBap
```Gen
CaNDMAEnterMedNotBap
@@ -149,7 +159,7 @@ CaNDMAEnterMedNotBap
trace:
```
##### CaClearance
//##### CaClearance
```Gen
CaClearance # Low
@@ -162,7 +172,7 @@ CaClearance # Low
trace: None
```
##### VPostMax
//##### VPostMax
```Gen
VPostMa
type: accumulator
@@ -174,7 +184,7 @@ VPostMa
trace: None
```
##### VPostMed
//##### VPostMed
```Gen
VPostMed
type: accumulator
@@ -186,7 +196,7 @@ VPostMed
trace: None
```
##### VPostMin
//##### VPostMin
```Gen
VPostMin
type: accumulator
@@ -199,7 +209,7 @@ VPostMin
```
Il VPost clearance lo facciamo qui nel container dove creaiamo anche i VPost, perche' altrimenti, se lo facessimo in DB, perderemmo l'aspetto temporale della contribuzione dei singoli POST.
##### VPostClearance
//##### VPostClearance
```Gen
VPostClearance
type: accumulator
@@ -213,7 +223,7 @@ VPostClearance
Il NA clearance lo mettiamo qui come sniplet, perche' gli AMPA creano, e questi pompano fuori. Qui non e' un problema di perdere l'integrazione temporale, perche' gli AMPA sono tutti uguali nel loro behavior. Abbiamo messo gli AMPA come container perche' cosi' possiamo modularne la numerosita'.
##### NaClearanceHigh
//##### NaClearanceHigh
```Gen
NaClearanceHigh
type: accumulator
@@ -225,7 +235,7 @@ NaClearanceHigh
trace: None
```
##### NaClearanceLow
//##### NaClearanceLow
```Gen
NaClearanceLow
type: accumulator
@@ -237,7 +247,7 @@ NaClearanceLow
trace: None
```
### TUN-POST-AMPA: !DAY
//### TUN-POST-AMPA: !DAY
```Gen
TUN-POST-AMPA
type: behaviour
@@ -256,9 +266,9 @@ TUN-POST-AMPA
```
#### *TunPossible
//#### *TunPossible
##### CheckTunPostAmpa
//##### CheckTunPostAmpa
```Gen
CheckTunPostAmpa
type: contextor
@@ -271,7 +281,7 @@ CheckTunPostAmpa
out_context: *TryTunDownPostAmpa
```
##### PossibleUpPostAmpaTun
//##### PossibleUpPostAmpaTun
```Gen
PossibleUpPostAmpaTun: ( active: 10x )
type: accumulator
@@ -282,7 +292,7 @@ PossibleUpPostAmpaTun: ( active: 10x )
trace:
```
##### PossibleDownPostAmpaTun
//##### PossibleDownPostAmpaTun
```Gen
PossibleDownPostAmpaTun
type: accumulator
@@ -292,3 +302,12 @@ PossibleDownPostAmpaTun
action:
trace:
```
## !DAY | PREPARE | NOT *Spike_train
## !NIGHT | ACTION | *Not_rem_1
## !NIGHT | RECOVERY | *Not_rem_2
## !NIGHT | PREPARE | *Rem
+20 -10
View File
@@ -49,6 +49,10 @@ PRESYNAPSE
*AP: INTRICATE [ context: &SOMA.*AP ]
*Spike_train: INTRICATE [ context: &NEURON.*Spike_train ]
*Rem: INTRICATE [ context: &HYPOTHALAMUS.*Rem ]
*Not_rem_1: INTRICATE [ context: &HYPOTHALAMUS.*Not_rem_1 ]
*Not_rem_2: INTRICATE [ context: &HYPOTHALAMUS.*Not_rem_2 ]
// Tub
_NT: INTRICATE [ tub: &ASTROSYNAPSE._NT ]
_pre_budget: INTRICATE [ tub: &ASTROCYTE._pre_budget ]
@@ -70,10 +74,12 @@ PRESYNAPSE
_RrpFullDev: INSTANTIATE [ tub: local, full: 60x, act: 30x, empty: 0x ] // serve al DEV
// Container
void: INSTANTIATE [ container: ACTION, scope: !DAY, context: *AP ]
void: INSTANTIATE [ container: RECOVER, scope: !DAY, context: NOT *AP, *Spike_train ]
void: INSTANTIATE [ container: ADJUST, scope: !DAY, context: * NOT Spike_train ]
void: INSTANTIATE [ container: DEVELOP, scope: !NIGHT, context: ]
void: INSTANTIATE [ scope: !DAY, container: ACTION, context: *AP ]
void: INSTANTIATE [ scope: !DAY, container: RECOVERY, context: NOT *AP, *Spike_train ]
void: INSTANTIATE [ scope: !DAY, container: PREPARE, context: * NOT Spike_train ]
void: INSTANTIATE [ scope: !NIGHT, container: ACTION, context: *Not_rem_1 ]
void: INSTANTIATE [ scope: !NIGHT, container: RECOVERY, context: *Not_rem_2 ]
void: INSTANTIATE [ scope: !NIGHT, container: PREPARE, context: *Rem ]
// ########################## Expansion ##########################
@@ -81,7 +87,7 @@ PRESYNAPSE
```
## ACTION | !DAY | *AP
## !DAY | ACTION | *AP
```Gen
@@ -127,11 +133,11 @@ ACTION
```
## RECOVER | !DAY | NOT *AP, *Spike_train
## !DAY | RECOVERY | NOT *AP, *Spike_train
```Gen
RECOVER
RECOVERY
type: container
@@ -208,11 +214,11 @@ RECOVER
```
## ADJUST | !DAY | NOT *Spike_train
## !DAY | PREPARE | NOT *Spike_train
```Gen
ADJUST
PREPARE
type: container
@@ -268,7 +274,7 @@ ADJUST
```
## DEVELOP
## !NIGHT | ACTION | *Not_rem_1
```Gen
@@ -313,3 +319,7 @@ DEVELOP
}
```
## !NIGHT | RECOVERY | *Not_rem_2
## !NIGHT | PREPARE | *Rem