In many cases, a logic program can be divided into two parts, so that one of them, the \bottom" part, does not refer to the predicates de ned in the \top" part. The \bottom" rules can be used then for the evaluation of the predicates that they de ne, and the computed values can be used to simplify the \top" de nitions. We discuss this idea of splitting a program in the context of the answer set semantics. The main theorem shows how computing the answer sets for a program can be simpli ed when the program is split into parts. The programs covered by the theorem may use both negation as failure and classical negation, and their rules may have disjunctive heads. The usefulness of the concept of splitting for the investigation of answer sets is illustrated by several applications. First, we show that a conservative extension theorem by Gelfond and Przymusinska and a theorem on the closed world assumption by Gelfond and Lifschitz are easy consequences of the splitting t...