src/HOL/UNITY/Channel.ML
changeset 7403 c318acb88251
parent 6700 716d2d253a3c
child 7499 23e090051cb8
equal deleted inserted replaced
7402:e53d5f0c7c94 7403:c318acb88251
    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";