Soundness and Completeness of an Axiom System for Program Verification

@article{Cook1978SoundnessAC,
  title={Soundness and Completeness of an Axiom System for Program Verification},
  author={Stephen A. Cook},
  journal={SIAM J. Comput.},
  year={1978},
  volume={7},
  pages={70-90}
}
K. R. Apt pointed out to me that Theorem 3 (completeness) is technically false, because of a problem with initializing newly declared variables. For example, the formula true {begin begin new x; x := 1 end; begin new x; y := x end end} y 1 is valid according to the semantics given (because the second declaration of x assigns the same register to x as the first), but it is not provable in. Perhaps the simplest way to fix this is to require all newly declared variables to be initialized to some… CONTINUE READING