src/HOL/Integ/Equiv.ML
changeset 9365 0cced1b20d68
parent 9167 5b6b65c90eeb
child 9392 c8e6529cc082
equal deleted inserted replaced
9364:e783491b9a1f 9365:0cced1b20d68
   207 qed "UN_equiv_class_type2";
   207 qed "UN_equiv_class_type2";
   208 
   208 
   209 (*Allows a natural expression of binary operators, without explicit calls
   209 (*Allows a natural expression of binary operators, without explicit calls
   210   to "split"*)
   210   to "split"*)
   211 Goal "(UN (x1,x2):X. UN (y1,y2):Y. A x1 x2 y1 y2) = \
   211 Goal "(UN (x1,x2):X. UN (y1,y2):Y. A x1 x2 y1 y2) = \
   212 \     (UN x:X. UN y:Y. split(%x1 x2. split(%y1 y2. A x1 x2 y1 y2) y) x)";
   212 \     (UN x:X. UN y:Y. (%(x1, x2). (%(y1, y2). A x1 x2 y1 y2) y) x)";
   213 by Auto_tac;
   213 by Auto_tac;
   214 qed "UN_UN_split_split_eq";
   214 qed "UN_UN_split_split_eq";
   215 
   215 
   216 (*Suggested by John Harrison -- the two subproofs may be MUCH simpler
   216 (*Suggested by John Harrison -- the two subproofs may be MUCH simpler
   217   than the direct proof*)
   217   than the direct proof*)