  The goal of this paper is to help mainstream programmers routinely use formal
verification on their smart contracts by 1) proposing a new YAML-format for
writing general-purpose formal specifications, 2) demonstrating how a formal
specification can be incrementally built up without needing advanced training,
and 3) showing how formal specifications can be tested by using program
mutation.
