return new Division(l, r);
}
private Expression simplifyAdditive(BinaryOperation sum, NaturalNumber denominator) {
PrimeFactorization factors = denominator.factorize();
Expression l = sum.lhs();
Expression r = sum.rhs();
NaturalNumber divisor = Naturals.one();
for (NaturalNumber p : factors.primeFactors()) {
if (isDivisibleBy(l, p) && isDivisibleBy(r, p)) {
l = new Division(l, p).evaluate();
r = new Division(r, p).evaluate();
divisor = (NaturalNumber) divisor.multiply(p);
}