start: (((x * 1) + 0) * (2 + 3))
  step 1: (x * 1)  ->  x
  step 2: (x + 0)  ->  x
  step 3: (2 + 3)  ->  5
result: (x * 5)   total firings by rule: {'x*1': 1, 'x+0 (int)': 1, 'const fold': 1}
