Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Rodolphe Lepigre
Iris
Commits
f3222ba2
Commit
f3222ba2
authored
Oct 28, 2016
by
Robbert Krebbers
Browse files
Turn short-circuit && and || into definitions.
Otherwise, some ifs are being pretty printed as || or &&.
parent
56301ac8
Changes
1
Hide whitespace changes
Inline
Side-by-side
heap_lang/notation.v
View file @
f3222ba2
...
...
@@ -85,8 +85,11 @@ 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
.
Definition
AND
(
e1
e2
:
expr
)
:
expr
:
=
if
:
e1
then
e2
else
#
false
.
Notation
"e1 && e2"
:
=
(
AND
e1
%
E
e2
%
E
)
:
expr_scope
.
Definition
OR
(
e1
e2
:
expr
)
:
expr
:
=
if
:
e1
then
#
true
else
e2
.
Notation
"e1 || e2"
:
=
(
OR
e1
%
E
e2
%
E
)
:
expr_scope
.
(** Notations for option *)
Notation
NONE
:
=
(
InjL
#()).
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment