Files
digital-drosophila/models/male-cns-lif/apl-timing-lab-v1/shift_audit.py
T
2026-09-30 12:08:25 +08:00

45 lines
2.1 KiB
Python

"""Fixed sealed-trace transport check; no closed-loop dynamics or gain search."""
import hashlib
import numpy as np
from context import AG, EXP, CFG, check, read, save, digest, budget
from timing_queue import TimingQueue, audit_sequence
def transport(generated, delay):
if generated.ndim != 2 or generated.dtype != np.float32:
raise ValueError('Expected stored float32 generated h')
queue = TimingQueue(delay, generated.shape[1])
applied = np.empty_like(generated)
for tick, row in enumerate(generated):
applied[tick] = queue.push(row, tick)
pending = queue.pending()
report = audit_sequence(generated, applied, pending, delay)
report.update(queue.metadata())
report['applied_bytes_sha256'] = hashlib.sha256(applied.tobytes()).hexdigest()
report['pending_bytes_sha256'] = hashlib.sha256(pending.tobytes()).hexdigest()
return applied, pending, report
def main():
check()
assert read(EXP / 'origin-audit/summary.json')['pass_all']
names = CFG['fixtures'] + [r['name'] for r in read(EXP / 'protocol/calibration-cases.json')]
records = []
for name in names:
path = AG / 'gpu' / (name + '-r0') / 'apl-inhibition.float32.npy'
generated = np.load(path, mmap_mode='r', allow_pickle=False)
assert generated.shape == (read(AG / 'cases' / name / 'spec.json')['steps'], 4064)
for delay in CFG['delays_steps']:
_, _, report = transport(generated, delay)
records.append(dict(case=name, delay_steps=delay, input_sha256=digest(path), **report))
save(EXP / 'audit/shift-gate.json', dict(pass_all=all(r['pass_all'] for r in records),
records=records, input_trace_count=len(names), no_new_brain_trajectory=True,
no_future_APL_advance=True, closed_loop_equal_integral_claim=False,
preservation='Every generated finite-window sample retained bitwise in applied or chronological pending slots; initial padding is +0'))
budget()
print('PASS: 68 fixed generated traces, 2 exact shifts; no new brain trajectories', flush=True)
if __name__ == '__main__':
main()