# RUN-002 — Round 01 (v0.1): the grid programs reproduce; what they print is a grid's value, a local search's, and one handedness's

**Arm:** 懸衡 (Xuán Héng) / AMRAL Research Lab
**Date:** 2026-10-18
**Subject:** `Moser_Skew_Lab_v0.1.zip` (SHA-256 `d7a832b4…`, pinned in [`corpus.py`](../code/corpus.py)): its
README, `reports/ROUND_01_REPORT.md`, and its data (`experiment_summary.json`, `benchmark_records.json`,
`adversarial_history.json`, `adversarial_best_curve.csv`, `adversarial_skew_field.csv`), read from the package bytes
**Tools:** [`run002_round01_support_skew_lp.py`](../code/run002_round01_support_skew_lp.py) — this tree's own linear
programs (SciPy 1.17, HiGHS dual simplex, feasibility tolerances 10⁻¹⁰, every scale re-evaluated exactly at the
solver's translation), rotation scans with every local minimum refined, SymPy for the triangle and the Fourier
statement; [`gate.py`](../code/gate.py) for the drill
**Logs:** [`run002-round01-support-skew-lp.json`](../data/gate-logs/run002-round01-support-skew-lp.json); citation
snapshot [`round01-citations.json`](../data/external/round01-citations.json)

**Verdict: PARTIAL** — what Round 01 computes for the curves its documents define reproduces, but several of the
numbers it states do not hold as stated. Reproduced: the two linear programs, the three containers, the triangle the
round calls certified, and — exactly — the adversarial candidate's recorded scale, translation, active directions,
98 % test and the whole logged skew field. Not as stated: the disc's and the sector's "library maxima" are the
192-direction grid's value cos(π/192); the true maximum in both is exactly 1. Nine of the 21 records this run can
rebuild stop above the grid program's own minimum by 5×10⁻⁷ to 4.4×10⁻⁶, so their last printed decimals — for the
triangle's headline maximum, from the sixth on — are not the curve's. The candidate's 0.9187 is its
orientation-preserving value; reflected, it fits at 0.8945, the value under the convention of the certificate the
round compares it with. The records hold 34 curves, not the 35 the three documents state, and the package ships no
program: 27 of the 34 curves are defined nowhere. The drill planted 19 defects; every one was caught by
exactly the checks named for it, and the 4 controls disturbed nothing.

---

## What Round 01 claims

The round places a curve γ of length 1 in a convex container C by linear programming over 192 support directions
θ_j, u(θ) being the unit vector at angle θ. For a fixed rotation φ it finds the least scale s, with a translation t,
such that

  h_γ(θ_j − φ) + t·u(θ_j) ≤ s·h_C(θ_j)  for every j,

and for fixed s and φ the least worst positive **skew**, the skew at θ_j being h_γ(θ_j − φ) + t·u(θ_j) − s·h_C(θ_j).
A curve's **critical scale** is the least s over all rotations: s ≤ 1 means it fits in C. The round tests a library of
curves in three containers — the disc of radius 1/2, the 30° sector of radius 1, and Wetzel's 30-60-90 triangle T
scaled by 1/1.0048 — and its 102 **records** (`benchmark_records.json`) give each curve's critical scale in each. It
reports the largest in each container, a top-ten table for the triangle, and a five-generation adversarial search
ending in a candidate with critical scale 0.9187329185, "about 3" active directions (a direction where the constraint
holds with equality; this run calls it **tight**), and, with the container shrunk to 98 % of that scale, a residual
worst skew E = 3.6918923462×10⁻³. It reads two structural facts off the formulation: translation occupies only the
first Fourier mode of the support signal, and rotation shifts its phase. Its README and its §5 say it proposes no new
bound. **PARTIAL** here means: the round's computations reproduce where they can be rebuilt, and some of the numbers
or claims it states do not hold as stated.

## The checks

| id | guards | result |
| --- | --- | --- |
| W1 | the containers' areas as the report gives them; T: legs (3+4√3)/18 and (4+√3)/6, a 30-60-90 right triangle whose inscribed square on the hypotenuse has side exactly 1/3; the scale 1/1.0048 | **PASS** — T's geometry symbolic; the areas to the report's nine places |
| W2 | both programs as stated; on the 192-grid the unit segment in the disc comes out at exactly cos(π/192), the value printed as the sector's maximum and, 5.8×10⁻⁹ lower, the disc's | **PASS** |
| W3 | every record of a curve the documents define lies within 5×10⁻⁷ above, or 2×10⁻⁷ below, this tree's scanned minimum over rotations of the same grid program | **FAIL** — 9 of 21 more than 5×10⁻⁷ above it |
| W4 | the candidate: length 1; at its recorded rotation the program gives its recorded scale and translation, with 3 tight directions; no rotation gives less; test scale, E and the skew field reproduce | **FAIL** — all reproduce; one rotation gives 1.6×10⁻⁶ less |
| W5 | the report's top-ten table and its three maxima are the records' | **PASS** |
| W6 | the records hold as many curves as the documents say were tested | **FAIL** — 34, not 35 |
| W7 | translation is the first Fourier mode only; rotation is a phase shift of the support signal | **PASS** — orthogonality symbolic for modes 0–6; the phase shift on the grid, to 10⁻¹⁴ at three rotations |
| W8 | the preprint this run identifies as the certificate (arXiv:2606.14625) states T/1.0048, 599 cone models, interval certificates, and the area the round uses | **PASS** |
| W9 | of the two readings tested for each undefined name — V_60/V_90/V_120: the angle turned, or the angle at the joint; semicircle/arc_270: 64 chords of total length 1, or the arc itself — exactly one reproduces every record | **PASS** |

## Findings

### 1. What reproduces, and how exactly

The round ships no program: its `src/moser_skew_lab.py` is a three-line placeholder pointing to the report. So
nothing here could have run the author's code; everything is recomputed from the report's formulation.

- **The triangle.** The report gives only T's legs. They make a 30-60-90 right triangle (b = √3·a), and the square
  inscribed on its hypotenuse has side exactly 1/3 — the definition the preprint of §8 gives of Wetzel's triangle — so
  the round's T is that triangle (W1, symbolic). T/1.0048 has area 0.26095623981…, as the report says to nine places.
  The recorded translation places T's right angle at the origin with its legs on the axes; of the two handednesses
  placed that way, only the one with the short leg on the x-axis gives the recorded scale (the other gives 1.391).
- **The candidate.** Its nine points have length 1 to rounding. At its recorded rotation 1.1024251219 the grid
  program gives 0.9187329184910361 against the recorded …0362, the recorded translation (0.20923044773400137,
  0.3573006223101446) to within 10⁻⁹, and 3 tight directions — the hypotenuse's normal and the two legs', which pass
  through the right angle at the origin and so carry no scale (the summary's count is 3; the report says "about 3").
  At 98 % of that scale, the least worst skew is the recorded E, and the skew field at that placement equals all 192
  logged values (W4).
- **The structure.** t·u(θ) = t_x cos θ + t_y sin θ is orthogonal to every Fourier mode but the first — W7 checks
  modes 0 to 6 symbolically; the general statement is the orthogonality of the trigonometric system — and rotating
  the curve by φ replaces h(θ) by h(θ − φ), an identity W7 checks on the grid. The report's §4.3–4.4 are
  interpretation and are not checked.

### 2. The library maxima are a grid's, not the curves'

On a finite grid the scale program is a relaxation: it asks the curve to fit the polygon cut out by 192 support
lines of sC, which contains sC. For the disc that polygon's widest chord is s/cos(π/192), so the unit segment comes
out at exactly cos(π/192) = 0.99986614 (W2). That is the sector's printed maximum; the disc's, 0.99986613, is the
same value 5.8×10⁻⁹ lower, within that record's logged residual. The true maximum is 1 in both. The unit segment
fits the disc of radius 1/2, or the 30° sector of radius 1, only at full scale; and no other curve of the library
comes close — every other record in the two containers is at most 0.97142 (random_16_6s), and since the relaxed
polygon lies inside sC/cos(π/192) (about the disc's centre, or the sector's apex), its curve's true value is at most
0.97142/cos(π/192) < 0.972.

For segment, V_60, V_90, V_120 and U_equal — whose least enclosing circles are fixed by contacts 180°, 120° or 90°
apart, which the grid's vertices can meet — the disc's grid value is the true value times cos(π/192), to 2×10⁻¹²:
V_60 is recorded at 0.86590947, its true value is √3/2 = 0.86602540. The arc records, which are of 64-chord polylines
(§6), are low in the disc as well: against those polylines' own true values, by the factors 0.99990 (semicircle) and
0.999991 (arc_270). That the semicircle's record then lands within 7.3×10⁻⁹ of the exact arc's 2/π — equal to eight
decimals — is the two effects nearly cancelling, not the program computing the arc. The triangle is exact on this
grid in the round's placement: its three edge normals are grid directions, so its relaxation is the triangle itself.

### 3. The records are a local search's values

The round states 60–120 starting rotation phases; that its search then refines locally is this run's reading of its
results. This tree's scanned minimum of the same grid program — rotation scanned at 0.5°, every local minimum
refined — is lower, by more than 5×10⁻⁷, than 9 of the 21 records it can rebuild (W3), and lower within that margin
than two more (V_90 and the segment, both in the sector, by 1.5×10⁻⁷ and 5.8×10⁻⁹):

| curve | container | record | scanned minimum | above by |
| --- | --- | ---: | ---: | ---: |
| segment | triangle | 0.910863460 | 0.910859678 | 3.8×10⁻⁶ |
| V_60 | sector | 0.866029837 | 0.866025404 | 4.4×10⁻⁶ |
| V_90 | triangle | 0.879823896 | 0.879822887 | 1.0×10⁻⁶ |
| V_120 | triangle | 0.910862299 | 0.910859678 | 2.6×10⁻⁶ |
| U_equal | triangle | 0.957832237 | 0.957829839 | 2.4×10⁻⁶ |
| semicircle | sector | 0.954941594 | 0.954940311 | 1.3×10⁻⁶ |
| semicircle | triangle | 0.914631706 | 0.914629508 | 2.2×10⁻⁶ |
| arc_270 | sector | 0.912880309 | 0.912879782 | 5.3×10⁻⁷ |
| arc_270 | triangle | 0.925582665 | 0.925581618 | 1.0×10⁻⁶ |

No record lies below its scanned minimum by more than its own logged residual (at most 1.0×10⁻⁷, all in the disc),
give or take 5×10⁻¹⁰: seven disc records lie below it, by 4×10⁻⁹ to 1.0×10⁻⁷. The report prints eight decimals, so
for these 9 records the last printed digits are not the curve's — for the triangle's headline maximum, U_equal's,
from the sixth on: 0.95783224 against 0.95782984. Round 02's own exact three-normal value for U_equal is
0.957829839129, agreeing with this run's scanned minimum, 0.957829839128556, to twelve decimals. The candidate's
recorded scale is likewise 1.6×10⁻⁶ above the scanned minimum of its own handedness, reached at a rotation 3.2×10⁻⁶
rad from the recorded one (W4).

### 4. The candidate's scale is one handedness's

The round moves curves by rotations and translations only. The candidate is chiral: its mirror image has a scanned
critical scale of 0.894545 in the same triangle, 2.6 % below the recorded 0.918733. Round 02 keeps the two apart for
good: the orientation-preserving value for the problem posed with rotations and translations, and the congruent
value — the lesser of the two handednesses — "若對照 2026 Wetzel 論文" (when comparing with the 2026 Wetzel paper),
whose convention is the congruent copy, reflections allowed. Round 01 measures its candidate against that paper's
certified triangle, so by Round 02's own rule that comparison is 0.8945; as the candidate's orientation-preserving
value, 0.9187 stands, to the 1.6×10⁻⁶ of §3. The symmetric curves of the library — the segment, the V's, U, the arcs —
have one value. The 24 random curves, and possibly zigzag_4, zigzag_8 and almost_circle, may be chiral; their records
would then be one handedness's too, and they are unchecked (§6).

### 5. 34 curves, not 35

The report ("基準與隨機曲線共測試 35 條"), the README ("測試 35 條") and `experiment_summary.json`
(`benchmark_curve_count`: 35) all say 35. `benchmark_records.json` holds 102 records — 34 curves in each of the three
containers (W6). The package does not say which curve is missing.

### 6. What cannot be rebuilt, and how the names are read

The documents name curves without defining them, and the placeholder program defines nothing. Seven names admit a
natural reading, and W9 decides between two readings of each by the records:

- **V_60, V_90, V_120**: two halves of a unit segment, the number being the angle **turned** at the joint, not the
  angle at it. The other reading misses V_60 and V_120 by 0.1 to 0.3; this one is within 4.4×10⁻⁶ everywhere.
- **semicircle, arc_270**: **64 chords whose total length is 1**. That there are 64 is the documents' own (the table's
  segment count, the records' `segments`); W9 decides the rest against the arc itself, which misses the records by
  1.2×10⁻⁵ to 1.7×10⁻⁴ while the chord polylines are within 2.2×10⁻⁶. So these records are critical scales of unit
  polylines, not of the arcs — for arc_270 in the triangle the arc's own value is 0.925415, the record 0.925583.
- **segment** and **U_equal** (three sides of a square of side 1/3) have one reading each.

The other 27 curves — `zigzag_4`, `zigzag_8`, `almost_circle` and 24 random curves — are defined nowhere in the
package, and their 81 records are reported here as the round's, not checked.

### 7. The search history does not end at the reported candidate

`adversarial_history.json` gives the best scale of generations 0 to 4 as 0.91889, 0.91889, 0.91889, 0.93326,
0.93451. The search maximizes difficulty, so its best by generation 4 is 0.93451; the candidate the report and the
summary give is 0.91873. Either the history and the final evaluation measure differently — a coarser rotation search
overstates a scale, as §3 shows a finer one lowers it — or the reported candidate is not the best the search found.
The package does not say which curve the history's values belong to, and this run cannot tell.

### 8. The certified triangle

The round calls T/1.0048 "已認證" (certified) and mentions 599 SOCP models it did not redo, but cites no source and
does not say what T/1.0048 is certified to cover. The preprint matching both is this run's identification:
Wichiramala and Panraksa, *Wetzel's 30-60-90 Triangle Covers Unit Arcs*, arXiv:2606.14625 (v1, 2026). It gives a
computer-assisted proof that T covers every unit arc, reducing an uncovered arc to 599 second-order cone models each
validated by interval arithmetic; every certified lower endpoint exceeds 1.0048, so T/1.0048 covers every unit arc
too, with area 0.260956… (W8). It is a preprint. This run records it as a cited theorem at that standing and checks
nothing of it. Every record of the library lies below 1 in T/1.0048, which is consistent with the theorem and
evidence of nothing beyond that.

## At what strength each result stands

| result | strength |
| --- | --- |
| T's geometry: the right angle, b = √3·a, the inscribed square of side 1/3 | exact (symbolic) |
| the containers' areas, against the report and the summary | numerical: the report's nine places; the summary to 10⁻¹⁵ |
| translation is the first Fourier mode only | exact (symbolic for modes 0–6; the general statement is classical) |
| rotation is a phase shift of the support signal | an identity; checked on the grid to 10⁻¹⁴ |
| the disc's true values: polylines (twice the least enclosing radius), the arc polylines (their circle's diameter) | exact |
| the exact arcs' true values (the arcs sampled at 4,097 points) | numerical |
| the triangle's true values (its three edge normals; rotation scanned and refined) | numerical, floating-point linear programs |
| the sector's true values (8,192 directions and its two edge normals; refined within ±0.02 rad of the grid's minimizer) | numerical, to about 10⁻⁷ |
| the scanned minima of §3 and the candidate's two handednesses | numerical, floating-point linear programs; minima found by scanning, not proved global |
| the 81 records of the 27 undefined curves | the round's, unchecked |
| T/1.0048 covers every unit arc | cited theorem (a preprint, identified by this run) |

