Most specification languages for mathematical theories support definition mechanisms for sets that are inductively generated by a set of constructors and recursive functions on these under the heading of
abstract data types
. Prominent examples of abstract data types are natural numbers, lists, trees, etc. The module ADT presented in this chapter extends
by a concise syntax for abstract data types that follows the model used in the
(Common Abstract Specification Language [CoF04]) standard.