- OVERNIGHT_NOTES.md: read-this-first TL;DR for morning review. Points at journal.pdf (32 pages, latest entry has all results), validate_pj_heatup.png, and the Pluto app. Lists priority-1 actions (look at data, decide on refinement vs accept-300s-tube) and priority-2 followups (scram reach ingestion, entry refinement, saturation hybrid, SOS barriers, alpha parametric). - reach_heatup_pj_tight.jl: script committed but not yet run tonight. Tighter X_entry on T_c (width 6 K vs baseline 14 K) to test whether the low-T_avg-trip tube-looseness is entry-box-width driven or reach-growth driven. Scram PJ still compiling as of this commit; will land separately when it completes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
110 lines
4.7 KiB
Markdown
110 lines
4.7 KiB
Markdown
# Overnight session summary
|
||
|
||
**Date:** 2026-04-20 → 2026-04-21 (overnight autonomous session)
|
||
|
||
Read this first when you open the laptop. Full details in
|
||
`journal/journal.pdf` (newest entry: `2026-04-20-overnight-prompt-jump.tex`).
|
||
|
||
## TL;DR
|
||
|
||
1. **Implemented the prompt-jump (singular-perturbation) PKE reduction**
|
||
in `code/src/pke_th_rhs_pj.jl`. State drops 10 → 9 (n algebraic).
|
||
Validated against full 10-state: max 0.1% relative error on n, max
|
||
7 mK on temperatures over 50 minutes of heatup. See
|
||
`docs/figures/validate_pj_heatup.png`.
|
||
|
||
2. **Nonlinear reach on heatup PJ: 30× horizon improvement.**
|
||
- Before: full-state hit prompt-neutron stiffness wall at T=10s.
|
||
- After PJ: T=60s and T=300s reach sound, clean.
|
||
- T=1800s+ runs out of 100k step budget but returns a valid partial
|
||
tube.
|
||
- 5 of 6 `inv1_holds` halfspaces discharged at T=300s.
|
||
- The `t_avg_low_trip` (T_c ≥ 280 °C) is violated by the TUBE
|
||
(envelope dips to 272.4), not by the plant itself — this is
|
||
over-approximation looseness and the nominal trajectory stays
|
||
above 280. Refinement options listed in the journal.
|
||
|
||
3. **Scram PJ reach** — script written and running as of commit time.
|
||
Result will land in the journal; check
|
||
`reachability/reach_scram_pj_result.mat` + the latest git commit.
|
||
|
||
4. **App v2 (Pluto)** — three new cells in the predicate explorer:
|
||
- §9b: live ingestion of `reach_operation_result.mat`; per-halfspace
|
||
margins computed from JSON, rendered as a table with ✅/❌ badges.
|
||
- §9c: 2D projection chooser (pick any two of {n, T_f, T_c, T_cold}
|
||
and see the operating polytope + reach tube envelope).
|
||
- §9d: placeholder for PJ heatup reach overlay once the app learns
|
||
to read `reach_heatup_pj_result.mat`.
|
||
|
||
5. **Journal:** now 32 pages, rebuilds cleanly via `latexmk -pdf` in
|
||
`journal/`. Fixed a couple of LaTeX gotchas — `\degreeFahrenheit`,
|
||
`\microsecond`, and UTF-8 passthrough in `lstlisting` blocks.
|
||
|
||
## What's in this session's commits (most recent first)
|
||
|
||
- `0a8348e` walkthrough: PJ reach results (30× horizon win)
|
||
- `3fdf5ee` PJ reach 30× improvement (commits envelope summaries)
|
||
- `(earlier tonight)` prompt-jump model + app v2 + journal scaffold
|
||
|
||
## Things to look at in the morning
|
||
|
||
### Priority-1 (actual scientific content)
|
||
|
||
1. **Pull up `journal/journal.pdf`.** 32 pages, all the deep stuff.
|
||
Most relevant entry: `2026-04-20-overnight-prompt-jump.tex`.
|
||
2. **Look at `docs/figures/validate_pj_heatup.png`** — the visual
|
||
evidence that PJ is a sound reduction for slow heatup.
|
||
3. **Pluto app:**
|
||
```bash
|
||
cd app && julia --project=. -e 'using Pluto; Pluto.run()'
|
||
# open predicate_explorer.jl
|
||
```
|
||
§9b should show live margins from the refreshed reach result.
|
||
4. **Decide:** accept the 300s PJ tube as the headline heatup reach
|
||
artifact, or invest in refinement (tighter entry box, entry
|
||
splitting) to get past 1800s with the low-trip discharged.
|
||
|
||
### Priority-2 (followup ideas)
|
||
|
||
- `code/scripts/reach_heatup_pj_tight.jl` exists (committed but not
|
||
run tonight). Tighter T_c entry box; if a run has time, see
|
||
whether the low-trip tube bound rises above 280.
|
||
- `code/scripts/reach_scram_pj.jl` — scram reach. Either already in
|
||
the commit log by morning, or still running.
|
||
- Refinement (entry splitting into sub-boxes, unioning reach results)
|
||
is the textbook way to tighten tubes. Haven't implemented.
|
||
- Saturation-as-hybrid-sub-mode — still the open item for heatup
|
||
soundness.
|
||
- Polytopic/SOS barrier — still the open item for analytic
|
||
certificate.
|
||
- Parametric α uncertainty — still the open item for robust reach.
|
||
|
||
### What NOT to forget
|
||
|
||
- The PJ reduction introduces a ≤0.1% error. It's documented and
|
||
bounded, but it's an approximation. "Sound w.r.t. PJ dynamics"
|
||
≠ "sound w.r.t. physical plant." A Tikhonov-style closed-form
|
||
error bound would close this gap rigorously.
|
||
- Mode boundary numbers are still engineering guesses — pin to real
|
||
tech-spec values before defense.
|
||
- `reach_heatup_pj_result.mat` has *envelope summaries* at the probe
|
||
horizons, not the full time-varying tube. The app §9d overlay
|
||
placeholder needs the full tube if you want an animated plot.
|
||
|
||
## Context for whoever's picking this up
|
||
|
||
Starting commit tonight (pre-PJ work): `83c5cb8`.
|
||
Current HEAD: `0a8348e` + whatever scram produced.
|
||
Clean working tree expected (commits are atomic per task).
|
||
|
||
MATLAB is gone. Everything is Julia. Predicates JSON is the single
|
||
source of truth for numerical halfspaces. Journal is the narrative
|
||
source of truth. `claude_memory/` has short pointers.
|
||
|
||
Was fun to work on. Go read the overnight entry, grab coffee, pick
|
||
the next lever. 🦎
|
||
|
||
---
|
||
|
||
*— Hacker-Split, overnight 2026-04-20 → 2026-04-21*
|