equal
deleted
inserted
replaced
26 by (etac contrapos_pp 1); |
26 by (etac contrapos_pp 1); |
27 by (safe_tac (claset() addSIs stream.con_rews)); |
27 by (safe_tac (claset() addSIs stream.con_rews)); |
28 qed "scons_eq_UU"; |
28 qed "scons_eq_UU"; |
29 |
29 |
30 Goal "[| a && x = UU; a ~= UU |] ==> R"; |
30 Goal "[| a && x = UU; a ~= UU |] ==> R"; |
31 by (dresolve_tac [stream_con_rew2] 1); |
31 by (dtac stream_con_rew2 1); |
32 by (contr_tac 1); |
32 by (contr_tac 1); |
33 qed "scons_not_empty"; |
33 qed "scons_not_empty"; |
34 |
34 |
35 Goal "(x ~= UU) = (EX a y. a ~= UU & x = a && y)"; |
35 Goal "(x ~= UU) = (EX a y. a ~= UU & x = a && y)"; |
36 by (cut_facts_tac [stream.exhaust] 1); |
36 by (cut_facts_tac [stream.exhaust] 1); |
532 |
532 |
533 Goal "stream_finite t ==> \ |
533 Goal "stream_finite t ==> \ |
534 \!s. #(s::'a::flat stream) = #t & s << t --> s = t"; |
534 \!s. #(s::'a::flat stream) = #t & s << t --> s = t"; |
535 by (etac stream_finite_ind 1); |
535 by (etac stream_finite_ind 1); |
536 by (fast_tac (claset() addDs [eq_UU_iff RS iffD2]) 1); |
536 by (fast_tac (claset() addDs [eq_UU_iff RS iffD2]) 1); |
537 by (Safe_tac); |
537 by Safe_tac; |
538 by (stream_case_tac "sa" 1); |
538 by (stream_case_tac "sa" 1); |
539 by (dtac sym 1); |
539 by (dtac sym 1); |
540 by (Asm_full_simp_tac 1); |
540 by (Asm_full_simp_tac 1); |
541 by (safe_tac (claset() addSDs [stream_flat_prefix])); |
541 by (safe_tac (claset() addSDs [stream_flat_prefix])); |
542 by (rtac cfun_arg_cong 1); |
542 by (rtac cfun_arg_cong 1); |