title: Are there Mathematica packages for presenting proofs/derivations?
body: <p>When I write out a proof or derivation on paper I frequently make sign errors or drop terms as I move from one step to the next. I'd like to use Mathematica to save myself from these silly mistakes. I don't want Mathematica to solve the expression, I just want to use it carry out and display a series of algebraic manipulations. For a (trivial) example</p>
  
  <pre><code>In[111]:= MultBothSides[Equal[a_, b_], c_] := Equal[c a, c b];
  
  In[112]:= expression = 2 a == a b
  
  Out[112]= 2 a == a b
  
  In[113]:= MultBothSides[expression, 1/a]
  
  Out[113]= 2 == b
  </code></pre>
  
  <p>Can anyone point me to a package that would support this kind of manipulation?</p>
  
  <p>Edit</p>
  
  <p>Thanks for the input, not quite what I'm looking for though. The symbol manipulation isn't really the problem. I'm really looking for something that will make explicit the algebraic or mathematical justification of each step of a derivation. My goal here is really pedagogical.</p>