Españato Bienve, responsible for my happiness.
AcknowledgmentsI would like to thank Salvador Lucas, my scientific father, for being a good advisor, not only for this thesis but also about life. He was often very strict, but just did what any good father would do. He has helped me appreciate the satisfaction of doing things well.I would also like to thank María Alpuente for giving me the first opportunity to join the elp family. It has been a pleasure to share these five years with all of them and the mist group: Toni, Tama, Raúl, Rafa, Josep, Gustavo, Mauricio, Diego, Alexei, Sonia, Marco, Dani, Pepe, Nando, Alicia, Germán, Cesar, Santi, Jose, María José, . . . and those that came only for a few months and gained a place in my heart: Vesna, Michele and Patricia.Special mention goes to those that were not just workmates but also friends: Cesar (little bird) is the most incredible person I have met here, only he knows how much I owe him. Toni is the best lab mate ever. We have walked together from the beginning and we have shared many good moments. Tama, my spoiled child, I can only wish him all the best in the life, he certainly deserves it.Many thanks to my coauthors, especially to Raúl, for all his help and support. I am proud of the great work that we have done together. It has been a pleasure having such a good companion along this difficult path. Thanks to Rafa for always having a nice word to say and making me laugh.I would also like to thank all the people that I met around the world and allowed me to learn from them. These include Jürgen Giesl and the group at the RWTH Aachen: Carsten, Peter, Stephan, Ivan, René,. . . ; and José Meseguer and the group at UIUC that made me feel at home: Camilo, Ralf, Edgar,. . . and specially Mike.Special thanks go to my parents and brothers. I know you will never understand a word of this thesis, but you have always supported me in any decision I have made.
AbstractMaude is a declarative programming language based on rewriting logic that incorporates many features that in order to prove certain computational properties lead to difficulties. The task of proving termination of rewrite systems in indeed quite hard but applied to real programming languages, becomes more complicated due to these inherent features. Therefore, methods for proving termination of such programs require specific techniques and a careful analysis. Several papers have studied how to prove termination of (a subset of) Maude programs. However, all of them follow a transformational approach where the original program is transformed until it reaches a rewrite system that can be managed with existing techniques and termination tools. In practice, the fact of transforming the original systems used to complicate the proof of termination since it introduces new symbols and rules in the system. In this thesis, we tackle the problem of proving termination of (a subset of) Maude programs by means of direct methods.On the one hand, we pay attention to the strategy of Maude. Maude is an eager language where the a...