An Analytical Equivalence Theory of Computer Programs