Universally Closed Classes of Total Computable Functions
One of the most important characteristics of universal programming languages is that they can express their own semantics, that is universal partial functions, say interpreters, can be defined in the language. A fundamental result of computability theory is that no class of total functions can contain its own universal function. In practical terms this is disappointing, one must give up the advantages of universality to gain those of totality. In this paper the fundamental negative result is circumvented for programming languages with a sufficiently rich type structure. A new method is given for building a universally closed class of total computable functions starting with any class of such functions. These results have direct practical application in programming logics, and they raise new questions for computability theory.