333 by (rtac (minimal RS monofun_cfun_arg) 1); |
333 by (rtac (minimal RS monofun_cfun_arg) 1); |
334 qed "iso_strict"; |
334 qed "iso_strict"; |
335 |
335 |
336 |
336 |
337 Goal "[|!x. rep`(ab`x)=x;!y. ab`(rep`y)=y; z~=UU|] ==> rep`z ~= UU"; |
337 Goal "[|!x. rep`(ab`x)=x;!y. ab`(rep`y)=y; z~=UU|] ==> rep`z ~= UU"; |
338 by (etac swap 1); |
338 by (etac contrapos_nn 1); |
339 by (dtac notnotD 1); |
|
340 by (dres_inst_tac [("f","ab")] cfun_arg_cong 1); |
339 by (dres_inst_tac [("f","ab")] cfun_arg_cong 1); |
341 by (etac box_equals 1); |
340 by (etac box_equals 1); |
342 by (fast_tac HOL_cs 1); |
341 by (fast_tac HOL_cs 1); |
343 by (etac (iso_strict RS conjunct1) 1); |
342 by (etac (iso_strict RS conjunct1) 1); |
344 by (atac 1); |
343 by (atac 1); |
345 qed "isorep_defined"; |
344 qed "isorep_defined"; |
346 |
345 |
347 Goal "[|!x. rep`(ab`x) = x;!y. ab`(rep`y)=y ; z~=UU|] ==> ab`z ~= UU"; |
346 Goal "[|!x. rep`(ab`x) = x;!y. ab`(rep`y)=y ; z~=UU|] ==> ab`z ~= UU"; |
348 by (etac swap 1); |
347 by (etac contrapos_nn 1); |
349 by (dtac notnotD 1); |
|
350 by (dres_inst_tac [("f","rep")] cfun_arg_cong 1); |
348 by (dres_inst_tac [("f","rep")] cfun_arg_cong 1); |
351 by (etac box_equals 1); |
349 by (etac box_equals 1); |
352 by (fast_tac HOL_cs 1); |
350 by (fast_tac HOL_cs 1); |
353 by (etac (iso_strict RS conjunct2) 1); |
351 by (etac (iso_strict RS conjunct2) 1); |
354 by (atac 1); |
352 by (atac 1); |