## The drill

| | |
| --- | ---: |
| planted defects | 19 |
| caught by exactly the checks named for them | **19** |
| controls (the package unmodified, the records reversed, the report with CRLF endings, with trailing spaces) | 4 |
| controls that disturbed nothing | **4** |
| must-stay-green assertions held | **174/174** |

A trip is a failure the unplanted package does not already have, so W3, W4 and W6, which fail on the real package,
can still be shown to catch a plant. Plants include a triangle leg, the certified divisor, the grid size, a record
moved above its scanned minimum, one moved below its table entry, a curve dropped, the residual skew, a point of the
candidate, its recorded translation, one skew-field value, the scale in the citation snapshot, a digit of the
report's table, the stated program, the stated count, each reading of the names, the rotation's sign and the
triangle's handedness. Each check, replaced in turn by one that always passes, was reported blind in exactly as many cases as plants name it — W1 3, W2 2, W3 6, W4 9, W5 2, W6 2, W7 1, W8 3, W9 5 (nine runs; a blind run writes no log). Two runs of the drill made side by side wrote byte-identical gate logs.

The first versions of this instrument were wrong several times, each caught before a result was written down. The
solver's default feasibility tolerance (10⁻⁷) let it report scales slightly below the grid minimum, so the scale is
now evaluated exactly at the solver's translation. A container support of 0 — the sector's back, the triangle's legs
through the origin — was divided by, and then left out of the count of tight directions. The triangle was placed with
the wrong handedness, which only the chiral candidate could show. Two plants were at fault — one moved a record W3
already flags, one changed text the report does not contain (the drill reported it vacuous) — and full floats in
failure messages let float noise read as a new finding; messages now round to nine places. And an independent reading
of this report before it was committed found statements stronger than the evidence — among them that the translation
tells the triangle's handedness (it does not; the scale does), a reading of Round 02 that it does not support, and an
unqualified "global" — which are corrected here; it also found that W4 reproduced the translation without testing it,
and W4 now tests it.

## What this run does not establish

Any bound for Moser's problem. That the minima of §3 are global — they come from scans refined locally, as the round's
search did, only finer. Anything about the 27 undefined curves. That the preprint's proof is correct. Which of the two
conventions of §4 the programme's own question is: Round 02 keeps both.

## Re-running

```
python code/fetch_source.py
python code/run002_round01_support_skew_lp.py --drill
```

The citation snapshot is committed; `--fetch` rewrites it from arXiv. The run takes under an hour on one core, most of
it the rotation scans the plants force again; `--log` writes the gate log elsewhere, for a second run to compare. It
is correct when the gate log is byte-identical to the committed one.
