equal
deleted
inserted
replaced
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! |