# r2_quad_ranks.py (independent verification run 2, AI-assisted, own code); primes p1=2147482591 (3 mod 4), p2=2147478601 (1 mod 4)
[unit_square] V=[(0, 0), (1, 0), (1, 1), (0, 1)] p=2147482591, 1150 points: F_P vanishes at all: True; (monomials, rank, dim ker) for d=12..16: [(455, 455, 0), (560, 560, 0), (680, 679, 1), (816, 812, 4), (969, 959, 10)]  => OK (4.4s)
[parallelogram] V=[(0, 0), (5, 1), (7, 4), (2, 3)] p=2147482591, 1150 points: F_P vanishes at all: True; (monomials, rank, dim ker) for d=12..16: [(455, 455, 0), (560, 560, 0), (680, 679, 1), (816, 812, 4), (969, 959, 10)]  => OK (4.4s)
[rhombus(tangential)] V=[(0, 0), (5, 0), (8, 4), (3, 4)] p=2147478601, 1150 points: F_P vanishes at all: True; (monomials, rank, dim ker) for d=12..16: [(455, 455, 0), (560, 560, 0), (680, 679, 1), (816, 812, 4), (969, 959, 10)]  => OK (5.1s)
[kite(tangential)] V=[(0, 0), (3, -2), (8, 0), (3, 2)] p=2147482591, 1150 points: F_P vanishes at all: True; (monomials, rank, dim ker) for d=12..16: [(455, 455, 0), (560, 560, 0), (680, 679, 1), (816, 812, 4), (969, 959, 10)]  => OK (4.5s)
[trapezoid] V=[(0, 0), (7, 0), (5, 3), (1, 3)] p=2147482591, 1150 points: F_P vanishes at all: True; (monomials, rank, dim ker) for d=12..16: [(455, 455, 0), (560, 560, 0), (680, 679, 1), (816, 812, 4), (969, 959, 10)]  => OK (4.4s)
[cyclic_non_trapezoid] V=[(5, 0), (3, 4), (-4, 3), (-3, -4)] p=2147478601, 1150 points: F_P vanishes at all: True; (monomials, rank, dim ker) for d=12..16: [(455, 455, 0), (560, 560, 0), (680, 679, 1), (816, 812, 4), (969, 959, 10)]  => OK (5.0s)
[dart(non-convex)] V=[(0, 0), (8, 1), (3, 3), (1, 9)] p=2147482591, 1150 points: F_P vanishes at all: True; (monomials, rank, dim ker) for d=12..16: [(455, 455, 0), (560, 560, 0), (680, 679, 1), (816, 812, 4), (969, 959, 10)]  => OK (4.4s)
[bowtie(self-intersecting)] V=[(0, 0), (6, 5), (6, 0), (0, 7)] p=2147482591, 1150 points: F_P vanishes at all: True; (monomials, rank, dim ker) for d=12..16: [(455, 455, 0), (560, 560, 0), (680, 679, 1), (816, 812, 4), (969, 959, 10)]  => OK (4.4s)
[random1] V=[(29, -36), (40, -35), (-31, 4), (-10, 28)] p=2147478601, 1150 points: F_P vanishes at all: True; (monomials, rank, dim ker) for d=12..16: [(455, 455, 0), (560, 560, 0), (680, 679, 1), (816, 812, 4), (969, 959, 10)]  => OK (4.9s)
[random2] V=[(11, -38), (-5, 40), (-17, -14), (18, 15)] p=2147482591, 1150 points: F_P vanishes at all: True; (monomials, rank, dim ker) for d=12..16: [(455, 455, 0), (560, 560, 0), (680, 679, 1), (816, 812, 4), (969, 959, 10)]  => OK (4.3s)
[random3] V=[(-11, -30), (-1, 30), (-39, 5), (0, 14)] p=2147482591, 1150 points: F_P vanishes at all: True; (monomials, rank, dim ker) for d=12..16: [(455, 455, 0), (560, 560, 0), (680, 679, 1), (816, 812, 4), (969, 959, 10)]  => OK (4.4s)
[random4] V=[(4, 16), (20, -7), (27, 18), (-1, -38)] p=2147478601, 1150 points: F_P vanishes at all: True; (monomials, rank, dim ker) for d=12..16: [(455, 455, 0), (560, 560, 0), (680, 679, 1), (816, 812, 4), (969, 959, 10)]  => OK (5.0s)
negative control: 1150 random points of P^3, rank E_14 = 680 of 680 (full: True)
[info, outside Theorem 1.1] three_collinear_consecutive V=[(0, 0), (4, 1), (8, 2), (3, 7)]: s-valuation of N_P=2, F_P vanishes on samples: True; dim ker E_d for d=1..14: [(12, 1), (13, 4), (14, 10)]
[info, outside Theorem 1.1] three_collinear_nonconsecutive V=[(0, 0), (5, 5), (6, 0), (2, 2)]: s-valuation of N_P=2, F_P vanishes on samples: True; dim ker E_d for d=1..14: [(12, 1), (13, 4), (14, 10)]
ALL OK: True (61.0s)
