notation.v 1.38 KB
Newer Older
Robbert Krebbers's avatar
Robbert Krebbers committed
1
2
From iris.proofmode Require Import coq_tactics environments.
From iris.prelude Require Export strings.
3
Set Default Proof Using "Type".
Robbert Krebbers's avatar
Robbert Krebbers committed
4
5
6
7
8
9
10

Delimit Scope proof_scope with env.
Arguments Envs _ _%proof_scope _%proof_scope.
Arguments Enil {_}.
Arguments Esnoc {_} _%proof_scope _%string _%uPred_scope.

Notation "​" := Enil (format "​") : proof_scope.
11
Notation "Γ ​ H : P" := (Esnoc Γ H P)
Robbert Krebbers's avatar
Robbert Krebbers committed
12
  (at level 1, P at level 200,
13
   left associativity, format "Γ ​ H  :  P '//'") : proof_scope.
14
Notation "Γ '--------------------------------------' □ Δ '--------------------------------------' ∗ Q" :=
Robbert Krebbers's avatar
Robbert Krebbers committed
15
16
  (of_envs (Envs Γ Δ)  Q%I)
  (at level 1, Q at level 200, left associativity,
17
  format "Γ '--------------------------------------' □ '//' Δ '--------------------------------------' ∗ '//' Q '//'") :
Robbert Krebbers's avatar
Robbert Krebbers committed
18
  C_scope.
19
Notation "Δ '--------------------------------------' ∗ Q" :=
Robbert Krebbers's avatar
Robbert Krebbers committed
20
21
  (of_envs (Envs Enil Δ)  Q%I)
  (at level 1, Q at level 200, left associativity,
22
  format "Δ '--------------------------------------' ∗ '//' Q '//'") : C_scope.
Robbert Krebbers's avatar
Robbert Krebbers committed
23
24
25
Notation "Γ '--------------------------------------' □ Q" :=
  (of_envs (Envs Γ Enil)  Q%I)
  (at level 1, Q at level 200, left associativity,
26
  format "Γ '--------------------------------------' □ '//' Q '//'")  : C_scope.
Robbert Krebbers's avatar
Robbert Krebbers committed
27
Notation "​​ Q" := (of_envs (Envs Enil Enil)  Q%I)
28
  (at level 1, Q at level 200, format "​​ Q") : C_scope.