In this thesis, we develop an optimization technique, partial type deletion, for type checking in a polymorphic Horn clause specification. It preserves the necessary type annotations in a given program enough to guarantee the correctness of the program and delete remaining unnecessary type annotations. This technique is a generalization of Hanu``s work in that Hanus`` is only applied to the type general programs, whereas ours can be applied to all programs. We also present an algorithm for partial type deletion, its correctness on narrowing procedure, and finally experimental results.