Text this: Proofs as stateful programs: A first-order logic with abstract Hoare triples, and an interpretation into an imperative language