diff --git a/heap_lang/notation.v b/heap_lang/notation.v index 0ebbc77e5189c290a93a4ff320116e1e7d953a35..faed72775f623bcb1421f711cb051606343499d1 100644 --- a/heap_lang/notation.v +++ b/heap_lang/notation.v @@ -100,6 +100,10 @@ Notation "'let:' x := e1 'in' e2" := (LamV x%bind e2%E e1%E) Notation "e1 ;; e2" := (LamV BAnon e2%E e1%E) (at level 100, e2 at level 200, format "e1 ;; e2") : val_scope. +(* Shortcircuit Boolean connectives *) +Notation "e1 && e2" := (If e1%E e2%E (Lit (LitBool false))) : expr_scope. +Notation "e1 || e2" := (If e1%E (Lit (LitBool true)) e2%E) : expr_scope. + (** Notations for option *) Notation NONE := (InjL #()). Notation SOME x := (InjR x).