We present the system LAP (Learning Abductive Programs) that is able to learn abductive logic programs from examples and from a background abductive theory. A new type of induction problem has been defined as an extension of the Inductive Logic Programming framework. In the new problem definition, both the background and the target theories are abductive logic programs and abductive derivability is used as the coverage relation. LAP is based on the basic top-down ILP algorithm that has been suitably extended. In particular, coverage of examples is tested by using the abductive proof procedure defined by Kakas and Mancarella [24]. Assumptions can be made in order to cover positive examples and to avoid the coverage of negative ones, and these assumptions can be used as new training data. LAP can be applied for learning in the presence of incomplete knowledge and for learning exceptions to classification rules.