equal
deleted
inserted
replaced
18 by (Asm_simp_tac 1); |
18 by (Asm_simp_tac 1); |
19 qed_spec_mp "minSet_empty"; |
19 qed_spec_mp "minSet_empty"; |
20 Addsimps [minSet_empty]; |
20 Addsimps [minSet_empty]; |
21 |
21 |
22 Goalw [minSet_def] "x:A ==> minSet A = Some (LEAST x. x: A)"; |
22 Goalw [minSet_def] "x:A ==> minSet A = Some (LEAST x. x: A)"; |
23 by (ALLGOALS Asm_simp_tac); |
23 by Auto_tac; |
24 by (Blast_tac 1); |
|
25 qed_spec_mp "minSet_nonempty"; |
24 qed_spec_mp "minSet_nonempty"; |
26 |
25 |
27 Goal "F : (minSet -`` {Some x}) leadsTo (minSet -`` (Some``greaterThan x))"; |
26 Goal "F : (minSet -`` {Some x}) leadsTo (minSet -`` (Some``greaterThan x))"; |
28 by (rtac leadsTo_weaken 1); |
27 by (rtac leadsTo_weaken 1); |
29 by (res_inst_tac [("x1","x")] ([UC2, UC1] MRS psp) 1); |
28 by (res_inst_tac [("x1","x")] ([UC2, UC1] MRS psp) 1); |
51 |
50 |
52 Goal "!!y::nat. F : (UNIV-{{}}) leadsTo {s. y ~: s}"; |
51 Goal "!!y::nat. F : (UNIV-{{}}) leadsTo {s. y ~: s}"; |
53 by (rtac (lemma RS leadsTo_weaken_R) 1); |
52 by (rtac (lemma RS leadsTo_weaken_R) 1); |
54 by (Clarify_tac 1); |
53 by (Clarify_tac 1); |
55 by (forward_tac [minSet_nonempty] 1); |
54 by (forward_tac [minSet_nonempty] 1); |
56 by (asm_full_simp_tac (simpset() addsimps [Suc_le_eq]) 1); |
55 by (auto_tac (claset() addDs [Suc_le_lessD, not_less_Least], |
57 by (blast_tac (claset() addDs [Suc_le_lessD, not_less_Least]) 1); |
56 simpset())); |
58 qed "Channel_progress"; |
57 qed "Channel_progress"; |