The winner is made, not found
Scarcity is a relation between signals
Imagine a neuron in visual area V4 that responds well to a preferred shape. Place that shape alone inside its receptive field and the neuron fires strongly. Replace it with a non-preferred shape and the response falls. Present both shapes together and the response is often not the sum of the two single-stimulus responses. The stimuli interact. The preferred item’s expression is reduced by the presence of its competitor.
Now ask the animal to attend to one of the two shapes while keeping its eyes fixed. The response shifts towards the response that would have occurred if the attended item had been presented alone. This family of observations helped motivate biased competition: simultaneously represented objects compete for neural expression, and goal-related or stimulus-driven signals bias that competition.[1][2]
The word scarcity can mislead here. It sounds like a fuel gauge. The brain certainly consumes energy, and no circuit has unlimited neurons, spikes, time or synapses. Yet the immediate attentional limit in this example is not explained by saying that the brain has run out of glucose. It is produced by overlap, interference and shared readout. Two candidates recruit partially common circuitry, enter a common suppressive pool or demand the same downstream decision. A signal may be weak because another signal is present, even when the sensory evidence for the first has not changed.
Suppose a hypothetical intervention doubles oxygen and glucose delivery to the relevant cortex, but leaves receptive-field overlap, recurrent inhibition and downstream readout unchanged. Would both competing objects now be represented independently? Not necessarily. The circuit can have more metabolic headroom while preserving the same normalising interactions. Conversely, changing the overlap or suppressive pool can relieve interference without doubling energy supply. Scarcity must be located in a mechanism: energy, representational overlap, temporal access, working memory, motor selection or decision readout. “Limited capacity” is an observation until the bottleneck is named.
Why the denominator matters
A minimal normalisation model begins with an excitatory drive for each candidate and divides it by a pooled measure of activity. The exact biological implementation can vary. The computational point is simple: response is relative to what else is active. In the normalisation model of attention, an attentional field multiplies stimulus drive before divisive normalisation. That ordering can produce several observed forms of attentional modulation, including changes that resemble response gain or contrast gain, depending on stimulus size, attention-field size and the composition of the suppressive pool.[3][4]
rᵢ = dᵢγ / (σ + Σⱼ dⱼγ)
Here, dᵢ is the effective drive of candidate i; σ is a semi-saturation term that prevents tiny inputs from consuming the full response budget; and γ controls how strongly large drives separate from small ones. This is not offered as a complete cortical equation. It is the smallest model that exposes the causal ordering.
A target enters with drive 0.60 and a distractor with drive 0.70. With γ = 1 and σ = 0.20, their normalised responses are approximately 0.40 and 0.47. Now apply a valid priority multiplier of 1.5 to the target before normalisation. Target drive becomes 0.90. Its response rises to 0.50, but the distractor response falls to 0.39 because the target now occupies more of the shared denominator. A post-output spotlight can raise the target response, but it does not predict this competitor suppression unless another mechanism is added.
Attention changes more than mean firing
The mechanism is richer than a single rate multiplier. Attention can alter sensitivity, receptive-field weighting, variability, correlations and synchronisation. In macaque V4, spatial attention has been reported to reduce shared intrinsic fluctuations, which can improve the information available to a population even when average firing changes modestly.[5] Other work links attention-related reductions in response variance and noise correlations in V1 to NMDA-receptor-dependent mechanisms.[6] These findings matter because a “larger response” and a “more useful code” are not identical.
A normalisation account nevertheless gives a powerful baseline. It asks where bias enters, what shares the denominator and how the response changes as the stimulus or attention field expands. It also explains why apparently conflicting labels such as response gain and contrast gain need not indicate different attention systems. The same underlying computation can look different under different stimulus geometries.
Priority is most consequential when it changes the drives that compete, rather than only the report produced after competition. This predicts coupled effects: target enhancement, competitor suppression and dependence on the size and composition of the shared pool. Those effects are the first signature we will carry into precision and arousal.
flowchart TD A["The horn in the rain"] --> B["The winner is made, not found"] B --> C["Three controls, not one spotlight"] C --> D["The scarcity allocation loop"] D -. "re-test" .-> A classDef first fill:#0a1424,stroke:#D95545,stroke-width:2px,color:#e6f3ff classDef step fill:#0a1424,stroke:#3f7da0,stroke-width:1px,color:#e6f3ff class A first class B,C,D step
Three controls, not one spotlight
The same word hides three questions
When researchers say that attention “increases gain”, three distinct operations can be compressed into one phrase. The system may decide that an item is behaviourally important. It may estimate that a stream of evidence is reliable. Or it may change the input-output regime of a population so that strong activity has greater downstream impact. These operations can covary, but they answer different questions.
Priority asks what matters now. It can come from goals, learned value, novelty, threat, physical contrast or a remembered instruction. Precision asks what evidence should be trusted. In probabilistic language it is related to inverse uncertainty, although biological systems need not explicitly represent a textbook variance. Gain asks how much a change in input alters a response. It is a circuit property that can be affected by excitation, inhibition, receptor state, synchrony and background activity. Arousal is a broader organismal state that can modulate gain, readiness and exploration, but is not identical to selective attention.
| Control | Operational question | Useful intervention | Common category error |
|---|---|---|---|
| Priority | Which candidate is relevant, salient or valuable? | Change cue validity or task goal while holding sensory reliability fixed. | Treating physical salience as equivalent to behavioural relevance. |
| Precision | How reliable is this evidence relative to alternatives? | Change sensory variance or learned cue reliability without changing reward. | Calling confidence, firing rate and inverse variance the same quantity. |
| State gain | How strongly do input differences affect population output? | Manipulate arousal or a candidate neuromodulatory pathway and measure sensitivity, criterion and competitor activity separately. | Assuming a global multiplier must improve every representation. |
Precision is a claim about reliability
Predictive-processing accounts often describe attention as precision weighting. In that formalism, prediction errors that are expected to be reliable receive greater influence on belief updating, while noisy errors are discounted. Feldman and Friston developed this view as an account of attention under uncertainty.[7] Yu and Dayan proposed a computational division of labour in which acetylcholine and norepinephrine signal different forms of uncertainty.[8] Moran and colleagues later linked a cholinergic manipulation, electrophysiology and a precision-learning model in humans.[9]
These are valuable mechanistic hypotheses, not a licence to translate every gain change into “precision”. Precision is a latent, model-relative quantity. Neural gain is an observable or inferable property of a circuit. Acetylcholine has diverse receptor, cell-type, layer and timescale effects. Basal forebrain cholinergic activation can rapidly alter cortical activity and visual perception in behaving mice,[10] and newer work in rat auditory cortex reports cholinergic modulation consistent with sharpening prediction-error signals.[16] Yet consistency with precision weighting does not establish that a single chemical encodes a single Bayesian variable across the brain.
Published evidence: cholinergic manipulations alter sensory responses, detection, learning and cortical state in specific preparations. Contested interpretation: these effects instantiate a general precision variable. Practitioner synthesis: model precision as expected reliability, then test whether a proposed biological mechanism tracks reliability when salience, reward and arousal are independently varied.
Two auditory streams have equal loudness and equal task relevance. Stream A comes from a stable source whose timing is predictable. Stream B has the same average intensity but is corrupted by variable delay and noise. If attention were only salience or priority, the two should receive equal weight. If the system estimates reliability, evidence from A should exert more influence even without being louder or more valuable. Now reverse the noise statistics after a long training block. The key observation is not an immediate orienting response. It is whether weighting migrates as the system learns which stream is trustworthy.
Arousal changes the regime of competition
The locus coeruleus and its norepinephrine projections have long been associated with arousal and behavioural state. Adaptive-gain theory distinguishes patterns of tonic and phasic activity and links them to exploitation, exploration and task engagement.[11] Work in awake mice shows that rapid changes in arousal, indexed partly by pupil and movement, accompany changes in cortical membrane potential, variability and sensory performance. Moderate states can be more favourable than either quiescence or excessive activation.[12]
Arousal-biased competition and the GANE proposal go further. They suggest that norepinephrine can magnify the difference between high-priority and low-priority representations through local excitatory hotspots alongside broader suppression.[13] Human imaging and modelling have reported arousal-related enhancement of salient representations and suppression of less salient ones in younger adults, with a different pattern in older adults.[14] Most importantly, a recent non-human-primate study provided causal evidence that optogenetic activation of LC norepinephrine neurons could improve contralateral visual perceptual sensitivity without a corresponding change in motor criterion.[15]
This does not justify the slogan “norepinephrine is attention”. LC projections can be spatially and functionally specific; receptor effects can differ by concentration and circuit; arousal affects sensory, decision and motor processes; and the same manipulation can have different consequences across state, age and task. The more defensible statement is narrower: neuromodulatory state can alter the slope and selectivity of an already structured competition.
Behavioural tests have not always found the interaction predicted by arousal-biased competition. Focused visuospatial-attention experiments have reported evidence against a general arousal amplification of distractor competition, and later work found task-dependent effects rather than a universal signature.[17][18] The right conclusion is not that arousal never sharpens competition. It is that the effect requires specified timing, state, circuit, priority difference and measurement level.
The scarcity allocation loop
A minimal causal synthesis
We can now assemble the argument without pretending that one equation is the brain. Each candidate representation begins with sensory drive. Goal and salience signals alter its priority. The system may also weight the candidate by estimated reliability. Those quantities determine the drive entering a shared competition. Arousal-dependent state changes the separation regime. The resulting population activity is then read by downstream perception, memory or action systems.
The smallest useful synthesis is:
dᵢ = xᵢ · bᵢ · πᵢrᵢ = dᵢγ(A) / (σ + Σⱼ dⱼγ(A))
xᵢ is sensory evidence for candidate i. bᵢ is behavioural priority, which may include task relevance and learned or physical salience. πᵢ is an estimated reliability weight. A is an arousal or state variable, and γ(A) is the selectivity it induces in this toy model. σ is a semi-saturation term that keeps the denominator non-zero and prevents weak drives from consuming the full normalised response.
The equation encodes three assumptions. Priority and precision act before the shared denominator. Competition is divisive rather than purely subtractive. Arousal changes relative separation rather than adding an independent response reservoir. Removing any assumption changes the predictions. A post-normalisation priority factor no longer suppresses the competitor. An additive arousal term can improve both candidates. A non-shared denominator removes the cross-candidate effect.
The proposed contribution is not another name for attention. It is an ordering claim. A selection mechanism is scarcity-sensitive when priority and reliability change the signals that enter shared competition before state-dependent amplification. Evidence that only the final report changes is insufficient. The mechanism is strengthened by coupled target enhancement and competitor suppression, weakened when competitor activity is invariant, and confounded when decision criterion or movement can explain the same behaviour.
The arithmetic of a fragile winner
Take a target with sensory drive 0.60, priority 1.60 and precision 0.80. Its effective drive is 0.768. A distractor is physically stronger at 0.75, but has priority 1.00 and precision 0.90, giving effective drive 0.675. Before state gain sharpens the contest, the target is only slightly ahead.
With γ = 1 and σ = 0.20, target and distractor responses are about 0.467 and 0.411. The margin is 0.056. Increase γ to 2.5 and the responses become approximately 0.474 and 0.343. The target has not received new sensory evidence. The stronger separation emerges because the current ordering is amplified through the non-linearity and shared denominator.
Scroll within the figure to inspect the full calculation.
Target candidate
Distractor candidate
Reverse the effective drives: target 0.66, distractor 0.78. At low selectivity, the distractor’s lead is modest. At higher selectivity, the negative target margin grows. Nothing about the arousal parameter changed. Only the pre-existing ordering changed. This is why an alerting signal can improve one task and worsen another without requiring two kinds of arousal.
Where the variables might live
No single anatomical diagram should be mistaken for the full system. Sensory populations in visual cortex exhibit competitive and normalising interactions. Frontoparietal systems can provide task-dependent bias. Basal forebrain cholinergic projections can rapidly alter cortical processing, while locus-coeruleus norepinephrine can affect arousal, sensitivity and gain. Local inhibitory circuits, recurrent excitation and receptor-specific effects shape the final response. These pathways are distributed, heterogeneous and reciprocal.[10][15][19]
The causal synthesis therefore uses functional roles, not one-to-one labels. A frontoparietal signal is not “priority itself”. Acetylcholine is not “precision itself”. Norepinephrine is not “gain itself”. Each is a candidate contributor whose role must be demonstrated by interventions that separate sensory sensitivity, decision criterion, motor readiness and competitor suppression.
A monkey fixates centrally while two possible stimulus locations are monitored. A cue identifies the relevant side. Researchers record LC norepinephrine neurons and manipulate them optogenetically. The discriminating variables are not only reaction time or percentage correct. Perceptual sensitivity, motor criterion, hemifield specificity, error trials and neuronal responses must be separated. In the 2024 study by Ghosh and Maunsell, LC responses tracked attended contralateral stimuli, and unilateral activation improved contralateral perceptual sensitivity without a motor-criterion change.[15] This supports a selective sensory contribution, while leaving open the precise cortical pool and receptor mechanism.
How a useful mechanism fails
The road scene returns. Suppose brightness gives the advertising panel a sensory drive of 0.80. A poorly learned expectation or a momentary gaze bias gives it priority 1.25. The cyclist has sensory drive 0.62, priority 1.30 and slightly lower estimated precision because rain makes motion uncertain. The panel may now lead in effective drive even though the cyclist matters more to the driver’s actual goal.
A horn triggers phasic arousal. If arousal steepens the competition, the panel’s lead grows. The normalising pool suppresses the cyclist further. The driver experiences a vivid, confident selection that is wrong for the task. Gain is not truth; it is leverage applied to the current ordering. A system can therefore fail through priority corruption rather than sensory blindness.
Give an observer a valid target cue on 80 per cent of trials. On the remaining trials, reverse the target after the cue but before the scene appears. Add a brief alerting sound on half the trials. If arousal uniformly adds capacity, invalidly cued trials should still improve. If arousal sharpens the current priority ordering, valid trials should improve while invalid trials should incur a larger cost, especially when the distractor is physically salient. The crucial interaction is cue validity × distractor strength × arousal. A main effect of the sound is not enough.
Suppose target and distractor sensory responses are unchanged, but an alerting sound makes the observer respond faster and shifts the decision criterion. Accuracy can improve for frequent targets even if sensory competition is untouched. A behavioural result alone would then falsely support a sensory-gain story. Measuring sensitivity and criterion separately, and recording or perturbing competitor representations, is necessary to locate the effect.
The synthesis should not be applied as a universal map of attention. It is strongest when candidates overlap in a demonstrable pool and when target and competitor activity can be measured. It is weaker for sustained vigilance, internally directed thought, divided attention across independent modalities or tasks dominated by serial motor bottlenecks. It also says nothing by itself about conscious experience. A system can allocate, amplify and report information without this mechanism settling whether anything is felt.
stateDiagram-v2 [*] --> Claim state "Scarcity is a relation between<br/>signals" as Claim state "Why the denominator matters" as Test state "Attention changes more than<br/>mean firing" as Revision Claim --> Test: expose mechanism Test --> Decision: evidence survives Test --> Revision: rival survives Revision --> Claim: narrow or rebuild Decision --> [*]
How to test the mechanism
A factorial test, not a better attention score
A mechanism is not established because a cue improves accuracy. That result is compatible with several stories: sensory selection, a later decision bias, faster motor preparation, general alerting or a change in response caution. The useful experiment must force those stories to disagree.
Place a target and distractor inside a demonstrably shared representational pool. Cross three variables. First, use valid and invalid priority cues. Second, vary distractor strength or overlap. Third, vary arousal within a safe, controlled range, or perturb a candidate neuromodulatory pathway in an appropriate animal preparation. Measure target and competitor activity, perceptual sensitivity, decision criterion, reaction time and the timing of each effect.
The allocation-before-amplification account makes a directed prediction. A valid priority cue should raise the target and lower the competitor, with the suppression becoming larger when the distractor contributes more strongly to the pool. A state change that sharpens competition should widen the existing response margin. It should therefore help when the target is correctly prioritised and can hurt when an invalid cue makes the distractor lead. The strongest evidence is a coupled neural signature that precedes the decision, not a main effect on accuracy.
Timing supplies a second intervention. Deliver the cue early enough to alter sensory competition on some trials, but after the first competitive response on others. The same cue content should then produce different signatures. An early cue can change the shared denominator, so target enhancement and competitor suppression should unfold together. A late cue may still improve report by reweighting readout, yet it should leave the earlier competitor response intact.
This within-task comparison controls for instruction, motivation and target identity. It also prevents anatomy from doing the explanatory work: a frontoparietal signal is counted as allocation only when its arrival changes the competition at the predicted moment. Add a neutral-cue condition to estimate the unmanipulated ordering, and repeat the contrast across weak and strong distractors. The result is a causal fingerprint rather than a loose correlation between a brain region, an arousal marker and better performance.
Scroll within the matrix to compare all rival mechanisms.
| Observation | Allocation before normalisation | Post-output spotlight | Global capacity or alerting | Decision-criterion change |
|---|---|---|---|---|
| Target representation rises after a valid cue | Expected | Expected | Possible for target and distractor | Not required |
| Competitor representation falls as target priority rises | Required when the pool is shared | Not predicted | Not predicted | Not predicted |
| Effect grows with distractor strength or receptive-field overlap | Expected | Weak unless another interaction is added | Not necessary | Not necessary |
| Arousal widens the current target–distractor margin | Expected in the proposed gain regime | Possible, but without competitor suppression | Both may improve | May change speed or choices only |
| Sensitivity is stable while response criterion shifts | Evidence against a purely sensory account | Compatible with a late effect | Compatible | Directly predicted |
| Effect appears only after sensory competition is resolved | Weakens the account | Supports a later spotlight or readout | Ambiguous | Supports a decision account |
Strengthening observation: raising target priority suppresses a simultaneously represented competitor, and an independent state manipulation scales that coupled effect before choice formation. Weakening result: priority changes only target report or motor output while competitor representations remain invariant. Rival generator: a decision-bound shift can improve hit rate and speed without altering sensory allocation. Do not apply: when candidates occupy independent pools or the bottleneck is demonstrably motor, mnemonic or temporal rather than representational.
An executable ordering assay
The lab below exposes the hidden ordering directly. In the pre-normalisation model, sensory drive, priority and precision are multiplied before the candidates enter one denominator. In the control model, the same priority multiplier is applied only after competition. Move the target-priority slider. The target rises in both models. Only the pre-pool model predicts that the competitor falls.
Live lab: pre-pool allocation versus post-pool spotlight
All values are synthetic. Change one control at a time, then inspect the competitor response.
Fixed controls: distractor priority 1.00, distractor precision 0.90 and residual term σ = 0.20. State selectivity sets γ = 1 + 2.5A.
Simulation summary will update as controls move.
A positive ordering signature permits a narrower conclusion than “attention has been explained”. It supports a family of pre-pool competitive mechanisms under the tested geometry. It does not identify a receptor, prove a precision code or establish conscious selection. A negative result means that this mechanism is not sufficient in that preparation. The candidates may not share a pool, the manipulation may arrive too late, or another bottleneck may dominate. The null is informative only when those alternatives were measured rather than assumed away.
#!/usr/bin/env python3
"""Synthetic biased-competition lab for Paper 69.
The model is deliberately small. It tests an ordering question:
Does priority alter candidate drive before a shared suppressive pool,
or does a spotlight boost the target only after competition is over?
Run:
python paper-69-biological-attention-scarcity-lab.py
python paper-69-biological-attention-scarcity-lab.py --no-plot
"""
from __future__ import annotations
from dataclasses import dataclass
from typing import Iterable, Sequence
import argparse
import numpy as np
@dataclass(frozen=True)
class Candidate:
"""One competing representation in the synthetic circuit."""
sensory_drive: float
priority: float = 1.0
precision: float = 1.0
def validate(self) -> None:
if self.sensory_drive < 0:
raise ValueError("sensory_drive must be non-negative")
if self.priority <= 0:
raise ValueError("priority must be positive")
if self.precision <= 0:
raise ValueError("precision must be positive")
@dataclass(frozen=True)
class AllocationResult:
drives: np.ndarray
responses: np.ndarray
selectivity: float
residual_share: float
def _validated(candidates: Sequence[Candidate]) -> None:
if len(candidates) < 2:
raise ValueError("at least two candidates are required")
for candidate in candidates:
candidate.validate()
def pre_normalisation_allocation(
candidates: Sequence[Candidate],
arousal: float,
sigma: float = 0.20,
selectivity_span: float = 2.5,
) -> AllocationResult:
"""Priority and precision change drive before divisive normalisation.
arousal is a bounded synthetic control in [0, 1]. It increases the
exponent that separates strong from weak candidates. This is not a
biochemical model of a specific receptor or nucleus.
"""
_validated(candidates)
if not 0.0 <= arousal <= 1.0:
raise ValueError("arousal must be in [0, 1]")
if sigma <= 0:
raise ValueError("sigma must be positive")
drives = np.array(
[c.sensory_drive * c.priority * c.precision for c in candidates],
dtype=float,
)
selectivity = 1.0 + selectivity_span * arousal
powered = np.power(drives, selectivity)
denominator = sigma + powered.sum()
responses = powered / denominator
residual = sigma / denominator
if np.any(responses < 0) or responses.sum() > 1.0 + 1e-12:
raise AssertionError("normalisation invariant violated")
return AllocationResult(drives, responses, selectivity, residual)
def post_normalisation_spotlight(
candidates: Sequence[Candidate],
arousal: float,
sigma: float = 0.20,
selectivity_span: float = 2.5,
) -> AllocationResult:
"""Control model: competition occurs first, then priority boosts outputs.
Precision is retained in the sensory evidence, but priority does not enter
the shared denominator. Responses are not re-normalised after the boost,
because doing so would silently reintroduce pre-pool competition.
"""
_validated(candidates)
if not 0.0 <= arousal <= 1.0:
raise ValueError("arousal must be in [0, 1]")
drives = np.array(
[c.sensory_drive * c.precision for c in candidates], dtype=float
)
selectivity = 1.0 + selectivity_span * arousal
powered = np.power(drives, selectivity)
base = powered / (sigma + powered.sum())
priorities = np.array([c.priority for c in candidates], dtype=float)
responses = base * priorities
residual = max(0.0, 1.0 - float(base.sum()))
return AllocationResult(drives, responses, selectivity, residual)
def ordering_signature(
distractor_levels: Iterable[float],
target_priority: float,
arousal: float,
) -> list[dict[str, float]]:
"""Return the target and distractor responses across distractor strength."""
rows: list[dict[str, float]] = []
for distractor in distractor_levels:
candidates = [
Candidate(0.62, priority=target_priority, precision=0.82),
Candidate(float(distractor), priority=1.0, precision=0.90),
]
pre = pre_normalisation_allocation(candidates, arousal)
post = post_normalisation_spotlight(candidates, arousal)
rows.append(
{
"distractor": float(distractor),
"pre_target": float(pre.responses[0]),
"pre_distractor": float(pre.responses[1]),
"post_target": float(post.responses[0]),
"post_distractor": float(post.responses[1]),
}
)
return rows
def run_invariant_tests() -> None:
"""Small tests that expose the causal distinction between the models."""
low_cue = [Candidate(0.62, 1.0, 0.82), Candidate(0.70, 1.0, 0.90)]
high_cue = [Candidate(0.62, 1.6, 0.82), Candidate(0.70, 1.0, 0.90)]
pre_low = pre_normalisation_allocation(low_cue, arousal=0.55)
pre_high = pre_normalisation_allocation(high_cue, arousal=0.55)
post_low = post_normalisation_spotlight(low_cue, arousal=0.55)
post_high = post_normalisation_spotlight(high_cue, arousal=0.55)
assert pre_high.responses[0] > pre_low.responses[0]
assert pre_high.responses[1] < pre_low.responses[1]
assert post_high.responses[0] > post_low.responses[0]
assert np.isclose(post_high.responses[1], post_low.responses[1])
def main() -> None:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
"--no-plot", action="store_true", help="print the table without opening a chart"
)
args = parser.parse_args()
run_invariant_tests()
rows = ordering_signature(np.linspace(0.25, 1.00, 16), 1.55, 0.60)
print("distractor,pre_target,pre_distractor,post_target,post_distractor")
for row in rows:
print(
f"{row['distractor']:.3f},{row['pre_target']:.3f},"
f"{row['pre_distractor']:.3f},{row['post_target']:.3f},"
f"{row['post_distractor']:.3f}"
)
print("Invariant tests: PASS")
if args.no_plot:
return
import matplotlib.pyplot as plt
x = [row["distractor"] for row in rows]
plt.figure(figsize=(8.4, 5.2))
plt.plot(x, [row["pre_target"] for row in rows], label="Target: pre-pool bias")
plt.plot(
x,
[row["pre_distractor"] for row in rows],
label="Distractor: pre-pool bias",
)
plt.plot(
x,
[row["post_distractor"] for row in rows],
linestyle="--",
label="Distractor: post-pool spotlight",
)
plt.xlabel("Distractor sensory drive")
plt.ylabel("Synthetic response")
plt.title("Ordering signature under shared normalisation")
plt.legend()
plt.tight_layout()
plt.show()
if __name__ == "__main__":
main()
Save the script as paper-69-biological-attention-scarcity-lab.py. Run python -m pip install numpy matplotlib, then execute the file. Use --no-plot for a comma-separated table and invariant tests only. The tests assert the paper’s decisive distinction: pre-pool priority lowers the competitor, whereas post-pool priority leaves it unchanged.
Optional depth: assumptions and extended tests
The exponent γ is a synthetic selectivity control, not a claim that arousal always implements exponentiation. The multiplicative precision term is likewise a modelling bridge. Replace either with another monotonic function and ask whether the qualitative ordering signature survives. Useful extensions include separate suppressive pools, correlated sensory noise, time-varying cues and a drift-diffusion readout that separates sensitivity from criterion.
Three failure injections are especially revealing. Set target priority below one after a valid cue to model corrupted top-down control. Delay the priority signal until after normalisation to model late readout. Give target and distractor separate denominators to model independent resources. Each intervention removes or reverses a different prediction rather than merely reducing overall performance.
Do not call a manipulation an allocation mechanism until it changes both sides of a measured competition at the predicted time. Target enhancement alone is compatible with too many rival generators. Add distractor load, invalid cues, sensitivity–criterion decomposition and an upstream readout before assigning the effect to biological attention.