Abstract Interpretation for Concurrent Logic Languages