int_rules_4_7_7 = @theory begin

    #= ::Subsection::Closed:: =#
    #= 4.7.7*F^(c*(a+b*x))*trig(d+e*x)^n =#
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sin(~(d') + ~(e') * ~x), ~x) => (~b * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x)) / ((~e) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2) - (~e * (~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x)) / ((~e) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && NeQ((~e) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2, 0)
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * cos(~(d') + ~(e') * ~x), ~x) => (~b * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x)) / ((~e) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2) + (~e * (~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x)) / ((~e) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && NeQ((~e) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2, 0)
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sin(~(d') + ~(e') * ~x) ^ ~n, ~x) => ((~b * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x) ^ ~n) / ((~e) ^ 2 * (~n) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2) - (~e * ~n * (~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x) * sin(~d + ~e * ~x) ^ (~n - 1)) / ((~e) ^ 2 * (~n) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2)) + ((~n * (~n - 1) * (~e) ^ 2) / ((~e) ^ 2 * (~n) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2)) * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x) ^ (~n - 2), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && (NeQ((~e) ^ 2 * (~n) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2, 0) && GtQ(~n, 1))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * cos(~(d') + ~(e') * ~x) ^ ~m, ~x) => (~b * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x) ^ ~m) / ((~e) ^ 2 * (~m) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2) + (~e * ~m * (~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x) * cos(~d + ~e * ~x) ^ (~m - 1)) / ((~e) ^ 2 * (~m) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2) + ((~m * (~m - 1) * (~e) ^ 2) / ((~e) ^ 2 * (~m) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2)) * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x) ^ (~m - 2), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && (NeQ((~e) ^ 2 * (~m) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2, 0) && GtQ(~m, 1))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sin(~(d') + ~(e') * ~x) ^ ~n, ~x) => (-(~b) * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x) ^ (~n + 2)) / ((~e) ^ 2 * (~n + 1) * (~n + 2)) + ((~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x) * sin(~d + ~e * ~x) ^ (~n + 1)) / (~e * (~n + 1)) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~n], ~x) && (EqQ((~e) ^ 2 * (~n + 2) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2, 0) && (NeQ(~n, -1) && NeQ(~n, -2)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * cos(~(d') + ~(e') * ~x) ^ ~n, ~x) => (-(~b) * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x) ^ (~n + 2)) / ((~e) ^ 2 * (~n + 1) * (~n + 2)) - ((~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x) * cos(~d + ~e * ~x) ^ (~n + 1)) / (~e * (~n + 1)) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~n], ~x) && (EqQ((~e) ^ 2 * (~n + 2) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2, 0) && (NeQ(~n, -1) && NeQ(~n, -2)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sin(~(d') + ~(e') * ~x) ^ ~n, ~x) => (-(~b) * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x) ^ (~n + 2)) / ((~e) ^ 2 * (~n + 1) * (~n + 2)) + ((~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x) * sin(~d + ~e * ~x) ^ (~n + 1)) / (~e * (~n + 1)) + (((~e) ^ 2 * (~n + 2) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2) / ((~e) ^ 2 * (~n + 1) * (~n + 2))) * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x) ^ (~n + 2), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && (NeQ((~e) ^ 2 * (~n + 2) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2, 0) && (LtQ(~n, -1) && NeQ(~n, -2)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * cos(~(d') + ~(e') * ~x) ^ ~n, ~x) => ((-(~b) * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x) ^ (~n + 2)) / ((~e) ^ 2 * (~n + 1) * (~n + 2)) - ((~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x) * cos(~d + ~e * ~x) ^ (~n + 1)) / (~e * (~n + 1))) + (((~e) ^ 2 * (~n + 2) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2) / ((~e) ^ 2 * (~n + 1) * (~n + 2))) * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x) ^ (~n + 2), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && (NeQ((~e) ^ 2 * (~n + 2) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2, 0) && (LtQ(~n, -1) && NeQ(~n, -2)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sin(~(d') + ~(e') * ~x) ^ ~n, ~x) => ((ℯ ^ (im * ~n * (~d + ~e * ~x)) * sin(~d + ~e * ~x) ^ ~n) / (-1 + ℯ ^ (2 * im * (~d + ~e * ~x))) ^ ~n) * Antiderivative(((~F) ^ (~c * (~a + ~b * ~x)) * (-1 + ℯ ^ (2 * im * (~d + ~e * ~x))) ^ ~n) / ℯ ^ (im * ~n * (~d + ~e * ~x)), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~n], ~x) && Not(IntegerQ(~n))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * cos(~(d') + ~(e') * ~x) ^ ~n, ~x) => ((ℯ ^ (im * ~n * (~d + ~e * ~x)) * cos(~d + ~e * ~x) ^ ~n) / (1 + ℯ ^ (2 * im * (~d + ~e * ~x))) ^ ~n) * Antiderivative(((~F) ^ (~c * (~a + ~b * ~x)) * (1 + ℯ ^ (2 * im * (~d + ~e * ~x))) ^ ~n) / ℯ ^ (im * ~n * (~d + ~e * ~x)), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~n], ~x) && Not(IntegerQ(~n))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * tan(~(d') + ~(e') * ~x) ^ ~(n'), ~x) => im ^ ~n * Antiderivative(ExpandIntegrand(((~F) ^ (~c * (~a + ~b * ~x)) * (1 - ℯ ^ (2 * im * (~d + ~e * ~x))) ^ ~n) / (1 + ℯ ^ (2 * im * (~d + ~e * ~x))) ^ ~n, ~x), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && IntegerQ(~n)
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * cot(~(d') + ~(e') * ~x) ^ ~(n'), ~x) => (-im) ^ ~n * Antiderivative(ExpandIntegrand(((~F) ^ (~c * (~a + ~b * ~x)) * (1 + ℯ ^ (2 * im * (~d + ~e * ~x))) ^ ~n) / (1 - ℯ ^ (2 * im * (~d + ~e * ~x))) ^ ~n, ~x), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && IntegerQ(~n)
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sec(~(d') + ~(e') * ~x) ^ ~n, ~x) => (~b * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * (sec(~d + ~e * ~x) ^ ~n / ((~e) ^ 2 * (~n) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2)) - ~e * ~n * (~F) ^ (~c * (~a + ~b * ~x)) * sec(~d + ~e * ~x) ^ (~n + 1) * (sin(~d + ~e * ~x) / ((~e) ^ 2 * (~n) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2))) + (~e) ^ 2 * ~n * ((~n + 1) / ((~e) ^ 2 * (~n) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2)) * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * sec(~d + ~e * ~x) ^ (~n + 2), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && (NeQ((~e) ^ 2 * (~n) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2, 0) && LtQ(~n, -1))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * csc(~(d') + ~(e') * ~x) ^ ~n, ~x) => ~b * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * (csc(~d + ~e * ~x) ^ ~n / ((~e) ^ 2 * (~n) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2)) + ~e * ~n * (~F) ^ (~c * (~a + ~b * ~x)) * csc(~d + ~e * ~x) ^ (~n + 1) * (cos(~d + ~e * ~x) / ((~e) ^ 2 * (~n) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2)) + (~e) ^ 2 * ~n * ((~n + 1) / ((~e) ^ 2 * (~n) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2)) * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * csc(~d + ~e * ~x) ^ (~n + 2), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && (NeQ((~e) ^ 2 * (~n) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2, 0) && LtQ(~n, -1))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sec(~(d') + ~(e') * ~x) ^ ~n, ~x) => (-(~b) * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * sec(~d + ~e * ~x) ^ (~n - 2)) / ((~e) ^ 2 * (~n - 1) * (~n - 2)) + ((~F) ^ (~c * (~a + ~b * ~x)) * sec(~d + ~e * ~x) ^ (~n - 1) * sin(~d + ~e * ~x)) / (~e * (~n - 1)) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~n], ~x) && (EqQ((~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2 + (~e) ^ 2 * (~n - 2) ^ 2, 0) && (NeQ(~n, 1) && NeQ(~n, 2)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * csc(~(d') + ~(e') * ~x) ^ ~n, ~x) => (-(~b) * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * csc(~d + ~e * ~x) ^ (~n - 2)) / ((~e) ^ 2 * (~n - 1) * (~n - 2)) + ((~F) ^ (~c * (~a + ~b * ~x)) * csc(~d + ~e * ~x) ^ (~n - 1) * cos(~d + ~e * ~x)) / (~e * (~n - 1)) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~n], ~x) && (EqQ((~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2 + (~e) ^ 2 * (~n - 2) ^ 2, 0) && (NeQ(~n, 1) && NeQ(~n, 2)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sec(~(d') + ~(e') * ~x) ^ ~n, ~x) => (-(~b) * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * sec(~d + ~e * ~x) ^ (~n - 2)) / ((~e) ^ 2 * (~n - 1) * (~n - 2)) + ((~F) ^ (~c * (~a + ~b * ~x)) * sec(~d + ~e * ~x) ^ (~n - 1) * sin(~d + ~e * ~x)) / (~e * (~n - 1)) + (((~e) ^ 2 * (~n - 2) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2) / ((~e) ^ 2 * (~n - 1) * (~n - 2))) * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * sec(~d + ~e * ~x) ^ (~n - 2), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && (NeQ((~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2 + (~e) ^ 2 * (~n - 2) ^ 2, 0) && (GtQ(~n, 1) && NeQ(~n, 2)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * csc(~(d') + ~(e') * ~x) ^ ~n, ~x) => ((-(~b) * ~c * log(~F) * (~F) ^ (~c * (~a + ~b * ~x)) * csc(~d + ~e * ~x) ^ (~n - 2)) / ((~e) ^ 2 * (~n - 1) * (~n - 2)) - ((~F) ^ (~c * (~a + ~b * ~x)) * csc(~d + ~e * ~x) ^ (~n - 1) * cos(~d + ~e * ~x)) / (~e * (~n - 1))) + (((~e) ^ 2 * (~n - 2) ^ 2 + (~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2) / ((~e) ^ 2 * (~n - 1) * (~n - 2))) * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * csc(~d + ~e * ~x) ^ (~n - 2), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && (NeQ((~b) ^ 2 * (~c) ^ 2 * log(~F) ^ 2 + (~e) ^ 2 * (~n - 2) ^ 2, 0) && (GtQ(~n, 1) && NeQ(~n, 2)))
    #= Antiderivative((~F)^((~c')*((~a')+(~b')*(~x)))*sec((~d')+(~e')*(~x))^(~n'),~x) :=  2^n*Antiderivative(SimplifyIntegrand(F^(c*(a+b*x))*ℯ^(im*n*(d+e*x))/(1+ℯ^(2*im*(d+ e*x)))^n,x),x) <-- FreeQ([F,a,b,c,d,e],x) && IntegerQ(n) =#
    #= Antiderivative((~F)^((~c')*((~a')+(~b')*(~x)))*csc((~d')+(~e')*(~x))^(~n'),~x) :=  (2*im)^n*Antiderivative(SimplifyIntegrand(F^(c*(a+b*x))*ℯ^(-im*n*(d+e*x))/(1-ℯ^(-2* im*(d+e*x)))^n,x),x) <-- FreeQ([F,a,b,c,d,e],x) && IntegerQ(n) =#
    # Missing due to parse error: Antiderivative((~F)^((~c')*((~a') + (~b')*(~x)))*sec((~d') + (~k')*pi + (~e')*(~x))^(~n'), ~x) := 2^n*ℯ^(im*k*n*pi)*ℯ^(im*n*(d + e*x))* F^(c*(a + b*x))/(im*e*n + b*c*log(F))* HypergeometricFunctions._₂F₁(n, n/2 - im*b*c*log(F)/(2*e), 1 + n/2 - im*b*c*log(F)/(2*e), -ℯ^(2*im*k*pi)*ℯ^(2*im*(d + e*x))) <-- FreeQ([F, a, b, c, d, e], x) && IntegerQ(4*k) && IntegerQ(n)
    # Missing due to parse error: Antiderivative((~F)^((~c')*((~a') + (~b')*(~x)))*sec((~d') + (~e')*(~x))^(~n'), ~x) := 2^n*ℯ^(im*n*(d + e*x))*F^(c*(a + b*x))/(im*e*n + b*c*log(F))* HypergeometricFunctions._₂F₁(n, n/2 - im*b*c*log(F)/(2*e), 1 + n/2 - im*b*c*log(F)/(2*e), -ℯ^(2*im*(d + e*x))) <-- FreeQ([F, a, b, c, d, e], x) && IntegerQ(n)
    # Missing due to parse error: Antiderivative((~F)^((~c')*((~a') + (~b')*(~x)))*csc((~d') + (~k')*pi + (~e')*(~x))^(~n'), ~x) := (-2*im)^n*ℯ^(im*k*n*pi)* ℯ^(im*n*(d + e*x))*(F^(c*(a + b*x))/(im*e*n + b*c*log(F)))* HypergeometricFunctions._₂F₁(n, n/2 - im*b*c*log(F)/(2*e), 1 + n/2 - im*b*c*log(F)/(2*e), ℯ^(2*im*k*pi)*ℯ^(2*im*(d + e*x))) <-- FreeQ([F, a, b, c, d, e], x) && IntegerQ(4*k) && IntegerQ(n)
    # Missing due to parse error: Antiderivative((~F)^((~c')*((~a') + (~b')*(~x)))*csc((~d') + (~e')*(~x))^(~n'), ~x) := (-2*im)^n* ℯ^(im*n*(d + e*x))*(F^(c*(a + b*x))/(im*e*n + b*c*log(F)))* HypergeometricFunctions._₂F₁(n, n/2 - im*b*c*log(F)/(2*e), 1 + n/2 - im*b*c*log(F)/(2*e), ℯ^(2*im*(d + e*x))) <-- FreeQ([F, a, b, c, d, e], x) && IntegerQ(n)
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sec(~(d') + ~(e') * ~x) ^ ~(n'), ~x) => (((1 + ℯ ^ (2 * im * (~d + ~e * ~x))) ^ ~n * sec(~d + ~e * ~x) ^ ~n) / ℯ ^ (im * ~n * (~d + ~e * ~x))) * Antiderivative(SimplifyIntegrand(((~F) ^ (~c * (~a + ~b * ~x)) * ℯ ^ (im * ~n * (~d + ~e * ~x))) / (1 + ℯ ^ (2 * im * (~d + ~e * ~x))) ^ ~n, ~x), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && Not(IntegerQ(~n))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * csc(~(d') + ~(e') * ~x) ^ ~(n'), ~x) => (((1 - ℯ ^ (-2 * im * (~d + ~e * ~x))) ^ ~n * csc(~d + ~e * ~x) ^ ~n) / ℯ ^ (-im * ~n * (~d + ~e * ~x))) * Antiderivative(SimplifyIntegrand(((~F) ^ (~c * (~a + ~b * ~x)) * ℯ ^ (-im * ~n * (~d + ~e * ~x))) / (1 - ℯ ^ (-2 * im * (~d + ~e * ~x))) ^ ~n, ~x), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && Not(IntegerQ(~n))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * (~f + ~(g') * sin(~(d') + ~(e') * ~x)) ^ ~(n'), ~x) => 2 ^ ~n * (~f) ^ ~n * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * cos((~d / 2 - (~f * pi) / (4 * ~g)) + (~e * ~x) / 2) ^ (2 * ~n), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g], ~x) && (EqQ((~f) ^ 2 - (~g) ^ 2, 0) && ILtQ(~n, 0))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * (~f + ~(g') * cos(~(d') + ~(e') * ~x)) ^ ~(n'), ~x) => 2 ^ ~n * (~f) ^ ~n * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * cos(~d / 2 + (~e * ~x) / 2) ^ (2 * ~n), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g], ~x) && (EqQ(~f - ~g, 0) && ILtQ(~n, 0))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * (~f + ~(g') * cos(~(d') + ~(e') * ~x)) ^ ~(n'), ~x) => 2 ^ ~n * (~f) ^ ~n * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * sin(~d / 2 + (~e * ~x) / 2) ^ (2 * ~n), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g], ~x) && (EqQ(~f + ~g, 0) && ILtQ(~n, 0))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * (~f + ~(g') * sin(~(d') + ~(e') * ~x)) ^ ~(n'), ~x) => ((~f + ~g * sin(~d + ~e * ~x)) ^ ~n / cos((~d / 2 - (~f * pi) / (4 * ~g)) + (~e * ~x) / 2) ^ (2 * ~n)) * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * cos((~d / 2 - (~f * pi) / (4 * ~g)) + (~e * ~x) / 2) ^ (2 * ~n), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g, ~n], ~x) && (EqQ((~f) ^ 2 - (~g) ^ 2, 0) && Not(IntegerQ(~n)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * (~f + ~(g') * cos(~(d') + ~(e') * ~x)) ^ ~(n'), ~x) => ((~f + ~g * cos(~d + ~e * ~x)) ^ ~n / cos(~d / 2 + (~e * ~x) / 2) ^ (2 * ~n)) * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * cos(~d / 2 + (~e * ~x) / 2) ^ (2 * ~n), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g, ~n], ~x) && (EqQ(~f - ~g, 0) && Not(IntegerQ(~n)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * (~f + ~(g') * cos(~(d') + ~(e') * ~x)) ^ ~(n'), ~x) => ((~f + ~g * cos(~d + ~e * ~x)) ^ ~n / sin(~d / 2 + (~e * ~x) / 2) ^ (2 * ~n)) * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * sin(~d / 2 + (~e * ~x) / 2) ^ (2 * ~n), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g, ~n], ~x) && (EqQ(~f + ~g, 0) && Not(IntegerQ(~n)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * cos(~(d') + ~(e') * ~x) ^ ~(m') * (~f + ~(g') * sin(~(d') + ~(e') * ~x)) ^ ~(n'), ~x) => (~g) ^ ~n * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * tan(((~f * pi) / (4 * ~g) - ~d / 2) - (~e * ~x) / 2) ^ ~m, ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g], ~x) && (EqQ((~f) ^ 2 - (~g) ^ 2, 0) && (IntegersQ(~m, ~n) && EqQ(~m + ~n, 0)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sin(~(d') + ~(e') * ~x) ^ ~(m') * (~f + ~(g') * cos(~(d') + ~(e') * ~x)) ^ ~(n'), ~x) => (~f) ^ ~n * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * tan(~d / 2 + (~e * ~x) / 2) ^ ~m, ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g], ~x) && (EqQ(~f - ~g, 0) && (IntegersQ(~m, ~n) && EqQ(~m + ~n, 0)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sin(~(d') + ~(e') * ~x) ^ ~(m') * (~f + ~(g') * cos(~(d') + ~(e') * ~x)) ^ ~(n'), ~x) => (~f) ^ ~n * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * cot(~d / 2 + (~e * ~x) / 2) ^ ~m, ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g], ~x) && (EqQ(~f + ~g, 0) && (IntegersQ(~m, ~n) && EqQ(~m + ~n, 0)))
    @apply_utils Antiderivative(((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * (~h + ~(i') * cos(~(d') + ~(e') * ~x))) / (~f + ~(g') * sin(~(d') + ~(e') * ~x)), ~x) => 2 * ~i * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * (cos(~d + ~e * ~x) / (~f + ~g * sin(~d + ~e * ~x))), ~x) + Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * ((~h - ~i * cos(~d + ~e * ~x)) / (~f + ~g * sin(~d + ~e * ~x))), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g, ~h, ~i], ~x) && (EqQ((~f) ^ 2 - (~g) ^ 2, 0) && (EqQ((~h) ^ 2 - (~i) ^ 2, 0) && EqQ(~g * ~h - ~f * ~i, 0)))
    @apply_utils Antiderivative(((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * (~h + ~(i') * sin(~(d') + ~(e') * ~x))) / (~f + ~(g') * cos(~(d') + ~(e') * ~x)), ~x) => 2 * ~i * Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * (sin(~d + ~e * ~x) / (~f + ~g * cos(~d + ~e * ~x))), ~x) + Antiderivative((~F) ^ (~c * (~a + ~b * ~x)) * ((~h - ~i * sin(~d + ~e * ~x)) / (~f + ~g * cos(~d + ~e * ~x))), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g, ~h, ~i], ~x) && (EqQ((~f) ^ 2 - (~g) ^ 2, 0) && (EqQ((~h) ^ 2 - (~i) ^ 2, 0) && EqQ(~g * ~h + ~f * ~i, 0)))
    @apply_utils Antiderivative((~F) ^ (~(c') * ~u) * (~G)(~v) ^ ~(n'), ~x) => Antiderivative((~F) ^ (~c * ExpandToSum(~u, ~x)) * (~G)(ExpandToSum(~v, ~x)) ^ ~n, ~x) <-- FreeQ([~F, ~c, ~n], ~x) && (TrigQ(~G) && (LinearQ([~u, ~v], ~x) && Not(LinearMatchQ([~u, ~v], ~x))))
    @apply_utils Antiderivative((~(f') * ~x) ^ ~(m') * (~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sin(~(d') + ~(e') * ~x) ^ ~(n'), ~x) => Module([u = IntHide((~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x) ^ ~n, ~x)], Dist((~f * ~x) ^ ~m, u, ~x) - ~f * ~m * Antiderivative((~f * ~x) ^ (~m - 1) * u, ~x)) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f], ~x) && (IGtQ(~n, 0) && GtQ(~m, 0))
    @apply_utils Antiderivative((~(f') * ~x) ^ ~(m') * (~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * cos(~(d') + ~(e') * ~x) ^ ~(n'), ~x) => Module([u = IntHide((~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x) ^ ~n, ~x)], Dist((~f * ~x) ^ ~m, u, ~x) - ~f * ~m * Antiderivative((~f * ~x) ^ (~m - 1) * u, ~x)) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f], ~x) && (IGtQ(~n, 0) && GtQ(~m, 0))
    @apply_utils Antiderivative((~(f') * ~x) ^ ~m * (~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sin(~(d') + ~(e') * ~x), ~x) => (((~f * ~x) ^ (~m + 1) / (~f * (~m + 1))) * (~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x) - (~e / (~f * (~m + 1))) * Antiderivative((~f * ~x) ^ (~m + 1) * (~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x), ~x)) - ((~b * ~c * log(~F)) / (~f * (~m + 1))) * Antiderivative((~f * ~x) ^ (~m + 1) * (~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~m], ~x) && (LtQ(~m, -1) || SumSimplerQ(~m, 1))
    @apply_utils Antiderivative((~(f') * ~x) ^ ~m * (~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * cos(~(d') + ~(e') * ~x), ~x) => (((~f * ~x) ^ (~m + 1) / (~f * (~m + 1))) * (~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x) + (~e / (~f * (~m + 1))) * Antiderivative((~f * ~x) ^ (~m + 1) * (~F) ^ (~c * (~a + ~b * ~x)) * sin(~d + ~e * ~x), ~x)) - ((~b * ~c * log(~F)) / (~f * (~m + 1))) * Antiderivative((~f * ~x) ^ (~m + 1) * (~F) ^ (~c * (~a + ~b * ~x)) * cos(~d + ~e * ~x), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~m], ~x) && (LtQ(~m, -1) || SumSimplerQ(~m, 1))
    #= Antiderivative(((~f')*(~x))^(~m')*(~F)^((~c')*((~a')+(~b')*(~x)))*sin((~d')+(~e')*(~x))^(~n'),(~x)*Symbol) :=  im^n/2^n*Antiderivative(ExpandIntegrand((f*x)^m*F^(c*(a+b*x)),(ℯ^(-im*(d+e*x))-ℯ^( im*(d+e*x)))^n,x),x) <-- FreeQ([F,a,b,c,d,e,f],x) && IGtQ(n,0) =#
    #= Antiderivative(((~f')*(~x))^(~m')*(~F)^((~c')*((~a')+(~b')*(~x)))*cos((~d')+(~e')*(~x))^(~n'),(~x)*Symbol) :=  1/2^n*Antiderivative(ExpandIntegrand((f*x)^m*F^(c*(a+b*x)),(ℯ^(-im*(d+e*x))+ℯ^(im*( d+e*x)))^n,x),x) <-- FreeQ([F,a,b,c,d,e,f],x) && IGtQ(n,0) =#
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sin(~(d') + ~(e') * ~x) ^ ~(m') * cos(~(f') + ~(g') * ~x) ^ ~(n'), ~x) => Antiderivative(ExpandTrigReduce((~F) ^ (~c * (~a + ~b * ~x)), sin(~d + ~e * ~x) ^ ~m * cos(~f + ~g * ~x) ^ ~n, ~x), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g], ~x) && (IGtQ(~m, 0) && IGtQ(~n, 0))
    @apply_utils Antiderivative((~x) ^ ~(p') * (~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * sin(~(d') + ~(e') * ~x) ^ ~(m') * cos(~(f') + ~(g') * ~x) ^ ~(n'), ~x) => Antiderivative(ExpandTrigReduce((~x) ^ ~p * (~F) ^ (~c * (~a + ~b * ~x)), sin(~d + ~e * ~x) ^ ~m * cos(~f + ~g * ~x) ^ ~n, ~x), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g], ~x) && (IGtQ(~m, 0) && (IGtQ(~n, 0) && IGtQ(~p, 0)))
    @apply_utils Antiderivative((~F) ^ (~(c') * (~(a') + ~(b') * ~x)) * (~G)(~(d') + ~(e') * ~x) ^ ~(m') * (~H)(~(d') + ~(e') * ~x) ^ ~(n'), ~x) => Antiderivative(ExpandTrigToExp((~F) ^ (~c * (~a + ~b * ~x)), (~G)(~d + ~e * ~x) ^ ~m * (~H)(~d + ~e * ~x) ^ ~n, ~x), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e], ~x) && (IGtQ(~m, 0) && (IGtQ(~n, 0) && (TrigQ(~G) && TrigQ(~H))))
    @apply_utils Antiderivative((~F) ^ ~u * sin(~v) ^ ~(n'), ~x) => Antiderivative(ExpandTrigToExp((~F) ^ ~u, sin(~v) ^ ~n, ~x), ~x) <-- FreeQ(~F, ~x) && ((LinearQ(~u, ~x) || PolyQ(~u, ~x, 2)) && ((LinearQ(~v, ~x) || PolyQ(~v, ~x, 2)) && IGtQ(~n, 0)))
    @apply_utils Antiderivative((~F) ^ ~u * cos(~v) ^ ~(n'), ~x) => Antiderivative(ExpandTrigToExp((~F) ^ ~u, cos(~v) ^ ~n, ~x), ~x) <-- FreeQ(~F, ~x) && ((LinearQ(~u, ~x) || PolyQ(~u, ~x, 2)) && ((LinearQ(~v, ~x) || PolyQ(~v, ~x, 2)) && IGtQ(~n, 0)))
    @apply_utils Antiderivative((~F) ^ ~u * sin(~v) ^ ~(m') * cos(~v) ^ ~(n'), ~x) => Antiderivative(ExpandTrigToExp((~F) ^ ~u, sin(~v) ^ ~m * cos(~v) ^ ~n, ~x), ~x) <-- FreeQ(~F, ~x) && ((LinearQ(~u, ~x) || PolyQ(~u, ~x, 2)) && ((LinearQ(~v, ~x) || PolyQ(~v, ~x, 2)) && (IGtQ(~m, 0) && IGtQ(~n, 0))))
end
