{ "version": "Brian2 2.5.1", "source_commit": "577bb35ec677947d6f3d4af367a8a4b3b88815ee", "method": "Read official source and tests; no executable oracle run", "claims": [ { "claim": "Every differential variable flagged unless refractory has writes guarded by not_refractory; this includes g. Reset explicitly bypasses the guard.", "source": "https://github.com/brian-team/brian2/blob/577bb35ec677947d6f3d4af367a8a4b3b88815ee/brian2/groups/neurongroup.py", "lines_1based": [[794,802],[334,351]] }, { "claim": "Default non-legacy refractory release compares integer elapsed steps >= refractory steps; with 2.2 ms and dt 0.1 ms release is n+22.", "source": "https://github.com/brian-team/brian2/blob/577bb35ec677947d6f3d4af367a8a4b3b88815ee/brian2/groups/neurongroup.py", "lines_1based": [[178,198],[215,239]] }, { "claim": "Default schedule places groups before thresholds, then synapses, then resets. Newly accepted g at n+22 is integrated in the next groups slot; this is not a 23-step refractory duration.", "source": "https://github.com/brian-team/brian2/blob/577bb35ec677947d6f3d4af367a8a4b3b88815ee/brian2/core/network.py", "lines_1based": [[34,42]] }, { "claim": "Official tests assert ten-dt refractory gives ten-dt spike spacing and reject same-tick writes on spiking refractory targets.", "source": "https://github.com/brian-team/brian2/blob/577bb35ec677947d6f3d4af367a8a4b3b88815ee/brian2/tests/test_refractory.py", "lines_1based": [[120,127],[232,248]] } ], "caveats": [ "Assumes default schedule/clocks and legacy.refractory_timing=False.", "The version 2.5.1 prose refractory documentation uses an inconsistent <= example; use pinned implementation and tests for the release boundary.", "Synthetic reset/refractory ablations in this audit retain frozen Euler and arrival timing; they are not a Brian2 reproduction." ] }