Skip to content
Snippets Groups Projects
Commit 75236abc authored by Ralf Jung's avatar Ralf Jung
Browse files

also pre-reserve bigops notation

parent f9e88985
No related branches found
No related tags found
No related merge requests found
...@@ -5,40 +5,26 @@ Set Default Proof Using "Type". ...@@ -5,40 +5,26 @@ Set Default Proof Using "Type".
Import interface.bi derived_laws_bi.bi. Import interface.bi derived_laws_bi.bi.
(* Notations *) (* Notations *)
Notation "'[∗' 'list]' k ↦ x ∈ l , P" := (big_opL bi_sep (λ k x, P) l) Notation "'[∗' 'list]' k ↦ x ∈ l , P" :=
(at level 200, l at level 10, k, x at level 1, right associativity, (big_opL bi_sep (λ k x, P) l) : bi_scope.
format "[∗ list] k ↦ x ∈ l , P") : bi_scope. Notation "'[∗' 'list]' x ∈ l , P" :=
Notation "'[∗' 'list]' x ∈ l , P" := (big_opL bi_sep (λ _ x, P) l) (big_opL bi_sep (λ _ x, P) l) : bi_scope.
(at level 200, l at level 10, x at level 1, right associativity,
format "[∗ list] x ∈ l , P") : bi_scope. Notation "'[∗]' Ps" := (big_opL bi_sep (λ _ x, x) Ps) : bi_scope.
Notation "'[∗]' Ps" := Notation "'[∧' 'list]' k ↦ x ∈ l , P" :=
(big_opL bi_sep (λ _ x, x) Ps) (at level 20) : bi_scope. (big_opL bi_and (λ k x, P) l) : bi_scope.
Notation "'[∧' 'list]' x ∈ l , P" :=
Notation "'[∧' 'list]' k ↦ x ∈ l , P" := (big_opL bi_and (λ k x, P) l) (big_opL bi_and (λ _ x, P) l) : bi_scope.
(at level 200, l at level 10, k, x at level 1, right associativity,
format "[∧ list] k ↦ x ∈ l , P") : bi_scope. Notation "'[∧]' Ps" := (big_opL bi_and (λ _ x, x) Ps) : bi_scope.
Notation "'[∧' 'list]' x ∈ l , P" := (big_opL bi_and (λ _ x, P) l)
(at level 200, l at level 10, x at level 1, right associativity, Notation "'[∗' 'map]' k ↦ x ∈ m , P" := (big_opM bi_sep (λ k x, P) m) : bi_scope.
format "[∧ list] x ∈ l , P") : bi_scope. Notation "'[∗' 'map]' x ∈ m , P" := (big_opM bi_sep (λ _ x, P) m) : bi_scope.
Notation "'[∧]' Ps" := Notation "'[∗' 'set]' x ∈ X , P" := (big_opS bi_sep (λ x, P) X) : bi_scope.
(big_opL bi_and (λ _ x, x) Ps) (at level 20) : bi_scope.
Notation "'[∗' 'mset]' x ∈ X , P" := (big_opMS bi_sep (λ x, P) X) : bi_scope.
Notation "'[∗' 'map]' k ↦ x ∈ m , P" := (big_opM bi_sep (λ k x, P) m)
(at level 200, m at level 10, k, x at level 1, right associativity,
format "[∗ map] k ↦ x ∈ m , P") : bi_scope.
Notation "'[∗' 'map]' x ∈ m , P" := (big_opM bi_sep (λ _ x, P) m)
(at level 200, m at level 10, x at level 1, right associativity,
format "[∗ map] x ∈ m , P") : bi_scope.
Notation "'[∗' 'set]' x ∈ X , P" := (big_opS bi_sep (λ x, P) X)
(at level 200, X at level 10, x at level 1, right associativity,
format "[∗ set] x ∈ X , P") : bi_scope.
Notation "'[∗' 'mset]' x ∈ X , P" := (big_opMS bi_sep (λ x, P) X)
(at level 200, X at level 10, x at level 1, right associativity,
format "[∗ mset] x ∈ X , P") : bi_scope.
(** * Properties *) (** * Properties *)
Section bi_big_op. Section bi_big_op.
......
(** Just reserve the notation. *) (** Just reserve the notation. *)
(** Turnstiles *)
Reserved Notation "P ⊢ Q" (at level 99, Q at level 200, right associativity). Reserved Notation "P ⊢ Q" (at level 99, Q at level 200, right associativity).
Reserved Notation "P '⊢@{' PROP } Q" (at level 99, Q at level 200, right associativity). Reserved Notation "P '⊢@{' PROP } Q" (at level 99, Q at level 200, right associativity).
Reserved Notation "('⊢@{' PROP } )" (at level 99). Reserved Notation "('⊢@{' PROP } )" (at level 99).
Reserved Notation "P ⊣⊢ Q" (at level 95, no associativity). Reserved Notation "P ⊣⊢ Q" (at level 95, no associativity).
Reserved Notation "P '⊣⊢@{' PROP } Q" (at level 95, no associativity). Reserved Notation "P '⊣⊢@{' PROP } Q" (at level 95, no associativity).
Reserved Notation "('⊣⊢@{' PROP } )" (at level 95). Reserved Notation "('⊣⊢@{' PROP } )" (at level 95).
(** BI connectives *)
Reserved Notation "'emp'". Reserved Notation "'emp'".
Reserved Notation "'⌜' φ '⌝'" (at level 1, φ at level 200, format "⌜ φ ⌝"). Reserved Notation "'⌜' φ '⌝'" (at level 1, φ at level 200, format "⌜ φ ⌝").
Reserved Notation "P ∗ Q" (at level 80, right associativity). Reserved Notation "P ∗ Q" (at level 80, right associativity).
Reserved Notation "P -∗ Q" (at level 99, Q at level 200, right associativity). Reserved Notation "P -∗ Q" (at level 99, Q at level 200, right associativity).
(** Modalities *)
Reserved Notation "'<pers>' P" (at level 20, right associativity). Reserved Notation "'<pers>' P" (at level 20, right associativity).
Reserved Notation "'<pers>?' p P" (at level 20, p at level 9, P at level 20, Reserved Notation "'<pers>?' p P" (at level 20, p at level 9, P at level 20,
right associativity, format "'<pers>?' p P"). right associativity, format "'<pers>?' p P").
...@@ -38,6 +43,7 @@ Reserved Notation "■ P" (at level 20, right associativity). ...@@ -38,6 +43,7 @@ Reserved Notation "■ P" (at level 20, right associativity).
Reserved Notation "■? p P" (at level 20, p at level 9, P at level 20, Reserved Notation "■? p P" (at level 20, p at level 9, P at level 20,
right associativity, format "■? p P"). right associativity, format "■? p P").
(** Update modalities *)
Reserved Notation "|==> Q" (at level 99, Q at level 200, format "|==> Q"). Reserved Notation "|==> Q" (at level 99, Q at level 200, format "|==> Q").
Reserved Notation "P ==∗ Q" (at level 99, Q at level 200, format "P ==∗ Q"). Reserved Notation "P ==∗ Q" (at level 99, Q at level 200, format "P ==∗ Q").
...@@ -68,5 +74,39 @@ Reserved Notation "P ={ E }▷=∗ Q" ...@@ -68,5 +74,39 @@ Reserved Notation "P ={ E }▷=∗ Q"
(at level 99, E at level 50, Q at level 200, (at level 99, E at level 50, Q at level 200,
format "P ={ E }▷=∗ Q"). format "P ={ E }▷=∗ Q").
(** Big Ops *)
Reserved Notation "'[∗' 'list]' k ↦ x ∈ l , P"
(at level 200, l at level 10, k, x at level 1, right associativity,
format "[∗ list] k ↦ x ∈ l , P").
Reserved Notation "'[∗' 'list]' x ∈ l , P"
(at level 200, l at level 10, x at level 1, right associativity,
format "[∗ list] x ∈ l , P").
Reserved Notation "'[∗]' Ps" (at level 20).
Reserved Notation "'[∧' 'list]' k ↦ x ∈ l , P"
(at level 200, l at level 10, k, x at level 1, right associativity,
format "[∧ list] k ↦ x ∈ l , P").
Reserved Notation "'[∧' 'list]' x ∈ l , P"
(at level 200, l at level 10, x at level 1, right associativity,
format "[∧ list] x ∈ l , P").
Reserved Notation "'[∧]' Ps" (at level 20).
Reserved Notation "'[∗' 'map]' k ↦ x ∈ m , P"
(at level 200, m at level 10, k, x at level 1, right associativity,
format "[∗ map] k ↦ x ∈ m , P").
Reserved Notation "'[∗' 'map]' x ∈ m , P"
(at level 200, m at level 10, x at level 1, right associativity,
format "[∗ map] x ∈ m , P").
Reserved Notation "'[∗' 'set]' x ∈ X , P"
(at level 200, X at level 10, x at level 1, right associativity,
format "[∗ set] x ∈ X , P").
Reserved Notation "'[∗' 'mset]' x ∈ X , P"
(at level 200, X at level 10, x at level 1, right associativity,
format "[∗ mset] x ∈ X , P").
(** Define the scope *) (** Define the scope *)
Delimit Scope bi_scope with I. Delimit Scope bi_scope with I.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment