src/HOL/UNITY/Extend.ML
changeset 7947 b999c1ab9327
parent 7915 c7fd7eb3b0ef
child 8041 e3237d8c18d6
equal deleted inserted replaced
7946:95e1de322e82 7947:b999c1ab9327
   120 Goalw [extend_set_def, project_set_def]
   120 Goalw [extend_set_def, project_set_def]
   121      "project_set h (extend_set h C) = C";
   121      "project_set h (extend_set h C) = C";
   122 by Auto_tac;
   122 by Auto_tac;
   123 qed "extend_set_inverse";
   123 qed "extend_set_inverse";
   124 Addsimps [extend_set_inverse];
   124 Addsimps [extend_set_inverse];
       
   125 
       
   126 Goalw [extend_set_def, project_set_def]
       
   127      "C <= extend_set h (project_set h C)";
       
   128 by (auto_tac (claset(), 
       
   129 	      simpset() addsimps [split_extended_all]));
       
   130 by (Blast_tac 1);
       
   131 qed "extend_set_project_set";
   125 
   132 
   126 Goal "inj (extend_set h)";
   133 Goal "inj (extend_set h)";
   127 by (rtac inj_on_inverseI 1);
   134 by (rtac inj_on_inverseI 1);
   128 by (rtac extend_set_inverse 1);
   135 by (rtac extend_set_inverse 1);
   129 qed "inj_extend_set";
   136 qed "inj_extend_set";
   451 (*A trick to strip both quantifiers*)
   458 (*A trick to strip both quantifiers*)
   452 by (res_inst_tac [("f", "All")] (ext RS arg_cong) 1);
   459 by (res_inst_tac [("f", "All")] (ext RS arg_cong) 1);
   453 by (stac Collect_eq_extend_set 1);
   460 by (stac Collect_eq_extend_set 1);
   454 by (simp_tac (simpset() addsimps [Diff_extend_stable]) 1);
   461 by (simp_tac (simpset() addsimps [Diff_extend_stable]) 1);
   455 qed "extend_localTo_extend_eq";
   462 qed "extend_localTo_extend_eq";
       
   463 
       
   464 Goal "[| F : v localTo[C] H;  C' <= extend_set h C |] \
       
   465 \     ==> extend h F : (v o f) localTo[C'] extend h H";
       
   466 by (blast_tac (claset() addDs [extend_localTo_extend_eq RS iffD2,
       
   467 			       impOfSubs localTo_anti_mono]) 1);
       
   468 qed "extend_localTo_extend_I";
   456 
   469 
   457 (*USED?? opposite inclusion fails*)
   470 (*USED?? opposite inclusion fails*)
   458 Goal "Restrict C (extend_act h act) <= \
   471 Goal "Restrict C (extend_act h act) <= \
   459 \     extend_act h (Restrict (project_set h C) act)";
   472 \     extend_act h (Restrict (project_set h C) act)";
   460 by (auto_tac (claset(), 
   473 by (auto_tac (claset(),