This is an undergraduate thesis to obtain the degree of Licentiate in Computer Science in University of La Plata, Argentina. Since by standing rules of the institution this work must be presented in Spanish, the author would like to cross-refer the reader to a shorter English version of this work [Martinez Lopez and Badenes, 2003], that is being published in the Proceedings of the VII Argentinian Workshop on Theoretical Computer Science (WAIT 2003, Buenos Aires, September 2003). There, the core chapters of this work (Simplification, chapter 2, and Solving, chapter 3) are included (with a lower level of detail). In any case, we give an English introduction for better understanding the scope of this work.