At [this question](https://cstheory.stackexchange.com/questions/19538/what-is-the-goal-behind-abstract-interpretation-in-programming-languages), abstract interpretation has a nice in-depth look. However, I'd like someone to clearly and very precisely state how abstract interpretation takes the result of Rice's Theorem over the Turing-complete programming languages/Turing machines, and uses abstract interpretation to get similar results for decidability for non-trivial program properties; or, rather, how does abstract interpretation get around Rice's Theorem/the Halting Problem?