Hint Resolve synt_wp_monotonic: hoare.

(* Specifications: *)
(** * Soundness  The proof of soundness proceeds by induction over the derivation [exec ... prog ...] in implicit hypothesis induced by [wlp] definition.  Please, notice that coq performs the [exec_Iwhile] case alone (that's where monotonicity is used). Unfortunately, the case [exec_Iif] which seems trivial to a human is not discharged by Coq. *)
Lemma wp_sound: forall prog post, synt_wp prog post |= prog{=post=}.
(** * Completeness  The proof of completeness proceeds by induction over [prog] syntax.  Please, notice that coq performs this proof almost alone. The only hint given here is the invariant. *)
Lemma wp_complete: forall prog post, prog{=post=} |= (synt_wp prog post).
Hint Resolve wp_complete wp_sound: hoare.