formal methods — mathematical program specification intended to allow correctness proofs, including algorithmically