GIGO, as we all know. Fourth, the theoretical process being used may be incorrect or just inappropriate in a particular situation. One can give your numerical analysis routines a proof that they do what is wanted, and build your aircraft or nuclear reactor or what have you with a new false confi- dence, despite the fact that the case at hand is subject to numerical instability or similar problems. So in summary, a program and its proof are meaningful relative to each other, and nothing else. I would hate to think of the consequences if someone forgot this when implementing SDI, say.
Total correctness is, partial correctness together with termination.
Not a whole lot program verification can do about this. It is very hard to prove a program correct. Loop invariants, for example, are rather hard to come up with. Once you have the proof, it's easy to check. The rumor around here is, the best use of program-proving techniques is in finding bugs.