int_rules_3_5 = @theory begin

    #= ::Subsection::Closed:: =#
    #= 3.5*Miscellaneous*logarithms =#
    @apply_utils Antiderivative(~u * log(~v), ~x) => With([w = DerivativeDivides(~v, ~u * (1 - ~v), ~x)], w * PolyLog(2, 1 - ~v) <-- Not(FalseQ(w)))
    @apply_utils Antiderivative((~(a') + ~(b') * log(~u)) * log(~v) * ~w, ~x) => With([z = DerivativeDivides(~v, ~w * (1 - ~v), ~x)], z * (~a + ~b * log(~u)) * PolyLog(2, 1 - ~v) - ~b * Antiderivative(SimplifyIntegrand((z * PolyLog(2, 1 - ~v) * D(~u, ~x)) / ~u, ~x), ~x) <-- Not(FalseQ(z))) <-- FreeQ([~a, ~b], ~x) && InverseFunctionFreeQ(~u, ~x)
    @apply_utils Antiderivative(log(~(c') * log(~(d') * (~x) ^ ~(n')) ^ ~(p')), ~x) => ~x * log(~c * log(~d * (~x) ^ ~n) ^ ~p) - ~n * ~p * Antiderivative(1 / log(~d * (~x) ^ ~n), ~x) <-- FreeQ([~c, ~d, ~n, ~p], ~x)
    @apply_utils Antiderivative((~(a') + ~(b') * log(~(c') * log(~(d') * (~x) ^ ~(n')) ^ ~(p'))) / ~x, ~x) => (log(~d * (~x) ^ ~n) * (~a + ~b * log(~c * log(~d * (~x) ^ ~n) ^ ~p))) / ~n - ~b * ~p * log(~x) <-- FreeQ([~a, ~b, ~c, ~d, ~n, ~p], ~x)
    @apply_utils Antiderivative((~(e') * ~x) ^ ~(m') * (~(a') + ~(b') * log(~(c') * log(~(d') * (~x) ^ ~(n')) ^ ~(p'))), ~x) => ((~e * ~x) ^ (~m + 1) * (~a + ~b * log(~c * log(~d * (~x) ^ ~n) ^ ~p))) / (~e * (~m + 1)) - ((~b * ~n * ~p) / (~m + 1)) * Antiderivative((~e * ~x) ^ ~m / log(~d * (~x) ^ ~n), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~m, ~n, ~p], ~x) && NeQ(~m, -1)
    @apply_utils Antiderivative((~(a') + ~(b') * log(~(c') * (~RFx) ^ ~(p'))) ^ ~(n'), ~x) => ~x * (~a + ~b * log(~c * (~RFx) ^ ~p)) ^ ~n - ~b * ~n * ~p * Antiderivative(SimplifyIntegrand((~x * (~a + ~b * log(~c * (~RFx) ^ ~p)) ^ (~n - 1) * D(~RFx, ~x)) / ~RFx, ~x), ~x) <-- FreeQ([~a, ~b, ~c, ~p], ~x) && (RationalFunctionQ(~RFx, ~x) && IGtQ(~n, 0))
    @apply_utils Antiderivative((~(a') + ~(b') * log(~(c') * (~RFx) ^ ~(p'))) ^ ~(n') / (~(d') + ~(e') * ~x), ~x) => (log(~d + ~e * ~x) * (~a + ~b * log(~c * (~RFx) ^ ~p)) ^ ~n) / ~e - ((~b * ~n * ~p) / ~e) * Antiderivative((log(~d + ~e * ~x) * (~a + ~b * log(~c * (~RFx) ^ ~p)) ^ (~n - 1) * D(~RFx, ~x)) / ~RFx, ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~p], ~x) && (RationalFunctionQ(~RFx, ~x) && IGtQ(~n, 0))
    @apply_utils Antiderivative((~(d') + ~(e') * ~x) ^ ~(m') * (~(a') + ~(b') * log(~(c') * (~RFx) ^ ~(p'))) ^ ~(n'), ~x) => ((~d + ~e * ~x) ^ (~m + 1) * (~a + ~b * log(~c * (~RFx) ^ ~p)) ^ ~n) / (~e * (~m + 1)) - ((~b * ~n * ~p) / (~e * (~m + 1))) * Antiderivative(SimplifyIntegrand(((~d + ~e * ~x) ^ (~m + 1) * (~a + ~b * log(~c * (~RFx) ^ ~p)) ^ (~n - 1) * D(~RFx, ~x)) / ~RFx, ~x), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~m, ~p], ~x) && (RationalFunctionQ(~RFx, ~x) && (IGtQ(~n, 0) && ((EqQ(~n, 1) || IntegerQ(~m)) && NeQ(~m, -1))))
    @apply_utils Antiderivative(log(~(c') * (~RFx) ^ ~(n')) / (~d + ~(e') * (~x) ^ 2), ~x) => With([u = IntHide(1 / (~d + ~e * (~x) ^ 2), ~x)], u * log(~c * (~RFx) ^ ~n) - ~n * Antiderivative(SimplifyIntegrand((u * D(~RFx, ~x)) / ~RFx, ~x), ~x)) <-- FreeQ([~c, ~d, ~e, ~n], ~x) && (RationalFunctionQ(~RFx, ~x) && Not(PolynomialQ(~RFx, ~x)))
    @apply_utils Antiderivative(log(~(c') * (~Px) ^ ~(n')) / ~Qx, ~x) => With([u = IntHide(1 / ~Qx, ~x)], u * log(~c * (~Px) ^ ~n) - ~n * Antiderivative(SimplifyIntegrand((u * D(~Px, ~x)) / ~Px, ~x), ~x)) <-- FreeQ([~c, ~n], ~x) && (QuadraticQ([~Qx, ~Px], ~x) && EqQ(D(~Px / ~Qx, ~x), 0))
    @apply_utils Antiderivative(~RGx * (~(a') + ~(b') * log(~(c') * (~RFx) ^ ~(p'))) ^ ~(n'), ~x) => With([u = ExpandIntegrand((~a + ~b * log(~c * (~RFx) ^ ~p)) ^ ~n, ~RGx, ~x)], Antiderivative(u, ~x) <-- SumQ(u)) <-- FreeQ([~a, ~b, ~c, ~p], ~x) && (RationalFunctionQ(~RFx, ~x) && (RationalFunctionQ(~RGx, ~x) && IGtQ(~n, 0)))
    @apply_utils Antiderivative(~RGx * (~(a') + ~(b') * log(~(c') * (~RFx) ^ ~(p'))) ^ ~(n'), ~x) => With([u = ExpandIntegrand(~RGx * (~a + ~b * log(~c * (~RFx) ^ ~p)) ^ ~n, ~x)], Antiderivative(u, ~x) <-- SumQ(u)) <-- FreeQ([~a, ~b, ~c, ~p], ~x) && (RationalFunctionQ(~RFx, ~x) && (RationalFunctionQ(~RGx, ~x) && IGtQ(~n, 0)))
    @apply_utils Antiderivative(~RFx * (~(a') + ~(b') * log(~u)), ~x) => With([lst = SubstForFractionalPowerOfLinear(~RFx * (~a + ~b * log(~u)), ~x)], lst(2) * lst(4) * Subst(Antiderivative(lst(1), ~x), ~x, lst(3) ^ (1 / lst(2))) <-- Not(FalseQ(lst))) <-- FreeQ([~a, ~b], ~x) && RationalFunctionQ(~RFx, ~x)
    @apply_utils Antiderivative((~(f') + ~(g') * ~x) ^ ~(m') * log(1 + ~(e') * ((~F) ^ (~(c') * (~(a') + ~(b') * ~x))) ^ ~(n')), ~x) => (-((~f + ~g * ~x) ^ ~m) * PolyLog(2, -(~e) * ((~F) ^ (~c * (~a + ~b * ~x))) ^ ~n)) / (~b * ~c * ~n * log(~F)) + ((~g * ~m) / (~b * ~c * ~n * log(~F))) * Antiderivative((~f + ~g * ~x) ^ (~m - 1) * PolyLog(2, -(~e) * ((~F) ^ (~c * (~a + ~b * ~x))) ^ ~n), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~e, ~f, ~g, ~n], ~x) && GtQ(~m, 0)
    @apply_utils Antiderivative((~(f') + ~(g') * ~x) ^ ~(m') * log(~d + ~(e') * ((~F) ^ (~(c') * (~(a') + ~(b') * ~x))) ^ ~(n')), ~x) => (((~f + ~g * ~x) ^ (~m + 1) * log(~d + ~e * ((~F) ^ (~c * (~a + ~b * ~x))) ^ ~n)) / (~g * (~m + 1)) - ((~f + ~g * ~x) ^ (~m + 1) * log(1 + (~e / ~d) * ((~F) ^ (~c * (~a + ~b * ~x))) ^ ~n)) / (~g * (~m + 1))) + Antiderivative((~f + ~g * ~x) ^ ~m * log(1 + (~e / ~d) * ((~F) ^ (~c * (~a + ~b * ~x))) ^ ~n), ~x) <-- FreeQ([~F, ~a, ~b, ~c, ~d, ~e, ~f, ~g, ~n], ~x) && (GtQ(~m, 0) && NeQ(~d, 1))
    @apply_utils Antiderivative(log(~(d') + ~(e') * ~x + ~(f') * sqrt(~(a') + ~(b') * ~x + ~(c') * (~x) ^ 2)), ~x) => ~x * log(~d + ~e * ~x + ~f * sqrt(~a + ~b * ~x + ~c * (~x) ^ 2)) + (((~f) ^ 2 * ((~b) ^ 2 - 4 * ~a * ~c)) / 2) * Antiderivative(~x / ((2 * ~d * ~e - ~b * (~f) ^ 2) * (~a + ~b * ~x + ~c * (~x) ^ 2) - ~f * ((~b * ~d - 2 * ~a * ~e) + (2 * ~c * ~d - ~b * ~e) * ~x) * sqrt(~a + ~b * ~x + ~c * (~x) ^ 2)), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~f], ~x) && EqQ((~e) ^ 2 - ~c * (~f) ^ 2, 0)
    @apply_utils Antiderivative(log(~(d') + ~(e') * ~x + ~(f') * sqrt(~(a') + ~(c') * (~x) ^ 2)), ~x) => ~x * log(~d + ~e * ~x + ~f * sqrt(~a + ~c * (~x) ^ 2)) - ~a * ~c * (~f) ^ 2 * Antiderivative(~x / (~d * ~e * (~a + ~c * (~x) ^ 2) + ~f * (~a * ~e - ~c * ~d * ~x) * sqrt(~a + ~c * (~x) ^ 2)), ~x) <-- FreeQ([~a, ~c, ~d, ~e, ~f], ~x) && EqQ((~e) ^ 2 - ~c * (~f) ^ 2, 0)
    @apply_utils Antiderivative((~(g') * ~x) ^ ~(m') * log(~(d') + ~(e') * ~x + ~(f') * sqrt(~(a') + ~(b') * ~x + ~(c') * (~x) ^ 2)), ~x) => ((~g * ~x) ^ (~m + 1) * log(~d + ~e * ~x + ~f * sqrt(~a + ~b * ~x + ~c * (~x) ^ 2))) / (~g * (~m + 1)) + (((~f) ^ 2 * ((~b) ^ 2 - 4 * ~a * ~c)) / (2 * ~g * (~m + 1))) * Antiderivative((~g * ~x) ^ (~m + 1) / ((2 * ~d * ~e - ~b * (~f) ^ 2) * (~a + ~b * ~x + ~c * (~x) ^ 2) - ~f * ((~b * ~d - 2 * ~a * ~e) + (2 * ~c * ~d - ~b * ~e) * ~x) * sqrt(~a + ~b * ~x + ~c * (~x) ^ 2)), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~f, ~g, ~m], ~x) && (EqQ((~e) ^ 2 - ~c * (~f) ^ 2, 0) && (NeQ(~m, -1) && IntegerQ(2 * ~m)))
    @apply_utils Antiderivative((~(g') * ~x) ^ ~(m') * log(~(d') + ~(e') * ~x + ~(f') * sqrt(~(a') + ~(c') * (~x) ^ 2)), ~x) => ((~g * ~x) ^ (~m + 1) * log(~d + ~e * ~x + ~f * sqrt(~a + ~c * (~x) ^ 2))) / (~g * (~m + 1)) - ((~a * ~c * (~f) ^ 2) / (~g * (~m + 1))) * Antiderivative((~g * ~x) ^ (~m + 1) / (~d * ~e * (~a + ~c * (~x) ^ 2) + ~f * (~a * ~e - ~c * ~d * ~x) * sqrt(~a + ~c * (~x) ^ 2)), ~x) <-- FreeQ([~a, ~c, ~d, ~e, ~f, ~g, ~m], ~x) && (EqQ((~e) ^ 2 - ~c * (~f) ^ 2, 0) && (NeQ(~m, -1) && IntegerQ(2 * ~m)))
    @apply_utils Antiderivative(~(v') * log(~(d') + ~(e') * ~x + ~(f') * sqrt(~u)), ~x) => Antiderivative(~v * log(~d + ~e * ~x + ~f * sqrt(ExpandToSum(~u, ~x))), ~x) <-- FreeQ([~d, ~e, ~f], ~x) && (QuadraticQ(~u, ~x) && (Not(QuadraticMatchQ(~u, ~x)) && (EqQ(~v, 1) || MatchQ(~v, (~(g') * ~x) ^ ~(m') <-- FreeQ([g, m], ~x)))))
    @apply_utils Antiderivative(log(~(c') * (~x) ^ ~(n')) ^ ~(r') / (~x * (~(a') * (~x) ^ ~(m') + ~(b') * log(~(c') * (~x) ^ ~(n')) ^ ~q)), ~x) => log(~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q) / (~b * ~n * ~q) - ((~a * ~m) / (~b * ~n * ~q)) * Antiderivative((~x) ^ (~m - 1) / (~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q), ~x) <-- FreeQ([~a, ~b, ~c, ~m, ~n, ~q, ~r], ~x) && EqQ(~r, ~q - 1)
    @apply_utils Antiderivative((log(~(c') * (~x) ^ ~(n')) ^ ~(r') * (~(a') * (~x) ^ ~(m') + ~(b') * log(~(c') * (~x) ^ ~(n')) ^ ~q) ^ ~(p')) / ~x, ~x) => Antiderivative(ExpandIntegrand(log(~c * (~x) ^ ~n) ^ ~r / ~x, (~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q) ^ ~p, ~x), ~x) <-- FreeQ([~a, ~b, ~c, ~m, ~n, ~p, ~q, ~r], ~x) && (EqQ(~r, ~q - 1) && IGtQ(~p, 0))
    @apply_utils Antiderivative((log(~(c') * (~x) ^ ~(n')) ^ ~(r') * (~(a') * (~x) ^ ~(m') + ~(b') * log(~(c') * (~x) ^ ~(n')) ^ ~q) ^ ~(p')) / ~x, ~x) => (~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q) ^ (~p + 1) / (~b * ~n * ~q * (~p + 1)) - ((~a * ~m) / (~b * ~n * ~q)) * Antiderivative((~x) ^ (~m - 1) * (~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~m, ~n, ~p, ~q, ~r], ~x) && (EqQ(~r, ~q - 1) && NeQ(~p, -1))
    @apply_utils Antiderivative((~(d') * (~x) ^ ~(m') + ~(e') * log(~(c') * (~x) ^ ~(n')) ^ ~(r')) / (~x * (~(a') * (~x) ^ ~(m') + ~(b') * log(~(c') * (~x) ^ ~(n')) ^ ~q)), ~x) => (~e * log(~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q)) / (~b * ~n * ~q) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~m, ~n, ~q, ~r], ~x) && (EqQ(~r, ~q - 1) && EqQ(~a * ~e * ~m - ~b * ~d * ~n * ~q, 0))
    @apply_utils Antiderivative((~u + ~(d') * (~x) ^ ~(m') + ~(e') * log(~(c') * (~x) ^ ~(n')) ^ ~(r')) / (~x * (~(a') * (~x) ^ ~(m') + ~(b') * log(~(c') * (~x) ^ ~(n')) ^ ~q)), ~x) => (~e * log(~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q)) / (~b * ~n * ~q) + Antiderivative(~u / (~x * (~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q)), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~m, ~n, ~q, ~r], ~x) && (EqQ(~r, ~q - 1) && EqQ(~a * ~e * ~m - ~b * ~d * ~n * ~q, 0))
    @apply_utils Antiderivative((~(d') * (~x) ^ ~(m') + ~(e') * log(~(c') * (~x) ^ ~(n')) ^ ~(r')) / (~x * (~(a') * (~x) ^ ~(m') + ~(b') * log(~(c') * (~x) ^ ~(n')) ^ ~q)), ~x) => (~e * log(~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q)) / (~b * ~n * ~q) - ((~a * ~e * ~m - ~b * ~d * ~n * ~q) / (~b * ~n * ~q)) * Antiderivative((~x) ^ (~m - 1) / (~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~m, ~n, ~q, ~r], ~x) && (EqQ(~r, ~q - 1) && NeQ(~a * ~e * ~m - ~b * ~d * ~n * ~q, 0))
    @apply_utils Antiderivative(((~(d') * (~x) ^ ~(m') + ~(e') * log(~(c') * (~x) ^ ~(n')) ^ ~(r')) * (~(a') * (~x) ^ ~(m') + ~(b') * log(~(c') * (~x) ^ ~(n')) ^ ~q) ^ ~(p')) / ~x, ~x) => (~e * (~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q) ^ (~p + 1)) / (~b * ~n * ~q * (~p + 1)) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~m, ~n, ~p, ~q, ~r], ~x) && (EqQ(~r, ~q - 1) && (NeQ(~p, -1) && EqQ(~a * ~e * ~m - ~b * ~d * ~n * ~q, 0)))
    @apply_utils Antiderivative(((~(d') * (~x) ^ ~(m') + ~(e') * log(~(c') * (~x) ^ ~(n')) ^ ~(r')) * (~(a') * (~x) ^ ~(m') + ~(b') * log(~(c') * (~x) ^ ~(n')) ^ ~q) ^ ~(p')) / ~x, ~x) => (~e * (~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q) ^ (~p + 1)) / (~b * ~n * ~q * (~p + 1)) - ((~a * ~e * ~m - ~b * ~d * ~n * ~q) / (~b * ~n * ~q)) * Antiderivative((~x) ^ (~m - 1) * (~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~m, ~n, ~p, ~q, ~r], ~x) && (EqQ(~r, ~q - 1) && (NeQ(~p, -1) && NeQ(~a * ~e * ~m - ~b * ~d * ~n * ~q, 0)))
    @apply_utils Antiderivative((~(d') * (~x) ^ ~(m') + ~(e') * (~x) ^ ~(m') * log(~(c') * (~x) ^ ~(n')) + ~(f') * log(~(c') * (~x) ^ ~(n')) ^ ~(q')) / (~x * (~(a') * (~x) ^ ~(m') + ~(b') * log(~(c') * (~x) ^ ~(n')) ^ ~q) ^ 2), ~x) => (~d * log(~c * (~x) ^ ~n)) / (~a * ~n * (~a * (~x) ^ ~m + ~b * log(~c * (~x) ^ ~n) ^ ~q)) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~f, ~m, ~n, ~q], ~x) && (EqQ(~e * ~n + ~d * ~m, 0) && EqQ(~a * ~f + ~b * ~d * (~q - 1), 0))
    @apply_utils Antiderivative((~d + ~(e') * log(~(c') * (~x) ^ ~(n'))) / (~(a') * ~x + ~(b') * log(~(c') * (~x) ^ ~(n')) ^ ~q) ^ 2, ~x) => (-(~e) * log(~c * (~x) ^ ~n)) / (~a * (~a * ~x + ~b * log(~c * (~x) ^ ~n) ^ ~q)) + ((~d + ~e * ~n) / ~a) * Antiderivative(1 / (~x * (~a * ~x + ~b * log(~c * (~x) ^ ~n) ^ ~q)), ~x) <-- FreeQ([~a, ~b, ~c, ~d, ~e, ~n, ~q], ~x) && EqQ(~d + ~e * ~n * ~q, 0)
    @apply_utils Antiderivative(log(~u), ~x) => ~x * log(~u) - Antiderivative(SimplifyIntegrand((~x * D(~u, ~x)) / ~u, ~x), ~x) <-- InverseFunctionFreeQ(~u, ~x)
    @apply_utils Antiderivative(log(~u), ~x) => ~x * log(~u) - Antiderivative(SimplifyIntegrand(~x * Simplify(D(~u, ~x) / ~u), ~x), ~x) <-- ProductQ(~u)
    @apply_utils Antiderivative(log(~u) / (~(a') + ~(b') * ~x), ~x) => (log(~a + ~b * ~x) * log(~u)) / ~b - (1 / ~b) * Antiderivative(SimplifyIntegrand((log(~a + ~b * ~x) * D(~u, ~x)) / ~u, ~x), ~x) <-- FreeQ([~a, ~b], ~x) && (RationalFunctionQ(D(~u, ~x) / ~u, ~x) && (NeQ(~a, 0) || Not(BinomialQ(~u, ~x) && EqQ(BinomialDegree(~u, ~x) ^ 2, 1))))
    @apply_utils Antiderivative((~(a') + ~(b') * ~x) ^ ~(m') * log(~u), ~x) => ((~a + ~b * ~x) ^ (~m + 1) * log(~u)) / (~b * (~m + 1)) - (1 / (~b * (~m + 1))) * Antiderivative(SimplifyIntegrand(((~a + ~b * ~x) ^ (~m + 1) * D(~u, ~x)) / ~u, ~x), ~x) <-- FreeQ([~a, ~b, ~m], ~x) && (InverseFunctionFreeQ(~u, ~x) && NeQ(~m, -1))
    @apply_utils Antiderivative(log(~u) / ~Qx, ~x) => With([v = IntHide(1 / ~Qx, ~x)], v * log(~u) - Antiderivative(SimplifyIntegrand((v * D(~u, ~x)) / ~u, ~x), ~x)) <-- QuadraticQ(~Qx, ~x) && InverseFunctionFreeQ(~u, ~x)
    @apply_utils Antiderivative((~u) ^ (~(a') * ~x) * log(~u), ~x) => (~u) ^ (~a * ~x) / ~a - Antiderivative(SimplifyIntegrand(~x * (~u) ^ (~a * ~x - 1) * D(~u, ~x), ~x), ~x) <-- FreeQ(~a, ~x) && InverseFunctionFreeQ(~u, ~x)
    @apply_utils Antiderivative(~v * log(~u), ~x) => With([w = IntHide(~v, ~x)], Dist(log(~u), w, ~x) - Antiderivative(SimplifyIntegrand((w * D(~u, ~x)) / ~u, ~x), ~x) <-- InverseFunctionFreeQ(w, ~x)) <-- InverseFunctionFreeQ(~u, ~x)
    @apply_utils Antiderivative(~v * log(~u), ~x) => With([w = IntHide(~v, ~x)], Dist(log(~u), w, ~x) - Antiderivative(SimplifyIntegrand(w * Simplify(D(~u, ~x) / ~u), ~x), ~x) <-- InverseFunctionFreeQ(w, ~x)) <-- ProductQ(~u)
    @apply_utils Antiderivative(log(~v) * log(~w), ~x) => (~x * log(~v) * log(~w) - Antiderivative(SimplifyIntegrand((~x * log(~w) * D(~v, ~x)) / ~v, ~x), ~x)) - Antiderivative(SimplifyIntegrand((~x * log(~v) * D(~w, ~x)) / ~w, ~x), ~x) <-- InverseFunctionFreeQ(~v, ~x) && InverseFunctionFreeQ(~w, ~x)
    @apply_utils Antiderivative(~u * log(~v) * log(~w), ~x) => With([z = IntHide(~u, ~x)], (Dist(log(~v) * log(~w), z, ~x) - Antiderivative(SimplifyIntegrand((z * log(~w) * D(~v, ~x)) / ~v, ~x), ~x)) - Antiderivative(SimplifyIntegrand((z * log(~v) * D(~w, ~x)) / ~w, ~x), ~x) <-- InverseFunctionFreeQ(z, ~x)) <-- InverseFunctionFreeQ(~v, ~x) && InverseFunctionFreeQ(~w, ~x)
    @apply_utils Antiderivative((~f) ^ (~(a') * log(~u)), ~x) => Antiderivative((~u) ^ (~a * log(~f)), ~x) <-- FreeQ([~a, ~f], ~x)
    #= If(TrueQ($LoadShowSteps), Antiderivative((~u)/(~x),~x) := With([lst=FunctionOfLog(u,x)], ShowStep("","Antiderivative(F(log(a*x^n))/x,x)","Subst(Antiderivative(F(x),x),x,log(a*x^n) )/n",Hold( 1/lst((3))*Subst(Antiderivative(lst((1)),x),x,log(lst((2)))))) <--  Not(FalseQ(lst))) <-- SimplifyFlag && NonsumQ(u), Antiderivative((~u)/(~x),~x) := With([lst=FunctionOfLog(u,x)], 1/lst((3))*Subst(Antiderivative(lst((1)),x),x,log(lst((2)))) <--  Not(FalseQ(lst))) <-- NonsumQ(u)) =#
    If(TrueQ($LoadShowSteps), Antiderivative((~u), ~x) := With([lst = FunctionOfLog(Cancel(x*u), x)], ShowStep("", "Antiderivative(F(log(a*x^n))/x,x)", "Subst(Antiderivative(F(x),x),x,log(a*x^n))/n", Hold( 1/lst((3))* Subst(Antiderivative(lst((1)), x), x, log(lst((2)))))) <-- Not(FalseQ(lst))) <-- SimplifyFlag && NonsumQ(u), Antiderivative((~u), ~x) := With([lst = FunctionOfLog(Cancel(x*u), x)], 1/lst((3))*Subst(Antiderivative(lst((1)), x), x, log(lst((2)))) <-- Not(FalseQ(lst))) <-- NonsumQ(u))
    @apply_utils Antiderivative(~(u') * log(Gamma(~v)), ~x) => (log(Gamma(~v)) - LogGamma(~v)) * Antiderivative(~u, ~x) + Antiderivative(~u * LogGamma(~v), ~x)
    @apply_utils Antiderivative(~(u') * (~(a') * (~x) ^ ~(m') + ~(b') * (~x) ^ ~(r') * log(~(c') * (~x) ^ ~(n')) ^ ~(q')) ^ ~(p'), ~x) => Antiderivative(~u * (~x) ^ (~p * ~r) * (~a * (~x) ^ (~m - ~r) + ~b * log(~c * (~x) ^ ~n) ^ ~q) ^ ~p, ~x) <-- FreeQ([~a, ~b, ~c, ~m, ~n, ~p, ~q, ~r], ~x) && IntegerQ(~p)
end
