improved abstract interpretation