certificate_irreducibility.py -- L5 at (A,B,C) = (2,3,5): no right factor of order 1-4 over Q(xi) input data/L5_theta.txt: sha256 58eb063ae8c40b5485d76bd5f4b0a8a41d6396abdb12b8689c6e44dda4d73fe2 input data/L5_dform.json: sha256 795ed945b383b7582ccac83f2890e1d8073c97b72d95b468de703620c94445a5 input data/exterior_powers.json: sha256 a336d26aff30f38db7e0473bdb94bf590844baa0ec8533de0a47b337d3dc90cc software: {'python': '3.12.3', 'sympy': '1.14.0', 'python-flint': '0.8.0'} == Stage 0: operator (theta form of data/L5_theta.txt -> D form over Z[xi]) == degrees: [6, 7, 8, 9, 10, 11] lc(L5) = x**5*(216*x**2 + 20*x + 3)*(576*x**4 - 960*x**3 + 352*x**2 - 40*x + 1) PASS Stage 0: D-form of data/L5_theta.txt at (2,3,5) == data/L5_dform.json PASS Stage 0: leading coefficient c_5 = xi^5 (216 xi^2+20 xi+3)(576 xi^4-960 xi^3+352 xi^2-40 xi+1) PASS Stage 0: L5_dform.json has order 5 and integer coefficient lists PASS Stage 0: certificate operators agree (L5 of prove_wedge == L5_dform.json) == Stage 1: order one, complete hyperexponential enumeration for L5 == [L5_r1] order 5, lc factors: [('x', 5), ('216*x**2 + 20*x + 3', 1), ('576*x**4 - 960*x**3 + 352*x**2 - 40*x + ', 1)] factor deg1: v=[3, 3, 3, 3, 4, 5] k=0 exponent options [Fraction(0, 1)] complete=True factor deg2: v=[0, 0, 0, 0, 0, 1] k=4 exponent options [Fraction(0, 1)] complete=True factor deg4: v=[0, 0, 0, 0, 0, 1] k=4 exponent options [Fraction(0, 1), Fraction(1, 2)] complete=True infinity: lam options [Fraction(1, 2), Fraction(1, 1), Fraction(3, 2), Fraction(5, 2), Fraction(7, 2)] complete=True [L5_r1] done: 0 combos, 0 candidates, flags=[] (0.2s) PASS Stage 1: engine finds no exponent combination with a nonnegative integer degree (0 combinations, 0 candidates) PASS Stage 1: no completeness flag raised by the enumeration exponent options per factor of c_5: factor deg 1 (x): options ['0'] complete=True factor deg 2 (216*x**2 + 20*x + 3): options ['0'] complete=True factor deg 4 (576*x**4 - 960*x**3 + 352*x**2 - 40*x + ): options ['0', '1/2'] complete=True roots at infinity (u ~ xi^-lam): ['1/2', '1', '3/2', '5/2', '7/2'] complete=True PASS Stage 1: every finite exponent option >= 0 and every lam > 0, so deg P = -lam - sum e_F deg F < 0 for every combination PASS Stage 1: roots at infinity are those of the printed P_6: {1/2, 1, 3/2, 5/2, 7/2} PASS Stage 1: root census -- at every factor of c_5 the indicial polynomial has constant coefficients and all roots found over Q {'factor': 'x', 'deg': 1, 'indicial_degree': 5, 'roots_found': 5, 'roots': ['0', '1', '2'], 'status': 'all roots found'} {'factor': '216*x**2 + 20*x + 3', 'deg': 2, 'indicial_degree': 5, 'roots_found': 5, 'roots': ['0', '1', '2', '3', '5'], 'status': 'all roots found'} {'factor': '576*x**4 - 960*x**3 + 352*x**2 - 40*x + ', 'deg': 4, 'indicial_degree': 5, 'roots_found': 5, 'roots': ['0', '1', '1/2', '2', '3'], 'status': 'all roots found'} == Stage 2: M_r annihilates every r-wedge of solutions of L5, exactly over Z[xi] == PASS Stage 2: M_2 has order 10 with integer coefficients -- order 10, max coefficient degree 76, max 233 bits r=2: order 10, wedge dim 10, row-identity zero: True (max residual deg -1) PASS Stage 2: exact wedge annihilation identity for r = 2 (row identity zero in Z[xi]) PASS Stage 2: M_3 has order 10 with integer coefficients -- order 10, max coefficient degree 90, max 277 bits r=3: order 10, wedge dim 10, row-identity zero: True (max residual deg -1) PASS Stage 2: exact wedge annihilation identity for r = 3 (row identity zero in Z[xi]) PASS Stage 2: M_4 has order 5 with integer coefficients -- order 5, max coefficient degree 29, max 90 bits r=4: order 5, wedge dim 5, row-identity zero: True (max residual deg -1) PASS Stage 2: exact wedge annihilation identity for r = 4 (row identity zero in Z[xi]) == Stage 3: complete hyperexponential enumeration for M_2, M_3, M_4 == [Lambda2] order 10, lc factors: [('x', 7), ('576*x**4 - 960*x**3 + 352*x**2 - 40*x + ', 4), ('1085399347739004949329827995538603069197', 1)] factor deg1: v=[0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7] k=3 exponent options [Fraction(-1, 1), Fraction(0, 1)] complete=True factor deg4: v=[0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4] k=6 exponent options [Fraction(-1, 2), Fraction(0, 1), Fraction(1, 2), Fraction(3, 2), Fraction(5, 2)] complete=True factor deg53: v=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] k=9 exponent options [Fraction(0, 1)] complete=True infinity: lam options [Fraction(5, 2), Fraction(3, 1), Fraction(7, 2), Fraction(4, 1), Fraction(9, 2), Fraction(5, 1), Fraction(11, 2), Fraction(6, 1), Fraction(7, 1), Fraction(8, 1)] complete=True combo e=['-1', '-1/2', '0'] lam=3 D=0: NOSOL(rank p1) [Lambda2] done: 1 combos, 0 candidates, flags=[] (3.1s) PASS Stage 3: M_2 has no hyperexponential solution (0 candidates; every combination NOSOL by full column rank) -- 1 admissible combinations PASS Stage 3: no completeness flag for M_2 PASS Stage 3: root census for M_2 -- all indicial roots found at every factor; infinity complete [Lambda3] order 10, lc factors: [('x', 9), ('576*x**4 - 960*x**3 + 352*x**2 - 40*x + ', 6), ('5516242843094979012163712437755335615048', 1)] factor deg1: v=[0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] k=1 exponent options [Fraction(-3, 1), Fraction(-2, 1), Fraction(-1, 1), Fraction(0, 1)] complete=True factor deg4: v=[0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6] k=4 exponent options [Fraction(-3, 2), Fraction(-1, 2), Fraction(0, 1), Fraction(1, 2), Fraction(3, 2), Fraction(5, 2), Fraction(7, 2)] complete=True factor deg57: v=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] k=9 exponent options [Fraction(0, 1)] complete=True infinity: lam options [Fraction(6, 1), Fraction(7, 1), Fraction(15, 2), Fraction(8, 1), Fraction(17, 2), Fraction(9, 1), Fraction(19, 2), Fraction(10, 1), Fraction(21, 2), Fraction(11, 1)] complete=True combo e=['-3', '-3/2', '0'] lam=9 D=0: NOSOL(rank p1) combo e=['-3', '-3/2', '0'] lam=8 D=1: NOSOL(rank p1) combo e=['-3', '-3/2', '0'] lam=7 D=2: NOSOL(rank p1) combo e=['-3', '-3/2', '0'] lam=6 D=3: NOSOL(rank p1) combo e=['-2', '-3/2', '0'] lam=8 D=0: NOSOL(rank p1) combo e=['-2', '-3/2', '0'] lam=7 D=1: NOSOL(rank p1) combo e=['-2', '-3/2', '0'] lam=6 D=2: NOSOL(rank p1) combo e=['-1', '-3/2', '0'] lam=7 D=0: NOSOL(rank p1) combo e=['-1', '-3/2', '0'] lam=6 D=1: NOSOL(rank p1) combo e=['0', '-3/2', '0'] lam=6 D=0: NOSOL(rank p1) [Lambda3] done: 10 combos, 0 candidates, flags=[] (6.9s) PASS Stage 3: M_3 has no hyperexponential solution (0 candidates; every combination NOSOL by full column rank) -- 10 admissible combinations PASS Stage 3: no completeness flag for M_3 PASS Stage 3: root census for M_3 -- all indicial roots found at every factor; infinity complete [Lambda4] order 5, lc factors: [('x', 5), ('216*x**2 + 20*x + 3', 4), ('576*x**4 - 960*x**3 + 352*x**2 - 40*x + ', 4)] factor deg1: v=[0, 1, 2, 3, 4, 5] k=0 exponent options [Fraction(-5, 1), Fraction(-4, 1), Fraction(-3, 1), Fraction(0, 1)] complete=True factor deg2: v=[0, 0, 1, 2, 3, 4] k=1 exponent options [Fraction(0, 1)] complete=True factor deg4: v=[0, 0, 1, 2, 3, 4] k=1 exponent options [Fraction(-5, 2), Fraction(-3, 2), Fraction(-1, 2), Fraction(0, 1), Fraction(1, 2)] complete=True infinity: lam options [Fraction(23, 2), Fraction(25, 2), Fraction(27, 2), Fraction(14, 1), Fraction(29, 2)] complete=True combo e=['-5', '0', '-5/2'] lam=14 D=1: NOSOL(rank p1) combo e=['-4', '0', '-5/2'] lam=14 D=0: NOSOL(rank p1) [Lambda4] done: 2 combos, 0 candidates, flags=[] (0.2s) PASS Stage 3: M_4 has no hyperexponential solution (0 candidates; every combination NOSOL by full column rank) -- 2 admissible combinations PASS Stage 3: no completeness flag for M_4 PASS Stage 3: root census for M_4 -- all indicial roots found at every factor; infinity complete SUMMARY: 24 PASS, 0 FAIL CERTIFICATE PASS (fail-closed): L5 at (2,3,5) has no right factor of order 1, 2, 3, or 4 over Q(xi) saved certificate_irreducibility_result.json (14.1 s)