equal
deleted
inserted
replaced
783 apply (frule wtpd_expr_binop) |
783 apply (frule wtpd_expr_binop) |
784 (* establish (s1::\<preceq> \<dots>) *) |
784 (* establish (s1::\<preceq> \<dots>) *) |
785 apply (frule_tac e=e1 in state_ok_eval) apply (simp (no_asm_simp)) apply simp apply (simp (no_asm_use) only: env_of_jmb_fst) |
785 apply (frule_tac e=e1 in state_ok_eval) apply (simp (no_asm_simp)) apply simp apply (simp (no_asm_use) only: env_of_jmb_fst) |
786 |
786 |
787 |
787 |
788 apply (simp (no_asm_use) only: compExpr_compExprs.simps) |
788 apply (simp (no_asm_use) only: compExpr.simps compExprs.simps) |
789 apply (rule_tac ?instrs0.0 = "compExpr (gmb G CL S) e1" in progression_transitive, simp) apply blast |
789 apply (rule_tac ?instrs0.0 = "compExpr (gmb G CL S) e1" in progression_transitive, simp) apply blast |
790 apply (rule_tac ?instrs0.0 = "compExpr (gmb G CL S) e2" in progression_transitive, simp) apply blast |
790 apply (rule_tac ?instrs0.0 = "compExpr (gmb G CL S) e2" in progression_transitive, simp) apply blast |
791 apply (case_tac bop) |
791 apply (case_tac bop) |
792 (*subcase bop = Eq *) apply simp apply (rule progression_Eq) |
792 (*subcase bop = Eq *) apply simp apply (rule progression_Eq) |
793 (*subcase bop = Add *) apply simp apply (rule progression_one_step) apply simp |
793 (*subcase bop = Add *) apply simp apply (rule progression_one_step) apply simp |
829 apply (intro allI impI) |
829 apply (intro allI impI) |
830 (* establish x1 = None \<and> a' \<noteq> Null *) |
830 (* establish x1 = None \<and> a' \<noteq> Null *) |
831 apply (simp (no_asm_use) only: gx_conv, frule np_NoneD) |
831 apply (simp (no_asm_use) only: gx_conv, frule np_NoneD) |
832 apply (frule wtpd_expr_facc) |
832 apply (frule wtpd_expr_facc) |
833 |
833 |
834 apply (simp (no_asm_use) only: compExpr_compExprs.simps) |
834 apply (simp (no_asm_use) only: compExpr.simps compExprs.simps) |
835 apply (rule_tac ?instrs0.0 = "(compExpr (gmb G CL S) e)" in progression_transitive, rule HOL.refl) |
835 apply (rule_tac ?instrs0.0 = "(compExpr (gmb G CL S) e)" in progression_transitive, rule HOL.refl) |
836 apply blast |
836 apply blast |
837 apply (rule progression_one_step) |
837 apply (rule progression_one_step) |
838 apply (simp add: gh_def) |
838 apply (simp add: gh_def) |
839 apply (case_tac "(the (fst s1 (the_Addr a')))") |
839 apply (case_tac "(the (fst s1 (the_Addr a')))") |
851 |
851 |
852 (* establish ((Norm s1)::\<preceq> \<dots>) *) |
852 (* establish ((Norm s1)::\<preceq> \<dots>) *) |
853 apply (frule_tac e=e1 in state_ok_eval) apply (simp (no_asm_simp) only: env_of_jmb_fst) |
853 apply (frule_tac e=e1 in state_ok_eval) apply (simp (no_asm_simp) only: env_of_jmb_fst) |
854 apply assumption apply (simp (no_asm_use) only: env_of_jmb_fst) |
854 apply assumption apply (simp (no_asm_use) only: env_of_jmb_fst) |
855 |
855 |
856 apply (simp only: compExpr_compExprs.simps) |
856 apply (simp only: compExpr.simps compExprs.simps) |
857 |
857 |
858 apply (rule_tac ?instrs0.0 = "(compExpr (gmb G CL S) e1)" in progression_transitive, rule HOL.refl) |
858 apply (rule_tac ?instrs0.0 = "(compExpr (gmb G CL S) e1)" in progression_transitive, rule HOL.refl) |
859 apply fast (* blast does not seem to work - why? *) |
859 apply fast (* blast does not seem to work - why? *) |
860 apply (rule_tac ?instrs0.0 = "(compExpr (gmb G CL S) e2)" in progression_transitive, rule HOL.refl) |
860 apply (rule_tac ?instrs0.0 = "(compExpr (gmb G CL S) e2)" in progression_transitive, rule HOL.refl) |
861 apply fast |
861 apply fast |
1098 apply (frule method_preserves_length, assumption, assumption) |
1098 apply (frule method_preserves_length, assumption, assumption) |
1099 (* establish length pvs = length ps *) |
1099 (* establish length pvs = length ps *) |
1100 apply (frule evals_preserves_length [THEN sym]) |
1100 apply (frule evals_preserves_length [THEN sym]) |
1101 |
1101 |
1102 (** start evaluating subexpressions **) |
1102 (** start evaluating subexpressions **) |
1103 apply (simp (no_asm_use) only: compExpr_compExprs.simps) |
1103 apply (simp (no_asm_use) only: compExpr.simps compExprs.simps) |
1104 |
1104 |
1105 (* evaluate e *) |
1105 (* evaluate e *) |
1106 apply (rule_tac ?instrs0.0 = "(compExpr (gmb G CL S) e)" in progression_transitive, rule HOL.refl) |
1106 apply (rule_tac ?instrs0.0 = "(compExpr (gmb G CL S) e)" in progression_transitive, rule HOL.refl) |
1107 apply fast |
1107 apply fast |
1108 |
1108 |