On the Abstract Diagnosis of Logic Programs