Part A: Lemma 5.2 (order drop along D on S), exact
  s=1 D=line  t=1 deg G=1: orders [1, 0] (expected [1, 0]), degrees [1, 0] (expected [1, 0]), index-0-only combos order>=t-i: True -> OK
  s=1 D=line  t=1 deg G=2: orders [1, 0] (expected [1, 0]), degrees [2, 1] (expected [2, 1]), index-0-only combos order>=t-i: True -> OK
  s=1 D=line  t=1 deg G=3: orders [1, 0] (expected [1, 0]), degrees [3, 2] (expected [3, 2]), index-0-only combos order>=t-i: True -> OK
  s=1 D=line  t=2 deg G=2: orders [2, 1, 0] (expected [2, 1, 0]), degrees [2, 1, 0] (expected [2, 1, 0]), index-0-only combos order>=t-i: True -> OK
  s=1 D=line  t=2 deg G=3: orders [2, 1, 0] (expected [2, 1, 0]), degrees [3, 2, 1] (expected [3, 2, 1]), index-0-only combos order>=t-i: True -> OK
  s=1 D=line  t=2 deg G=4: orders [2, 1, 0] (expected [2, 1, 0]), degrees [4, 3, 2] (expected [4, 3, 2]), index-0-only combos order>=t-i: True -> OK
  s=1 D=line  t=3 deg G=3: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [3, 2, 1, 0] (expected [3, 2, 1, 0]), index-0-only combos order>=t-i: True -> OK
  s=1 D=line  t=3 deg G=4: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [4, 3, 2, 1] (expected [4, 3, 2, 1]), index-0-only combos order>=t-i: True -> OK
  s=1 D=line  t=3 deg G=5: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [5, 4, 3, 2] (expected [5, 4, 3, 2]), index-0-only combos order>=t-i: True -> OK
  s=1 D=line  t=4 deg G=4: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), index-0-only combos order>=t-i: True -> OK
  s=1 D=line  t=4 deg G=5: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [5, 4, 3, 2, 1] (expected [5, 4, 3, 2, 1]), index-0-only combos order>=t-i: True -> OK
  s=1 D=line  t=4 deg G=6: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [6, 5, 4, 3, 2] (expected [6, 5, 4, 3, 2]), index-0-only combos order>=t-i: True -> OK
  s=1 D=parab t=1 deg G=2: orders [1, 0] (expected [1, 0]), degrees [2, 1] (expected [2, 1]), index-0-only combos order>=t-i: True -> OK
  s=1 D=parab t=1 deg G=3: orders [1, 0] (expected [1, 0]), degrees [3, 2] (expected [3, 2]), index-0-only combos order>=t-i: True -> OK
  s=1 D=parab t=1 deg G=4: orders [1, 0] (expected [1, 0]), degrees [4, 3] (expected [4, 3]), index-0-only combos order>=t-i: True -> OK
  s=1 D=parab t=2 deg G=4: orders [2, 1, 0] (expected [2, 1, 0]), degrees [4, 3, 2] (expected [4, 3, 2]), index-0-only combos order>=t-i: True -> OK
  s=1 D=parab t=2 deg G=5: orders [2, 1, 0] (expected [2, 1, 0]), degrees [5, 4, 3] (expected [5, 4, 3]), index-0-only combos order>=t-i: True -> OK
  s=1 D=parab t=2 deg G=6: orders [2, 1, 0] (expected [2, 1, 0]), degrees [6, 5, 4] (expected [6, 5, 4]), index-0-only combos order>=t-i: True -> OK
  s=1 D=parab t=3 deg G=6: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [6, 5, 4, 3] (expected [6, 5, 4, 3]), index-0-only combos order>=t-i: True -> OK
  s=1 D=parab t=3 deg G=7: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [7, 6, 5, 4] (expected [7, 6, 5, 4]), index-0-only combos order>=t-i: True -> OK
  s=1 D=parab t=3 deg G=8: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [8, 7, 6, 5] (expected [8, 7, 6, 5]), index-0-only combos order>=t-i: True -> OK
  s=1 D=parab t=4 deg G=8: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [8, 7, 6, 5, 4] (expected [8, 7, 6, 5, 4]), index-0-only combos order>=t-i: True -> OK
  s=1 D=parab t=4 deg G=9: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [9, 8, 7, 6, 5] (expected [9, 8, 7, 6, 5]), index-0-only combos order>=t-i: True -> OK
  s=1 D=parab t=4 deg G=10: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [10, 9, 8, 7, 6] (expected [10, 9, 8, 7, 6]), index-0-only combos order>=t-i: True -> OK
  s=2 D=line  t=1 deg G=2: orders [1, 0] (expected [1, 0]), degrees [2, 2] (expected [2, 2]), index-0-only combos order>=t-i: True -> OK
  s=2 D=line  t=1 deg G=3: orders [1, 0] (expected [1, 0]), degrees [3, 3] (expected [3, 3]), index-0-only combos order>=t-i: True -> OK
  s=2 D=line  t=2 deg G=2: orders [2, 1, 0] (expected [2, 1, 0]), degrees [2, 2, 2] (expected [2, 2, 2]), index-0-only combos order>=t-i: True -> OK
  s=2 D=line  t=2 deg G=4: orders [2, 1, 0] (expected [2, 1, 0]), degrees [4, 4, 4] (expected [4, 4, 4]), index-0-only combos order>=t-i: True -> OK
  s=2 D=line  t=3 deg G=3: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [3, 3, 3, 3] (expected [3, 3, 3, 3]), index-0-only combos order>=t-i: True -> OK
  s=2 D=line  t=3 deg G=4: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [4, 4, 4, 4] (expected [4, 4, 4, 4]), index-0-only combos order>=t-i: True -> OK
  s=2 D=line  t=3 deg G=5: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [5, 5, 5, 5] (expected [5, 5, 5, 5]), index-0-only combos order>=t-i: True -> OK
  s=2 D=line  t=4 deg G=4: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [4, 4, 4, 4, 4] (expected [4, 4, 4, 4, 4]), index-0-only combos order>=t-i: True -> OK
  s=2 D=line  t=4 deg G=5: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [5, 5, 5, 5, 5] (expected [5, 5, 5, 5, 5]), index-0-only combos order>=t-i: True -> OK
  s=2 D=line  t=4 deg G=6: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [6, 6, 6, 6, 6] (expected [6, 6, 6, 6, 6]), index-0-only combos order>=t-i: True -> OK
  s=2 D=parab t=1 deg G=2: orders [1, 0] (expected [1, 0]), degrees [2, 2] (expected [2, 2]), index-0-only combos order>=t-i: True -> OK
  s=2 D=parab t=1 deg G=3: orders [1, 0] (expected [1, 0]), degrees [3, 3] (expected [3, 3]), index-0-only combos order>=t-i: True -> OK
  s=2 D=parab t=1 deg G=4: orders [1, 0] (expected [1, 0]), degrees [4, 4] (expected [4, 4]), index-0-only combos order>=t-i: True -> OK
  s=2 D=parab t=2 deg G=4: orders [2, 1, 0] (expected [2, 1, 0]), degrees [4, 4, 4] (expected [4, 4, 4]), index-0-only combos order>=t-i: True -> OK
  s=2 D=parab t=2 deg G=5: orders [2, 1, 0] (expected [2, 1, 0]), degrees [5, 5, 5] (expected [5, 5, 5]), index-0-only combos order>=t-i: True -> OK
  s=2 D=parab t=2 deg G=6: orders [2, 1, 0] (expected [2, 1, 0]), degrees [6, 6, 6] (expected [6, 6, 6]), index-0-only combos order>=t-i: True -> OK
  s=2 D=parab t=3 deg G=6: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [6, 6, 6, 6] (expected [6, 6, 6, 6]), index-0-only combos order>=t-i: True -> OK
  s=2 D=parab t=3 deg G=7: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [7, 7, 7, 7] (expected [7, 7, 7, 7]), index-0-only combos order>=t-i: True -> OK
  s=2 D=parab t=3 deg G=8: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [8, 8, 8, 8] (expected [8, 8, 8, 8]), index-0-only combos order>=t-i: True -> OK
  s=2 D=parab t=4 deg G=8: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [8, 8, 8, 8, 8] (expected [8, 8, 8, 8, 8]), index-0-only combos order>=t-i: True -> OK
  s=2 D=parab t=4 deg G=9: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [9, 9, 9, 9, 9] (expected [9, 9, 9, 9, 9]), index-0-only combos order>=t-i: True -> OK
  s=2 D=parab t=4 deg G=10: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [10, 10, 10, 10, 10] (expected [10, 10, 10, 10, 10]), index-0-only combos order>=t-i: True -> OK
  s=3 D=line  t=1 deg G=3: orders [1, 0] (expected [1, 0]), degrees [3, 4] (expected [3, 4]), index-0-only combos order>=t-i: True -> OK
  s=3 D=line  t=2 deg G=3: orders [2, 1, 0] (expected [2, 1, 0]), degrees [3, 4, 5] (expected [3, 4, 5]), index-0-only combos order>=t-i: True -> OK
  s=3 D=line  t=2 deg G=4: orders [2, 1, 0] (expected [2, 1, 0]), degrees [4, 5, 6] (expected [4, 5, 6]), index-0-only combos order>=t-i: True -> OK
  s=3 D=line  t=3 deg G=3: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [3, 4, 5, 6] (expected [3, 4, 5, 6]), index-0-only combos order>=t-i: True -> OK
  s=3 D=line  t=3 deg G=4: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [4, 5, 6, 7] (expected [4, 5, 6, 7]), index-0-only combos order>=t-i: True -> OK
  s=3 D=line  t=3 deg G=5: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [5, 6, 7, 8] (expected [5, 6, 7, 8]), index-0-only combos order>=t-i: True -> OK
  s=3 D=line  t=4 deg G=4: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [4, 5, 6, 7, 8] (expected [4, 5, 6, 7, 8]), index-0-only combos order>=t-i: True -> OK
  s=3 D=line  t=4 deg G=5: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [5, 6, 7, 8, 9] (expected [5, 6, 7, 8, 9]), index-0-only combos order>=t-i: True -> OK
  s=3 D=line  t=4 deg G=6: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [6, 7, 8, 9, 10] (expected [6, 7, 8, 9, 10]), index-0-only combos order>=t-i: True -> OK
  s=3 D=parab t=1 deg G=3: orders [1, 0] (expected [1, 0]), degrees [3, 4] (expected [3, 4]), index-0-only combos order>=t-i: True -> OK
  s=3 D=parab t=1 deg G=4: orders [1, 0] (expected [1, 0]), degrees [4, 5] (expected [4, 5]), index-0-only combos order>=t-i: True -> OK
  s=3 D=parab t=2 deg G=4: orders [2, 1, 0] (expected [2, 1, 0]), degrees [4, 5, 6] (expected [4, 5, 6]), index-0-only combos order>=t-i: True -> OK
  s=3 D=parab t=2 deg G=5: orders [2, 1, 0] (expected [2, 1, 0]), degrees [5, 6, 7] (expected [5, 6, 7]), index-0-only combos order>=t-i: True -> OK
  s=3 D=parab t=2 deg G=6: orders [2, 1, 0] (expected [2, 1, 0]), degrees [6, 7, 8] (expected [6, 7, 8]), index-0-only combos order>=t-i: True -> OK
  s=3 D=parab t=3 deg G=6: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [6, 7, 8, 9] (expected [6, 7, 8, 9]), index-0-only combos order>=t-i: True -> OK
  s=3 D=parab t=3 deg G=7: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [7, 8, 9, 10] (expected [7, 8, 9, 10]), index-0-only combos order>=t-i: True -> OK
  s=3 D=parab t=3 deg G=8: orders [3, 2, 1, 0] (expected [3, 2, 1, 0]), degrees [8, 9, 10, 11] (expected [8, 9, 10, 11]), index-0-only combos order>=t-i: True -> OK
  s=3 D=parab t=4 deg G=8: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [8, 9, 10, 11, 12] (expected [8, 9, 10, 11, 12]), index-0-only combos order>=t-i: True -> OK
  s=3 D=parab t=4 deg G=9: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [9, 10, 11, 12, 13] (expected [9, 10, 11, 12, 13]), index-0-only combos order>=t-i: True -> OK
  s=3 D=parab t=4 deg G=10: orders [4, 3, 2, 1, 0] (expected [4, 3, 2, 1, 0]), degrees [10, 11, 12, 13, 14] (expected [10, 11, 12, 13, 14]), index-0-only combos order>=t-i: True -> OK
  cases: 66; all orders and degrees as predicted: True; weak bound for index-0 combos: True
