summaryrefslogtreecommitdiff
path: root/experiments/finalize_claims.sh
blob: 047e86c402c1e42fa9695ea2a9566af91eb2bff3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env bash
# Fail-fast finalization for the two publication-facing claims. This command
# intentionally fails until every strict figure cell has clean seeds 0..4.
set -eu

cd "$(dirname "$0")/.."
TRAIN_PY=/home/yurenh2/miniconda3/envs/ep_pascal/bin/python3
PLOT_PY=/home/yurenh2/miniconda3/bin/python
OUTDIR=results/figs
SUMMARY=results/audited_tables.md
MANIFEST="$OUTDIR/main_figure_manifest.json"

mkdir -p "$OUTDIR"

# Run the strongest gate first. It validates exact seed sets, provenance,
# protocols, finite metrics, and only then writes figures + hash manifest.
"$PLOT_PY" experiments/plot_main_figures.py \
  --results results --outdir "$OUTDIR"

# These claim boundaries were frozen before the missing d5/d10/d20 cells were
# generated.  They turn "Pareto endpoint" and "scales" into falsifiable gates
# rather than captions selected after looking at the completed trajectories.
# Depth grows 12x from d5 to d60; the 15x wall allowance is a 25% systems-noise
# margin.  Accuracy retention permits at most one percentage point of loss.
jq -e '
  .strict == true and
  (.missing_cells | length) == 0 and
  .statistics.sdil_is_high_accuracy_frontier_endpoint == true and
  .statistics.depth5_to_depth60.SDIL.d60_minus_d5_accuracy_points_mean >= -1.0 and
  .statistics.depth5_to_depth60.SDIL.d60_over_d5_wall_geomean <= 15.0 and
  .statistics.cifar_scaling.SDIL_d60.accuracy_percent_mean >
    .statistics.cifar_scaling.FA_d60.accuracy_percent_mean and
  .statistics.cifar_scaling.SDIL_d60.accuracy_percent_mean >
    .statistics.cifar_scaling.DFA_d60.accuracy_percent_mean and
  .statistics.cifar_scaling.SDIL_d60.early_alignment_mean >
    .statistics.cifar_scaling.DFA_d60.early_alignment_mean and
  .statistics.paired_gap_to_bp.BP_minus_SDIL_d60.accuracy_point_gap_mean <= 1.5
' "$MANIFEST" >/dev/null
echo "predeclared Pareto/scaling claim gates passed"

"$TRAIN_PY" experiments/baseline_smoke.py
"$TRAIN_PY" experiments/synthetic_smoke.py
"$TRAIN_PY" experiments/protocol_smoke.py
"$TRAIN_PY" experiments/smoke.py
"$TRAIN_PY" experiments/verify_theory.py

summary_tmp=$(mktemp /tmp/sdil_audited_tables.XXXXXX)
trap 'rm -f "$summary_tmp"' EXIT
"$TRAIN_PY" experiments/analyze_verified.py --results results > "$summary_tmp"
mv "$summary_tmp" "$SUMMARY"
trap - EXIT

git diff --check
echo "finalized audited claims -> $OUTDIR and $SUMMARY"