Wiki
Wiki

Research notes on every problem, and a library of the papers behind them. Built from the open erdos repository.

Updated

Evidence

../


The entry point checks the finite statements of the bounded-blocking account. Run it from the repository root with uv run --no-sync python wiki/research/leads/projective_plane_bounded_blocking/evidence/main.py; the full run takes under a minute on one core and needs a C compiler for the single-orbit clause, and --quick stops the three-conic clause at h=5h=5, the single-orbit scan at p=100p=100 and the conic-pencil clause at p=31p=31.

Witnesses. assets/cap4_witnesses.json holds, for q=5,7,11q=5,7,11, a point set of PG(2,q)(2,q) in normalized homogeneous coordinates over Z/q\mathbb Z/q: points (x,y,1)(x,y,1), (x,1,0)(x,1,0) and (1,0,0)(1,0,0). The sets were found by a weighted local search that is not retained; the checker does not repeat the search. It verifies that each set consists of distinct normalized points, meets every one of the q2+q+1q^2+q+1 lines in one to four points, and has the size and line-type counts recorded on the account, and that its size lies in the cap-four interval of L27. For q=11q=11 it also verifies that every point lies on four lines of each of the sizes one, three and four.

Three conics. util/geometry.py builds GF(2h)(2^h) from addition and multiplication tables for the first monic modulus whose quotient ring is a field, and counts every line's intersection with a point set by direct incidence tests. For h=2,…,7h=2,\dots,7 the checker forms the union of the conics γX2=YZ\gamma X^2=YZ for γ∈{1,g,1+g}\gamma\in\{1,g,1+g\}, with gg the class of the indeterminate, and checks that it has 3q−13q-1 points and meets every line in one to six points, six being attained for h≥3h\ge3. The negative control replaces 1+g1+g by g2g^2, which breaks the relation γ1+γ2+γ3=0\gamma_1+\gamma_2+\gamma_3=0 for h≥3h\ge3, and checks that some line is then uncovered. The finite checks support but do not replace the proof on the parity page, which covers every h≥2h\ge2.

Heuristic orders. util/heuristic.py solves the convex dual of the relative-entropy minimization by damped Newton steps in floating point and maximizes the crossover order over mean loads K=1.05,1.10,…K=1.05,1.10,\dots below CC. The checker confirms the mean loads and the rounded orders quoted on the account for caps five to eight. These are heuristic numbers; agreement shows only that the quoted values are what the stated formula gives.

Singer-invariant sets. util/singer.py finds, for a prime pp, the first cubic w3=aw2+bw+cw^3=aw^2+bw+c (lexicographic in (a,b,c)(a,b,c), c≠0c\ne0) whose root generates the points of PG(2,p)(2,p) as the classes of w0,…,wN−1w^0,\dots,w^{N-1}, and the trace-zero difference set DD. For each entry of assets/singer_witnesses.json the checker confirms the cycle and the planarity of DD, rebuilds the union of the listed classes modulo MM, and counts every line's intersection directly. It then compares these loads with the circulant loads ∑r∈Kμ(r−t)\sum_{r\in K}\mu(r-t), which checks the reduction used by the search. The witnesses were found by a compiled version of the search in singer.cover_search, not retained; for the recorded cases without a witness the checker reruns that exact search to exhaustion. It also recomputes the symmetric first-moment estimates quoted on the account, which are heuristic.

Single orbits. util/orbitscan.c, compiled into ignored output/, repeats the cycle and difference-set construction for every prime from 55 to 20002000 and prints the least and largest class counts of DD modulo each divisor m≥2m\ge2 of NN with m≤p+1≤8mm\le p+1\le8m. The checker confirms the recorded number of pairs, the number with every class hit, and the exact list of pairs whose counts all lie in [1,8][1,8], and compares the program with util/singer.py for p≤100p\le100. In quick mode only that Python range runs.

Maximal arcs. For q=2hq=2^h with h=2,3,4,5h=2,3,4,5 and every d=2rd=2^r with 1≤r<h1\le r<h, the checker builds the point set Q(x,y)∈HQ(x,y)\in H from the repair obstruction. Here α\alpha is the first field element of trace one and HH is the span of the first rr polynomial basis vectors. It counts every line's load, checks that the set has (d−1)q+d(d-1)q+d points and precisely q(q+1−d)/dq(q+1-d)/d empty lines, and checks that every outside point lies on exactly q+1−q/dq+1-q/d saturated lines. All ten parameter pairs run in both modes. This tests the construction and its boundary cases; the large exchange lower bound and the infinite family rest on the exposed proof, not an enumeration of exchanges.

Pencil counts. util/pencil.py enumerates the points and lines of PG(2,p)(2,p) for an odd prime pp and, for a union YY of conics, the lines missing YY and the number NPN_P of them through each point PP off YY. For p=31,37,41,43p=31,37,41,43 and m=1,2,3m=1,2,3 conics drawn from a seeded generator, the checker confirms the pencil bound (3) of the pencil page outside at most (2m(m−1)2)\binom{2m(m-1)}2 points, the exact values for one conic, and the lower bound for the number of missed lines derived in the proof of (4). In these random cases no point violates the bound. The control at p=151p=151 uses two conics with the same tangents from the origin, and checks that the origin lies on at least (p−3)/2(p-3)/2 missed lines, far outside the bound, so the exceptional set in the proposition is needed. The small-order multi-conic error bounds are wide and supply only weak tests. The exact single-conic counts and the p=151p=151 control are the nonvacuous comparisons. The proposition for every odd order rests on the proof on that page.

Cubic pencils. util/pencil.py also computes NPN_P for an arbitrary plane curve with vectorized integer arithmetic. It accumulates the points of missed lines in batches of at most 256 lines to bound temporary storage, and the checker first compares it with the direct counts for the Fermat cubic at p=31p=31. At p=211p=211 it takes the Fermat cubic x3+y3+z3x^3+y^3+z^3, the nodal cubic y2z=x3+x2zy^2z=x^3+x^2z, the cuspidal cubic y2z=x3y^2z=x^3 and the smooth cubic y2z=x3+3xz2+5z3y^2z=x^3+3xz^2+5z^3. Every point off the curve has ∣NP−p/3∣≤2p|N_P-p/3|\le2\sqrt p except exactly 33, 33, 11 and 00 points respectively, each with NP>p/2N_P>p/2. For the Fermat cubic these are the three coordinate points, from which the projection is a cyclic cover. For the union of the Fermat cubic with the conic x2+y2=3z2x^2+y^2=3z^2, and of the smooth cubic with x3+2y3+7z3+xyz=0x^3+2y^3+7z^3+xyz=0, the same bound with α=1/6\alpha=1/6 and 1/91/9 in place of 1/31/3 fails at exactly 22 and 00 points. These central values use the products of the component densities. The exact exception counts and the constant 22 are finite observations, not predictions of the general pencil estimate. The two-cubic example has degree six, so p=211p=211 does not satisfy that estimate's sufficient condition p>D!p>D!. These checks prove nothing for other primes or curves.

The incidence checks use exact finite-field arithmetic. The heuristic estimates and the square-root thresholds in the pencil comparisons are evaluated in floating point. Every failed obligation gives a nonzero exit through the shared Checker.