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()); |