Source and scope
The paper behind the investigation
This demonstration follows Pedro M. M. de Castro, Ehrhart h*-polynomials of (132, 213)-avoiding permutation polytopes: A repair cone and eventual real-rootedness, arXiv:2609.06096v1 [math.CO], 5 September 2026 (33 pages). A later version of the paper must be reviewed separately before this demo is updated.
The demo has two pages. The laboratory enumerates small arrangements, builds them from cuts and counts points in the first polygon. The investigation continues with 29 explorations in five chapters. Every exploration is open: a small example you can change, its consequence shown beside the control, and a short statement of what the paper proves in general. Nothing is locked and there are no quizzes.
What is proved, and what is open
- Theorem 1.1. For every d ≥ 1, P_d is combinatorially a (d−1)-cube of normalized volume 2^(d−1)d^(d−3) (for d = 1 a single lattice point, volume 1), lattice-equivalent to twice a translated chain-poset permutahedron. This settles Conjecture 3.19 of Davis and Sagan; cubicality was recorded earlier by Tamayo Jiménez and the volume computed by Orevkov, and the paper’s contribution here is an explicit lattice synthesis with a self-contained path-Laplacian proof (p. 4).
- Theorem 1.2. For d ≥ 3 the coefficient of t^(d−1) in H_d(t) counts strong tournament score sequences, each sequence once; this proves the chain case of a conjecture of Rehberg, building on Black, Rehberg and Sanyal (p. 4). The exception noted in the paper at d = 2 concerns a rational numerator, 1 + t, not H_2 = 1.
- Theorem 1.3. For 1 ≤ d ≤ 1000 all zeros of H_d are real and negative (vacuous for d = 1, 2, where H_1 = H_2 = 1; H_3 = (1+t)^2). Proof: Corollary 6.2 (a paper proof) plus an exact finite certificate, Algorithm 1 run on the author’s table: the base rows d ≤ 3, the endpoints, and 498 500 strict tail inequalities in Z[√3] (p. 20).
- Theorem 1.4. For every d ≥ 2^72 all zeros of H_d are real and negative. Proof: analytic coefficient estimates (Sections 8–9). 2^72 = 4 722 366 482 869 645 213 696.
- Open. Real-rootedness for 1001 ≤ d < 2^72 is not proved in v1 (Conjecture 10.1 asks for all d ≥ 3).
Kinds of evidence in this demo
Every exploration labels which of these it shows. They are different kinds of knowledge and the demo never upgrades one into another. The tags in the list of results below use the same names. Some screens use a shorter or more specific tag: “Paper” is a paper proof or a paper computation, as cited next to it; “Here”, “Bundled”, “Template”, “Counterfactual” and “This run” each name a particular finite example.
- Example (finite, here). A complete small enumeration or an exact calculation done in your browser: BigInt integers, exact rationals, and integer pairs representing x + y√3. An example illustrates a general statement; it does not prove it.
- Paper proof. A general statement proved in the paper. The demo cites the theorem, lemma or equation and its page, and summarizes the idea in a collapsible note.
- Paper computation. An exact calculation printed in the paper, such as Table 1, the coordinate a_{7,1} = −1/15 or the d = 4 edge vectors behind Figure 2(a). The demo recomputes it exactly; a computation is not a general proof.
- Certificate. Theorem 1.3 rests on the author’s exact computation for d ≤ 1000. That table is not bundled. The demo shows each step of Algorithm 1 and can rerun it on its own reconstruction (d ≤ 30) or on a table you choose.
- Open. The interval 1001 ≤ d < 2^72 (Conjecture 10.1). No enumeration in this demo says anything about it.
- Illustration. Decimal values marked “approx.”, probability bar heights and number lines not drawn to scale are pictures only. The polygon Q_3 is drawn exactly in deficit coordinates; Q_4 is shown in one fixed orthographic view; the four-dimensional Q_5 appears only as a schematic of cut sets.
Where each result is illustrated
Each entry names a result of the paper, its kind, and the explorations that show a small case of it. Links open the exploration directly; the label after a link is its route, as in investigation.html#faces. The routes avoid, cuts and deficits open sections 1–3 of the laboratory.
The polytope and its cube structure (§§1–3)
Lemma 2.1 Paper proof p. 5
The permutations avoiding 132 and 213 are exactly the increasing blocks with larger values first; one for each cut set, 2^(d−1) in all.
Explore: Six arrangements, two forbidden shapes: which survive?
avoid· Can we build every survivor without rejecting anything?cutsEquations (2)–(6) Paper proof pp. 5–6
Prefix deficits u_k = M_k − S_k(x) turn the two facet inequalities at each gap into u_k ≥ 0 and (Lu)_k = 2u_k − u_(k−1) − u_(k+1) ≤ 2 (with u_0 = u_d = 0), with an integer inverse (5).
Explore: Four arrangements make a polygon. What else lies inside?
deficitsTheorem 2.4 Paper proof p. 8
Nonempty faces correspond to partial signatures: fixing r gaps gives a face of dimension d − 1 − r with 2^(d−1−r) vertices, as in a cube. The vertex count of Lemma 2.1 alone does not prove this.
Explore: What happens when some gaps are held fixed?
facesFigure 2(a) Paper computation p. 6, at d = 4; figure p. 7
The polytope is a cube in its connections, not in its shape: on the d = 4 face where gap 3 is never cut, two opposite edges are not parallel, and affine maps preserve parallelism. The affine exploration also checks the d = 3 polygon, where no two opposite sides are parallel (our own example, not in the paper).
Explore: Is it a cube in shape, or only in its connections?
affineEquation (8) and Theorem 1.1 Paper proof pp. 3, 8–10
Each order of adding the cuts gives one simplex of normalized volume (1/d)∏ℓ_j; the total is 2^(d−1)d^(d−3).
Explore: Does the order of the cuts change the volume?
volume
Lattice points, tournaments and symmetry (§§4–5)
Theorem 4.1 with equations (4)–(5) and (15) Paper proof pp. 5, 8, 10–11
Integer-preserving maps identify P_d, its deficit polytope Q_d (equations (4)–(5), unimodular by p. 8) and twice a translated chain-poset permutahedron (Theorem 4.1, equation (14); equation (15) links it to the deficits), so all three have the same lattice-point count at every dilation m.
Explore: Why count a point that is not a permutation?
maps· Four arrangements make a polygon. What else lies inside?deficitsEquation (1) and Table 1 Paper computation p. 2; equation (1) is a definition
The lattice-point counts L(m) of the dilations mP_d form the series H_d(t)/(1 − t)^d. For d = 3 the counts at dilations m = 0, 1, 2, 3 are L(0), L(1), L(2), L(3) = 1, 5, 13, 25, and Table 1 gives H_3 = (1+t)^2.
Explore: Can we count the polygon without counting a dot twice?
ehrhart· Can the same exact computation also give the h*-polynomial?verify-HProposition 4.2 and Theorem 1.2 Paper proof pp. 3, 11–12
Interior lattice points correspond to strong tournament score sequences; for d ≥ 3 the top coefficient of H_d counts them.
Explore: Who won each game, and what does sorting keep?
scores· Why must the two ends be nonnegative?verify-endpointsBurnside reduction and equation (20) Paper proof pp. 12–13; cites [1, 30]
The count L(m) is the average, over the d! coordinate permutations, of the number of lattice points of the full permutahedron 2mΠ_d that the permutation fixes (at d = 3, m = 1: the hexagon with 19 lattice points, not the 5 points of the polygon); (20) predicts each fixed count from blocks of cycles.
Explore: How do 19 symmetric points become a count of five?
burnside· How do the cycles of a symmetry predict its fixed points?blocksLemma 5.1, equations (21)–(23) Paper proof p. 13
Keeping one block gives the connected series K; its exponential assembles L(m) = Σ 2^q C_{d,q} m^q.
Explore: How do the cycles of a symmetry predict its fixed points?
blocks· Where does the recurrence start?verify-seed· How is a connected block counted?verify-B· How do connected blocks assemble?verify-assembly
The refined basis and its repair (§§5–6)
Equation (16), Lemma 5.2, equations (25)–(28) Paper proof pp. 12–15
The refined Eulerian polynomials A_i(d,t) sort permutations by their last letter; the counts give coordinates a_{d,j} with H_d = Σ a_{d,j} A_{j+1}(d,t).
Explore: What does the refined Eulerian basis count?
basis· How do the signs add up?verify-coordinateThe coordinate a_{7,1} = −1/15 Paper computation p. 15
Nonnegative coordinates would prove real-rootedness; this negative one stops that sufficient argument at d = 7. It is not a counterexample.
Explore: What fails at d = 7?
obstructionLemma 6.1 and Figure 3 Paper proof pp. 15–18
For d ≥ 4 the adjacent-repair family is compatible for 0 ≤ c ≤ c* = 2 − √3; c* is the largest value that works for every d ≥ 4 (the witness is at d = 4, p. 17), and it is optimal only within this repair family.
Explore: How far can the repair go?
sharpEquations (31)–(32) and Corollary 6.2 Paper proof p. 18
For d ≥ 4: if both end coordinates a_{d,0}, a_{d,d−1} and every repaired tail S_{d,r}(c*) are nonnegative, H_d has only real negative zeros. (The paper also calls this statement Proposition 6.2.)
Explore: Can a positive tail absorb a negative coordinate?
tails· Can the total stay positive?verify-tail-update· How is a sign decided without decimals?verify-tail-sign
The finite certificate (§7)
Algorithm 1 Certificate pp. 19–20; the procedure
Each stage of the verifier shows one part of the algorithm on a small example, then on a real run in a Web Worker.
- Line 1: Is the supplied table well formed?
verify-input - Line 2: Where does the recurrence start?
verify-seed - Line 3, the loop over d: Did the whole dimension pass?
verify-row - Line 4, equation (22): How is a connected block counted?
verify-B - Line 5: How do connected blocks assemble?
verify-assembly - Lines 6–8, equation (33): How do the signs add up?
verify-coordinate - Lines 9–10: Why are d = 1, 2, 3 checked separately?
verify-base - Line 12: Why must the two ends be nonnegative?
verify-endpoints - Lines 13–15, equation (31): Can the total stay positive?
verify-tail-update - Lines 13 and 16: How is a sign decided without decimals?
verify-tail-sign - Line 17: What exactly has this run established?
verify-receipt - Not part of Algorithm 1 (a consistency view through equations (1) and (23)): Can the same exact computation also give the h*-polynomial?
verify-H
- Line 1: Is the supplied table well formed?
Theorem 1.3 Paper proof + Certificate pp. 3, 20
Corollary 6.2 together with the author’s run of Algorithm 1 for d ≤ 1000 (base rows, endpoints and strict tails). A receipt from this demo certifies only the rows it checked.
Explore: What exactly has this run established?
verify-receipt· What is proved, and what remains open?scope
Eventual real-rootedness and the open range (§§8–10)
Table 2, Propositions 8.4 and 9.4, Theorem 9.5 Paper proof pp. 24–30
Two estimates cover every repaired tail once d ≥ 2^72: a forward estimate for small tail indices, reverse coefficients for the rest.
Explore: Do two estimates cover every tail?
coverageEquations (34)–(37) Paper proof p. 21
The marked-component identity writes a top-end coordinate as a signed sum of marked terms.
Explore: Why mark one connected component?
markedSection 9, equations (45) and (53)–(55) Paper proof pp. 25–28; cites Darroch [11, Thm 4]
Exact Bernoulli laws; an integer mean is the unique mode; replacing or deleting one coin changes point probabilities by a bounded amount.
Explore: What does smoothing buy?
bernoulliEquation (58) Paper proof pp. 28–29
At the paper’s chosen threshold d_0 = 2^72 the four error bounds total less than 1/32 + 1/64, below the reference bound E(x) > 1/16, which leaves the margin 1/64. They are upper bounds, not measured errors.
Explore: Does the positive margin survive four errors?
errorsTheorem 1.4 Paper proof pp. 3, 30
All zeros are real and negative for every d ≥ 2^72.
Explore: Do two estimates cover every tail?
coverage· Does the positive margin survive four errors?errors· What is proved, and what remains open?scopeConjecture 10.1 Open p. 30
All zeros of H_d are real and negative for every d ≥ 3; unproved for 1001 ≤ d < 2^72.
Explore: What is proved, and what remains open?
scope
Data
The bundled data/reconstructed_small.csv and data/verified_small.json were independently reconstructed from equations (22), (25), (26), (33) and Algorithm 1 for d ≤ 30. They are not the author’s released d ≤ 1000 table. That table is published at the version 1.0.0 release; its repository reserves all rights, so it is not redistributed here. You may choose any CSV on your own computer: the page reads only the rows with d ≤ N, processes them in a Web Worker, and never uploads them.
What a receipt certifies
A receipt is issued only after Algorithm 1 has reconstructed and compared every coordinate of the supplied rows and checked every base row, endpoint and strict tail. It names the table, the rows d = 1…N, the number of bytes read and their SHA-256 hash, and the job. With Corollary 6.2 it is a finite verification of real-rootedness for 4 ≤ d ≤ N computed by this implementation. It is not the author’s computation, does not prove Theorem 1.3 or 1.4, and says nothing about the open interval.
Rights and provenance
Original code: Apache License 2.0 (NOTICE). Original explanatory text and original figures: CC BY 4.0. The precise scopes are in LICENSE-SCOPE.md and README.md. KaTeX (MIT), Inter (SIL OFL 1.1), Latin Modern (GUST Font License), the CIn brand assets, the paper and the author’s data keep their own terms; nothing here relicenses them.
Provenance: the mathematics follows arXiv:2609.06096v1, which is cited and linked, not copied. KaTeX 0.19.0, the fonts and the brand icons are served from this folder, so the pages make no requests to other sites; links to arXiv, the author’s pages and the data release are ordinary links. The bundled data were computed for this demo as described under Data. Tools for computational exploration and implementation: OpenAI Codex and Anthropic Claude.