1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 (* This file was automatically generated: do not edit *********************)
17 include "preamble.ma".
19 (* From Arith/Compare *****************************************************)
22 Notation not_eq_sym := sym_not_eq.
25 (* From Bool/Bool *********************************************************)
28 Infix "||" := orb (at level 50, left associativity) : bool_scope.
32 Infix "&&" := andb (at level 40, left associativity) : bool_scope.
35 (* From Init/Datatypes ****************************************************)
42 Notation "x + y" := (sum x y) : type_scope.
46 Add Printing Let prod.
50 Notation "x * y" := (prod x y) : type_scope.
54 Notation "( x , y , .. , z )" := (pair .. (pair x y) .. z) : core_scope.
57 (* From Init/Logic ********************************************************)
60 Notation "~ x" := (not x) : type_scope.
64 Notation "A <-> B" := (iff A B) : type_scope.
68 Notation "'IF' c1 'then' c2 'else' c3" := (IF_then_else c1 c2 c3)
69 (at level 200) : type_scope.
73 Notation "'exists' x , p" := (ex (fun x => p))
74 (at level 200, x ident) : type_scope.
78 Notation "'exists' x : t , p" := (ex (fun x:t => p))
79 (at level 200, x ident, format "'exists' '/ ' x : t , '/ ' p")
84 Notation "'exists2' x , p & q" := (ex2 (fun x => p) (fun x => q))
85 (at level 200, x ident, p at level 200) : type_scope.
89 Notation "'exists2' x : t , p & q" := (ex2 (fun x:t => p) (fun x:t => q))
90 (at level 200, x ident, t at level 200, p at level 200,
91 format "'exists2' '/ ' x : t , '/ ' '[' p & '/' q ']'")
96 Notation "x = y" := (x = y :>_) : type_scope.
100 Notation "x <> y :> T" := (~ x = y :>T) : type_scope.
104 Notation "x <> y" := (x <> y :>_) : type_scope.
107 (* From Init/Notations ****************************************************)
110 Reserved Notation "x <-> y" (at level 95, no associativity).
114 Reserved Notation "x /\ y" (at level 80, right associativity).
118 Reserved Notation "x \/ y" (at level 85, right associativity).
122 Reserved Notation "~ x" (at level 75, right associativity).
126 Reserved Notation "x = y :> T"
127 (at level 70, y at next level, no associativity).
131 Reserved Notation "x = y" (at level 70, no associativity).
135 Reserved Notation "x = y = z"
136 (at level 70, no associativity, y at next level).
140 Reserved Notation "x <> y :> T"
141 (at level 70, y at next level, no associativity).
145 Reserved Notation "x <> y" (at level 70, no associativity).
149 Reserved Notation "x <= y" (at level 70, no associativity).
153 Reserved Notation "x < y" (at level 70, no associativity).
157 Reserved Notation "x >= y" (at level 70, no associativity).
161 Reserved Notation "x > y" (at level 70, no associativity).
165 Reserved Notation "x <= y <= z" (at level 70, y at next level).
169 Reserved Notation "x <= y < z" (at level 70, y at next level).
173 Reserved Notation "x < y < z" (at level 70, y at next level).
177 Reserved Notation "x < y <= z" (at level 70, y at next level).
181 Reserved Notation "x + y" (at level 50, left associativity).
185 Reserved Notation "x - y" (at level 50, left associativity).
189 Reserved Notation "x * y" (at level 40, left associativity).
193 Reserved Notation "x / y" (at level 40, left associativity).
197 Reserved Notation "- x" (at level 35, right associativity).
201 Reserved Notation "/ x" (at level 35, right associativity).
205 Reserved Notation "x ^ y" (at level 30, right associativity).
209 Reserved Notation "( x , y , .. , z )" (at level 0).
213 Reserved Notation "{ x }" (at level 0, x at level 99).
217 Reserved Notation "{ A } + { B }" (at level 50, left associativity).
221 Reserved Notation "A + { B }" (at level 50, left associativity).
225 Reserved Notation "{ x : A | P }" (at level 0, x at level 99).
229 Reserved Notation "{ x : A | P & Q }" (at level 0, x at level 99).
233 Reserved Notation "{ x : A & P }" (at level 0, x at level 99).
237 Reserved Notation "{ x : A & P & Q }" (at level 0, x at level 99).
240 (* From Init/Peano ********************************************************)
243 Infix "+" := plus : nat_scope.
247 Infix "*" := mult : nat_scope.
251 Infix "-" := minus : nat_scope.
255 Infix "<=" := le : nat_scope.
259 Infix "<" := lt : nat_scope.
263 Infix ">=" := ge : nat_scope.
267 Infix ">" := gt : nat_scope.
271 Notation "x <= y <= z" := (x <= y /\ y <= z) : nat_scope.
275 Notation "x <= y < z" := (x <= y /\ y < z) : nat_scope.
279 Notation "x < y < z" := (x < y /\ y < z) : nat_scope.
283 Notation "x < y <= z" := (x < y /\ y <= z) : nat_scope.
286 (* From Init/Specif *******************************************************)
289 Notation "{ x : A | P }" := (sig (fun x:A => P)) : type_scope.
293 Notation "{ x : A | P & Q }" := (sig2 (fun x:A => P) (fun x:A => Q)) :
298 Notation "{ x : A & P }" := (sigS (fun x:A => P)) : type_scope.
302 Notation "{ x : A & P & Q }" := (sigS2 (fun x:A => P) (fun x:A => Q)) :
307 Add Printing Let sig.
311 Add Printing Let sig2.
315 Add Printing Let sigS.
319 Add Printing Let sigS2.
323 Add Printing If sumbool.
327 Add Printing If sumor.
330 (* From Lists/List ********************************************************)
333 Infix "::" := cons (at level 60, right associativity) : list_scope.
337 Infix "++" := app (right associativity, at level 60) : list_scope.
341 Infix "::" := cons (at level 60, right associativity) : list_scope.
345 Infix "++" := app (right associativity, at level 60) : list_scope.
348 (* From NArith/BinNat *****************************************************)
351 Infix "+" := Nplus : N_scope.
355 Infix "*" := Nmult : N_scope.
359 Infix "?=" := Ncompare (at level 70, no associativity) : N_scope.
362 (* From NArith/BinPos *****************************************************)
365 Infix "+" := Pplus : positive_scope.
369 Infix "-" := Pminus : positive_scope.
373 Infix "*" := Pmult : positive_scope.
377 Infix "/" := Pdiv2 : positive_scope.
381 Infix "?=" := Pcompare (at level 70, no associativity) : positive_scope.
384 (* From Reals/RIneq *******************************************************)
387 Add Field R Rplus Rmult 1 0 Ropp (fun x y:R => false) Rinv RTheory Rinv_l
388 with minus := Rminus div := Rdiv.
391 (* From Reals/Ranalysis1 **************************************************)
394 Infix "+" := plus_fct : Rfun_scope.
398 Notation "- x" := (opp_fct x) : Rfun_scope.
402 Infix "*" := mult_fct : Rfun_scope.
406 Infix "-" := minus_fct : Rfun_scope.
410 Infix "/" := div_fct : Rfun_scope.
414 Notation Local "f1 'o' f2" := (comp f1 f2)
415 (at level 20, right associativity) : Rfun_scope.
419 Notation "/ x" := (inv_fct x) : Rfun_scope.
422 (* From Reals/Rdefinitions ************************************************)
425 Infix "+" := Rplus : R_scope.
429 Infix "*" := Rmult : R_scope.
433 Notation "- x" := (Ropp x) : R_scope.
437 Notation "/ x" := (Rinv x) : R_scope.
441 Infix "<" := Rlt : R_scope.
445 Infix "-" := Rminus : R_scope.
449 Infix "/" := Rdiv : R_scope.
453 Infix "<=" := Rle : R_scope.
457 Infix ">=" := Rge : R_scope.
461 Infix ">" := Rgt : R_scope.
465 Notation "x <= y <= z" := ((x <= y)%R /\ (y <= z)%R) : R_scope.
469 Notation "x <= y < z" := ((x <= y)%R /\ (y < z)%R) : R_scope.
473 Notation "x < y < z" := ((x < y)%R /\ (y < z)%R) : R_scope.
477 Notation "x < y <= z" := ((x < y)%R /\ (y <= z)%R) : R_scope.
480 (* From Reals/Rfunctions **************************************************)
483 Infix "^" := pow : R_scope.
487 Infix Local "^Z" := powerRZ (at level 30, right associativity) : R_scope.
490 (* From Reals/Rpower ******************************************************)
493 Infix Local "^R" := Rpower (at level 30, right associativity) : R_scope.
496 (* From Reals/Rtopology ***************************************************)
499 Infix "=_D" := eq_Dom (at level 70, no associativity).
502 (* From Setoids/Setoid ****************************************************)
505 Add Setoid Prop iff Prop_S.
508 (* From Wellfounded/Disjoint_Union ****************************************)
511 Notation Le_AsB := (le_AsB A B leA leB).
514 (* From Wellfounded/Lexicographic_Exponentiation **************************)
517 Notation Power := (Pow A leA).
521 Notation Lex_Exp := (lex_exp A leA).
525 Notation ltl := (Ltl A leA).
529 Notation Descl := (Desc A leA).
533 Notation List := (list A).
537 Notation Nil := (nil (A:=A)).
541 Notation Cons := (cons (A:=A)).
545 Notation "<< x , y >>" := (exist Descl x y) (at level 0, x, y at level 100).
548 (* From Wellfounded/Lexicographic_Product *********************************)
551 Notation LexProd := (lexprod A B leA leB).
555 Notation Symprod := (symprod A B leA leB).
559 Notation SwapProd := (swapprod A R).
562 (* From Wellfounded/Transitive_Closure ************************************)
565 Notation trans_clos := (clos_trans A R).
568 (* From Wellfounded/Union *************************************************)
571 Notation Union := (union A R1 R2).
574 (* From ZArith/BinInt *****************************************************)
577 Infix "+" := Zplus : Z_scope.
581 Notation "- x" := (Zopp x) : Z_scope.
585 Infix "-" := Zminus : Z_scope.
589 Infix "*" := Zmult : Z_scope.
593 Infix "?=" := Zcompare (at level 70, no associativity) : Z_scope.
597 Infix "<=" := Zle : Z_scope.
601 Infix "<" := Zlt : Z_scope.
605 Infix ">=" := Zge : Z_scope.
609 Infix ">" := Zgt : Z_scope.
613 Notation "x <= y <= z" := (x <= y /\ y <= z) : Z_scope.
617 Notation "x <= y < z" := (x <= y /\ y < z) : Z_scope.
621 Notation "x < y < z" := (x < y /\ y < z) : Z_scope.
625 Notation "x < y <= z" := (x < y /\ y <= z) : Z_scope.
628 (* From ZArith/Zdiv *******************************************************)
631 Infix "/" := Zdiv : Z_scope.
635 Infix "mod" := Zmod (at level 40, no associativity) : Z_scope.
638 (* From ZArith/Znumtheory *************************************************)
641 Notation "( a | b )" := (Zdivide a b) (at level 0) : Z_scope.
644 (* From ZArith/Zpower *****************************************************)
647 Infix "^" := Zpower : Z_scope.
651 Infix "^" := Zpower : Z_scope.