Abstract Interpretation based Verification of Logic Programs