diff --git a/theories/program_logic/weakestpre.v b/theories/program_logic/weakestpre.v index 9e1ff0076adb8f8c952b0fff7f18bc18e2f0cdb3..19934800d69a260eea91fdb1711832165f4097b2 100644 --- a/theories/program_logic/weakestpre.v +++ b/theories/program_logic/weakestpre.v @@ -52,6 +52,8 @@ Definition wp_eq : @wp = @wp_def := wp_aux.(seal_eq). Arguments wp {_ _ _} _ _ _%E _. Instance: Params (@wp) 6. +(* Notations without binder -- only parsing because they overlap with the +notations with binder. *) Notation "'WP' e @ s ; E {{ Φ } }" := (wp s E e%E Φ) (at level 20, e, Φ at level 200, only parsing) : bi_scope. Notation "'WP' e @ E {{ Φ } }" := (wp NotStuck E e%E Φ) @@ -63,6 +65,9 @@ Notation "'WP' e {{ Φ } }" := (wp NotStuck ⊤ e%E Φ) Notation "'WP' e ? {{ Φ } }" := (wp MaybeStuck ⊤ e%E Φ) (at level 20, e, Φ at level 200, only parsing) : bi_scope. +(* Notations with binder. The indentation for the inner format block is chosen +such that *if* one has a single-character mask (e.g. [E]), the second line +should align with the binder(s) on the first line. *) Notation "'WP' e @ s ; E {{ v , Q } }" := (wp s E e%E (λ v, Q)) (at level 20, e, Q at level 200, format "'[' 'WP' e '/' '[ ' @ s ; E {{ v , Q } } ']' ']'") : bi_scope.