Files
2026-09-30 12:08:25 +08:00

157 lines
11 KiB
Python

"""Recheck raw evidence and seal this explicit scheduling hypothesis, not learning."""
from context import ROOT, MODEL, EXP, AG, CFG, check, save, read, digest, integrity, budget, seal
def optional(path):
return read(path) if path.exists() else None
def main():
from compare_timing import compare, compare_gpu_repeats
from calibration import control_identity, summarize
check(); budget()
arms = ['delay' + str(delay) for delay in CFG['delays_steps']]
expected_cases = CFG['fixtures'] + CFG['calibration']['full_oracle_probes']
comparisons, repeats, controls, components = {}, {}, {}, {}
for arm in arms:
for name in expected_cases:
path = EXP / 'audit' / f'compare-{arm}-{name}.json'
if path.exists():
actual = compare(EXP / 'cases' / arm / name, EXP / 'gpu' / arm / (name + '-r0'), EXP / 'oracle' / arm / name, None)
assert actual == read(path), 'Changed raw oracle evidence: ' + arm + '/' + name
comparisons[arm + '/' + name] = actual['pass_all']
path = EXP / 'component-audit' / arm / (name + '.json')
if path.exists():
report = read(path)
assert set(report.get('input_sha256', {})) == {'state.npz', 'summary.json',
'apl-drive.float32.npy', 'apl-state.float32.npy', 'apl-inhibition.float32.npy'}
for filename, sha in report['input_sha256'].items():
assert digest(EXP / 'gpu' / arm / (name + '-r0') / filename) == sha
assert set(report.get('matrix_checks', {})) == {'input_matrix', 'output_matrix', 'input_raw', 'output_raw',
'kc_globals', 'apl_globals', 'pn_globals', 'apl_out_ids', 'input_scale', 'output_scale'}
assert set(report.get('ast_replay_bitwise_exact', {})) == {'drive', 'state', 'inhibition'}
assert set(report.get('float64_measurement', {})) == {'drive', 'state', 'inhibition'}
actual_pass = bool(not report.get('error') and all(report['matrix_checks'].values()) and
all(report['ast_replay_bitwise_exact'].values()) and report['theoretical_bound']['applicable'] and
all(metric['bound_violations'] == 0 for metric in report['float64_measurement'].values()))
assert report['pass_all'] == actual_pass
components[arm + '/' + name] = actual_pass
for name in CFG['fixtures']:
for repeat in range(1, CFG['fixture_repeats']):
path = EXP / 'audit' / f'repeat-{arm}-{name}-r{repeat}.json'
if path.exists():
actual = compare_gpu_repeats(EXP / 'gpu' / arm / (name + '-r0'), EXP / 'gpu' / arm / f'{name}-r{repeat}', None)
assert actual == read(path), 'Changed raw repeat evidence'
repeats[f'{arm}/{name}-r{repeat}'] = actual['pass_all']
for name in expected_cases:
path = EXP / 'audit' / f'control-{name}.json'
if path.exists():
actual = control_identity(EXP / 'gpu/delay0' / (name + '-r0'), AG / 'gpu' / (name + '-r0'), EXP / 'cases/delay0' / name)
assert actual == read(path), 'Changed delay0 control evidence'
controls[name] = actual['pass_all']
origin = optional(EXP / 'origin-audit/summary.json')
cal_records = read(EXP / 'protocol/calibration-cases.json')
origin_complete = False
if origin:
expected_origin = {row['name']: row for row in cal_records}
assert len(expected_origin) == len(cal_records) == 60
assert len(origin['trials']) == 60 and {row['case'] for row in origin['trials']} == set(expected_origin)
for row in origin['trials']:
original = expected_origin[row['case']]
assert row['repeat'] == 0 and row['ALLN_targets'] == 420 and row['pass_all']
assert set(row['exact']) == {'step', 'neuron_idx', 'counts', 'v', 'g', 'ref'} and all(row['exact'].values())
assert all(row[key] == original[key] for key in ('mode', 'odor_id', 'seed'))
origin_complete = True
for row in origin['trials']:
trial = EXP / 'origin-audit' / row['case']
assert digest(trial / 'summary.json') == row['summary_sha256']
for payload in read(trial / 'output-hashes.json'):
assert digest(trial / payload['path']) == payload['sha256']
for filename, sha in read(trial / 'summary.json')['input_sha256'].items():
assert digest(ROOT / filename) == sha
shift = optional(EXP / 'audit/shift-gate.json')
shift_complete = False
if shift:
expected_shift = {(name, delay) for name in CFG['fixtures'] + [row['name'] for row in cal_records] for delay in CFG['delays_steps']}
assert len(shift['records']) == len(expected_shift) == 136
assert {(row['case'], row['delay_steps']) for row in shift['records']} == expected_shift
assert all(row['pass_all'] for row in shift['records'])
shift_complete = True
from shift_audit import transport
import numpy as np
for row in shift['records']:
source = AG / 'gpu' / (row['case'] + '-r0') / 'apl-inhibition.float32.npy'
assert digest(source) == row['input_sha256']
_, _, actual = transport(np.load(source, mmap_mode='r', allow_pickle=False), row['delay_steps'])
assert all(row[key] == value for key, value in actual.items())
cal = optional(EXP / 'calibration/summary.json')
if cal is not None:
assert summarize(out_json=None) == cal, 'CAL scientific evidence changed'
expected = {arm + '/' + name for arm in arms for name in expected_cases}
expected_repeats = {f'{arm}/{name}-r{repeat}' for arm in arms for name in CFG['fixtures'] for repeat in range(1, CFG['fixture_repeats'])}
numerical = bool(origin_complete and origin['pass_all'] and shift_complete and shift['pass_all'] and
set(comparisons) == set(components) == expected and set(repeats) == expected_repeats and
set(controls) == set(expected_cases) and all(comparisons.values()) and all(components.values()) and
all(repeats.values()) and all(controls.values()))
gates = {name: optional(EXP / 'audit' / (name + '-gate.json')) for name in ('fixtures', 'probes', 'calibration')}
numerical = numerical and all(gates[name] and gates[name]['pass_all'] for name in ('fixtures', 'probes'))
cal_execution = bool(cal and cal['execution_gate_pass'] and gates['calibration'] and gates['calibration']['pass_all'])
treatment_pass = bool(cal and cal.get('arms', {}).get('delay18', {}).get('original_representation_gate_pass', False))
baseline_pass = bool(cal and cal.get('arms', {}).get('delay0', {}).get('original_representation_gate_pass', False))
frozen = read(EXP / 'regression/frozen-five.json')
after = integrity()
save(EXP / 'regression/old-integrity-after.json', after)
oldpass = bool(frozen['pass_all'] and all(row['pass'] for row in after.values()))
if not oldpass:
status = 'FAIL-FROZEN-INTEGRITY-OR-REGRESSION'
elif numerical and cal_execution:
status = 'PASS-FIXED-CAL-APL-TIMING-HYPOTHESIS' if treatment_pass else 'FAIL-FIXED-CAL-APL-TIMING-HYPOTHESIS'
elif (any(not passed for group in (comparisons, components, repeats, controls) for passed in group.values()) or
any(report is not None and not report['pass_all'] for report in (origin, shift, *gates.values())) or
cal is not None and not cal['execution_gate_pass']):
status = 'FAIL-NUMERICAL-OR-CONTROL-GATE'
else:
status = 'INCOMPLETE-NUMERICAL-OR-CAL-EXECUTION'
measurements = []
for path in sorted((EXP / 'gpu').glob('*/*/summary.json')):
summary = read(path)
measurements.append(dict(arm=path.parent.parent.name, run=path.parent.name,
**{key: summary[key] for key in ('case', 'total_spikes', 'accepted_requests', 'nodes', 'edges',
'diagnostic_simulation_seconds', 'peak_allocated_vram_bytes')}))
result = dict(status=status, numerical_gate_pass=bool(numerical), full_CAL_execution_gate_pass=cal_execution,
delay0_representation_pass=baseline_pass, delay18_representation_pass=treatment_pass,
origin_audit=origin, fixed_trace_shift=shift, gates=gates, comparisons=comparisons,
repeats=repeats, controls=controls, components=components, calibration=cal,
stopped=[dict(path=str(path.relative_to(EXP)), report=read(path)) for path in sorted((EXP / 'audit').glob('stopped-*.json'))],
old_frozen_integrity_and_five_reference_pass=oldpass, measurements=measurements,
unchanged_APL_parameters=CFG['apl'], explicit_hypothesis=CFG['hypothesis'],
delay_steps=CFG['delays_steps'], biological_delay_measured=False,
APL_nonKC_fast_edges_unreplaced=1212, shared_APL_arithmetic_oracle_limitation=True,
whole_brain_equal_inhibition_integral_claim=False, universal_equivalence_claim=False,
heldout_generalization_tested=False, learning_achieved=False, candidate_generated=False,
payload_bytes_before_manifest=budget(),
next_gate='Independent seeds and novel-odor representation; then credit specificity and functional learning' if numerical and cal_execution and treatment_pass
else 'Report the first failed gate for this fixed hypothesis; no tuning or conditioning promotion')
save(EXP / 'audit/final-status.json', result)
with (EXP / 'REPORT.md').open('x', encoding='utf-8') as stream:
stream.write('\n'.join(['# Phase 4AJ — fixed graded-APL timing branch', '', f'Status: `{status}`.', '',
f'Numerical gate: {numerical}. Complete both CAL arms: {cal_execution}.',
f'Original representation gate: delay0={baseline_pass}; delay18={treatment_pass}.',
'Only generated h application time changes: zero versus 18 steps. No brain gain, input, learning or mask change.',
'This is an engineering scheduling hypothesis, not measured MaleCNS APL delay. It delays PN- and KC-derived h together.',
'Finite stored generated samples are preserved in applied output or pending tail; the brain is not advanced to flush the tail.',
'Closed-loop generated h and accepted requests can differ between arms; equal total inhibition is not assumed.',
'Independent Brian LIF and candidate share legacy Torch APL arithmetic; component and separate delay-queue audits qualify this limit.',
'Original fast APL mask still leaves 1,212 non-KC edges unreplaced. No silent scope change.',
'The origin audit identifies timed real-edge antecedents, not unique or necessary biological causes.',
f'Frozen checksums and five reference trials: {oldpass}.',
'Costs include diagnostic synchronization, IPC, hashes and tracing; these are not production runtime benchmarks.',
'No heldout trajectories, conditioning, learned model, reward interface, game, decoder or candidate.',
'Next gate: ' + result['next_gate'], '']))
check(); seal(MODEL); seal(EXP)
print(status, flush=True)
if __name__ == '__main__':
main()