Architecture restructure from morning review: 1. code/scripts/ subdivided into sim/, reach/, barrier/, plot/. Easier nav; `barrier/` is the natural place for SOS scale-up scripts. 2. Heatup PJ reach variants consolidated behind TOML configs. reach_heatup_pj.jl now takes `--config path/to/config.toml`; configs/heatup/baseline.toml (wide entry, from predicates.json) and configs/heatup/tight.toml (narrow entry, reproduces all-6-halfspaces discharged result). Old reach_heatup_pj_tight.jl and reach_heatup_pj_tight_full.jl deleted (superseded). 3. Reach output .mat files moved from reachability/ to results/. reachability/ now = specs + docs; results/ = ephemeral outputs (gitignored *.mat). README added. 4. OVERNIGHT_NOTES.md archived to claude_memory/2026-04-20-21-overnight- session-summary.md (date range in the filename makes the history clearer). All include() / Pkg.activate() paths in scripts updated for the new depth. Smoke tests pass (reach_operation.jl generates its .mat in the new results/ location; sim_sanity.jl matches MATLAB). Presentation outline for the 20-min prelim talk landed in presentations/prelim-presentation/outline.md. 14-slide assertion- evidence format targeting OT-informed cybersecurity audience. Each slide: one declarative assertion + one figure. Outline includes which figures already exist and which need to be created, timing checkpoints, cybersecurity angle to emphasize, and Q&A prep. New config configs/heatup/with_steam_dump.toml + its companion scripts/reach/reach_heatup_pj_sd.jl (12-state RHS with Q_sg as an augmented bounded parameter x[10] and time as x[11]). Kicks off point 3 from morning review. Next up: scram X_entry expansion (morning point 2) — LOCA scenario + union of mode reach envelopes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
396 lines
17 KiB
Markdown
396 lines
17 KiB
Markdown
# Preliminary Example Presentation — Assertion-Evidence Outline
|
||
|
||
**Format:** Assertion-evidence (Alley). Each slide: one declarative sentence
|
||
at the top, one piece of visual evidence below. No bullet soup.
|
||
|
||
**Duration:** 20 minutes. ~12 slides at ~1.5 min each (60 s typical, up to
|
||
2 min for the heavier ones).
|
||
|
||
**Audience:** OT-informed cybersecurity experts. Mostly CS, some control-theory
|
||
familiarity, very little reactor-physics background. Can assume fluency with:
|
||
LTL, automata, model-checking, reachability (as a concept), SMT/SAT. Must
|
||
explain: PKE, reactivity, precursors, hybrid systems.
|
||
|
||
**Running thread:** FRET natural-language requirement → LTL → synthesized
|
||
discrete controller → continuous plant → per-mode reach-avoid proof
|
||
→ hybrid correctness by composition.
|
||
|
||
**Design principles:**
|
||
- **Plots over bullets.** Every result slide anchors on one figure.
|
||
- **Physical intuition before math.** Reactor basics before PKE.
|
||
- **Honest limitations boxed on each result slide.** Audience are cyber
|
||
folks — they respect limits more than triumphs.
|
||
- **CS vocabulary by default, engineering terms defined inline.**
|
||
- **End with the seam**, not with a victory lap. The thesis question is
|
||
"how do discrete proofs and continuous proofs compose?" not "we verified
|
||
everything."
|
||
|
||
---
|
||
|
||
## Slide 1 — Title + hook
|
||
|
||
**Assertion:** Verified hybrid control for nuclear startup is a real problem
|
||
with no deployed solution.
|
||
|
||
**Evidence:** Title block + a single image showing a control-room board of
|
||
old-school analog gauges adjacent to a digital SCADA screen. Caption: "The
|
||
gap we're filling."
|
||
|
||
**Speak:** Introduce self + advisor + NRC fellowship context. Name the problem:
|
||
nuclear reactor operations are 70-80% human-error-driven at severe-accident
|
||
level (Chernobyl, TMI, Fukushima all primarily human factors). Plants run on
|
||
paper procedures that have no formal verification. The most advanced work to
|
||
date (HARDENS, NRC-funded) verified the discrete trip system in isolation and
|
||
stopped there. This talk: a preliminary example of bridging discrete
|
||
requirements all the way to continuous-state safety proofs, with the seam
|
||
between them as the research contribution.
|
||
|
||
**Reference:** thesis §2, ¶1-4. Cites Kemeny1979, Hogberg_2013, Kiniry2024.
|
||
|
||
**Figures to make:** find or compose the control-room image.
|
||
|
||
---
|
||
|
||
## Slide 2 — The hybrid-systems gap
|
||
|
||
**Assertion:** Existing tools verify either discrete *or* continuous systems,
|
||
never the seam between them.
|
||
|
||
**Evidence:** Two-column diagram. Left column: discrete (FRET, Spot,
|
||
SAL, HARDENS, TLA+). Right column: continuous (MATLAB, Modelica, CORA,
|
||
Flow*, HyTech). A dashed line between them labeled "the bridge problem."
|
||
|
||
**Speak:** HARDENS got to TRL 2-3 on the discrete side alone. Continuous-side
|
||
reach tools exist but assume the discrete controller is given as input. What
|
||
nobody has done: produce an *end-to-end* proof where the discrete controller's
|
||
transitions actually fire in physical time on the modeled plant.
|
||
|
||
**Reference:** thesis §2.2 "Formal Methods", §2.2.1 HARDENS, §2.2.2 Temporal
|
||
Logic. Thesis §2.3 (if exists — continuous methods).
|
||
|
||
---
|
||
|
||
## Slide 3 — Running example: the PWR_HYBRID_3 controller
|
||
|
||
**Assertion:** Our target is a 4-mode hybrid controller that takes a PWR
|
||
from hot standby to full power and back.
|
||
|
||
**Evidence:** The DRC state diagram (from `fret-pipeline/diagrams/PWR_HYBRID_3_DRC_states.png`).
|
||
Four nodes — shutdown, heatup, operation, scram — with labeled transitions.
|
||
|
||
**Speak:** One sentence of nuclear physics: a PWR has neutron population
|
||
(power), coolant temperatures at three locations, and precursor concentrations
|
||
that determine delayed-neutron generation. Startup is shutdown → heatup →
|
||
operation; any fault triggers scram. Mode transitions gated by boolean
|
||
conditions like `t_avg_in_range ∧ p_above_crit ∧ inv1_holds`.
|
||
|
||
Four modes means four *physical* behaviors the plant has to exhibit for
|
||
the discrete logic to be sound. This example stresses every layer of the
|
||
bridge we're building.
|
||
|
||
**Evidence path:** `fret-pipeline/diagrams/PWR_HYBRID_3_DRC_states.png`,
|
||
`fret-pipeline/pwr_hybrid_3.json` for one example requirement.
|
||
|
||
---
|
||
|
||
## Slide 4 — Layer 1: FRET → LTL → synthesized DRC
|
||
|
||
**Assertion:** Natural-language requirements become a verified discrete
|
||
controller automatically.
|
||
|
||
**Evidence:** One-panel figure: left half = snippet of FRET natural language
|
||
("Upon `control_mode = q_heatup ∧ t_avg_in_range ∧ p_above_crit ∧ inv1_holds`
|
||
DRC shall at the next timepoint satisfy `control_mode = q_operation`"), right
|
||
half = the corresponding LTL, bottom = arrow labeled `ltlsynt` pointing to
|
||
the synthesized state-diagram node.
|
||
|
||
**Speak:** FRET compiles natural-language requirements into LTL (Spot
|
||
ecosystem). `ltlsynt` turns LTL into an AIGER circuit representing the
|
||
minimal correct discrete controller. This is well-trodden ground in CS-land;
|
||
our contribution is *using it* on reactor operating procedures — so far
|
||
a formal-methods-free domain.
|
||
|
||
**Evidence path:** `fret-pipeline/README.md`, `pwr_hybrid_3.json` sample
|
||
requirement, `fret-pipeline/circuits/PWR_HYBRID_3_DRC.aag` AIGER circuit.
|
||
|
||
---
|
||
|
||
## Slide 5 — Layer 2: the plant model
|
||
|
||
**Assertion:** A 10-state PKE + thermal-hydraulics model is faithful enough
|
||
for reach analysis and tractable enough to actually compute with.
|
||
|
||
**Evidence:** The state-vector diagram: `x = [n, C_1, ..., C_6, T_f, T_c, T_cold]`
|
||
with arrows showing the coupling — neutron balance → fuel heating → coolant
|
||
transport → feedback to reactivity.
|
||
|
||
**Speak:** Point-kinetic equations + three thermal nodes. 10 states, 1
|
||
control input (rod worth u), 1 disturbance (steam-generator heat removal Q_sg).
|
||
Stiff system: prompt-neutron timescale is 10⁻⁴ s, thermal timescales are
|
||
seconds to minutes. That stiffness becomes critical later — it's what forces
|
||
the singular-perturbation move.
|
||
|
||
Five controllers: one per DRC mode (shutdown, heatup, operation under P, under
|
||
LQR, scram). All Julia, all in `code/src/` + `code/controllers/`.
|
||
|
||
**Evidence path:** `code/src/pke_th_rhs.jl`, `journal/journal.pdf` entry
|
||
2026-04-17 for derivation.
|
||
|
||
**Figures to make:** state-vector coupling diagram (can be ASCII → inkscape).
|
||
|
||
---
|
||
|
||
## Slide 6 — Layer 3: the reach-avoid obligation per mode
|
||
|
||
**Assertion:** Discrete correctness transfers to continuous correctness
|
||
via one reach-avoid obligation per mode.
|
||
|
||
**Evidence:** Taxonomy table from `reachability/WALKTHROUGH.md`:
|
||
|
||
| Mode | Kind | Obligation |
|
||
|---|---|---|
|
||
| shutdown | equilibrium | stay in X_safe forever |
|
||
| heatup | transition | from X_entry, reach X_exit in [T_min, T_max] while maintaining inv1 |
|
||
| operation | equilibrium | stay in X_safe forever under bounded Q_sg |
|
||
| scram | transition | from any mode, drive n safely subcritical in T_max |
|
||
|
||
**Speak:** This is the structural insight. Equilibrium modes → forever-invariance
|
||
proofs. Transition modes → reach-avoid proofs with time budgets. The DRC
|
||
transitions fire iff the reach set enters the right exit predicate. If
|
||
every mode's obligation is discharged, the hybrid system is correct by
|
||
composition. The methodological contribution of the chapter.
|
||
|
||
**Reference:** `reachability/WALKTHROUGH.md` §1, `reachability/predicates.json`
|
||
→ `mode_boundaries`.
|
||
|
||
---
|
||
|
||
## Slide 7 — Operation mode: discharge all 6 safety halfspaces (the win)
|
||
|
||
**Assertion:** Under LQR feedback and ±15% Q_sg variation, the operation-mode
|
||
reach tube discharges every safety halfspace with orders of magnitude of margin.
|
||
|
||
**Evidence:** The two-panel figure `docs/figures/reach_operation_tubes.png`.
|
||
Left: temperature tubes (T_c, T_hot, T_cold) overlaid; the near-zero width
|
||
of T_c visually demonstrates LQR contraction. Right: ΔT_core tube with a
|
||
right-axis in MW showing the power is tight around nominal.
|
||
|
||
Per-halfspace margin table (inset or second slide if space allows):
|
||
|
||
| Halfspace | Limit | Reach max | Margin |
|
||
|---|---:|---:|---:|
|
||
| fuel_centerline | 1200 °C | 328.9 | **+871 K** |
|
||
| t_avg_high_trip | 320 °C | 308.4 | **+11.6 K** |
|
||
| n_high_trip | 1.15 | 1.012 | **+0.14** |
|
||
|
||
**Speak:** LQR contracts the regulated direction (T_c) from 0.1 K to 0.03 K
|
||
halfwidth. Uncontrolled directions (precursors) expand but don't appear in
|
||
any safety predicate. Tightest margin is the high-flux trip at 12% headroom.
|
||
|
||
**Limitations box:** linear-reach of a nonlinear plant — *approximate, not
|
||
sound* yet for the physical plant. That's what the next slides address.
|
||
|
||
**Evidence path:** `code/scripts/reach/reach_operation.jl`,
|
||
`docs/figures/reach_operation_tubes.png`.
|
||
|
||
---
|
||
|
||
## Slide 8 — Quadratic Lyapunov barrier fails structurally
|
||
|
||
**Assertion:** The canonical quadratic Lyapunov barrier cannot certify this
|
||
plant — *even with LQR inside the barrier* — because of plant anisotropy.
|
||
|
||
**Evidence:** Bar chart comparing open-loop vs LQR-closed-loop Lyapunov bound
|
||
on `n_high_trip` direction: OL is 27 million × nominal, CL is 1,242 × nominal.
|
||
Title: "LQR helps 20,000× but both bounds are physically meaningless."
|
||
|
||
**Speak:** Plant has prompt timescale 10⁻⁴ s vs thermal timescale ~10 s.
|
||
Lyapunov matrix P inherits that 10⁴ spread. Resulting ellipsoid stretches
|
||
obscenely along the fast directions when projected to physical coordinates.
|
||
No amount of controller tuning fixes this — it's set by the plant's own
|
||
physics. The ellipsoid geometry cannot match the slab-shaped safe region.
|
||
**This is the motivation for polynomial (SOS) or polytopic barriers.**
|
||
|
||
**Reference:** `code/scripts/barrier/barrier_compare_OL_CL.jl`, journal entry
|
||
2026-04-20 (evening).
|
||
|
||
---
|
||
|
||
## Slide 9 — Prompt-jump reduction makes nonlinear reach tractable
|
||
|
||
**Assertion:** Singular-perturbation reduction of the fast neutronics gives
|
||
us 30× more reach horizon and a rigorous O(Λ) error bound via Tikhonov.
|
||
|
||
**Evidence:** Side-by-side: left panel = validate_pj_heatup.png (empirical:
|
||
PJ and full-state trajectories overlay perfectly over 50 minutes). Right panel
|
||
= the Tikhonov bound written out mathematically:
|
||
$$|x(t) - x_{\mathrm{PJ}}(t)| \leq C \cdot \Lambda = \mathcal{O}(10^{-4})$$
|
||
|
||
**Speak:** Setting dn/dt = 0 and solving algebraically for n gives us
|
||
`n = Λ·Σλᵢ·Cᵢ / (β - ρ)`. State drops from 10 to 9, removes the Λ⁻¹
|
||
stiffness. Reach tool (TMJets) can take steps on thermal timescale instead
|
||
of prompt timescale.
|
||
|
||
The magic: we *prove* the PJ approximation's validity condition (`β - ρ > 0`
|
||
with margin) **as part of the same reach obligation** via the
|
||
`prompt_critical_margin_heatup` halfspace in `inv1_holds`. No hand-waving —
|
||
the reach machinery proves both the safety claim and the approximation's
|
||
soundness together.
|
||
|
||
**Evidence path:** `code/src/pke_th_rhs_pj.jl`, `code/scripts/sim/validate_pj.jl`,
|
||
`journal/` entry 2026-04-21 "Tikhonov bound".
|
||
|
||
---
|
||
|
||
## Slide 10 — First sound nonlinear heatup reach (the second win)
|
||
|
||
**Assertion:** With PJ + a tightened entry box, nonlinear Taylor-model reach
|
||
discharges all 6 `inv1_holds` safety halfspaces over the first 300 s of heatup.
|
||
|
||
**Evidence:** The four-panel `reach_heatup_pj_tubes.png`: temperature tubes
|
||
overlaid, ΔT_core, ρ in dollars (stays between -0.25 $ and -0.05 $ —
|
||
sub-prompt-critical), n decaying.
|
||
|
||
**Speak:** TMJets Taylor-model integration. 12,932 reach-sets, 200 s wall time.
|
||
Tube **stable** — T_c envelope `[281.05, 291.0]` identical at 60 s and 300 s,
|
||
meaning the controller holds the state inside the tube indefinitely. This
|
||
is the first sound (modulo O(Λ) PJ error) nonlinear reach-avoid artifact
|
||
for this plant.
|
||
|
||
**Limitations box:** 300 s of a 5-hour `T_max`. Step budget caps horizon; entry
|
||
refinement (Blanchini-style) is the path to hours.
|
||
|
||
**Evidence path:** `code/scripts/reach/reach_heatup_pj.jl configs/heatup/tight.toml`,
|
||
`docs/figures/reach_heatup_pj_tubes.png`.
|
||
|
||
---
|
||
|
||
## Slide 11 — Degree-4 SOS polynomial barrier, a working proof of concept
|
||
|
||
**Assertion:** A degree-4 polynomial barrier certificate — the structure that
|
||
quadratic Lyapunov cannot provide — works on the operation-mode projection.
|
||
|
||
**Evidence:** Equation block showing the symbolic polynomial
|
||
(abbreviated — the actual 13-term polynomial from `code/scripts/barrier/barrier_sos_2d.jl`).
|
||
Side caption: "CSDP returned OPTIMAL. Solve: ~3 seconds."
|
||
|
||
**Speak:** Polynomials of degree 4 can localize to slab-shaped safety regions
|
||
in a way degree-2 (quadratic) cannot. The Prajna-Jadbabaie formulation: find
|
||
`B(x)` such that `B ≤ 0` on entry, `B ≥ 0` on unsafe, and `∇B·f ≤ 0` on
|
||
`{B=0}`. Sum-of-squares programming reduces this to an SDP. 2D projection
|
||
proof of concept; scaling to full 10-state requires bigger solver (Mosek or SCS).
|
||
|
||
**Reference:** `code/scripts/barrier/barrier_sos_2d.jl`, journal entry
|
||
2026-04-21.
|
||
|
||
---
|
||
|
||
## Slide 12 — The hybrid correctness story, assembled
|
||
|
||
**Assertion:** All four pieces — FRET/synthesis, plant model, reach tubes,
|
||
SOS/polytopic barriers — compose into a hybrid system correctness argument.
|
||
|
||
**Evidence:** The composition picture. DRC state diagram at center; each
|
||
DRC node has an arrow to a "per-mode obligation box" labeled with its proof
|
||
artifact (tube or barrier or certificate). Arrows between nodes = transitions,
|
||
labeled with the predicate polytope. Outer dashed box: "hybrid system
|
||
closed-loop safety."
|
||
|
||
**Speak:** What's been built, what's been proven, what's next. Transition
|
||
correctness between modes is the next thesis-blocking piece — each mode's
|
||
`X_exit` has to be inside the next mode's `X_entry` (with margin). That's an
|
||
inclusion check, not a reach — but it's the final structural piece.
|
||
|
||
---
|
||
|
||
## Slide 13 — Limitations and next steps
|
||
|
||
**Assertion:** This is a preliminary example, not a deployable system.
|
||
|
||
**Evidence:** A two-column list:
|
||
|
||
| What's proven | What's next |
|
||
|---|---|
|
||
| Operation mode safe under ±15% load (approximate, via linear reach) | Nonlinear operation reach (tight SOS barrier, LOCA disturbance) |
|
||
| Heatup PJ reach discharges all 6 safety halfspaces for 300 s | Extend to full 5-hr `T_max`; model steam-dump disturbance |
|
||
| Scram PJ n-decay monotone over 60 s | Expand `X_entry(scram)` to union of all mode tubes + LOCA |
|
||
| Degree-4 SOS barrier on 2D projection | Full 10-state SOS barrier |
|
||
| PJ error rigorously bounded by Tikhonov | Parametric α uncertainty; DNBR correlation |
|
||
|
||
**Speak:** The gap from prelim example to deployable system is well-defined:
|
||
more states, tighter bounds, real tech-spec numbers, hardware-in-the-loop.
|
||
None of these is a research novelty unto itself — they're engineering.
|
||
The research contribution is the composition framework, demonstrated end-to-end
|
||
on a nontrivial running example. Phase 2 of the thesis is filling in the
|
||
gaps and expanding to multiple plants.
|
||
|
||
---
|
||
|
||
## Slide 14 — Questions / acknowledgements
|
||
|
||
**Assertion:** (none — backup slide)
|
||
|
||
**Evidence:** Thanks to advisor, committee, NRC fellowship. Links to:
|
||
repo (gitea), journal PDF, thesis in progress.
|
||
|
||
**Speak:** Open for questions. Expect questions on:
|
||
- "Why not Stateflow/Simulink?" → (have answer prepared; HARDENS used
|
||
Cryptol for a reason — formal tool integration matters)
|
||
- "What's the relationship to LTLMoP / DragonFly?" → (survey answer)
|
||
- "How would this interact with ML components?" → (out of scope for now,
|
||
the whole pitch is *no ML in safety-critical loop*)
|
||
- "What's your threat model for cybersecurity?" → (tie back to OT audience —
|
||
formal methods guarantee the controller's logic; they do not protect the
|
||
comms layer or implementation-level vulns. Mention HARDENS' focus on
|
||
"correctness of implementation" vs our focus on "correctness of
|
||
specification")
|
||
|
||
---
|
||
|
||
## Presentation construction notes
|
||
|
||
### What to build in Beamer later
|
||
- Assertion-evidence template (one sentence at top, centered figure below).
|
||
- Consistent color coding: green for "discharged" / "proved", red for
|
||
"limitation" / "gap", blue for "discrete-layer", amber for "continuous-layer".
|
||
- The composition diagram on slide 12 — this will take the most Tikz work.
|
||
|
||
### Figures that need to be created or dressed up for the talk
|
||
- Slide 1: control-room visual.
|
||
- Slide 2: discrete/continuous tools comparison.
|
||
- Slide 3: use `fret-pipeline/diagrams/PWR_HYBRID_3_DRC_states.png`.
|
||
- Slide 4: FRET → LTL → AIGER panel.
|
||
- Slide 5: 10-state coupling diagram.
|
||
- Slide 7, 10: reuse `docs/figures/reach_*_tubes.png`.
|
||
- Slide 8: bar chart (new, easy matplotlib).
|
||
- Slide 9: reuse `validate_pj_heatup.png`.
|
||
- Slide 11: latex-typeset polynomial + CSDP log snippet.
|
||
- Slide 12: composition diagram (Tikz, will take time).
|
||
|
||
### Cybersecurity angle to emphasize
|
||
- The point the OT audience will care about: this kind of verification
|
||
**constrains what the controller can physically do**. Even if an attacker
|
||
gets past authentication and can inject arbitrary commands, the DRC-plus-
|
||
reach-certified envelope limits how bad things can get *within the
|
||
physical plant*. That's a different assurance axis than the usual
|
||
comms-security one and complements it.
|
||
- Formal methods as defense-in-depth: they catch bugs *before* deployment,
|
||
which reduces attack surface more than any runtime defense.
|
||
- The PJ reduction + Tikhonov approach might be of interest for other
|
||
safety-critical stiff systems (power grid, aerospace).
|
||
|
||
### Things to NOT do
|
||
- Don't get lost in reactor-physics detail. One sentence per physical
|
||
concept; get them to the CS content fast.
|
||
- Don't show code unless it's a slide about *why* the code structure
|
||
matters. Code screenshots are terrible evidence.
|
||
- Don't oversell. Honest limitations at every stage builds trust with
|
||
a skeptical audience.
|
||
- Don't use more than 2 bullet points on any slide. Alley rules.
|
||
|
||
### Timing checkpoints
|
||
- Slide 6 (mode-obligation taxonomy) by minute 8.
|
||
- Slide 10 (first nonlinear reach result) by minute 13.
|
||
- Slide 12 (composition story) by minute 17.
|
||
- Slide 13 (limitations) by minute 19.
|