src/HOL/UNITY/PPROD.ML
changeset 7361 477e1bdf230f
parent 7344 d54e871d77e0
child 7399 cf780c2bcccf
equal deleted inserted replaced
7360:7d3136b9af08 7361:477e1bdf230f
   261 
   261 
   262 
   262 
   263 (*** guarantees properties ***)
   263 (*** guarantees properties ***)
   264 
   264 
   265 Goalw [PLam_def]
   265 Goalw [PLam_def]
   266      "[| i : I;  lift_prog i (F i): X guar Y |] ==> (PLam I F) : X guar Y";
   266     "[| i : I;  lift_prog i (F i): X guarantees Y |]  \
       
   267 \    ==> (PLam I F) : X guarantees Y";
   267 by (asm_simp_tac (simpset() addsimps [guarantees_JN_I]) 1);
   268 by (asm_simp_tac (simpset() addsimps [guarantees_JN_I]) 1);
   268 qed "guarantees_PLam_I";
   269 qed "guarantees_PLam_I";
   269 
   270 
   270 Goalw [PLam_def]
   271 Goalw [PLam_def]
   271     "[| ALL i:I. F i : X guar Y |] \
   272     "[| ALL i:I. F i : X guarantees Y |] \
   272 \    ==> (PLam I F) : (INT i: I. lift_prog i `` X) \
   273 \    ==> (PLam I F) : (INT i: I. lift_prog i `` X) \
   273 \                 guar (INT i: I. lift_prog i `` Y)";
   274 \                 guarantees (INT i: I. lift_prog i `` Y)";
   274 by (blast_tac (claset() addIs [guarantees_JN_INT, lift_prog_guarantees]) 1);
   275 by (blast_tac (claset() addIs [guarantees_JN_INT, lift_prog_guarantees]) 1);
   275 bind_thm ("guarantees_PLam_INT", ballI RS result());
   276 bind_thm ("guarantees_PLam_INT", ballI RS result());
   276 
   277 
   277 Goalw [PLam_def]
   278 Goalw [PLam_def]
   278     "[| ALL i:I. F i : X guar Y |] \
   279     "[| ALL i:I. F i : X guarantees Y |] \
   279 \    ==> (PLam I F) : (UN i: I. lift_prog i `` X) \
   280 \    ==> (PLam I F) : (UN i: I. lift_prog i `` X) \
   280 \                 guar (UN i: I. lift_prog i `` Y)";
   281 \                 guarantees (UN i: I. lift_prog i `` Y)";
   281 by (blast_tac (claset() addIs [guarantees_JN_UN, lift_prog_guarantees]) 1);
   282 by (blast_tac (claset() addIs [guarantees_JN_UN, lift_prog_guarantees]) 1);
   282 bind_thm ("guarantees_PLam_UN", ballI RS result());
   283 bind_thm ("guarantees_PLam_UN", ballI RS result());