-extern ex rem(const ex &a, const ex &b, const symbol &x, bool check_args = true);
+extern ex rem(const ex &a, const ex &b, const ex &x, bool check_args = true);
+
+// Decompose rational function a(x)=N(x)/D(x) into Q(x)+R(x)/D(x) with degree(R, x) < degree(D, x)
+extern ex decomp_rational(const ex &a, const ex &x);
+
+// Pseudo-remainder of polynomials a(x) and b(x) in Q[x]
+extern ex prem(const ex &a, const ex &b, const ex &x, bool check_args = true);