# RUN-054 — LESR Paper 04: the metric layer and the projection theorem hold (for a cone the descent inequality is an equality); but on the kernel the projected velocity is zero at every placement tried, so the flow never starts — at a generic placement the area falls at 0.390 per unit along its steepest descent

**Arm:** 懸衡 (Xuán Héng) / AMRAL Research Lab
**Date:** 2026-09-27
**Subject:** *LESR Paper 04 — Skew-Constrained Shape Flow and Closure Graph* (LESR-FLOW-04-v0.1, 2026-09-20), with
its flow and graph schemas, sanity-check record, compiler scaffold, state record and VALIDATION. It is evidence, not
a canonical document.

**Tools:** [`run054_lesr_paper04.py`](../code/run054_lesr_paper04.py)

- sympy for the formulas;
- exact cone projections by nonnegative least squares (Moreau's decomposition), and SLSQP for polytopes;
- RUN-053's first-order models and LP on the kernel.

**Logs:** [`run054-lesr-paper04.json`](../data/gate-logs/run054-lesr-paper04.json)

**Verdict: PASS for everything Paper 04 derives. Its flow runs on Paper 03's affine cone, and on the kernel that
cone holds no descent, so the flow never starts:**

- **The projected velocity is zero on the kernel.** For a cone K, V* = P_K(−G) is 0 exactly when ⟨G, V⟩ ≥ 0 on K,
  which is the LP of RUN-053 (container free, witnesses re-placed).
  - That LP has optimum 0, at ξ = 0, at the generic placement, at q† and at the polish Z. So V* = 0 at all three,
    and §17 would call each "local first-order projected stationary".
  - At the generic placement the area is smooth and its gradient has length 0.390. Along the steepest descent the
    area falls at 0.390 per unit, while the affine model charges +0.107 for that move.
  - The cause is RUN-053's: a witness move turns the hull's edges, and the affine cone can only shift them parallel.
- **§15 is an equality for cones.** Taking y = 0 and y = 2V* in the projection inequality gives
  ⟨−G − V*, V*⟩ = 0, so δA[h; V*] = −‖V*‖² exactly.
  - On 200 random polyhedral cones (dimension 3–12, 2–20 faces) with random metrics, the identity holds to
    1.8×10⁻¹³, and V* ≠ 0 in 126 of them.
  - Cones whose polar holds −G give V* = 0 (to 8×10⁻¹⁵).
  - For convex sets that hold 0 but are not cones, only the inequality holds. On 60 random polytopes it is strict every
    time (least slack 0.60).
- **The records say less than the text in two places.** The state lists no "not claimed" items, though the text
  disclaims several: no unique metric (§9), stationarity only relative to the current witness family, chart, modes,
  corridor and linearization (§17), and Ψ not a theorem (§71). It also names Paper 05 by a shorter title than
  Paper 05's own ("… and the No-Slack Boundary Principle").

- **The formulas (W1).** In sympy:
  - the boundary x = hu + h′u′ has x′ = (h + h″)u′, so h + h″ is ds/dθ, the radius of curvature (§3);
  - (1 − ℓ²∂²)e^{imθ} = (1 + ℓ²m²)e^{imθ} (§6);
  - a Fourier-diagonal preconditioner gives ⟨M⁻¹(h + h″), φ⟩_M = δA (§8);
  - ∫(h + h″)cos θ = ∫(h + h″)sin θ = 0 (§10);
  - gε + qε²/2 vanishes at ε = −2g/q and is stationary at −g/q (§34–35).
  - The sanity record's H¹ multipliers (1, 0.8, 0.5, 0.2) and its line step (ε* = 0.4, A = 0.96) are recomputed.
- **The projection (W2).** As above.
- **The kernel (W3).** As above. It uses RUN-053's placements and models; the LP and the gradient are recomputed
  here.
- **The records (W4).**
  - The graph schema's seven edge types are §46's, its five proof statuses §60's, its three views §65's. Its
    required node fields are among §64's.
  - The flow schema's four step caps are §28's.
  - Of its six events, only CERT_PRUNE and COMPUTE_DEFERRED are named in the text. Of the graph schema's five compute
    statuses, only COMPUTE_DEFERRED is.
  - Each of the state's 18 completed items has its section.
- **The scaffold (W5), read and never run.** It has 76 lines.
  - Its H¹ multiplier, area step and §34 decrease cap, min(ε_max, −2g/q), are right.
  - It solves no QP: `qp_payload` returns its inputs.
  - Its ClosureGraph stores nodes and edges, but computes no dominators and no SCC quotient (§49–50, §70), and it
    accepts any string as an edge type.
  - Its GraphEdge has no `mode` or `step`, which §64 lists. It says so: "No heavy optimization is performed here."
- **The package (P1).** All six digests match the bytes and the archive's manifest. The text is UTF-8, with `$…$`
  and `$$…$$` only.

Drill: 13 / 13 plants caught by exactly the named checks, 3 / 3 controls undisturbed, 99 / 99 must-stay-green
assertions held. Each of the seven checks was blinded in turn, and each was reported blind in exactly as many cases
as plants name it.

---

## What the paper claims

1. A metric turns the variation into a gradient: L² gives h + h″ = 1/κ, and H¹_ℓ damps mode m by 1/(1 + ℓ²m²). A
   preconditioner M gives M⁻¹(h + h″). There is no unique natural flow. The L² gradient does not drive
   translations.
2. The flow is the metric projection of a raw drive (area descent, witness pressure, budgeted skew exploration,
   roughness) onto the linearized feasible cone. A nonzero projected velocity is a first-order descent; zero is local
   projected stationarity, relative to the current linearization.
3. Steps are capped four ways (convexity, topology, corridor, witness) and checked by the exact quadratic, with
   rigorous backtracking. Topology walls end a smooth segment, and the flow is hybrid.
4. The research is a typed closure graph. It has seven edge types, REOPEN in red, five proof statuses, a reachable
   subgraph, a dominator spine, expansion and contraction counts, a computation frontier, deferred compute with
   hashes, three views, and an SCC quotient that is a DAG apart from REOPEN.

## W — rebuilt

| check | rebuilt | result |
| --- | --- | --- |
| W1 | the metric formulas and step rules in sympy; the sanity record | all hold |
| W2 | §15 on 200 random cones, on polar cases, on 60 polytopes | an equality for cones; the inequality elsewhere, strict |
| W3 | V* on the kernel via the polar: the LP at three placements; the gradient | V* = 0 everywhere; the gradient has length 0.390 |
| W4 | the two schemas and the state | as the text, except the events, the compute statuses and the missing disclaimers |
| W5 | the scaffold, read | formulas right; no QP, no graph algorithms |

## P — the package

**P1.** The paper's, both schemas', the scaffold's, the sanity record's and the state's digests match the bytes and
the archive's manifest.

## The paper, read

| section | statement | verdict | note |
| --- | --- | --- | --- |
| §2–9 | metric gradients; L², H¹, preconditioners; no unique flow | PASS | W1 |
| §10–12 | the gradient is orthogonal to translations and rotations | PASS | W1, and RUN-053 for rotations |
| §13–14 | the linearized feasible cone; metric projection | PASS | definitions |
| §15–16 | projected descent inequality; nonzero V* descends | PASS | W2; for a cone it is an equality |
| §17 | V* = 0 is projected stationarity, relative to the linearization | PASS as labelled | on the kernel V* = 0 at a non-critical placement (W3) |
| §18–20 | the finite-mode QP | PASS | a specification; the scaffold only packs its inputs |
| §21–26 | raw drives; closure and expansion modes | PASS | definitions |
| §27–37 | step caps, exact step test, line minimizer, backtracking | PASS | W1; the scaffold's cap is §34's |
| §38–42 | walls, transitions, hybrid flow | PASS | definitions |
| §44–70 | the closure graph, dominator spine, counts, deferred compute, views, SCC quotient | PASS as definitions | the scaffold implements storage only |
| §71–72 | Ψ is governance, not a theorem; componentwise closure | PASS | stated so |

## The status registry

Not touched: Paper 04 is not a canonical document.

## The drill

| kind | cases | named checks |
| --- | ---: | --- |
| the descent inequality's sign in the text | 1 | A0 |
| the radius of curvature; a sanity multiplier | 2 | W1 |
| the cone identity; a polar case nonzero | 2 | W2 |
| a descent at the generic placement; a flat gradient | 2 | W3 |
| an edge type added to the schema; an item added to the state | 2 | W4 |
| dominators added to the scaffold; its decrease cap changed | 2 | W5 |
| a VALIDATION digest; the sanity record's bytes | 2 | P1 |

Three controls:

- the unmodified inputs;
- the document and scaffold with CRLF line endings;
- the VALIDATION record with the keys sorted.

**13 / 13 plants, 3 / 3 controls, 99 / 99 must-stay-green assertions; no check without a plant.**

| check blinded | cases reported blind | plants naming it |
| --- | ---: | ---: |
| A0 | 1 | 1 |
| W1 | 2 | 2 |
| W2 | 2 | 2 |
| W3 | 2 | 2 |
| W4 | 2 | 2 |
| W5 | 2 | 2 |
| P1 | 2 | 2 |

## What this run does not establish

- **A flow that works on the kernel.** Replacing the affine cone by one that lets edges turn (charging each edge the
  mean of its ends' speeds, RUN-053) would give nonzero velocities at the generic placement. That flow is not built
  here.
- **Anything about the graph layer's use.** No closure graph of the actual Lebesgue work is built or checked. The
  paper specifies one, and the scaffold only stores nodes and edges.
- **The topology, corridor and witness caps on real steps**, which need the exact charts the paper defers.
