This thesis is about methods for establishing semantic properties of programsand how those methods can be strengthened. Finding (semi-)algorithms fordeciding semantic properties is a non-trivial task and such algorithms will, bynecessity, give approximate answers. This means that for any property of interest,there is a spectrum of algorithms computing answers to various degrees ofprecision, ranging from computationally cheap, low-precision algorithms to expensive,potentially non-terminating algorithms with very high precision. Findingapproximations precise enough to be useful, and that at the same time makethe algorithms cheap enough, is a real challenge.In this thesis we consider program analysis and program verification, whichare two appr...