int_rules_1_1_2_y = @theory begin

    #= ::Subsection::Closed:: =#
    #= 1.1.2.0.y*P(x)*(c*x)^m*(a+b*x^2)^p =#
    @apply_utils Antiderivative((~x) ^ ~(m') * ~Pq * (~a + ~(b') * (~x) ^ 2) ^ ~(p'), ~x) => (1 / 2) * Subst(Antiderivative((~x) ^ ((~m - 1) / 2) * SubstFor((~x) ^ 2, ~Pq, ~x) * (~a + ~b * ~x) ^ ~p, ~x), ~x, (~x) ^ 2) <-- FreeQ([~a, ~b, ~p], ~x) && (PolyQ(~Pq, (~x) ^ 2) && IntegerQ((~m - 1) / 2))
    @apply_utils Antiderivative((~(c') * ~x) ^ ~(m') * ~Pq * (~a + ~(b') * (~x) ^ 2) ^ ~(p'), ~x) => (1 / ~c) * Antiderivative((~c * ~x) ^ (~m + 1) * PolynomialQuotient(~Pq, ~x, ~x) * (~a + ~b * (~x) ^ 2) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~m, ~p], ~x) && (PolyQ(~Pq, ~x) && EqQ(Coeff(~Pq, ~x, 0), 0))
    @apply_utils Antiderivative((~(c') * ~x) ^ ~(m') * ~P2 * (~a + ~(b') * (~x) ^ 2) ^ ~(p'), ~x) => With([f = Coeff(~P2, ~x, 0), g = Coeff(~P2, ~x, 1), h = Coeff(~P2, ~x, 2)], (h * (~c * ~x) ^ (~m + 1) * (~a + ~b * (~x) ^ 2) ^ (~p + 1)) / (~b * ~c * (~m + 2 * ~p + 3)) <-- EqQ(g, 0) && EqQ(~a * h * (~m + 1) - ~b * f * (~m + 2 * ~p + 3), 0)) <-- FreeQ([~a, ~b, ~c, ~m, ~p], ~x) && (PolyQ(~P2, ~x, 2) && NeQ(~m, -1))
    @apply_utils Antiderivative((~(c') * ~x) ^ ~(m') * ~Pq * (~a + ~(b') * (~x) ^ 2) ^ ~(p'), ~x) => Antiderivative(ExpandIntegrand((~c * ~x) ^ ~m * ~Pq * (~a + ~b * (~x) ^ 2) ^ ~p, ~x), ~x) <-- FreeQ([~a, ~b, ~c, ~m], ~x) && (PolyQ(~Pq, ~x) && IGtQ(~p, -2))
    @apply_utils Antiderivative((~x) ^ ~m * ~Pq * (~a + ~(b') * (~x) ^ 2) ^ ~p, ~x) => With([A = Coeff(~Pq, ~x, 0), Q = PolynomialQuotient(~Pq - Coeff(~Pq, ~x, 0), (~x) ^ 2, ~x)], (A * (~x) ^ (~m + 1) * (~a + ~b * (~x) ^ 2) ^ (~p + 1)) / (~a * (~m + 1)) + (1 / (~a * (~m + 1))) * Antiderivative((~x) ^ (~m + 2) * (~a + ~b * (~x) ^ 2) ^ ~p * (~a * (~m + 1) * Q - A * ~b * (~m + 2 * (~p + 1) + 1)), ~x)) <-- FreeQ([~a, ~b], ~x) && (PolyQ(~Pq, (~x) ^ 2) && (IntegerQ(~m / 2) && (ILtQ((~m + 1) / 2 + ~p, 0) && LtQ(~m + Expon(~Pq, ~x) + 2 * ~p + 1, 0))))
    @apply_utils Antiderivative((~(c') * ~x) ^ ~(m') * ~Pq * (~a + ~(b') * (~x) ^ 2) ^ ~p, ~x) => With([Q = PolynomialQuotient(~Pq, ~a + ~b * (~x) ^ 2, ~x), f = Coeff(PolynomialRemainder(~Pq, ~a + ~b * (~x) ^ 2, ~x), ~x, 0), g = Coeff(PolynomialRemainder(~Pq, ~a + ~b * (~x) ^ 2, ~x), ~x, 1)], ((~c * ~x) ^ ~m * (~a + ~b * (~x) ^ 2) ^ (~p + 1) * (~a * g - ~b * f * ~x)) / (2 * ~a * ~b * (~p + 1)) + (~c / (2 * ~a * ~b * (~p + 1))) * Antiderivative((~c * ~x) ^ (~m - 1) * (~a + ~b * (~x) ^ 2) ^ (~p + 1) * ExpandToSum((2 * ~a * ~b * (~p + 1) * ~x * Q - ~a * g * ~m) + ~b * f * (~m + 2 * ~p + 3) * ~x, ~x), ~x)) <-- FreeQ([~a, ~b, ~c], ~x) && (PolyQ(~Pq, ~x) && (LtQ(~p, -1) && GtQ(~m, 0)))
    @apply_utils Antiderivative((~(c') * ~x) ^ ~(m') * ~Pq * (~a + ~(b') * (~x) ^ 2) ^ ~p, ~x) => With([Q = PolynomialQuotient((~c * ~x) ^ ~m * ~Pq, ~a + ~b * (~x) ^ 2, ~x), f = Coeff(PolynomialRemainder((~c * ~x) ^ ~m * ~Pq, ~a + ~b * (~x) ^ 2, ~x), ~x, 0), g = Coeff(PolynomialRemainder((~c * ~x) ^ ~m * ~Pq, ~a + ~b * (~x) ^ 2, ~x), ~x, 1)], ((~a * g - ~b * f * ~x) * (~a + ~b * (~x) ^ 2) ^ (~p + 1)) / (2 * ~a * ~b * (~p + 1)) + (1 / (2 * ~a * (~p + 1))) * Antiderivative((~c * ~x) ^ ~m * (~a + ~b * (~x) ^ 2) ^ (~p + 1) * ExpandToSum(2 * ~a * (~p + 1) * (~c * ~x) ^ -(~m) * Q + f * (2 * ~p + 3) * (~c * ~x) ^ -(~m), ~x), ~x)) <-- FreeQ([~a, ~b, ~c], ~x) && (PolyQ(~Pq, ~x) && (LtQ(~p, -1) && ILtQ(~m, 0)))
    @apply_utils Antiderivative((~(c') * ~x) ^ ~(m') * ~Pq * (~a + ~(b') * (~x) ^ 2) ^ ~p, ~x) => With([Q = PolynomialQuotient(~Pq, ~a + ~b * (~x) ^ 2, ~x), f = Coeff(PolynomialRemainder(~Pq, ~a + ~b * (~x) ^ 2, ~x), ~x, 0), g = Coeff(PolynomialRemainder(~Pq, ~a + ~b * (~x) ^ 2, ~x), ~x, 1)], (-((~c * ~x) ^ (~m + 1)) * (f + g * ~x) * (~a + ~b * (~x) ^ 2) ^ (~p + 1)) / (2 * ~a * ~c * (~p + 1)) + (1 / (2 * ~a * (~p + 1))) * Antiderivative((~c * ~x) ^ ~m * (~a + ~b * (~x) ^ 2) ^ (~p + 1) * ExpandToSum(2 * ~a * (~p + 1) * Q + f * (~m + 2 * ~p + 3) + g * (~m + 2 * ~p + 4) * ~x, ~x), ~x)) <-- FreeQ([~a, ~b, ~c, ~m], ~x) && (PolyQ(~Pq, ~x) && (LtQ(~p, -1) && Not(GtQ(~m, 0))))
    @apply_utils Antiderivative((~(c') * ~x) ^ ~m * ~Pq * (~a + ~(b') * (~x) ^ 2) ^ ~p, ~x) => With([Q = PolynomialQuotient(~Pq, ~c * ~x, ~x), R = PolynomialRemainder(~Pq, ~c * ~x, ~x)], (R * (~c * ~x) ^ (~m + 1) * (~a + ~b * (~x) ^ 2) ^ (~p + 1)) / (~a * ~c * (~m + 1)) + (1 / (~a * ~c * (~m + 1))) * Antiderivative((~c * ~x) ^ (~m + 1) * (~a + ~b * (~x) ^ 2) ^ ~p * ExpandToSum(~a * ~c * (~m + 1) * Q - ~b * R * (~m + 2 * ~p + 3) * ~x, ~x), ~x)) <-- FreeQ([~a, ~b, ~c, ~p], ~x) && (PolyQ(~Pq, ~x) && (LtQ(~m, -1) && (IntegerQ(2 * ~p) || NeQ(Expon(~Pq, ~x), 1))))
    @apply_utils Antiderivative((~(c') * ~x) ^ ~(m') * ~Pq * (~a + ~(b') * (~x) ^ 2) ^ ~(p'), ~x) => With([q = Expon(~Pq, ~x)], (Coeff(~Pq, ~x, q) / (~c) ^ q) * Antiderivative((~c * ~x) ^ (~m + q) * (~a + ~b * (~x) ^ 2) ^ ~p, ~x) + (1 / (~c) ^ q) * Antiderivative((~c * ~x) ^ ~m * (~a + ~b * (~x) ^ 2) ^ ~p * ExpandToSum((~c) ^ q * ~Pq - Coeff(~Pq, ~x, q) * (~c * ~x) ^ q, ~x), ~x) <-- EqQ(q, 1) || EqQ(~m + q + 2 * ~p + 1, 0)) <-- FreeQ([~a, ~b, ~c, ~m, ~p], ~x) && (PolyQ(~Pq, ~x) && Not(IGtQ(~m, 0) && ILtQ(~p + 1 / 2, 0)))
    @apply_utils Antiderivative((~(c') * ~x) ^ ~(m') * ~Pq * (~a + ~(b') * (~x) ^ 2) ^ ~p, ~x) => With([q = Expon(~Pq, ~x), f = Coeff(~Pq, ~x, Expon(~Pq, ~x))], (f * (~c * ~x) ^ ((~m + q) - 1) * (~a + ~b * (~x) ^ 2) ^ (~p + 1)) / (~b * (~c) ^ (q - 1) * (~m + q + 2 * ~p + 1)) + (1 / (~b * (~m + q + 2 * ~p + 1))) * Antiderivative((~c * ~x) ^ ~m * (~a + ~b * (~x) ^ 2) ^ ~p * ExpandToSum((~b * (~m + q + 2 * ~p + 1) * ~Pq - ~b * f * (~m + q + 2 * ~p + 1) * (~x) ^ q) - ~a * f * ((~m + q) - 1) * (~x) ^ (q - 2), ~x), ~x) <-- GtQ(q, 1) && NeQ(~m + q + 2 * ~p + 1, 0)) <-- FreeQ([~a, ~b, ~c, ~m, ~p], ~x) && (PolyQ(~Pq, ~x) && (Not(IGtQ(~m, 0)) || IGtQ(~p + 1 / 2, -1)))
end
