{"certification":{"candidate":{"gauge":{"kind":"none"},"index_shift":0,"operator":{"schedule":{"first_degree":0,"first_index":0,"step":1},"shape":"reversal"},"parent":{"first_index":0,"initial_polynomials":[["1"],["2","1"]],"recurrence":{"terms":[{"coeff":{"coeffs":[["2","1"]]},"deriv_order":0,"offset":1,"sign":"none"},{"coeff":{"coeffs":[["0","1"]]},"deriv_order":0,"offset":2,"sign":"none"}]},"schema":"polytool.recurrence.v1"},"parent_name":"Riordan array (1/(1-2*x), x*(1+x)/(1-2*x))."},"identifying_rows":1,"identity":{"certificate":{"certificate":{"dividend_relation":{"terms":[{"coeff":{"coeffs":[["-2","-1"],["-1","1"],["-3","0"]]},"deriv_order":0,"shift":0},{"coeff":{"coeffs":[["0","-12","-3"],["4","8","1"]]},"deriv_order":1,"shift":0},{"coeff":{"coeffs":[["0","-4","-8","-1"]]},"deriv_order":2,"shift":0},{"coeff":{"coeffs":[["1"],["1"]]},"deriv_order":0,"shift":1}]},"exceptional_bases":[],"gauge":{"kind":"none"},"identifying_indices":[0],"index_shift":0,"input":{"first_index":0,"initial_polynomials":[["1"]],"recurrence":{"denominator":{"coeffs":[["0"],["1"]]},"terms":[{"coeff":{"coeffs":[["0","0","4"],["1","-1","-4"],["0","3","0"]]},"deriv_order":0,"offset":1,"sign":"none"},{"coeff":{"coeffs":[["0","0","12","12"],["0","-1","-8","-4"]]},"deriv_order":1,"offset":1,"sign":"none"},{"coeff":{"coeffs":[["0","0","1","8","4"]]},"deriv_order":2,"offset":1,"sign":"none"}]},"schema":"polytool.recurrence.v1"},"input_valid_from_base":0,"multiplier":["1","1"],"operator":{"schedule":{"first_degree":0,"first_index":0,"step":1},"shape":"reversal"},"parent":{"first_index":0,"initial_polynomials":[["1"],["2","1"]],"recurrence":{"terms":[{"coeff":{"coeffs":[["2","1"]]},"deriv_order":0,"offset":1,"sign":"none"},{"coeff":{"coeffs":[["0","1"]]},"deriv_order":0,"offset":2,"sign":"none"}]},"schema":"polytool.recurrence.v1"},"parent_leader_shift":2,"parent_valid_from_base":0,"quotients":[],"row_annihilation":{"kind":"system","system":{"generators":[{"annihilator":{"terms":[{"coeff":{"coeffs":[["-2","-1"],["-1","1"],["-3","0"]]},"deriv_order":0,"shift":0},{"coeff":{"coeffs":[["0","-12","-3"],["4","8","1"]]},"deriv_order":1,"shift":0},{"coeff":{"coeffs":[["0","-4","-8","-1"]]},"deriv_order":2,"shift":0},{"coeff":{"coeffs":[["1"],["1"]]},"deriv_order":0,"shift":1}]},"quotient":[{"coeff":{"coeffs":[["1"],["1"]]},"deriv_order":0}],"step_multiplier":{"coeffs":[["0","0","0","-512","-2304","-2304","1920","2304","-1152","-240","72","18","1"],["0","0","0","-1536","-6912","-6912","5760","6912","-3456","-720","216","54","3"],["0","0","0","-1536","-6912","-6912","5760","6912","-3456","-720","216","54","3"],["0","0","0","-512","-2304","-2304","1920","2304","-1152","-240","72","18","1"]]},"step_quotients":[[{"coeff":{"coeffs":[["0","0","0","1024","3584","0","-8448","-768","6912","-1824","-624","108","34","2"],["0","0","0","4608","17664","6912","-31104","-9216","24192","-4752","-2088","270","99","6"],["0","0","0","7680","31488","20736","-42624","-23040","31104","-3312","-2520","162","93","6"],["0","0","0","5632","24320","20736","-25728","-21504","17280","336","-1272","-54","25","2"],["0","0","0","1536","6912","6912","-5760","-6912","3456","720","-216","-54","-3","0"]]},"deriv_order":0},{"coeff":{"coeffs":[["0","0","0","-2048","-7168","1024","21504","6144","-17664","-960","3552","264","-212","-40","-2"],["0","0","0","-6144","-27648","-26112","29952","34560","-19584","-9792","4320","936","-204","-54","-3"],["0","0","0","-6144","-33792","-55296","-4608","50688","13824","-16704","-2016","1080","228","12","0"],["0","0","0","-2048","-13312","-28160","-13056","22272","15744","-7872","-2784","408","220","26","1"]]},"deriv_order":1},{"coeff":{"coeffs":[["0","0","0","0","2048","13312","28160","13056","-22272","-15744","7872","2784","-408","-220","-26","-1"],["0","0","0","0","4096","26624","56320","26112","-44544","-31488","15744","5568","-816","-440","-52","-2"],["0","0","0","0","2048","13312","28160","13056","-22272","-15744","7872","2784","-408","-220","-26","-1"]]},"deriv_order":2}],[{"coeff":{"coeffs":[["0","0","0","-512","-1536","1920","9408","5856","-2928","-1176","-60","12","1"],["0","0","0","-2304","-8448","384","28416","21120","-8736","-3864","-240","33","3"],["0","0","0","-3840","-16128","-10368","28800","28224","-8640","-4536","-360","27","3"],["0","0","0","-2816","-13056","-14208","9984","16512","-2784","-2184","-240","3","1"],["0","0","0","-768","-3840","-5376","192","3552","48","-336","-60","-3","0"]]},"deriv_order":0},{"coeff":{"coeffs":[["0","0","0","1024","3584","-2304","-20736","-21120","0","5280","1296","36","-14","-1"],["0","0","0","3072","14336","13056","-26112","-45696","-9600","9696","3552","348","0","-1"],["0","0","0","3072","17920","33024","9984","-28032","-19200","3552","3216","588","42","1"],["0","0","0","1024","7168","17664","15360","-3456","-9600","-864","960","276","28","1"]]},"deriv_order":1},{"coeff":{"coeffs":[["0","0","0","0","-1024","-7168","-17664","-15360","3456","9600","864","-960","-276","-28","-1"],["0","0","0","0","-2048","-14336","-35328","-30720","6912","19200","1728","-1920","-552","-56","-2"],["0","0","0","0","-1024","-7168","-17664","-15360","3456","9600","864","-960","-276","-28","-1"]]},"deriv_order":2}]]},{"annihilator":{"terms":[{"coeff":{"coeffs":[["0","0","0"],["2","7","-1"],["-6","3","0"]]},"deriv_order":0,"shift":0},{"coeff":{"coeffs":[["0","-28","-2","2"],["8","12","-6","-1"]]},"deriv_order":1,"shift":0},{"coeff":{"coeffs":[["0","-8","-12","6","1"]]},"deriv_order":2,"shift":0}]},"quotient":[],"step_multiplier":{"coeffs":[["0","0","0","-512","-2304","-2304","1920","2304","-1152","-240","72","18","1"],["0","0","0","-1536","-6912","-6912","5760","6912","-3456","-720","216","54","3"],["0","0","0","-1536","-6912","-6912","5760","6912","-3456","-720","216","54","3"],["0","0","0","-512","-2304","-2304","1920","2304","-1152","-240","72","18","1"]]},"step_quotients":[[{"coeff":{"coeffs":[["0","0","0","2048","4096","-13312","-28416","12288","25728","-12864","-1536","888","104","-8","-1"],["0","0","0","9216","24576","-33024","-103680","28800","91008","-40608","-5760","2772","360","-21","-3"],["0","0","0","15360","49152","-19200","-140544","12672","118656","-44640","-8064","2988","456","-15","-3"],["0","0","0","11264","40960","7424","-83712","-11904","67200","-18912","-4992","1212","248","1","-1"],["0","0","0","3072","12288","6912","-18432","-8064","13824","-2016","-1152","108","48","3","0"]]},"deriv_order":0},{"coeff":{"coeffs":[["0","0","0","-4096","-10240","22528","70144","3840","-63744","0","15936","-240","-1096","-88","10","1"],["0","0","0","-12288","-45056","2048","142336","65280","-118272","-31488","34176","3120","-2160","-344","-4","1"],["0","0","0","-12288","-59392","-63488","74240","119040","-45312","-62976","20544","6960","-1032","-424","-38","-1"],["0","0","0","-4096","-24576","-43008","2048","57600","9216","-31488","2304","3600","32","-168","-24","-1"]]},"deriv_order":1},{"coeff":{"coeffs":[["0","0","0","0","4096","24576","43008","-2048","-57600","-9216","31488","-2304","-3600","-32","168","24","1"],["0","0","0","0","8192","49152","86016","-4096","-115200","-18432","62976","-4608","-7200","-64","336","48","2"],["0","0","0","0","4096","24576","43008","-2048","-57600","-9216","31488","-2304","-3600","-32","168","24","1"]]},"deriv_order":2}],[{"coeff":{"coeffs":[["0","0","0","-1024","-1536","10752","25344","3840","-16512","-672","1488","276","14"],["0","0","0","-4608","-11520","25344","81792","18432","-52992","-2736","4680","882","45"],["0","0","0","-7680","-25344","11520","93312","32256","-59904","-4176","5112","990","51"],["0","0","0","-5632","-22272","-9984","42624","24576","-26880","-2832","2136","438","23"],["0","0","0","-1536","-6912","-6912","5760","6912","-3456","-720","216","54","3"]]},"deriv_order":0},{"coeff":{"coeffs":[["0","0","0","2048","5120","-15360","-56832","-36864","24576","20160","-1824","-2184","-340","-16","0"],["0","0","0","6144","23552","-2560","-100608","-96000","33408","48192","-864","-4776","-900","-58","-1"],["0","0","0","6144","31744","40960","-30720","-81408","-6912","35904","3744","-3000","-780","-68","-2"],["0","0","0","2048","13312","28160","13056","-22272","-15744","7872","2784","-408","-220","-26","-1"]]},"deriv_order":1},{"coeff":{"coeffs":[["0","0","0","0","-2048","-13312","-28160","-13056","22272","15744","-7872","-2784","408","220","26","1"],["0","0","0","0","-4096","-26624","-56320","-26112","44544","31488","-15744","-5568","816","440","52","2"],["0","0","0","0","-2048","-13312","-28160","-13056","22272","15744","-7872","-2784","408","220","26","1"]]},"deriv_order":2}]]}],"restart_bases":[],"row_multiplier":{"coeffs":[["1"]]},"start_base":0}},"shifted_parent_relation":{"terms":[{"coeff":{"coeffs":[["0","-1"]]},"deriv_order":0,"shift":0},{"coeff":{"coeffs":[["-2","-1"]]},"deriv_order":0,"shift":1},{"coeff":{"coeffs":[["1"]]},"deriv_order":0,"shift":2}]},"statement":"w(n) E = sum_nu H_nu S^nu L' (with any remainder removed by row annihilators of the parent), where L' is the parent rule at P'_n = P_(n+0) (valid from base 0) and E the input rule gauged by lambda(n)/delta(n) and composed with (or conjugated through) T = x^(d_n) P(1/x), d_n = 0 + 1 (n - 0); so the candidate rows satisfy the input rule at every base n >= 0 (the exceptional bases checked exactly), and agreement on the 1 identifying rows gives Q_n = lambda(n) T_n(P_(n+0)) for every n >= 0"},"method":"operator_division"},"status":"certified"},"input_first_index":0,"interlacing":{"reason":"the schedule d_n depends on n","status":"none"},"lean_declarations":["RealRooted.X_pow_mul_reverse_eq_zero_or_splits","RealRooted.reflect_eq_zero_or_splits"],"lean_route":"reversed","lift_summary":{"hypotheses":[{"evidence":"lambda(n) = 1","name":"gauge_finite_nonzero","statement":"lambda(n) is finite and nonzero for every n >= n0","status":{"kind":"verified"}}],"identity":{"method":"forward_division","status":"certified"},"input_first_index":0,"input_interlacing":{"reason":"the schedule d_n depends on n","status":"not_proved"},"lean_replay":"not_attempted","operation":{"description":"x^(d_n) P(1/x), d_n = 0 + 1 (n - 0)","kind":"preserver_image","operator":{"schedule":{"first_degree":0,"first_index":0,"step":1},"shape":"reversal"}},"parent":{"gauge":{"kind":"none"},"index_shift":0,"recurrence":{"first_index":0,"initial_polynomials":[["1"],["2","1"]],"recurrence":{"terms":[{"coeff":{"coeffs":[["2","1"]]},"deriv_order":0,"offset":1,"sign":"none"},{"coeff":{"coeffs":[["0","1"]]},"deriv_order":0,"offset":2,"sign":"none"}]},"schema":"polytool.recurrence.v1"},"relation":"Q_n = lambda(n) T_n(P_(n+0)) with T = x^(d_n) P(1/x), d_n = 0 + 1 (n - 0), for every n >= 0"},"parent_proof":{"route":"liu_wang_derivative_lag","statement":"every parent row P_n, n >= 0, is zero or real-rooted with coefficients of one sign","status":"proved"},"root_transfer":{"input_conclusion":"every Q_n, n >= 0, is zero or real-rooted with roots in (-inf, 0]","input_root_region":{"upper":{"closed":true,"value":"0"}},"parent_hypothesis":"every parent row used is zero or real-rooted with all roots in (-inf, 0] (coefficients of one sign)","parent_root_region":{"upper":{"closed":true,"value":"0"}},"theorem":"a real affine substitution x -> a x + b (a != 0), the reversal x^d p(1/x) (d >= deg p) and a real Mobius map (c x + e)^d p((a x + b)/(c x + e)) (a e - b c != 0, d >= deg p) map real roots to real roots: a root r of p gives the root (r - b)/a, 1/r (and 0) or (e r - b)/(a - c r) (and -e/c); for an input row that is a polynomial the degree condition holds automatically"},"verdict":"proved"},"notes":["the division remainder is removed by row annihilators of the shifted parent"],"parent_interlacing_report":{"conclusion":{"first_index":0,"interlacing":"strict","interlacing_from":1,"root_region":{"upper":{"closed":false,"value":"0"}},"simple_roots":true,"statement":"every P_n, n >= 0, is nonzero and real-rooted with every root in (-inf, 0) (so its coefficients have one sign); for n >= 1, P_n has simple roots and P_(n-1) strictly interlaces P_n (no common root), and deg P_n = deg P_(n-1) + 1 for n >= 2"},"hypotheses":[{"evidence":"checked exactly","name":"seed_roots_negative","statement":"P_0 and P_1 are nonzero and real-rooted with every root < 0","status":{"kind":"verified"}},{"evidence":"degrees 0 and 1, leading coefficients of one sign","name":"seed_degree_step","statement":"deg P_1 = deg P_0 + 1, with leading coefficients of one sign","status":{"kind":"verified"}},{"evidence":"Bezout test, exact","name":"seed_strict_interlacing","statement":"P_0 strictly interlaces P_1 (simple real roots, no common root)","status":{"kind":"verified"}},{"evidence":"lambda_n = 1 > 0 for every integer n in [2, +inf) (exact; Taylor shift: the coefficients of lambda_n = 1 at n = 2 + u have one sign)","name":"degree_step_positive","sign_decision":{"certificate":{"condition":"positive","denominator":["1"],"method":{"kind":"taylor_shift","shifted_denominator":["1"],"shifted_numerator":["1"]},"numerator":["1"],"range":{"first":"2","last":null}},"decision":"holds"},"statement":"lambda_n = [x^1] A_n + (deg P_(n-1)) [x^2] V_n > 0 for every n >= 2 (deg P_n = deg P_(n-1) + 1 with leading coefficients of one sign)","status":{"kind":"verified"}},{"evidence":"[x^0] c_1 and [x^0] c_2 are zero polynomials","name":"multipliers_vanish_at_zero","statement":"V_n(0) = 0 and W_n(0) = 0 for every n >= 2","status":{"kind":"verified"}},{"evidence":"A_n(0) = 2 > 0 for every integer n in [2, +inf) (exact; Taylor shift: the coefficients of A_n(0) = 2 at n = 2 + u have one sign)","name":"constant_term_positive","sign_decision":{"certificate":{"condition":"positive","denominator":["1"],"method":{"kind":"taylor_shift","shifted_denominator":["1"],"shifted_numerator":["2"]},"numerator":["2"],"range":{"first":"2","last":null}},"decision":"holds"},"statement":"A_n(0) > 0 for every n >= 2","status":{"kind":"verified"}},{"evidence":"V_n = 0","name":"derivative_coefficient_nonpositive","statement":"V_n(x) <= 0 for every x < 0 and every n >= 2","status":{"kind":"verified"}},{"evidence":"W_n(x) = gamma(n) w(x) / f(n) with w(x) = x, which is negative on (-inf, 0) (no root there, exact): gamma(n)/f(n) = 1 >= 0 for every integer n in [2, +inf) (exact; Taylor shift: the coefficients of gamma(n)/f(n) = 1 at n = 2 + u have one sign)","name":"lag_coefficient_nonpositive","sign_decision":{"certificate":{"condition":"nonnegative","denominator":["1"],"method":{"kind":"taylor_shift","shifted_denominator":["1"],"shifted_numerator":["1"]},"numerator":["1"],"range":{"first":"2","last":null}},"decision":"holds"},"statement":"W_n(x) <= 0 for every x < 0 and every n >= 2","status":{"kind":"verified"}},{"evidence":"W_n(x) = gamma(n) w(x) / f(n) with w(x) = x, which is negative on (-inf, 0) (no root there, exact): gamma(n)/f(n) = 1 > 0 for every integer n in [2, +inf) (exact; Taylor shift: the coefficients of gamma(n)/f(n) = 1 at n = 2 + u have one sign)","name":"derivative_or_lag_coefficient_negative","sign_decision":{"certificate":{"condition":"positive","denominator":["1"],"method":{"kind":"taylor_shift","shifted_denominator":["1"],"shifted_numerator":["1"]},"numerator":["1"],"range":{"first":"2","last":null}},"decision":"holds"},"statement":"for every n >= 2 and x < 0, V_n(x) < 0 or W_n(x) < 0 (V_n < 0 on (-inf, 0) for every n, or W_n < 0 there for every n)","status":{"kind":"verified"}}],"lean_declarations":["RealRooted.threeTerm_interlaces_of_nonnegCoeffs","RealRooted.LiuWang.strictInterl_nonpos_lag_sequence"],"lean_replay":"not_attempted","lean_route":"sign","normal_form":"P_n = A_n(x) P_(n-1) + V_n(x) P'_(n-1) + W_n(x) P_(n-2) for n >= 2, with A_n(x) = (2) + (1) x, V_n(x) = 0, W_n(x) = (1) x","recurrence":{"first_index":0,"initial_polynomials":[["1"],["2","1"]],"recurrence":{"terms":[{"coeff":{"coeffs":[["2","1"]]},"deriv_order":0,"offset":1,"sign":"none"},{"coeff":{"coeffs":[["0","1"]]},"deriv_order":0,"offset":2,"sign":"none"}]},"schema":"polytool.recurrence.v1"},"reference":"L. L. Liu and Y. Wang, A unified approach to polynomial sequences with only real zeros, Adv. in Appl. Math. 38 (2007) 542-560, Theorem 2.1 with the interlacers f' and the lag row (strict form, as in the derivative-lag theorems of the RealRooted library, https://github.com/PerAlexandersson/RealRooted), with nonnegativity of the coefficients replaced by an exact induction keeping every root in (-inf, 0)","schema":"polytool.recurrence-real-rootedness-theorem.v1","status":"proved","theorem":"liu_wang_derivative_lag"},"parent_proof":{"attempts":[{"detail":"the rule is not P_(n+k) = c(x) P_n with c free of n","route":"periodic_product","success":false,"variant":"P_(n+k) = c(x) P_n"},{"detail":"no theorem matched (weighted_renewal_window: coefficient of P_(n-1) must be 1 after normalization; fixed_delay_predecessor_window: coefficient of P_(n-1) must be 1 (+ w(n) t) after normalization)","route":"paper_theorem","success":false,"variant":"match_recurrence_theorems"},{"detail":"not applicable: c_2(n, x) = gamma(n) w(x) with w neither constant nor a constant times a square (x + v_0)^2","route":"three_term_recurrence","success":false,"variant":"three_term_recurrence"},{"detail":"not applicable: the rule is not f(n) P_n = c_0(n, x) P_(n-1) + c_1(n, x) P'_(n-1)","route":"liu_wang","success":false,"variant":"liu_wang"},{"detail":"P_n = A_n(x) P_(n-1) + V_n(x) P'_(n-1) + W_n(x) P_(n-2) for n >= 2, with A_n(x) = (2) + (1) x, V_n(x) = 0, W_n(x) = (1) x: every P_n, n >= 0, is nonzero and real-rooted with every root in (-inf, 0) (so its coefficients have one sign); for n >= 1, P_n has simple roots and P_(n-1) strictly interlaces P_n (no common root), and deg P_n = deg P_(n-1) + 1 for n >= 2","route":"liu_wang_derivative_lag","success":true,"variant":"liu_wang_derivative_lag"}],"conditional_on":[],"interlacing":{"from_index":1,"justification":{"premises":["every hypothesis of the theorem is verified exactly for every index: P_n = A_n(x) P_(n-1) + V_n(x) P'_(n-1) + W_n(x) P_(n-2) for n >= 2, with A_n(x) = (2) + (1) x, V_n(x) = 0, W_n(x) = (1) x","every P_n, n >= 0, is nonzero and real-rooted with every root in (-inf, 0) (so its coefficients have one sign); for n >= 1, P_n has simple roots and P_(n-1) strictly interlaces P_n (no common root), and deg P_n = deg P_(n-1) + 1 for n >= 2"],"theorem":"liu_wang_derivative_lag: L. L. Liu and Y. Wang, A unified approach to polynomial sequences with only real zeros, Adv. in Appl. Math. 38 (2007) 542-560, Theorem 2.1 with the interlacers f' and the lag row (strict form, as in the derivative-lag theorems of the RealRooted library, https://github.com/PerAlexandersson/RealRooted), with nonnegativity of the coefficients replaced by an exact induction keeping every root in (-inf, 0)"},"kind":"strict","orientation":"previous_interlaces_next"},"route":"liu_wang_derivative_lag","rows_checked":10,"statement":"every parent row P_n, n >= 0, is zero or real-rooted with coefficients of one sign","status":"proved"},"rows_compared":16,"schema":"polytool.recurrence-preserver-image.v1","statement":"proved: Q_n = lambda(n) T_n(P_(n+0)) with T = x^(d_n) P(1/x), d_n = 0 + 1 (n - 0) for every n >= 0, the side conditions hold for every n, and every parent row P_n, n >= 0, is zero or real-rooted with coefficients of one sign; so every Q_n, n >= 0, is zero or real-rooted with roots in (-inf, 0]"},"kind":"preserver_image"}
