265 by (asm_full_simp_tac (simpset() addsimps Int_ac) 1); |
265 by (asm_full_simp_tac (simpset() addsimps Int_ac) 1); |
266 qed "PSP_stable"; |
266 qed "PSP_stable"; |
267 |
267 |
268 Goal "[| LeadsTo prg A A'; Stable prg B |] \ |
268 Goal "[| LeadsTo prg A A'; Stable prg B |] \ |
269 \ ==> LeadsTo prg (B Int A) (B Int A')"; |
269 \ ==> LeadsTo prg (B Int A) (B Int A')"; |
270 by (asm_simp_tac (simpset() addsimps (PSP_stable::Int_ac)) 1); |
270 by (asm_simp_tac (simpset() addsimps PSP_stable::Int_ac) 1); |
271 qed "PSP_stable2"; |
271 qed "PSP_stable2"; |
272 |
272 |
273 Goalw [LeadsTo_def, Constrains_def] |
273 Goalw [LeadsTo_def, Constrains_def] |
274 "[| LeadsTo prg A A'; Constrains prg B B'; id: Acts prg |] \ |
274 "[| LeadsTo prg A A'; Constrains prg B B'; id: Acts prg |] \ |
275 \ ==> LeadsTo prg (A Int B) ((A' Int B) Un (B' - B))"; |
275 \ ==> LeadsTo prg (A Int B) ((A' Int B) Un (B' - B))"; |
276 by (blast_tac (claset() addDs [psp] addIs [leadsTo_weaken]) 1); |
276 by (blast_tac (claset() addDs [psp] addIs [leadsTo_weaken]) 1); |
277 qed "PSP"; |
277 qed "PSP"; |
278 |
278 |
279 Goal "[| LeadsTo prg A A'; Constrains prg B B'; id: Acts prg |] \ |
279 Goal "[| LeadsTo prg A A'; Constrains prg B B'; id: Acts prg |] \ |
280 \ ==> LeadsTo prg (B Int A) ((B Int A') Un (B' - B))"; |
280 \ ==> LeadsTo prg (B Int A) ((B Int A') Un (B' - B))"; |
281 by (asm_simp_tac (simpset() addsimps (PSP::Int_ac)) 1); |
281 by (asm_simp_tac (simpset() addsimps PSP::Int_ac) 1); |
282 qed "PSP2"; |
282 qed "PSP2"; |
283 |
283 |
284 Goalw [Unless_def] |
284 Goalw [Unless_def] |
285 "[| LeadsTo prg A A'; Unless prg B B'; id: Acts prg |] \ |
285 "[| LeadsTo prg A A'; Unless prg B B'; id: Acts prg |] \ |
286 \ ==> LeadsTo prg (A Int B) ((A' Int B) Un B')"; |
286 \ ==> LeadsTo prg (A Int B) ((A' Int B) Un B')"; |