src/HOL/Set.thy
changeset 5492 d9fc3457554e
parent 5254 a275d0a3dc08
child 5780 0187f936685a
equal deleted inserted replaced
5491:22f8331cdf47 5492:d9fc3457554e
    26 consts
    26 consts
    27   "{}"          :: 'a set                           ("{}")
    27   "{}"          :: 'a set                           ("{}")
    28   UNIV          :: 'a set
    28   UNIV          :: 'a set
    29   insert        :: ['a, 'a set] => 'a set
    29   insert        :: ['a, 'a set] => 'a set
    30   Collect       :: ('a => bool) => 'a set               (*comprehension*)
    30   Collect       :: ('a => bool) => 'a set               (*comprehension*)
    31   Compl         :: ('a set) => 'a set                   (*complement*)
       
    32   Int           :: ['a set, 'a set] => 'a set       (infixl 70)
    31   Int           :: ['a set, 'a set] => 'a set       (infixl 70)
    33   Un            :: ['a set, 'a set] => 'a set       (infixl 65)
    32   Un            :: ['a set, 'a set] => 'a set       (infixl 65)
    34   UNION, INTER  :: ['a set, 'a => 'b set] => 'b set     (*general*)
    33   UNION, INTER  :: ['a set, 'a => 'b set] => 'b set     (*general*)
    35   Union, Inter  :: (('a set) set) => 'a set             (*of a set*)
    34   Union, Inter  :: (('a set) set) => 'a set             (*of a set*)
    36   Pow           :: 'a set => 'a set set                 (*powerset*)
    35   Pow           :: 'a set => 'a set set                 (*powerset*)
    39   "``"          :: ['a => 'b, 'a set] => ('b set)   (infixr 90)
    38   "``"          :: ['a => 'b, 'a set] => ('b set)   (infixr 90)
    40   (*membership*)
    39   (*membership*)
    41   "op :"        :: ['a, 'a set] => bool             ("(_/ : _)" [50, 51] 50)
    40   "op :"        :: ['a, 'a set] => bool             ("(_/ : _)" [50, 51] 50)
    42 
    41 
    43 
    42 
       
    43 (*For compatibility: DELETE after one release*)
       
    44 syntax Compl :: ('a set) => 'a set   (*complement*)
       
    45 translations "Compl A"  => "- A"
    44 
    46 
    45 (** Additional concrete syntax **)
    47 (** Additional concrete syntax **)
    46 
    48 
    47 syntax
    49 syntax
       
    50 
    48 
    51 
    49   (* Infix syntax for non-membership *)
    52   (* Infix syntax for non-membership *)
    50 
    53 
    51   "op ~:"       :: ['a, 'a set] => bool               ("op ~:")
    54   "op ~:"       :: ['a, 'a set] => bool               ("op ~:")
    52   "op ~:"       :: ['a, 'a set] => bool               ("(_/ ~: _)" [50, 51] 50)
    55   "op ~:"       :: ['a, 'a set] => bool               ("(_/ ~: _)" [50, 51] 50)
   142 
   145 
   143   Ball_def      "Ball A P       == ! x. x:A --> P(x)"
   146   Ball_def      "Ball A P       == ! x. x:A --> P(x)"
   144   Bex_def       "Bex A P        == ? x. x:A & P(x)"
   147   Bex_def       "Bex A P        == ? x. x:A & P(x)"
   145   subset_def    "A <= B         == ! x:A. x:B"
   148   subset_def    "A <= B         == ! x:A. x:B"
   146   psubset_def   "A < B          == (A::'a set) <= B & ~ A=B"
   149   psubset_def   "A < B          == (A::'a set) <= B & ~ A=B"
   147   Compl_def     "Compl A        == {x. ~x:A}"
   150   Compl_def     "- A            == {x. ~x:A}"
   148   Un_def        "A Un B         == {x. x:A | x:B}"
   151   Un_def        "A Un B         == {x. x:A | x:B}"
   149   Int_def       "A Int B        == {x. x:A & x:B}"
   152   Int_def       "A Int B        == {x. x:A & x:B}"
   150   set_diff_def  "A - B          == {x. x:A & ~x:B}"
   153   set_diff_def  "A - B          == {x. x:A & ~x:B}"
   151   INTER_def     "INTER A B      == {y. ! x:A. y: B(x)}"
   154   INTER_def     "INTER A B      == {y. ! x:A. y: B(x)}"
   152   UNION_def     "UNION A B      == {y. ? x:A. y: B(x)}"
   155   UNION_def     "UNION A B      == {y. ? x:A. y: B(x)}"