The Limits of Computation

We explore some problems that no practical or theoretical computer can solve. Does a given function always return the same value? Are two functions equivalent? Will a given function ever return? We also briefly examine implications of these three undecidable problems in compilers, refactoring, and powerful static type systems, respectively.