# MonomialExtensionTools(F, UP)¶

decompose(f, D) returns [p, n, s] such that f = p+n+s, all the squarefree factors of denom(n) are normal w.r.t. D, denom(s) is special w.r.t. D, and n and s are proper fractions (no pole at infinity). D is the derivation to use.
normalDenom(f, D) returns the product of all the normal factors of denom(f). D is the derivation to use.
split(p, D) returns [n, s] such that p = n s, all the squarefree factors of n are normal w.r.t. D, and s is special w.r.t. D. D is the derivation to use.
splitSquarefree(p, D) returns [n_1 n_2\^2 ... n_m\^m, s_1 s_2\^2 ... s_q\^q] such that p = n_1 n_2\^2 ... n_m\^m s_1 s_2\^2 ... s_q\^q, each n_i is normal w.r.t. D and each s_i is special w.r.t D. D is the derivation to use.