Part B: Lemma 5.3 in the monomial case, e(I) >= e(K) + 3
  area formula check: gens=[(0, 5), (4, 0)]: 2*area=20, second differences [20, 20] -> OK
  area formula check: gens=[(0, 5), (1, 3), (3, 0)]: 2*area=14, second differences [14, 14] -> OK
  area formula check: gens=[(0, 2), (1, 1), (1, 2), (4, 0), (4, 1)]: 2*area=6, second differences [6, 6] -> OK
  area formula check: gens=[(0, 6), (3, 0)]: 2*area=18, second differences [18, 18] -> OK
  area formula check: gens=[(0, 5), (2, 2), (3, 1), (3, 5), (4, 0)]: 2*area=18, second differences [18, 18] -> OK
  area formula check: gens=[(0, 4), (5, 0)]: 2*area=20, second differences [20, 20] -> OK
  400 random monomial ideals I in m^2: e(I) >= e(K)+3 always: True (equality in 15 cases, e.g. I = m^2)
Part C: case tables
  Lemma 3.6 bound a-w equals Castelnuovo number pi(a,w) for w <= a < 2w, w <= 11: True
  128 table rows checked, violations: []
  global bounds for quadrics on P^4: {'Thm 1.5 fixed component': 1, 'Thm 1.5 dim Y <= 1': 16, 'Thm 1.5 dim Y = 2, e = 4 (pencil, 2n)': 8, 'Thm 1.5 dim Y = 2, e <= 3': 13} -> max 16
Part D: numerical inequalities
  k + r(k-2) <= 2kr: True;  (f-1)^3+(k-f)^3 <= k^3: True;  (f-1)^2+(k-f)^2 <= k^2: True;  s <= 2kr: True;  (k-1)m1 <= km for m1 <= m: True
Part E: grid examples
  N=1: k=1..4 grids have exactly k^N simple real zeros, all with x0 != 0: True
  N=2: k=1..4 grids have exactly k^N simple real zeros, all with x0 != 0: True
  N=3: k=1..4 grids have exactly k^N simple real zeros, all with x0 != 0: True
  N=4: k=1..4 grids have exactly k^N simple real zeros, all with x0 != 0: True
ALL LEAD CHECKS PASSED: True
