== Part 1: conic germs (pencil integrals C^i s^(m-i); expected nullity m+1)
PASS S2/conic_S2/deg2 :: geom=S2 germ=conic_S2 deg=2: unknowns=6 eqs=55 rank_p=4 nullity_p=2; known solutions independent=2, verified exactly=True; exact rank_Q=4 nullity_Q=2 [expected nullity 2]
PASS S2/conic_S2/deg4 :: geom=S2 germ=conic_S2 deg=4: unknowns=15 eqs=110 rank_p=12 nullity_p=3; known solutions independent=3, verified exactly=True; exact rank_Q=12 nullity_Q=3 [expected nullity 3]
PASS S2/conic_S2/deg6 :: geom=S2 germ=conic_S2 deg=6: unknowns=28 eqs=165 rank_p=24 nullity_p=4; known solutions independent=4, verified exactly=True; exact rank_Q=24 nullity_Q=4 [expected nullity 4]
PASS S2/conic_S2/deg8 :: geom=S2 germ=conic_S2 deg=8: unknowns=45 eqs=220 rank_p=40 nullity_p=5; known solutions independent=5, verified exactly=True [expected nullity 5]
PASS S2/conic_S2/deg10 :: geom=S2 germ=conic_S2 deg=10: unknowns=66 eqs=275 rank_p=60 nullity_p=6; known solutions independent=6, verified exactly=True [expected nullity 6]
PASS S2/conic_S2/deg12 :: geom=S2 germ=conic_S2 deg=12: unknowns=91 eqs=330 rank_p=84 nullity_p=7; known solutions independent=7, verified exactly=True [expected nullity 7]
PASS S2/conic_S2/deg14 :: geom=S2 germ=conic_S2 deg=14: unknowns=120 eqs=385 rank_p=112 nullity_p=8; known solutions independent=8, verified exactly=True [expected nullity 8]
PASS H2/conic_H2/deg2 :: geom=H2 germ=conic_H2 deg=2: unknowns=6 eqs=55 rank_p=4 nullity_p=2; known solutions independent=2, verified exactly=True; exact rank_Q=4 nullity_Q=2 [expected nullity 2]
PASS H2/conic_H2/deg4 :: geom=H2 germ=conic_H2 deg=4: unknowns=15 eqs=110 rank_p=12 nullity_p=3; known solutions independent=3, verified exactly=True; exact rank_Q=12 nullity_Q=3 [expected nullity 3]
PASS H2/conic_H2/deg6 :: geom=H2 germ=conic_H2 deg=6: unknowns=28 eqs=165 rank_p=24 nullity_p=4; known solutions independent=4, verified exactly=True; exact rank_Q=24 nullity_Q=4 [expected nullity 4]
PASS H2/conic_H2/deg8 :: geom=H2 germ=conic_H2 deg=8: unknowns=45 eqs=220 rank_p=40 nullity_p=5; known solutions independent=5, verified exactly=True [expected nullity 5]
PASS H2/conic_H2/deg10 :: geom=H2 germ=conic_H2 deg=10: unknowns=66 eqs=275 rank_p=60 nullity_p=6; known solutions independent=6, verified exactly=True [expected nullity 6]
PASS H2/conic_H2/deg12 :: geom=H2 germ=conic_H2 deg=12: unknowns=91 eqs=330 rank_p=84 nullity_p=7; known solutions independent=7, verified exactly=True [expected nullity 7]
PASS H2/conic_H2/deg14 :: geom=H2 germ=conic_H2 deg=14: unknowns=120 eqs=385 rank_p=112 nullity_p=8; known solutions independent=8, verified exactly=True [expected nullity 8]
== Part 2: non-conic germs (expected nullity 1: only s^m, i.e. no non-constant integral)
PASS S2/cubic/deg2 :: geom=S2 germ=cubic deg=2: unknowns=6 eqs=55 rank_p=5 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=5 nullity_Q=1 [expected nullity 1]
PASS S2/cubic/deg4 :: geom=S2 germ=cubic deg=4: unknowns=15 eqs=110 rank_p=14 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=14 nullity_Q=1 [expected nullity 1]
PASS S2/cubic/deg6 :: geom=S2 germ=cubic deg=6: unknowns=28 eqs=165 rank_p=27 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/cubic/deg8 :: geom=S2 germ=cubic deg=8: unknowns=45 eqs=220 rank_p=44 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/cubic/deg10 :: geom=S2 germ=cubic deg=10: unknowns=66 eqs=275 rank_p=65 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/cubic/deg12 :: geom=S2 germ=cubic deg=12: unknowns=91 eqs=330 rank_p=90 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/cubic/deg14 :: geom=S2 germ=cubic deg=14: unknowns=120 eqs=385 rank_p=119 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/quartic/deg2 :: geom=S2 germ=quartic deg=2: unknowns=6 eqs=55 rank_p=5 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=5 nullity_Q=1 [expected nullity 1]
PASS S2/quartic/deg4 :: geom=S2 germ=quartic deg=4: unknowns=15 eqs=110 rank_p=14 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=14 nullity_Q=1 [expected nullity 1]
PASS S2/quartic/deg6 :: geom=S2 germ=quartic deg=6: unknowns=28 eqs=165 rank_p=27 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/quartic/deg8 :: geom=S2 germ=quartic deg=8: unknowns=45 eqs=220 rank_p=44 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/quartic/deg10 :: geom=S2 germ=quartic deg=10: unknowns=66 eqs=275 rank_p=65 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/quartic/deg12 :: geom=S2 germ=quartic deg=12: unknowns=91 eqs=330 rank_p=90 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/quartic/deg14 :: geom=S2 germ=quartic deg=14: unknowns=120 eqs=385 rank_p=119 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/sextic/deg2 :: geom=S2 germ=sextic deg=2: unknowns=6 eqs=55 rank_p=5 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=5 nullity_Q=1 [expected nullity 1]
PASS S2/sextic/deg4 :: geom=S2 germ=sextic deg=4: unknowns=15 eqs=110 rank_p=14 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=14 nullity_Q=1 [expected nullity 1]
PASS S2/sextic/deg6 :: geom=S2 germ=sextic deg=6: unknowns=28 eqs=165 rank_p=27 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/sextic/deg8 :: geom=S2 germ=sextic deg=8: unknowns=45 eqs=220 rank_p=44 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/sextic/deg10 :: geom=S2 germ=sextic deg=10: unknowns=66 eqs=275 rank_p=65 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/sextic/deg12 :: geom=S2 germ=sextic deg=12: unknowns=91 eqs=330 rank_p=90 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS S2/sextic/deg14 :: geom=S2 germ=sextic deg=14: unknowns=120 eqs=385 rank_p=119 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/cubic/deg2 :: geom=H2 germ=cubic deg=2: unknowns=6 eqs=55 rank_p=5 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=5 nullity_Q=1 [expected nullity 1]
PASS H2/cubic/deg4 :: geom=H2 germ=cubic deg=4: unknowns=15 eqs=110 rank_p=14 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=14 nullity_Q=1 [expected nullity 1]
PASS H2/cubic/deg6 :: geom=H2 germ=cubic deg=6: unknowns=28 eqs=165 rank_p=27 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/cubic/deg8 :: geom=H2 germ=cubic deg=8: unknowns=45 eqs=220 rank_p=44 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/cubic/deg10 :: geom=H2 germ=cubic deg=10: unknowns=66 eqs=275 rank_p=65 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/cubic/deg12 :: geom=H2 germ=cubic deg=12: unknowns=91 eqs=330 rank_p=90 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/cubic/deg14 :: geom=H2 germ=cubic deg=14: unknowns=120 eqs=385 rank_p=119 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/quartic/deg2 :: geom=H2 germ=quartic deg=2: unknowns=6 eqs=55 rank_p=5 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=5 nullity_Q=1 [expected nullity 1]
PASS H2/quartic/deg4 :: geom=H2 germ=quartic deg=4: unknowns=15 eqs=110 rank_p=14 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=14 nullity_Q=1 [expected nullity 1]
PASS H2/quartic/deg6 :: geom=H2 germ=quartic deg=6: unknowns=28 eqs=165 rank_p=27 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/quartic/deg8 :: geom=H2 germ=quartic deg=8: unknowns=45 eqs=220 rank_p=44 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/quartic/deg10 :: geom=H2 germ=quartic deg=10: unknowns=66 eqs=275 rank_p=65 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/quartic/deg12 :: geom=H2 germ=quartic deg=12: unknowns=91 eqs=330 rank_p=90 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/quartic/deg14 :: geom=H2 germ=quartic deg=14: unknowns=120 eqs=385 rank_p=119 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/sextic/deg2 :: geom=H2 germ=sextic deg=2: unknowns=6 eqs=55 rank_p=5 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=5 nullity_Q=1 [expected nullity 1]
PASS H2/sextic/deg4 :: geom=H2 germ=sextic deg=4: unknowns=15 eqs=110 rank_p=14 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=14 nullity_Q=1 [expected nullity 1]
PASS H2/sextic/deg6 :: geom=H2 germ=sextic deg=6: unknowns=28 eqs=165 rank_p=27 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/sextic/deg8 :: geom=H2 germ=sextic deg=8: unknowns=45 eqs=220 rank_p=44 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/sextic/deg10 :: geom=H2 germ=sextic deg=10: unknowns=66 eqs=275 rank_p=65 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/sextic/deg12 :: geom=H2 germ=sextic deg=12: unknowns=91 eqs=330 rank_p=90 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS H2/sextic/deg14 :: geom=H2 germ=sextic deg=14: unknowns=120 eqs=385 rank_p=119 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
== Part 3: Euclidean-plane control (Glutsyuk-Shustin: polynomially integrable => conic)
PASS E2/conic_E2/deg1 :: geom=E2 germ=conic_E2 deg=1: unknowns=3 eqs=55 rank_p=2 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=2 nullity_Q=1 [expected nullity 1]
PASS E2/conic_E2/deg2 :: geom=E2 germ=conic_E2 deg=2: unknowns=6 eqs=55 rank_p=4 nullity_p=2; known solutions independent=2, verified exactly=True; exact rank_Q=4 nullity_Q=2 [expected nullity 2]
PASS E2/conic_E2/deg3 :: geom=E2 germ=conic_E2 deg=3: unknowns=10 eqs=110 rank_p=8 nullity_p=2; known solutions independent=2, verified exactly=True; exact rank_Q=8 nullity_Q=2 [expected nullity 2]
PASS E2/conic_E2/deg4 :: geom=E2 germ=conic_E2 deg=4: unknowns=15 eqs=110 rank_p=12 nullity_p=3; known solutions independent=3, verified exactly=True; exact rank_Q=12 nullity_Q=3 [expected nullity 3]
PASS E2/conic_E2/deg5 :: geom=E2 germ=conic_E2 deg=5: unknowns=21 eqs=165 rank_p=18 nullity_p=3; known solutions independent=3, verified exactly=True [expected nullity 3]
PASS E2/conic_E2/deg6 :: geom=E2 germ=conic_E2 deg=6: unknowns=28 eqs=165 rank_p=24 nullity_p=4; known solutions independent=4, verified exactly=True [expected nullity 4]
PASS E2/conic_E2/deg7 :: geom=E2 germ=conic_E2 deg=7: unknowns=36 eqs=220 rank_p=32 nullity_p=4; known solutions independent=4, verified exactly=True [expected nullity 4]
PASS E2/conic_E2/deg8 :: geom=E2 germ=conic_E2 deg=8: unknowns=45 eqs=220 rank_p=40 nullity_p=5; known solutions independent=5, verified exactly=True [expected nullity 5]
PASS E2/conic_E2/deg9 :: geom=E2 germ=conic_E2 deg=9: unknowns=55 eqs=275 rank_p=50 nullity_p=5; known solutions independent=5, verified exactly=True [expected nullity 5]
PASS E2/conic_E2/deg10 :: geom=E2 germ=conic_E2 deg=10: unknowns=66 eqs=275 rank_p=60 nullity_p=6; known solutions independent=6, verified exactly=True [expected nullity 6]
PASS E2/cubic/deg1 :: geom=E2 germ=cubic deg=1: unknowns=3 eqs=55 rank_p=2 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=2 nullity_Q=1 [expected nullity 1]
PASS E2/cubic/deg2 :: geom=E2 germ=cubic deg=2: unknowns=6 eqs=55 rank_p=5 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=5 nullity_Q=1 [expected nullity 1]
PASS E2/cubic/deg3 :: geom=E2 germ=cubic deg=3: unknowns=10 eqs=110 rank_p=9 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=9 nullity_Q=1 [expected nullity 1]
PASS E2/cubic/deg4 :: geom=E2 germ=cubic deg=4: unknowns=15 eqs=110 rank_p=14 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=14 nullity_Q=1 [expected nullity 1]
PASS E2/cubic/deg5 :: geom=E2 germ=cubic deg=5: unknowns=21 eqs=165 rank_p=20 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS E2/cubic/deg6 :: geom=E2 germ=cubic deg=6: unknowns=28 eqs=165 rank_p=27 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS E2/cubic/deg7 :: geom=E2 germ=cubic deg=7: unknowns=36 eqs=220 rank_p=35 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS E2/cubic/deg8 :: geom=E2 germ=cubic deg=8: unknowns=45 eqs=220 rank_p=44 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS E2/cubic/deg9 :: geom=E2 germ=cubic deg=9: unknowns=55 eqs=275 rank_p=54 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS E2/cubic/deg10 :: geom=E2 germ=cubic deg=10: unknowns=66 eqs=275 rank_p=65 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS E2/quartic/deg1 :: geom=E2 germ=quartic deg=1: unknowns=3 eqs=55 rank_p=2 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=2 nullity_Q=1 [expected nullity 1]
PASS E2/quartic/deg2 :: geom=E2 germ=quartic deg=2: unknowns=6 eqs=55 rank_p=5 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=5 nullity_Q=1 [expected nullity 1]
PASS E2/quartic/deg3 :: geom=E2 germ=quartic deg=3: unknowns=10 eqs=110 rank_p=9 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=9 nullity_Q=1 [expected nullity 1]
PASS E2/quartic/deg4 :: geom=E2 germ=quartic deg=4: unknowns=15 eqs=110 rank_p=14 nullity_p=1; known solutions independent=1, verified exactly=True; exact rank_Q=14 nullity_Q=1 [expected nullity 1]
PASS E2/quartic/deg5 :: geom=E2 germ=quartic deg=5: unknowns=21 eqs=165 rank_p=20 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS E2/quartic/deg6 :: geom=E2 germ=quartic deg=6: unknowns=28 eqs=165 rank_p=27 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS E2/quartic/deg7 :: geom=E2 germ=quartic deg=7: unknowns=36 eqs=220 rank_p=35 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS E2/quartic/deg8 :: geom=E2 germ=quartic deg=8: unknowns=45 eqs=220 rank_p=44 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS E2/quartic/deg9 :: geom=E2 germ=quartic deg=9: unknowns=55 eqs=275 rank_p=54 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
PASS E2/quartic/deg10 :: geom=E2 germ=quartic deg=10: unknowns=66 eqs=275 rank_p=65 nullity_p=1; known solutions independent=1, verified exactly=True [expected nullity 1]
== Part 4: positive control with a NON-pencil structure (Glutsyuk type 2a, rho=4/3, N=1)
PASS exotic2a_N1/parabola_ex/deg6 :: geom=exotic2a_N1 germ=parabola_ex deg=6: unknowns=28 eqs=715 rank_p=26 nullity_p=2; known solutions independent=2, verified exactly=True [expected nullity 2]
== Part 5: deliberately wrong inputs (each line must report the expected failure)
INFO numerator-only test (den=None) for C under planar involution: True (expected True by tangency; not a test of C/s)
PASS NEG S2 conic with planar involution: <Bx,x>/s NOT invariant :: invariance of C/s holds=False (must be False)
PASS POS S2 conic with correct involution: <Bx,x>/s invariant (general-denominator code path) :: invariance of C/s holds=True (must be True)
PASS NEG H2 conic with corrupted involution: pencil integrals lost :: nullity_p(deg 4)=1 (correct structure gives 3; must be < 3)
PASS NEG S2 non-conic germ: osculating-type conic form is NOT an integral :: invariance holds=False (must be False)
PASS NEG H2/cubic/deg4 :: geom=H2 germ=cubic deg=4: unknowns=15 eqs=110 rank_p=14 nullity_p=1; known solutions independent=1, verified exactly=True [deliberately wrong input; expected the standard pencil count 2 to FAIL]
SUMMARY: 92 checks, 92 PASS, 0 FAIL
