  In this article we present a method to implement orthogonal polynomials and
many other special functions in Computer Algebra systems enabling the user to
work with those functions appropriately, and in particular to verify different
types of identities for those functions. Some of these identities like
differential equations, power series representations, and hypergeometric
representations can even dealt with algorithmically, i.\ e.\ they can be
computed by the Computer Algebra system, rather than only verified.
  The types of functions that can be treated by the given technique cover the
generalized hypergeometric functions, and therefore most of the special
functions that can be found in mathematical dictionaries.
  The types of identities for which we present verification algorithms cover
differential equations, power series representations, identities of the
Rodrigues type, hypergeometric representations, and algorithms containing
symbolic sums.
  The current implementations of special functions in existing Computer Algebra
systems do not meet these high standards as we shall show in examples. They
should be modified, and we show results of our implementations.
