The logic of abductive logic programming