Things we will want to simplify: 2.y.3 -> 6.y y.x.3 + x^2 +1 -> x^2 + 3*x*y + 1 Zeroes and ones x + 0 -> x 1*x -> x x^1 -> x x^0 -> 1 Simplify fractions (x^2+5.x+6)/(x+2) -> x+3 Polynomials (x+1)^2-x^2 -> 2*x+1 Fractions (2*x)/(x^2-1) - 1/(x-1) -> 1/(x+1) Functional identities ln(2x) - ln(x) -> ln(2) y*sin^2(x) + y*cos^2(x) -> y Note : The simplification process can be interrupted! -> It probably browses a graph