The representation of the inductively defined abstract data type for lists was left incomplete
in Seldin (1997, Section 9). Here that representation is completed, and it is proved that all
extra axioms needed are consistent. Among the innovations of this paper is a definition of
cdr, whose definition was left for future work in Seldin (1997, Section 9). The results are
then extended to other abstract data types – those of Berardi (1993). The method used to
define cdr for lists is extended to obtain the definition of an inverse for each argument of
each constructor of an abstract data type. These inverses are used to prove the injective
property for the constructors. Also, Dedekind's method of defining the natural numbers is
used to define a predicate associated with each abstract data type, and the use of this
predicate makes it unnecessary to postulate the induction principle. The only axioms left to
be proved are those asserting the disjointness of the co-domains of different constructors,
and it is shown that those axioms can be proved consistent.