Reflection, the capacity to represent our ideas and to make them the object of our own thoughts, has for many centuries been recognized as a key mark of human intelligence. The very success and extension of reflective ideas in logic and computer science underscores the need for conceptual foundations.
This book proposes a general theory of reflective logics and reflective declarative programming languages. This theory provides a conceptual foundation for judging the extent to which a computational system is reflective. Manuel Clavel presents a proof of the reflective nature of rewriting logic and provides examples of the potential for reflective programming in a number of novel computer applications. These applications are implemented in Maude, a reflective programming language and environment based on rewriting logic that can define, represent and execute a breadth of logics, languages and models of computation. A general method to easily build theorem-proving tools in Maude is also proposed and illustrated. The book goes on to promote the notion of a "universal theory" that can simulate the deductions of all representable theories within any given logic.