src/HOL/ex/LList.ML
changeset 3018 e65b60b28341
parent 2985 824e18a114c9
equal deleted inserted replaced
3017:84c2178db936 3018:e65b60b28341
   647 
   647 
   648 (*Surprisingly hard to prove.  Used with lfilter*)
   648 (*Surprisingly hard to prove.  Used with lfilter*)
   649 goalw thy [llistD_Fun_def, prod_fun_def]
   649 goalw thy [llistD_Fun_def, prod_fun_def]
   650     "!!A B. A<=B ==> llistD_Fun A <= llistD_Fun B";
   650     "!!A B. A<=B ==> llistD_Fun A <= llistD_Fun B";
   651 by (Auto_tac());
   651 by (Auto_tac());
   652 br image_eqI 1;
   652 by (rtac image_eqI 1);
   653 by (fast_tac (!claset addss (!simpset)) 1);
   653 by (fast_tac (!claset addss (!simpset)) 1);
   654 by (blast_tac (!claset addIs [impOfSubs LListD_Fun_mono]) 1);
   654 by (blast_tac (!claset addIs [impOfSubs LListD_Fun_mono]) 1);
   655 qed "llistD_Fun_mono";
   655 qed "llistD_Fun_mono";
   656 
   656 
   657 (** To show two llists are equal, exhibit a bisimulation! 
   657 (** To show two llists are equal, exhibit a bisimulation!