1
(* Check that "where" clause behaves as if given independently of the *)
2
(* definition (variant of bug #1132 submitted by Assia Mahboubi) *)
4
Fixpoint plus1 (n m:nat) {struct n} : nat :=
9
where "n + m" := (plus1 n m) : nat_scope.
11
(* Check behaviour wrt yet empty levels (see Stephane's bug #1850) *)
13
Parameter P : Type -> Type -> Type -> Type.
14
Notation "e |= t --> v" := (P e t v) (at level 100, t at level 54).
15
Check (nat |= nat --> nat).
17
(* Check that first non empty definition at an empty level can be of any
20
Definition marker := O.
21
Notation "x +1" := (S x) (at level 8, left associativity).
23
Notation "x +1" := (S x) (at level 8, right associativity).
25
(* Check that empty levels (here 8 and 2 in pattern) are added in the
28
Notation "' 'C_' G ( A )" := (A,G) (at level 8, G at level 2).
30
(* Check import of notations from within a section *)
32
Notation "+1 x" := (S x) (at level 25, x at level 9).
33
Section A. Global Notation "'Z'" := O (at level 9). End A.