src/HOL/Univ.thy
changeset 5978 fa2c2dd74f8c
parent 5191 8ceaa19f7717
child 7014 11ee650edcd2
equal deleted inserted replaced
5977:9f0c8869cf71 5978:fa2c2dd74f8c
    40   "<+>"  :: ['a item set, 'a item set]=> 'a item set (infixr 70)
    40   "<+>"  :: ['a item set, 'a item set]=> 'a item set (infixr 70)
    41 
    41 
    42   Split  :: [['a item, 'a item]=>'b, 'a item] => 'b
    42   Split  :: [['a item, 'a item]=>'b, 'a item] => 'b
    43   Case   :: [['a item]=>'b, ['a item]=>'b, 'a item] => 'b
    43   Case   :: [['a item]=>'b, ['a item]=>'b, 'a item] => 'b
    44 
    44 
    45   diag   :: "'a set => ('a * 'a)set"
       
    46   "<**>" :: "[('a item * 'a item)set, ('a item * 'a item)set] 
    45   "<**>" :: "[('a item * 'a item)set, ('a item * 'a item)set] 
    47            => ('a item * 'a item)set" (infixr 80)
    46            => ('a item * 'a item)set" (infixr 80)
    48   "<++>" :: "[('a item * 'a item)set, ('a item * 'a item)set] 
    47   "<++>" :: "[('a item * 'a item)set, ('a item * 'a item)set] 
    49            => ('a item * 'a item)set" (infixr 70)
    48            => ('a item * 'a item)set" (infixr 70)
    50 
    49 
    86 
    85 
    87   Case_def   "Case c d M == @u.  (? x . M = In0(x) & u = c(x)) 
    86   Case_def   "Case c d M == @u.  (? x . M = In0(x) & u = c(x)) 
    88                               | (? y . M = In1(y) & u = d(y))"
    87                               | (? y . M = In1(y) & u = d(y))"
    89 
    88 
    90 
    89 
    91   (** diagonal sets and equality for the "universe" **)
    90   (** equality for the "universe" **)
    92 
       
    93   diag_def   "diag(A) == UN x:A. {(x,x)}"
       
    94 
    91 
    95   dprod_def  "r<**>s == UN (x,x'):r. UN (y,y'):s. {(Scons x y, Scons x' y')}"
    92   dprod_def  "r<**>s == UN (x,x'):r. UN (y,y'):s. {(Scons x y, Scons x' y')}"
    96 
    93 
    97   dsum_def   "r<++>s == (UN (x,x'):r. {(In0(x),In0(x'))}) Un 
    94   dsum_def   "r<++>s == (UN (x,x'):r. {(In0(x),In0(x'))}) Un 
    98                        (UN (y,y'):s. {(In1(y),In1(y'))})"
    95                         (UN (y,y'):s. {(In1(y),In1(y'))})"
    99 
    96 
   100 end
    97 end