Flattening
A nonzero integer polynomial vanishes to high order at 1
only by growing — in degree if its coefficients are bounded, in
coefficient size if its degree is. The two are inverse readings of one
boundary. Wherever a search has reached on the DEGREE side — the
classical height-1 determination and one height above it — the cheapest
polynomial is a product of factors xd − 1. On the
COEFFICIENT side, past width 12, it is not always, and past depth 20 it
fails at 43% of cells rather than at a handful — the products still win
the majority there, but they stop being the law. What does hold at all
695 cells charted is that the minimum is ATTAINED inside a class with a
classical name — integer polynomials with every root on the unit circle
— among whose monic members the products sit, joined across the chart
by three fixed non-monic factors and, at two cells, a product of two of
them.
Read a vector of integers c0, …,
cM−1 as the polynomial P(x) =
Σ crxr. Its width is the
number of coefficients M, so its degree is below M, and its
height is the largest |cr|. Write
flattening — equivalently the depth J — for the
multiplicity of the root 1: the largest J with
(x−1)J dividing P — equivalently, the
number of times the coefficient vector can be replaced by its running
sums with the total coming out zero, each pass being one division by
x − 1.
Two quantities read the boundary in opposite directions.
h(M, J) is the least height of a nonzero vector of
width M flattened to depth at least J;
dk(J) is the least degree of a nonzero
polynomial of height at most k flattened to depth at least
J. A pure product is a product of factors
xd − 1: with J factors it is flattened to depth
exactly J, and the size of its expansion's first nonzero
coefficient is the product of the d's, exactly. Each of the
charts here runs over cells, one cell being one pair of whatever
two of
M, J and k that chart varies.
The question arrives from a pricing problem. Where a rule's cost is
an integer combination of rational weights, the smallest positive value
that combination takes decides whether a cheap rule is optimal; where
those weights fall geometrically with ratio (n−1)/n, each
order of vanishing at 1 is worth a factor of n, and the price is
the least such polynomial inside a box the rule's own sizes pin — all of
which is at the flattening
law. What those sizes deny is reachable without them.
The free box's
flattening ceiling rule
The free box at height k and width M is the
box no sizes pin: every coefficient ranges over [−k, k]
independently. On fifteen coefficients at height 3 — a box that
contains every anchored box the geometric family's sizes can pin
there — the free box reaches flattening exactly 6, against the depth 4
those sizes leave standing over the far end of that family. Since each
order of vanishing at 1 costs a factor of n in the price, the
anchoring is worth two orders of n. And that ceiling is an
instance of a general law. Charted
in width and height together — widths 4 to 24 at height 1, narrowing
to width 8 as the height rises to 10, plus the fifteen-wide cells at
heights 2 and 3, 94 cells each searched exhaustively — the deepest
flattening the free box reaches, and the least first-coefficient size
at that depth, are a pure product's at every cell. The ceiling of 6 is
that law's instance: the six-factor product
(x−1)³(x²−1)(x³−1)² has height exactly 3, and its
coefficient 18 is the part product 1·1·1·2·3·3.
At height 1 the chart runs widest, and inverted it is a classical
table. The least width whose free box reaches flattening 2, 3, 4, 5, 6
steps up at 4, 7, 12, 16, 23 — equivalently, the least degree of a
height-1 polynomial vanishing to that order at 1 runs 3, 6, 11, 15,
22. That is the problem of Borwein and Mossinghoff, whose abstract
states the least degree determined for orders up to 10 with every
extremal polynomial a pure product; the overlap, orders 2 through 6,
is computed independently here and agrees. The attaining products
inside this chart carry distinct factors —
(x−1)(x²−1)(x³−1) at degree 6 through
(x−1)(x²−1)(x³−1)(x⁴−1)(x⁵−1)(x⁷−1)
at degree 22 — each of height exactly 1.
Scope. Rule, exhaustive over its own chart: 94
cells in exact integer arithmetic, the search route checked against
full brute force at widths up to 7 and heights up to 3, and the
attaining products named above checked in the record. Nothing here
proves the products extremal — the classical determination reaches
order 10 at height 1, every row of this chart is exhaustive
computation in its own range, and the contact with the classical paper
is its abstract plus the independently computed overlap. What prices
the least height a flattening demands at a given width is the height
dial, charted at product extremality at a
second height; a closed
form for it stays open, and at width 9 it runs 2, 3, 9, 14 at depths 4
through 7, whose jumps rule out log-convexity in the depth. The
two-orders reading is an observation on the one geometric family of
the flattening law, whose
cells, box and machinery this chart shares, and the containment it
rests on is that family's too. Toy scale.
verifier:
explore_flatten_height.py
Product extremality
at a second height rule
The chart has an inverse, and turning it tests what the height-1
row can only report. The two dials are inverse readings of one
boundary: h(M, J) ≤ k exactly when
M > dk(J), a vector of width
M being a polynomial of degree below M. On the
h side the pure-product law holds at all 63 cells with
4 ≤ M ≤ 12 and 1 ≤ J ≤ M − 1 — h is the least height of a pure product
fitting inside width M with at least J factors at every
one — and there at every height, rather than at the heights a chart
indexed by height can afford to reach. On the d side the
classical row is k = 1. Run at k = 1 the search used here
returns 1, 3, 6, 11, 15, 22, 30 at J = 1…7 — the
Borwein–Mossinghoff table again, recomputed unaided by an instrument
built for the other height, which is what makes the row beside it worth
reading at all. How far that check reaches, and where it stops, is in
the scope below.
That row is d2(J) = 1, 2, 4, 7, 11, 16,
22, 26 at J = 1…8 — the least degree of a nonzero polynomial
with every coefficient in [−2, 2] flattened to depth J. Every
one of the eight equals the least degree over pure products of height
at most 2, so the extremality the classical determination reports at
height 1 is tested at a second height rather than assumed. The sharp
cell is J = 8, where the two candidate answers separate for
the first time: the first seven values fit
J(J−1)/2 + 1 exactly, which would give 29, and the
product family gives 26. The answer is 26. The attaining parts break
the shape 1, 1, 2, …, J−1 that produced the arithmetic
pattern in both ways at once, repeating a part and skipping one —
(1, 1, 2, 3, 3, 4, 5, 7) — so the pattern in the degrees and the
pattern in the parts die at the same depth, which is what says they
were one fact. The minimising polynomial is unique up to sign at
every depth the enumeration reaches, at both heights, with a single
exception: at height 2 and depth 1 there are two, (1, −1) and its
own doubling.
What the second row is for: read a vector c as the taps of
a finite-impulse filter, sending a sampled signal s to
Σr cr s(t−r). That
output vanishes identically on every polynomial signal of degree
below J exactly when c is flattened to depth J —
the same linear conditions on c written twice. So the shortest
filter with integer taps of size at most k that annihilates
polynomial drift of degree below J runs
dk(J) + 1 taps long — the degree is
one less than the tap count — and the k = 2 row is the
shortest available to a filter carrying no multiplier, its taps
being 0, ±1 and ±2: a drop, an add and a shift.
Scope. Rule in range, and the range is the
claim's whole content; the inversion between the two dials is
algebra, holding wherever they are both defined. The inverse dial is
exhaustive at the 63 cells M ≤ 12, at every height: the
question behind it — is there a nonzero vector of height at most
k and width M flattened to depth J — is asked
twice, once by that route and once by a search over the coefficients
sharing no code and no cost law with it, at all 225 triples of width
up to 13, depth, and height up to 3, with no disagreement, and against
full enumeration of the box below that. The height-2 row is exhaustive
at J ≤ 8, out to degree 26, and the k = 1 run of the
same route reproduces the Borwein–Mossinghoff table at all seven
depths it covers. Those two checks leave a gap, and it is where the
row ends: the twice-asked question stops at degree 12, and the
classical reproduction runs to degree 30 but only at height 1, so a
fault peculiar to height 2 past degree 12 — which is where the last
three values of the row sit — is caught by neither. The filter reading
is a property — one set of linear conditions on c read twice.
Nothing here proves the products extremal at either height: a second
height agreeing is a second range of computation and not a theorem.
What the h dial does past width 12 is
the flattened minimum on the unit
circle, where the pure-product law fails; the 63 cells here are
exhaustive and stay. The uniqueness is exhaustive enumeration, over
depths 1 through 7 at height 2 and 1 through 6 at height 1, and it is
the DEGREE dial's — the height dial's is answered there and
differently. Toy scale.
verifiers:
explore_flatten_offchart.py,
explore_flatten_d2.py
The flattened
minimum is attained on the unit circle
rule
Searching upward through the heights is a poor way to reach width
40, and it is not what the question asks for. The vectors of width
M
flattened to depth J are exactly
(x−1)J·Z[x] cut at degree below
M — a lattice, the set of integer combinations of
M − J independent vectors, that count being its
rank — so h(M,
J) is that lattice's shortest nonzero vector measured in the
largest coordinate. Basis reduction plus a bounded enumeration reads
it directly, and the bound is free rather than guessed: a vector whose
largest coordinate is at most H has Euclidean length at most
H√M, so the Euclidean ball of that radius contains every
candidate, and any lattice vector already in hand supplies the
H — the pure products, the family under test, supply nothing.
With the reduction's Gram–Schmidt updated incrementally rather than
recomputed in exact rationals at every swap — identical on output at
all 252 cells of the narrower chart this one widens, which the two
routes decide in 128.2 s and 1.7 s respectively, and 10.0 s for all
550 cells of the wider one — the chart
closes the 550 cells with 4 ≤ M ≤ 40, 2 ≤ J ≤ 20 and
M > J, the rank being zero otherwise, in 22.6 s and
433,866 enumeration nodes, no cell costing more than 20,287. The bill
now sits in the enumeration rather than the reduction, 12.6 s against
10.0, so a wider census is priced by the ball's volume against the
lattice's covolume — the volume its basis spans. That pricing makes
DEPTH the cheap direction, since the rank falls as J rises, and
it holds: carrying the chart to J = 30 adds 145 cells for about
3 s, closing all 695 in 37.6 s and 611,632 nodes. The wider sweep
recomputes the narrower chart's whole record inside itself — all
eleven of its published aggregates, from the 550 cells and 20 failures
to the worst cell's 20,287 nodes — unchanged.
At 612 of the 695, h is the least height of a pure product
fitting the cell. At 83 it is strictly below one, and extremality does
not fail sporadically past a boundary — it gives way in the DEPTH:
3 of the 362 cells at J ≤ 12, 17 of the 188 at
J = 13…20, and 63 of the 145 at J ≥ 21, which is 0.8%,
9.0% and 43.4%. The shallow readings overstate, and by a mechanism the
chart itself supplies: 153 of the 695 cells have h = 1, where
the least pure height is 1 and h ≥ 1 always, so those cells
cannot fail at all, and a height of 1 needs width against depth, which
crowds them into the shallow half — all 153 of them sit at
J ≤ 12. So only the shallowest band is confounded, 0.8% raw
against 1.4% over the 209 of its 362 cells that can fail at all, and
both deeper bands are entirely h ≥ 2, which makes their 9.0%
and 43.4% the raw and the conditioned rate at once. The deepest is
stronger still: every one of its 145 cells has h ≥ 10.
What selects a failing cell is a two-sided window in the RANK.
Every one of the 83 failures sits at rank between 5 and 18. Outside
that window 325 cells fail zero times — 115 at rank 4 or below, 210 at
rank 19 or above. That raw count carries the same height confound the
depth rates are conditioned for, and it sits almost entirely in one
tail: the high tail holds 100 cells of height 1, which cannot fail,
against the low tail's 4. Conditioned on h ≥ 2 the clean
outside is 221 cells rather than 325, 111 low against 110 high, and at
h ≥ 10 it is 140, 97 against 43. So the two tails are close in
conditioned strength where the raw counts read two to one, and the low
tail is the better evidenced on every floor — the reverse of the raw
reading. Neither tail is thin after conditioning, and neither is the
height floor in disguise: 97 and 43 cells of height at least 10 have
every room to fail and none does. A window read off the
failing set holds all of them by construction, so that is not the
evidence; the evidence is that it did not WIDEN when the chart grew.
It was 5 to 18 over the earlier 550 cells and it is 5 to 18 over the
695, though the new cells reach rank 1 at their narrow edge and carry
three quarters of the failures. The two walls were not tested equally,
and the difference is large: a new cell has depth at least 21 and
width at most 40, so its rank is at most 19 — forty of the 145 sit at
rank 4 or below and exactly one at rank 19, the other 104 inside the
window. So the low wall was offered forty fresh chances to break and
took none, while the high wall was offered one and rests on the
earlier chart almost alone. Testing it needs a census wider in width,
not deeper. Inside the window the condition is far
from sufficient — 83 of 370 cells, 22.4% raw and 25.9% over the 321
that can fail at all — and the depth then drives the rate: 1.9%, 15.2%
and 60.6% raw across the three bands, 2.9%, 15.2% and 60.6%
conditioned, the deeper two unmoved because no cell in either has
height 1. Outside the window the rate is zero at every depth on either
reading. Nothing else selects. Eight
cheap per-cell quantities were scored against the failure flag — the
largest repeated factor in the best pure product, the number of
divisors of J, a ball-counting heuristic at two radii, two
measures of what the pure bound loses when width is taken from it, the
rank and the depth — and seven of the eight have no cut better than
declaring the whole chart clean, while the eighth buys 7 of the 83
failures at the price of one false alarm. That scoring is ONE-SIDED,
and the limit matters here rather than being a technicality: a cut
declares failure on one side of a number, and a window has two sides,
so the rank scores as a null in that table for a reason about the
scoring and not about the rank. The seven nulls are nulls for
one-sided cuts alone. No quantity but the rank was tried as a window,
and whether any of the other seven carries one is untested, not
answered.
What beats the products is a class and not a pair. A
cyclotomic polynomial is the minimal polynomial of a root of
unity, and xd − 1 is the product of those belonging
to the d-th roots, so a pure product is a product of
cyclotomics. Divide each of the 695 exhibited minimising vectors by
every power of x and every cyclotomic factor it carries: five
residuals — what those divisions leave — survive the whole
chart. They are 1 at 612 cells, B = 2 + 3x +
2x² at 51, A = 2 + 4x + 5x² +
4x³ + 2x⁴ at 29, the product A·B at 2, and
C = 3 + 5x + 3x² at 1 — with the cyclotomic part
a pure product at every one of the 695. A·B is not a new
member of anything: the class is closed under multiplication, so a
product of members is a member for free, and what those two cells
report is the first place where one multiplier does not suffice.
C is genuine, divisible by neither A nor B, and
its leading coefficient is 3 — which retires “leading coefficient 2”
as a description of the multipliers rather than of the two the
narrower chart happened to reach. A power of x is present at 22
of the witnesses and costs nothing: dropping xa from
xaQ leaves the coefficient multiset, hence
the height, and the multiplicity at 1, hence the flattening, so
Q is a minimiser of the same cell of lower degree. All three of
A, B and C are reciprocal — the
coefficient list reads the same backwards — with every root on
|z| = 1: writing y = x + 1/x they become
2y² + 4y + 1, 2y + 3 and 3y + 5, whose
roots −1 ± √2⁄2, −3/2 and −5/3 are real and inside (−2, 2), which is
the interval y = 2cos θ carries onto the circle. The
roots of C are (−5 ± i√11)/6, of modulus squared
(25 + 11)/36 = 1 exactly.
So the pure products and their enrichments sit inside one class
— integer polynomials with every root on the unit circle — and
Kronecker is what makes that the class rather than a convenient
description of a few cases: a monic integer polynomial — one
whose leading coefficient is 1 — with nonzero constant term and every
root on the circle has every root a root of unity, hence is a product
of cyclotomics. Being non-monic is therefore the only way out of the
cyclotomic products. What carries the statement the rest of the
way to the PURE products is the census's other half — that the
cyclotomic part decomposes as ∏(xd − 1) at every one
of the 695 — and no theorem supplies that. So the law that failed was
never a rival to the one that replaced it: a pure product is a monic
member of this class, by Kronecker every monic member is a product of
cyclotomics, and at every one of these 695 cells the cyclotomic part
that actually appears is a pure product. Least height over (pure
product)·A and over (pure product)·B, each swept over
the same enumeration of factor multisets as the pure family so that
the three are three heights of one object, beats the pure family at
exactly the 83 failing cells and nowhere else, and attains h at
80 of them: it never improves without being exactly right, and the
three where it improves without attaining are exactly the three whose
residual the pair cannot make — the two A·B cells and
the C cell.
The law is about attainment and not about minimisers, and the
difference is measured. The enumeration shrinks its radius on every
improvement, so it never meets a second vector of the winning height
and every sentence above reads one minimiser per cell. A second pass
at the fixed radius h√M collects them all where it can
afford to. That pass was run over the earlier 550-cell chart alone, so
every count in this paragraph is scoped there: it closes 405 of the
550 — the rest capped by the same
ball-volume law, a small height with a wide lattice being where the
ball swallows everything. At 28 of the 405 two minimisers of one cell
have different residuals, and at 24 some minimiser leaves the class
entirely, though only at heights 1, 2, 3 and 6. So what is exhaustive
is that h is ATTAINED inside the class at every cell; that
everything attaining it is inside is false. The same pass answers the
height dial's uniqueness question, where
the degree dial reads unique: 246 closed
cells have h ≥ 10 and 51 of them carry more than one minimiser
up to sign, the largest holding nine.
Scope. Rule, exhaustive in range: 695 cells at
4 ≤ M ≤ 40 and 2 ≤ J ≤ 30, every value an exact integer
computation, with the attainment statement read over all 695 and the
minimiser statements over the 405 cells of the earlier 550-cell chart
that the second pass closes, that pass never having been run past
depth 20. Of the 145
the pass does not close, the 88 its node budget never reaches are the
lowest in height by construction, the pass walking downward, so they
lie on the same side as the cells where a minimiser does leave the
class; the other 57 cap wherever the ball is too populous and their
heights go unreported. The lattice
identification and the radius bound are properties, algebra at any
width and depth. Kronecker's theorem is classical and is used one way
only: it forbids a monic cyclotomic-free residual of positive degree
from having every root on the circle, and says nothing against a
non-monic one having a root off it. That every cyclotomic part is a
pure product is a census over the 695 and not a theorem, and a root at
0 is off the circle, which is why a power of x is divided out
above rather than left to a qualifier here. The rank window is a
measurement and is stated as a necessary condition only: nothing here
derives it, and what makes it more than a fitted range is that it
survived the chart growing by 145 cells without moving. The eight
scored quantities are named above; a best cut is chosen for each by
minimising its two error counts, and the two controls the scoring runs
against — a quantity that must separate perfectly and one that must
not — behave as they must before any verdict is read. The route
recomputes what the other instruments cost — the height-2 boundary at
244 cells and the classical height-1 boundary at 415, each check
confirming its boundary from one side or the other, the closed form at
rank 1, h's monotonicity in each of its two arguments at 1,044
comparisons, and the three refuting cells the narrower chart found
reproduced with their factorisations — and every split multiplies back
to its own witness at all 695. A SUFFICIENT condition for a cell to
fail is open, as is whether the class has further members past width
40 and depth 30 — one turned up in the first 145 cells past depth 20,
so that question is now open with evidence behind it rather than on
principle — and so is whether the minimiser SET obeys the window and
the class at the deep cells the second pass never reached. Toy
scale.
verifiers:
explore_flatten_lattice.py,
explore_flatten_family.py,
explore_flatten_select.py
The last of these is checkable without the instrument: the witnesses
are integer vectors, divisibility by (x−1)J is
J synthetic divisions, and the three multipliers are two
quadratics and a quartic. What the pricing problem behind these charts does with
them is the flattening law.