Structured and Parametrized Theories
In Chapter 5 we have seen a simple use of theories in OpenMath content dictionaries. There, theories have been used to reference OpenMath symbols and to govern their visibility. In this chapter we will cover an extended example showing the structured definition of multiple mathematical theories, modularizing and re-using parts of specifications and theories. Concretely, we will consider a structured specification of lists of natural numbers. This example has been used as a paradigmatic example for many specification formats ranging from Casl (Common Abstract Specification Language [CoF04]) standard to the Pvs theorem prover [ORS92], since it uses most language elements without becoming too unwieldy to present.
In this example, we specify a theory OrdList of lists that is generic in the elements (which is assumed to be a totally ordered set, since we want to talk about ordered lists). Then we will instantiate OrdList by applying it to the theory NatOrd of natural numbers to obtain the intended theory NatOrdList of lists of natural numbers. The advantage of this approach is that we can re-use the generic theory OrdList to apply it to other element theories like that of “characters” to obtain a theory of lists of characters. In algebraic specification languages, we speak of parametric theories. Here, the theory OrdList has a formal parameter (the theory TOSet) that can be instantiated later with concrete values to get a theory instance (in our example the theory NatOrdList). We call this process theory actualization.
KeywordsNatural Number Target Theory Abstract Data Type Source Theory Theory Instance
Unable to display preview. Download preview PDF.