[STATEMENT]
lemma induction_full_RefRel_HighBranch:
  notes neq0_conv[simp del] neq0_conv[symmetric, simp add]
  shows
  "\<lbrakk>(\<langle>c\<^sub>1\<^sub>A, sifum_refinement.mds\<^sub>A_of var\<^sub>C_of mds\<^sub>C, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>1\<^sub>C\<rangle>\<^sub>A,
         \<langle>c\<^sub>1\<^sub>C, mds\<^sub>C, mem\<^sub>1\<^sub>C\<rangle>\<^sub>C)
        \<in> RefRel_HighBranch;
        (\<langle>c\<^sub>1\<^sub>C, mds\<^sub>C, mem\<^sub>1\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> sifum_lang_no_dma.eval\<^sub>w ev\<^sub>A ev\<^sub>B\<rbrakk>
       \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'.
              A.neval
               \<langle>c\<^sub>1\<^sub>A, sifum_refinement.mds\<^sub>A_of var\<^sub>C_of mds\<^sub>C, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>1\<^sub>C\<rangle>\<^sub>A n
               \<langle>c\<^sub>1\<^sub>A', sifum_refinement.mds\<^sub>A_of var\<^sub>C_of
                         mds\<^sub>C', sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and>
              (\<langle>c\<^sub>1\<^sub>A', sifum_refinement.mds\<^sub>A_of var\<^sub>C_of mds\<^sub>C', sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A,
               \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C)
              \<in> RefRel_HighBranch \<and>
              (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'.
                  (\<langle>c\<^sub>1\<^sub>A, sifum_refinement.mds\<^sub>A_of var\<^sub>C_of
                            mds\<^sub>C, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>1\<^sub>C\<rangle>\<^sub>A,
                   \<langle>c\<^sub>2\<^sub>A, sifum_refinement.mds\<^sub>A_of var\<^sub>C_of
                            mds\<^sub>C, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A)
                  \<in> A.R \<and>
                  (\<langle>c\<^sub>2\<^sub>A, sifum_refinement.mds\<^sub>A_of var\<^sub>C_of
                            mds\<^sub>C, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A,
                   \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C)
                  \<in> RefRel_HighBranch \<and>
                  (\<langle>c\<^sub>1\<^sub>C, mds\<^sub>C, mem\<^sub>1\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and>
                  A.neval
                   \<langle>c\<^sub>2\<^sub>A, sifum_refinement.mds\<^sub>A_of var\<^sub>C_of mds\<^sub>C, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A
                   n \<langle>c\<^sub>2\<^sub>A', sifum_refinement.mds\<^sub>A_of var\<^sub>C_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow>
                  (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'.
                      (\<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C)
                      \<in> sifum_lang_no_dma.eval\<^sub>w ev\<^sub>A ev\<^sub>B \<and>
                      (\<langle>c\<^sub>2\<^sub>A', sifum_refinement.mds\<^sub>A_of var\<^sub>C_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A,
                       \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C)
                      \<in> RefRel_HighBranch \<and>
                      (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>(\<langle>c\<^sub>1\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>1\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C, mds\<^sub>C, mem\<^sub>1\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; eval_abv\<^sub>C \<langle>c\<^sub>1\<^sub>C, mds\<^sub>C, mem\<^sub>1\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>1\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>1\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>1\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>1\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C, mds\<^sub>C, mem\<^sub>1\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
[PROOF STEP]
proof(induct rule: RefRel_HighBranch.induct)
[PROOF STATE]
proof (state)
goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
case (acq_mode_rel c\<^sub>A x m tail\<^sub>A c\<^sub>C tail\<^sub>C mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C)
[PROOF STATE]
proof (state)
this:
c\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite
\<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C''' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C''' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))))
eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
let ?mds\<^sub>A' = "mds\<^sub>A_of mds\<^sub>C'"
[PROOF STATE]
proof (state)
goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
let ?mem\<^sub>1\<^sub>A' = "mem\<^sub>A_of mem\<^sub>1\<^sub>C'"
[PROOF STATE]
proof (state)
goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
let ?c\<^sub>1\<^sub>A' = "Stop ;; tail\<^sub>A"
[PROOF STATE]
proof (state)
goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
from acq_mode_rel(1,2)
[PROOF STATE]
proof (chain)
picking this:
c\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C
[PROOF STEP]
have abs_steps_acq: "(abs_steps' c\<^sub>A c\<^sub>C) = 1"
[PROOF STATE]
proof (prove)
using this:
c\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C

goal (1 subgoal):
 1. abs_steps' c\<^sub>A c\<^sub>C = 1
[PROOF STEP]
by (simp add:abs_steps'_def)
[PROOF STATE]
proof (state)
this:
abs_steps' c\<^sub>A c\<^sub>C = 1

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
abs_steps' c\<^sub>A c\<^sub>C = 1

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
from acq_mode_rel.prems acq_mode_rel(2)
[PROOF STATE]
proof (chain)
picking this:
eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C
c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C
[PROOF STEP]
have c\<^sub>1\<^sub>C'_def: "c\<^sub>1\<^sub>C' = (Stop ;; tail\<^sub>C)" and
    mds\<^sub>C'_def: "mds\<^sub>C' = mds\<^sub>C(m := insert (var\<^sub>C_of x) (mds\<^sub>C m))" and
    mem\<^sub>1\<^sub>C'_def: "mem\<^sub>1\<^sub>C' = mem\<^sub>C"
[PROOF STATE]
proof (prove)
using this:
eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C
c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C

goal (1 subgoal):
 1. c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C &&& mds\<^sub>C' = mds\<^sub>C(m := insert (var\<^sub>C_of x) (mds\<^sub>C m)) &&& mem\<^sub>1\<^sub>C' = mem\<^sub>C
[PROOF STEP]
by (metis (mono_tags) C.seq_decl_elim C.update_modes.simps(1))+
[PROOF STATE]
proof (state)
this:
c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C
mds\<^sub>C' = mds\<^sub>C(m := insert (var\<^sub>C_of x) (mds\<^sub>C m))
mem\<^sub>1\<^sub>C' = mem\<^sub>C

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C
mds\<^sub>C' = mds\<^sub>C(m := insert (var\<^sub>C_of x) (mds\<^sub>C m))
mem\<^sub>1\<^sub>C' = mem\<^sub>C

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
from mds\<^sub>C'_def
[PROOF STATE]
proof (chain)
picking this:
mds\<^sub>C' = mds\<^sub>C(m := insert (var\<^sub>C_of x) (mds\<^sub>C m))
[PROOF STEP]
have mds\<^sub>A'_def: "?mds\<^sub>A' = A.update_modes (x +=\<^sub>m m) (mds\<^sub>A_of mds\<^sub>C)"
[PROOF STATE]
proof (prove)
using this:
mds\<^sub>C' = mds\<^sub>C(m := insert (var\<^sub>C_of x) (mds\<^sub>C m))

goal (1 subgoal):
 1. mds\<^sub>A_of mds\<^sub>C' = A.update_modes (x +=\<^sub>m m) (mds\<^sub>A_of mds\<^sub>C)
[PROOF STEP]
unfolding A.update_modes.simps
[PROOF STATE]
proof (prove)
using this:
mds\<^sub>C' = mds\<^sub>C(m := insert (var\<^sub>C_of x) (mds\<^sub>C m))

goal (1 subgoal):
 1. mds\<^sub>A_of mds\<^sub>C' = (mds\<^sub>A_of mds\<^sub>C)(m := insert x (mds\<^sub>A_of mds\<^sub>C m))
[PROOF STEP]
by(blast intro: mode_acquire_refinement_helper)
[PROOF STATE]
proof (state)
this:
mds\<^sub>A_of mds\<^sub>C' = A.update_modes (x +=\<^sub>m m) (mds\<^sub>A_of mds\<^sub>C)

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
mds\<^sub>A_of mds\<^sub>C' = A.update_modes (x +=\<^sub>m m) (mds\<^sub>A_of mds\<^sub>C)

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
with mem\<^sub>1\<^sub>C'_def acq_mode_rel A.eval\<^sub>w.seq A.decl_eval\<^sub>w
[PROOF STATE]
proof (chain)
picking this:
mem\<^sub>1\<^sub>C' = mem\<^sub>C
c\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite
\<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C''' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C''' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))))
eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C
eval_abv\<^sub>A \<langle>?c\<^sub>1, ?mds, ?mem\<rangle>\<^sub>A \<langle>?c\<^sub>1', ?mds', ?mem'\<rangle>\<^sub>A \<Longrightarrow> eval_abv\<^sub>A \<langle>?c\<^sub>1 ;; ?c\<^sub>2, ?mds, ?mem\<rangle>\<^sub>A \<langle>?c\<^sub>1' ;; ?c\<^sub>2, ?mds', ?mem'\<rangle>\<^sub>A
eval_abv\<^sub>A \<langle>Skip@[?mu], ?mds, ?mem\<rangle>\<^sub>A \<langle>Stop, A.update_modes ?mu ?mds, ?mem\<rangle>\<^sub>A
mds\<^sub>A_of mds\<^sub>C' = A.update_modes (x +=\<^sub>m m) (mds\<^sub>A_of mds\<^sub>C)
[PROOF STEP]
have eval\<^sub>A: "(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>?c\<^sub>1\<^sub>A', ?mds\<^sub>A', ?mem\<^sub>1\<^sub>A'\<rangle>\<^sub>A) \<in> A.eval\<^sub>w"
[PROOF STATE]
proof (prove)
using this:
mem\<^sub>1\<^sub>C' = mem\<^sub>C
c\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite
\<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C''' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C''' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))))
eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C
eval_abv\<^sub>A \<langle>?c\<^sub>1, ?mds, ?mem\<rangle>\<^sub>A \<langle>?c\<^sub>1', ?mds', ?mem'\<rangle>\<^sub>A \<Longrightarrow> eval_abv\<^sub>A \<langle>?c\<^sub>1 ;; ?c\<^sub>2, ?mds, ?mem\<rangle>\<^sub>A \<langle>?c\<^sub>1' ;; ?c\<^sub>2, ?mds', ?mem'\<rangle>\<^sub>A
eval_abv\<^sub>A \<langle>Skip@[?mu], ?mds, ?mem\<rangle>\<^sub>A \<langle>Stop, A.update_modes ?mu ?mds, ?mem\<rangle>\<^sub>A
mds\<^sub>A_of mds\<^sub>C' = A.update_modes (x +=\<^sub>m m) (mds\<^sub>A_of mds\<^sub>C)

goal (1 subgoal):
 1. eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A
[PROOF STEP]
by presburger
[PROOF STATE]
proof (state)
this:
eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
hence neval\<^sub>A: "A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>?c\<^sub>1\<^sub>A', ?mds\<^sub>A', ?mem\<^sub>1\<^sub>A'\<rangle>\<^sub>A"
[PROOF STATE]
proof (prove)
using this:
eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A

goal (1 subgoal):
 1. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A
[PROOF STEP]
by clarsimp
[PROOF STATE]
proof (state)
this:
A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
from acq_mode_rel(5)
[PROOF STATE]
proof (chain)
picking this:
\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite
[PROOF STEP]
have mds\<^sub>C'_concrete_vars_unwritable:
    "(\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C' AsmNoReadOrWrite)"
[PROOF STATE]
proof (prove)
using this:
\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite

goal (1 subgoal):
 1. \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C' AsmNoReadOrWrite
[PROOF STEP]
by(auto simp: mds\<^sub>C'_def)
[PROOF STATE]
proof (state)
this:
\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C' AsmNoReadOrWrite

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C' AsmNoReadOrWrite

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
with acq_mode_rel(6)[simplified] acq_mode_rel.hyps(4) neval\<^sub>A c\<^sub>1\<^sub>C'_def
[PROOF STATE]
proof (chain)
picking this:
\<forall>mem\<^sub>A'' mds\<^sub>C''' mem\<^sub>C'. (\<exists>mem\<^sub>C''. mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))))
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A
c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C
\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C' AsmNoReadOrWrite
[PROOF STEP]
have in_Rel': "(\<langle>?c\<^sub>1\<^sub>A', ?mds\<^sub>A', ?mem\<^sub>1\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch"
[PROOF STATE]
proof (prove)
using this:
\<forall>mem\<^sub>A'' mds\<^sub>C''' mem\<^sub>C'. (\<exists>mem\<^sub>C''. mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))))
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A
c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C
\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C' AsmNoReadOrWrite

goal (1 subgoal):
 1. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
by (metis A.neval_Suc_simp One_nat_def acq_mode_rel.prems)
[PROOF STATE]
proof (state)
this:
(\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
have "(\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'.
           (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and>
           (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C)
           \<in> RefRel_HighBranch \<and>
           (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and>
           A.neval
            \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A 1
            \<langle>c\<^sub>2\<^sub>A', sifum_refinement.mds\<^sub>A_of var\<^sub>C_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow>
           (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'.
               (\<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> sifum_lang_no_dma.eval\<^sub>w ev\<^sub>A ev\<^sub>B \<and>
               (\<langle>c\<^sub>2\<^sub>A', sifum_refinement.mds\<^sub>A_of var\<^sub>C_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C)
               \<in> RefRel_HighBranch \<and>
               (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A 1 \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)
[PROOF STEP]
proof(clarsimp)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
fix c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
assume in_R: "(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R" and
        in_RefRel: "(\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C)
           \<in> RefRel_HighBranch" and
        in_rel_inv\<^sub>C: "(\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C" and
        eval\<^sub>2\<^sub>A: "(\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A,
         \<langle>c\<^sub>2\<^sub>A', sifum_refinement.mds\<^sub>A_of var\<^sub>C_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A)
        \<in> sifum_lang_no_dma.eval\<^sub>w ev\<^sub>A ev\<^sub>B"
[PROOF STATE]
proof (state)
this:
(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R
(\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
(\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
let ?c\<^sub>2\<^sub>C' = "Stop ;; tail\<^sub>C"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
from in_rel_inv\<^sub>C acq_mode_rel(2) rel_inv\<^sub>CE
[PROOF STATE]
proof (chain)
picking this:
(\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C
\<lbrakk>(\<langle>?c, ?mds, ?mem\<rangle>\<^sub>C, \<langle>?c', ?mds', ?mem'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<lbrakk>?c = Skip ;; Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); ?c' = (reg1 \<leftarrow> Load y_mem) ;; (reg2 \<leftarrow> Load z_mem) ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = (reg1 \<leftarrow> Load y_mem) ;; (reg2 \<leftarrow> Load z_mem) ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0); ?c' = Skip ;; Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = Stop ;; Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); ?c' = Stop ;; (reg2 \<leftarrow> Load z_mem) ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = Stop ;; (reg2 \<leftarrow> Load z_mem) ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0); ?c' = Stop ;; Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); ?c' = (reg2 \<leftarrow> Load z_mem) ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = (reg2 \<leftarrow> Load z_mem) ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0); ?c' = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = Stop ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); ?c' = Stop ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = Stop ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0); ?c' = Stop ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); ?c' = (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0); ?c' = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; ?c' = ?c \<Longrightarrow> ?P\<rbrakk> \<Longrightarrow> ?P
[PROOF STEP]
have "c\<^sub>2\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C"
[PROOF STATE]
proof (prove)
using this:
(\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C
\<lbrakk>(\<langle>?c, ?mds, ?mem\<rangle>\<^sub>C, \<langle>?c', ?mds', ?mem'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<lbrakk>?c = Skip ;; Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); ?c' = (reg1 \<leftarrow> Load y_mem) ;; (reg2 \<leftarrow> Load z_mem) ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = (reg1 \<leftarrow> Load y_mem) ;; (reg2 \<leftarrow> Load z_mem) ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0); ?c' = Skip ;; Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = Stop ;; Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); ?c' = Stop ;; (reg2 \<leftarrow> Load z_mem) ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = Stop ;; (reg2 \<leftarrow> Load z_mem) ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0); ?c' = Stop ;; Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); ?c' = (reg2 \<leftarrow> Load z_mem) ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = (reg2 \<leftarrow> Load z_mem) ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0); ?c' = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = Stop ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); ?c' = Stop ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = Stop ;; (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0); ?c' = Stop ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); ?c' = (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; \<lbrakk>?c = (reg0 \<leftarrow> Add (Load reg1) (Load reg2)) ;; (x_mem \<leftarrow> Load reg0); ?c' = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0)\<rbrakk> \<Longrightarrow> ?P; ?c' = ?c \<Longrightarrow> ?P\<rbrakk> \<Longrightarrow> ?P

goal (1 subgoal):
 1. c\<^sub>2\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
c\<^sub>2\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
hence eval_tail\<^sub>C: "(\<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> sifum_lang_no_dma.eval\<^sub>w ev\<^sub>A ev\<^sub>B"
[PROOF STATE]
proof (prove)
using this:
c\<^sub>2\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C

goal (1 subgoal):
 1. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C
[PROOF STEP]
by (simp del:fun_upd_apply add:C.eval\<^sub>w.seq C.decl_eval\<^sub>w' mds\<^sub>C'_def)
[PROOF STATE]
proof (state)
this:
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
from in_R acq_mode_rel(1)
[PROOF STATE]
proof (chain)
picking this:
(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R
c\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
[PROOF STEP]
have c\<^sub>2\<^sub>A_def: "c\<^sub>2\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A"
[PROOF STATE]
proof (prove)
using this:
(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R
c\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A

goal (1 subgoal):
 1. c\<^sub>2\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
[PROOF STEP]
by (blast elim:inR_E A.rel_invE)
[PROOF STATE]
proof (state)
this:
c\<^sub>2\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
with acq_mode_rel(1,3,4)
[PROOF STATE]
proof (chain)
picking this:
c\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
c\<^sub>2\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
[PROOF STEP]
have "(\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, sifum_refinement.mem\<^sub>A_of var\<^sub>C_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A,
            \<langle>Stop ;; tail\<^sub>A, sifum_refinement.mds\<^sub>A_of var\<^sub>C_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.eval\<^sub>w"
[PROOF STATE]
proof (prove)
using this:
c\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
c\<^sub>2\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A

goal (1 subgoal):
 1. eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A
[PROOF STEP]
by (simp del:fun_upd_apply add:A.eval\<^sub>w.seq A.decl_eval\<^sub>w' mds\<^sub>C'_def mode_acquire_refinement_helper)
[PROOF STATE]
proof (state)
this:
eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
with eval\<^sub>2\<^sub>A acq_mode_rel(1,3,4)
[PROOF STATE]
proof (chain)
picking this:
eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A
c\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A
[PROOF STEP]
have c\<^sub>2\<^sub>A'_def: "c\<^sub>2\<^sub>A' = Stop ;; tail\<^sub>A" and
        mem\<^sub>2\<^sub>A'_def: "mem\<^sub>2\<^sub>A' = mem\<^sub>A_of mem\<^sub>2\<^sub>C"
[PROOF STATE]
proof (prove)
using this:
eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A
c\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A

goal (1 subgoal):
 1. c\<^sub>2\<^sub>A' = Stop ;; tail\<^sub>A &&& mem\<^sub>2\<^sub>A' = mem\<^sub>A_of mem\<^sub>2\<^sub>C
[PROOF STEP]
using A.eval_det
[PROOF STATE]
proof (prove)
using this:
eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A
c\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A
\<lbrakk>eval_abv\<^sub>A ?lc ?lc'; eval_abv\<^sub>A ?lc ?lc''\<rbrakk> \<Longrightarrow> ?lc' = ?lc''

goal (1 subgoal):
 1. c\<^sub>2\<^sub>A' = Stop ;; tail\<^sub>A &&& mem\<^sub>2\<^sub>A' = mem\<^sub>A_of mem\<^sub>2\<^sub>C
[PROOF STEP]
by blast+
[PROOF STATE]
proof (state)
this:
c\<^sub>2\<^sub>A' = Stop ;; tail\<^sub>A
mem\<^sub>2\<^sub>A' = mem\<^sub>A_of mem\<^sub>2\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
from acq_mode_rel(3) in_RefRel c\<^sub>2\<^sub>A_def refrel_helper_Acq_Rel_ex1I
[PROOF STATE]
proof (chain)
picking this:
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
(\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
c\<^sub>2\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
(\<langle>(Skip@[?x +=\<^sub>m ?SomeMode]) ;; ?c\<^sub>A_tail, mds\<^sub>A_of ?mds\<^sub>C, mem\<^sub>A_of ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>?c\<^sub>2\<^sub>C, ?mds\<^sub>C, ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<Longrightarrow> \<exists>!c\<^sub>C_tail. ?c\<^sub>2\<^sub>C = (Skip@[var\<^sub>C_of ?x +=\<^sub>m ?SomeMode]) ;; c\<^sub>C_tail \<and> eval_abv\<^sub>C \<langle>(Skip@[var\<^sub>C_of ?x +=\<^sub>m ?SomeMode]) ;; c\<^sub>C_tail, ?mds\<^sub>C, ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, ?mds\<^sub>C(?SomeMode := insert (var\<^sub>C_of ?x) (?mds\<^sub>C ?SomeMode)), ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>C
[PROOF STEP]
obtain tail\<^sub>C' where
        c\<^sub>2\<^sub>C_def: "c\<^sub>2\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C'" and
        eval\<^sub>2\<^sub>C': "(\<langle>(Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C,
                   \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C(m := insert (var\<^sub>C_of x) (mds\<^sub>C m)), mem\<^sub>2\<^sub>C\<rangle>\<^sub>C)
                  \<in> C.eval\<^sub>w"
[PROOF STATE]
proof (prove)
using this:
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
(\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
c\<^sub>2\<^sub>A = (Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A
(\<langle>(Skip@[?x +=\<^sub>m ?SomeMode]) ;; ?c\<^sub>A_tail, mds\<^sub>A_of ?mds\<^sub>C, mem\<^sub>A_of ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>?c\<^sub>2\<^sub>C, ?mds\<^sub>C, ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<Longrightarrow> \<exists>!c\<^sub>C_tail. ?c\<^sub>2\<^sub>C = (Skip@[var\<^sub>C_of ?x +=\<^sub>m ?SomeMode]) ;; c\<^sub>C_tail \<and> eval_abv\<^sub>C \<langle>(Skip@[var\<^sub>C_of ?x +=\<^sub>m ?SomeMode]) ;; c\<^sub>C_tail, ?mds\<^sub>C, ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, ?mds\<^sub>C(?SomeMode := insert (var\<^sub>C_of ?x) (?mds\<^sub>C ?SomeMode)), ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>C

goal (1 subgoal):
 1. (\<And>tail\<^sub>C'. \<lbrakk>c\<^sub>2\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C'; eval_abv\<^sub>C \<langle>(Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C(m := insert (var\<^sub>C_of x) (mds\<^sub>C m)), mem\<^sub>2\<^sub>C\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
c\<^sub>2\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C'
eval_abv\<^sub>C \<langle>(Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C(m := insert (var\<^sub>C_of x) (mds\<^sub>C m)), mem\<^sub>2\<^sub>C\<rangle>\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
have eval_tail\<^sub>C': "(\<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> C.eval\<^sub>w"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C
[PROOF STEP]
by(simp add: mds\<^sub>C'_def c\<^sub>2\<^sub>C_def eval\<^sub>2\<^sub>C')
[PROOF STATE]
proof (state)
this:
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
with eval_tail\<^sub>C C.eval_det
[PROOF STATE]
proof (chain)
picking this:
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C
\<lbrakk>eval_abv\<^sub>C ?lc ?lc'; eval_abv\<^sub>C ?lc ?lc''\<rbrakk> \<Longrightarrow> ?lc' = ?lc''
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C
[PROOF STEP]
have
        tails_eq: "tail\<^sub>C = tail\<^sub>C'"
[PROOF STATE]
proof (prove)
using this:
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C
\<lbrakk>eval_abv\<^sub>C ?lc ?lc'; eval_abv\<^sub>C ?lc ?lc''\<rbrakk> \<Longrightarrow> ?lc' = ?lc''
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C

goal (1 subgoal):
 1. tail\<^sub>C = tail\<^sub>C'
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
tail\<^sub>C = tail\<^sub>C'

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
tail\<^sub>C = tail\<^sub>C'

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
have "(\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
from Acq_Mode_RefRel_HighBranchE[OF in_RefRel[simplified c\<^sub>2\<^sub>A_def c\<^sub>2\<^sub>C_def acq_mode_rel(3)]]
[PROOF STATE]
proof (chain)
picking this:
(\<lbrakk>\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mem\<^sub>A'' mds\<^sub>C' mem\<^sub>C'. (\<exists>mem\<^sub>C''. mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>(Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>(Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>C'\<rangle>\<^sub>C) \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch\<rbrakk> \<Longrightarrow> ?P) \<Longrightarrow> ?P
[PROOF STEP]
have "((\<langle>(Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A, mds\<^sub>A_of  mds\<^sub>C,  mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A,
                \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A)
               \<in> A.eval\<^sub>w) \<longrightarrow>
              (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A,
               \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C)
              \<in> RefRel_HighBranch"
[PROOF STATE]
proof (prove)
using this:
(\<lbrakk>\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mem\<^sub>A'' mds\<^sub>C' mem\<^sub>C'. (\<exists>mem\<^sub>C''. mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>(Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>(Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>C'\<rangle>\<^sub>C) \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch\<rbrakk> \<Longrightarrow> ?P) \<Longrightarrow> ?P

goal (1 subgoal):
 1. eval_abv\<^sub>A \<langle>(Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
using eval\<^sub>2\<^sub>C' mds\<^sub>C'_concrete_vars_unwritable
[PROOF STATE]
proof (prove)
using this:
(\<lbrakk>\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mem\<^sub>A'' mds\<^sub>C' mem\<^sub>C'. (\<exists>mem\<^sub>C''. mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>(Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>(Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>C'\<rangle>\<^sub>C) \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch\<rbrakk> \<Longrightarrow> ?P) \<Longrightarrow> ?P
eval_abv\<^sub>C \<langle>(Skip@[var\<^sub>C_of x +=\<^sub>m m]) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C(m := insert (var\<^sub>C_of x) (mds\<^sub>C m)), mem\<^sub>2\<^sub>C\<rangle>\<^sub>C
\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C' AsmNoReadOrWrite

goal (1 subgoal):
 1. eval_abv\<^sub>A \<langle>(Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
by (metis (mono_tags, lifting) mds\<^sub>C'_def)
[PROOF STATE]
proof (state)
this:
eval_abv\<^sub>A \<langle>(Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (1 subgoal):
 1. (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
hence "(\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A,
                \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C)
               \<in> RefRel_HighBranch"
[PROOF STATE]
proof (prove)
using this:
eval_abv\<^sub>A \<langle>(Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (1 subgoal):
 1. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
using A.eval\<^sub>w.seq A.decl_eval\<^sub>w' mds\<^sub>C'_def A.update_modes.simps mode_acquire_refinement_helper
[PROOF STATE]
proof (prove)
using this:
eval_abv\<^sub>A \<langle>(Skip@[x +=\<^sub>m m]) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
eval_abv\<^sub>A \<langle>?c\<^sub>1, ?mds, ?mem\<rangle>\<^sub>A \<langle>?c\<^sub>1', ?mds', ?mem'\<rangle>\<^sub>A \<Longrightarrow> eval_abv\<^sub>A \<langle>?c\<^sub>1 ;; ?c\<^sub>2, ?mds, ?mem\<rangle>\<^sub>A \<langle>?c\<^sub>1' ;; ?c\<^sub>2, ?mds', ?mem'\<rangle>\<^sub>A
\<lbrakk>?mem' = ?mem; ?mds' = A.update_modes ?upd ?mds\<rbrakk> \<Longrightarrow> eval_abv\<^sub>A \<langle>Skip@[?upd], ?mds, ?mem\<rangle>\<^sub>A \<langle>Stop, ?mds', ?mem'\<rangle>\<^sub>A
mds\<^sub>C' = mds\<^sub>C(m := insert (var\<^sub>C_of x) (mds\<^sub>C m))
A.update_modes (?x +=\<^sub>m ?m) ?mds = ?mds(?m := insert ?x (?mds ?m))
A.update_modes (?x -=\<^sub>m ?m) ?mds = ?mds(?m := {y \<in> ?mds ?m. y \<noteq> ?x})
mds\<^sub>A_of (?mds\<^sub>C(?SomeMode := insert (var\<^sub>C_of ?x) (?mds\<^sub>C ?SomeMode))) = (mds\<^sub>A_of ?mds\<^sub>C)(?SomeMode := insert ?x (mds\<^sub>A_of ?mds\<^sub>C ?SomeMode))

goal (1 subgoal):
 1. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (1 subgoal):
 1. (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (1 subgoal):
 1. (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
by(simp add: c\<^sub>2\<^sub>C_def c\<^sub>2\<^sub>A'_def mem\<^sub>2\<^sub>A'_def)
[PROOF STATE]
proof (state)
this:
(\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
have "(\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
using c\<^sub>1\<^sub>C'_def tails_eq rel_inv\<^sub>C_default
[PROOF STATE]
proof (prove)
using this:
c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C
tail\<^sub>C = tail\<^sub>C'
?c = ?c' \<Longrightarrow> (\<langle>?c, ?mds, ?mem\<rangle>\<^sub>C, \<langle>?c', ?mds', ?mem'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C

goal (1 subgoal):
 1. (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
note eval_tail\<^sub>C
[PROOF STATE]
proof (state)
this:
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
tail\<^sub>C = tail\<^sub>C'
(\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
(\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C
[PROOF STEP]
show "\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'.
              (\<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> sifum_lang_no_dma.eval\<^sub>w ev\<^sub>A ev\<^sub>B \<and>
              (\<langle>c\<^sub>2\<^sub>A', sifum_refinement.mds\<^sub>A_of var\<^sub>C_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C)
              \<in> RefRel_HighBranch \<and>
              (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C"
[PROOF STATE]
proof (prove)
using this:
tail\<^sub>C = tail\<^sub>C'
(\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
(\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C

goal (1 subgoal):
 1. \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A 1 \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)

goal (22 subgoals):
 1. \<And>c\<^sub>A x SomeMode c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (Skip@[x +=\<^sub>m SomeMode]) ;; c\<^sub>A_tail; c\<^sub>C = (Skip@[var\<^sub>C_of x +=\<^sub>m SomeMode]) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 22 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A 1 \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)

goal (1 subgoal):
 1. \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
[PROOF STEP]
using in_Rel' abs_steps_acq neval\<^sub>A
[PROOF STATE]
proof (prove)
using this:
\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A 1 \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)
(\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch
abs_steps' c\<^sub>A c\<^sub>C = 1
A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A

goal (1 subgoal):
 1. \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))

goal (21 subgoals):
 1. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = (reg0 \<leftarrow> Load y_mem) ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 21 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (21 subgoals):
 1. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = (reg0 \<leftarrow> Load y_mem) ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 21 subgoals...
[PROOF STEP]
case (assign_load_rel c\<^sub>A x y tail\<^sub>A c\<^sub>C tail\<^sub>C mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C)
[PROOF STATE]
proof (state)
this:
c\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A
c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite
x \<notin> mds\<^sub>A GuarNoReadOrWrite
x \<notin> mds\<^sub>A GuarNoWrite
y \<notin> mds\<^sub>A GuarNoReadOrWrite
x \<notin> \<C>
y \<notin> \<C>
\<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C''' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C''' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))))
eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C

goal (21 subgoals):
 1. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = (reg0 \<leftarrow> Load y_mem) ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 21 subgoals...
[PROOF STEP]
let ?c\<^sub>1\<^sub>A' = "Stop ;; tail\<^sub>A"
[PROOF STATE]
proof (state)
goal (21 subgoals):
 1. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = (reg0 \<leftarrow> Load y_mem) ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 21 subgoals...
[PROOF STEP]
let ?mds\<^sub>A' = "mds\<^sub>A_of mds\<^sub>C'"
[PROOF STATE]
proof (state)
goal (21 subgoals):
 1. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = (reg0 \<leftarrow> Load y_mem) ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 21 subgoals...
[PROOF STEP]
let ?mem\<^sub>1\<^sub>A' = "mem\<^sub>A_of mem\<^sub>1\<^sub>C'"
[PROOF STATE]
proof (state)
goal (21 subgoals):
 1. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = (reg0 \<leftarrow> Load y_mem) ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 21 subgoals...
[PROOF STEP]
from assign_load_rel(1) assign_load_rel(2)
[PROOF STATE]
proof (chain)
picking this:
c\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A
c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C
[PROOF STEP]
have abs_steps_load: "(abs_steps' c\<^sub>A c\<^sub>C) = 1"
[PROOF STATE]
proof (prove)
using this:
c\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A
c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C

goal (1 subgoal):
 1. abs_steps' c\<^sub>A c\<^sub>C = 1
[PROOF STEP]
by (simp add:abs_steps'_def)
[PROOF STATE]
proof (state)
this:
abs_steps' c\<^sub>A c\<^sub>C = 1

goal (21 subgoals):
 1. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = (reg0 \<leftarrow> Load y_mem) ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 21 subgoals...
[PROOF STEP]
from assign_load_rel.prems assign_load_rel(2)
[PROOF STATE]
proof (chain)
picking this:
eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C
c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C
[PROOF STEP]
have c\<^sub>1\<^sub>C'_def: "c\<^sub>1\<^sub>C' = (Stop ;; tail\<^sub>C)" and
    mds\<^sub>C'_def: "mds\<^sub>C' = mds\<^sub>C" and
    mem\<^sub>1\<^sub>C'_def: "mem\<^sub>1\<^sub>C' = mem\<^sub>C((var\<^sub>C_of x) := mem\<^sub>C (var\<^sub>C_of y))"
[PROOF STATE]
proof (prove)
using this:
eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C
c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C

goal (1 subgoal):
 1. c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C &&& mds\<^sub>C' = mds\<^sub>C &&& mem\<^sub>1\<^sub>C' = mem\<^sub>C(var\<^sub>C_of x := mem\<^sub>C (var\<^sub>C_of y))
[PROOF STEP]
using C.seq_elim C.assign_elim assign_eval\<^sub>w_load\<^sub>C
[PROOF STATE]
proof (prove)
using this:
eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C
c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C
\<lbrakk>eval_abv\<^sub>C \<langle>?c\<^sub>1 ;; ?c\<^sub>2, ?mds, ?mem\<rangle>\<^sub>C \<langle>?c', ?mds', ?mem'\<rangle>\<^sub>C; ?c\<^sub>1 \<noteq> Stop\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>1'. eval_abv\<^sub>C \<langle>?c\<^sub>1, ?mds, ?mem\<rangle>\<^sub>C \<langle>c\<^sub>1', ?mds', ?mem'\<rangle>\<^sub>C \<and> ?c' = c\<^sub>1' ;; ?c\<^sub>2
eval_abv\<^sub>C \<langle>?x \<leftarrow> ?e, ?mds, ?mem\<rangle>\<^sub>C \<langle>?c', ?mds', ?mem'\<rangle>\<^sub>C \<Longrightarrow> ?c' = Stop \<and> ?mds = ?mds' \<and> ?mem' = ?mem(?x := ev\<^sub>A ?mem ?e)
eval_abv\<^sub>C \<langle>?x \<leftarrow> Load ?y, ?mds, ?mem\<rangle>\<^sub>C \<langle>Stop, ?mds, ?mem(?x := ?mem ?y)\<rangle>\<^sub>C

goal (1 subgoal):
 1. c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C &&& mds\<^sub>C' = mds\<^sub>C &&& mem\<^sub>1\<^sub>C' = mem\<^sub>C(var\<^sub>C_of x := mem\<^sub>C (var\<^sub>C_of y))
[PROOF STEP]
by (metis (no_types, lifting) Stmt.distinct(13))+
[PROOF STATE]
proof (state)
this:
c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C
mds\<^sub>C' = mds\<^sub>C
mem\<^sub>1\<^sub>C' = mem\<^sub>C(var\<^sub>C_of x := mem\<^sub>C (var\<^sub>C_of y))

goal (21 subgoals):
 1. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = (reg0 \<leftarrow> Load y_mem) ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 21 subgoals...
[PROOF STEP]
from assign_load_rel(1,3,4) mds\<^sub>C'_def mem\<^sub>1\<^sub>C'_def
[PROOF STATE]
proof (chain)
picking this:
c\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
mds\<^sub>C' = mds\<^sub>C
mem\<^sub>1\<^sub>C' = mem\<^sub>C(var\<^sub>C_of x := mem\<^sub>C (var\<^sub>C_of y))
[PROOF STEP]
have eval\<^sub>A: "(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A,\<langle>?c\<^sub>1\<^sub>A', ?mds\<^sub>A', ?mem\<^sub>1\<^sub>A'\<rangle>\<^sub>A) \<in> A.eval\<^sub>w" and
    neval\<^sub>A: "A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>?c\<^sub>1\<^sub>A', ?mds\<^sub>A', ?mem\<^sub>1\<^sub>A'\<rangle>\<^sub>A"
[PROOF STATE]
proof (prove)
using this:
c\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
mds\<^sub>C' = mds\<^sub>C
mem\<^sub>1\<^sub>C' = mem\<^sub>C(var\<^sub>C_of x := mem\<^sub>C (var\<^sub>C_of y))

goal (1 subgoal):
 1. eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A &&& A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A
[PROOF STEP]
using A.eval\<^sub>w.seq assign_eval\<^sub>w_load\<^sub>A mem_assign_refinement_helper_var abs_steps_load
[PROOF STATE]
proof (prove)
using this:
c\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
mds\<^sub>C' = mds\<^sub>C
mem\<^sub>1\<^sub>C' = mem\<^sub>C(var\<^sub>C_of x := mem\<^sub>C (var\<^sub>C_of y))
eval_abv\<^sub>A \<langle>?c\<^sub>1, ?mds, ?mem\<rangle>\<^sub>A \<langle>?c\<^sub>1', ?mds', ?mem'\<rangle>\<^sub>A \<Longrightarrow> eval_abv\<^sub>A \<langle>?c\<^sub>1 ;; ?c\<^sub>2, ?mds, ?mem\<rangle>\<^sub>A \<langle>?c\<^sub>1' ;; ?c\<^sub>2, ?mds', ?mem'\<rangle>\<^sub>A
eval_abv\<^sub>A \<langle>?x \<leftarrow> Load ?y, ?mds, ?mem\<rangle>\<^sub>A \<langle>Stop, ?mds, ?mem(?x := ?mem ?y)\<rangle>\<^sub>A
mem\<^sub>A_of (?mem\<^sub>C(var\<^sub>C_of ?x := ?mem\<^sub>C (var\<^sub>C_of ?y))) = (mem\<^sub>A_of ?mem\<^sub>C)(?x := mem\<^sub>A_of ?mem\<^sub>C ?y)
abs_steps' c\<^sub>A c\<^sub>C = 1

goal (1 subgoal):
 1. eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A &&& A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A
A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A

goal (21 subgoals):
 1. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = (reg0 \<leftarrow> Load y_mem) ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 21 subgoals...
[PROOF STEP]
with assign_load_rel(11)[simplified] assign_load_rel.prems c\<^sub>1\<^sub>C'_def
[PROOF STATE]
proof (chain)
picking this:
\<forall>mem\<^sub>A'' mds\<^sub>C''' mem\<^sub>C'. (\<exists>mem\<^sub>C''. mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))))
eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C
c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C
eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A
A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A
[PROOF STEP]
have in_Rel': "(\<langle>?c\<^sub>1\<^sub>A',?mds\<^sub>A',?mem\<^sub>1\<^sub>A'\<rangle>\<^sub>A,\<langle>c\<^sub>1\<^sub>C',mds\<^sub>C',mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch"
[PROOF STATE]
proof (prove)
using this:
\<forall>mem\<^sub>A'' mds\<^sub>C''' mem\<^sub>C'. (\<exists>mem\<^sub>C''. mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))))
eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C
c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C
eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A
A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A

goal (1 subgoal):
 1. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
using assign_load_rel.hyps(4-5) mds\<^sub>C'_def
[PROOF STATE]
proof (prove)
using this:
\<forall>mem\<^sub>A'' mds\<^sub>C''' mem\<^sub>C'. (\<exists>mem\<^sub>C''. mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; tail\<^sub>C, mds\<^sub>C''', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A_of mds\<^sub>C''', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C''', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))))
eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C
c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C
eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A
A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A
mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C
\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite
mds\<^sub>C' = mds\<^sub>C

goal (1 subgoal):
 1. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
(\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (21 subgoals):
 1. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = (reg0 \<leftarrow> Load y_mem) ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 21 subgoals...
[PROOF STEP]
have
    "\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'.
                  (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and>
                  (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and>
                  (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and>
                  A.neval
                   \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A 1
                   \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow>
                  (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'.
                      (\<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> sifum_lang_no_dma.eval\<^sub>w ev\<^sub>A ev\<^sub>B \<and>
                      (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and>
                      (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A 1 \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)
[PROOF STEP]
proof(clarsimp)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
fix c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
assume in_R: "(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R" and
           in_Rel: "(\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch" and
           in_rel_inv\<^sub>C: "(\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C" and
           eval\<^sub>2\<^sub>A: "(\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A) \<in> A.eval\<^sub>w"
[PROOF STATE]
proof (state)
this:
(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R
(\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
(\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
let ?mem\<^sub>2\<^sub>C' = "(mem\<^sub>2\<^sub>C((var\<^sub>C_of x) := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
from in_rel_inv\<^sub>C assign_load_rel(2) reg_is_not_the_var\<^sub>C_of_anything
[PROOF STATE]
proof (chain)
picking this:
(\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C
\<lbrakk>?reg \<in> {reg0, reg1, reg2, reg3}; ?reg = var\<^sub>C_of ?x\<rbrakk> \<Longrightarrow> False
[PROOF STEP]
have "c\<^sub>2\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C"
[PROOF STATE]
proof (prove)
using this:
(\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C
\<lbrakk>?reg \<in> {reg0, reg1, reg2, reg3}; ?reg = var\<^sub>C_of ?x\<rbrakk> \<Longrightarrow> False

goal (1 subgoal):
 1. c\<^sub>2\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C
[PROOF STEP]
by (blast elim:rel_inv\<^sub>CE)
[PROOF STATE]
proof (state)
this:
c\<^sub>2\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
hence eval_tail\<^sub>C: "(\<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C, ?mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> sifum_lang_no_dma.eval\<^sub>w ev\<^sub>A ev\<^sub>B"
[PROOF STATE]
proof (prove)
using this:
c\<^sub>2\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C

goal (1 subgoal):
 1. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C
[PROOF STEP]
by (simp del:fun_upd_apply add:C.eval\<^sub>w.seq assign_eval\<^sub>w_load\<^sub>C mds\<^sub>C'_def)
[PROOF STATE]
proof (state)
this:
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
from assign_load_rel(1) in_R inR_E
[PROOF STATE]
proof (chain)
picking this:
c\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A
(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R
\<lbrakk>(\<langle>?c, ?mds, ?mem\<rangle>\<^sub>A, \<langle>?c', ?mds', ?mem'\<rangle>\<^sub>A) \<in> A.R; \<lbrakk>?mds' = ?mds; A.low_mds_eq ?mds ?mem ?mem'; A.inv \<langle>?c, ?mds, ?mem\<rangle>\<^sub>A; A.inv \<langle>?c', ?mds, ?mem'\<rangle>\<^sub>A; (\<langle>?c, ?mds, ?mem\<rangle>\<^sub>A, \<langle>?c', ?mds, ?mem'\<rangle>\<^sub>A) \<in> A.rel_inv\<rbrakk> \<Longrightarrow> ?P\<rbrakk> \<Longrightarrow> ?P
[PROOF STEP]
have c\<^sub>2\<^sub>A_def: "c\<^sub>2\<^sub>A = (x \<leftarrow> aexp.Load y) ;; tail\<^sub>A"
[PROOF STATE]
proof (prove)
using this:
c\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A
(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R
\<lbrakk>(\<langle>?c, ?mds, ?mem\<rangle>\<^sub>A, \<langle>?c', ?mds', ?mem'\<rangle>\<^sub>A) \<in> A.R; \<lbrakk>?mds' = ?mds; A.low_mds_eq ?mds ?mem ?mem'; A.inv \<langle>?c, ?mds, ?mem\<rangle>\<^sub>A; A.inv \<langle>?c', ?mds, ?mem'\<rangle>\<^sub>A; (\<langle>?c, ?mds, ?mem\<rangle>\<^sub>A, \<langle>?c', ?mds, ?mem'\<rangle>\<^sub>A) \<in> A.rel_inv\<rbrakk> \<Longrightarrow> ?P\<rbrakk> \<Longrightarrow> ?P

goal (1 subgoal):
 1. c\<^sub>2\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A
[PROOF STEP]
by (blast elim:inR_E A.rel_invE)
[PROOF STATE]
proof (state)
this:
c\<^sub>2\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
hence c\<^sub>2\<^sub>A'_def: "c\<^sub>2\<^sub>A' = Stop ;; tail\<^sub>A"
      and mem\<^sub>2\<^sub>A'_def: "mem\<^sub>2\<^sub>A' = mem\<^sub>A_of ?mem\<^sub>2\<^sub>C'"
[PROOF STATE]
proof (prove)
using this:
c\<^sub>2\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A

goal (1 subgoal):
 1. c\<^sub>2\<^sub>A' = Stop ;; tail\<^sub>A &&& mem\<^sub>2\<^sub>A' = mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))
[PROOF STEP]
using eval\<^sub>2\<^sub>A abs_steps_load A.assign_elim A.seq_elim mem_assign_refinement_helper_var
[PROOF STATE]
proof (prove)
using this:
c\<^sub>2\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A
eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A
abs_steps' c\<^sub>A c\<^sub>C = 1
eval_abv\<^sub>A \<langle>?x \<leftarrow> ?e, ?mds, ?mem\<rangle>\<^sub>A \<langle>?c', ?mds', ?mem'\<rangle>\<^sub>A \<Longrightarrow> ?c' = Stop \<and> ?mds = ?mds' \<and> ?mem' = ?mem(?x := ev\<^sub>A ?mem ?e)
\<lbrakk>eval_abv\<^sub>A \<langle>?c\<^sub>1 ;; ?c\<^sub>2, ?mds, ?mem\<rangle>\<^sub>A \<langle>?c', ?mds', ?mem'\<rangle>\<^sub>A; ?c\<^sub>1 \<noteq> Stop\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>1'. eval_abv\<^sub>A \<langle>?c\<^sub>1, ?mds, ?mem\<rangle>\<^sub>A \<langle>c\<^sub>1', ?mds', ?mem'\<rangle>\<^sub>A \<and> ?c' = c\<^sub>1' ;; ?c\<^sub>2
mem\<^sub>A_of (?mem\<^sub>C(var\<^sub>C_of ?x := ?mem\<^sub>C (var\<^sub>C_of ?y))) = (mem\<^sub>A_of ?mem\<^sub>C)(?x := mem\<^sub>A_of ?mem\<^sub>C ?y)

goal (1 subgoal):
 1. c\<^sub>2\<^sub>A' = Stop ;; tail\<^sub>A &&& mem\<^sub>2\<^sub>A' = mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))
[PROOF STEP]
by fastforce+
[PROOF STATE]
proof (state)
this:
c\<^sub>2\<^sub>A' = Stop ;; tail\<^sub>A
mem\<^sub>2\<^sub>A' = mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
from assign_load_rel(3) in_Rel c\<^sub>2\<^sub>A_def refrel_helper_Assign_Load_ex1I
[PROOF STATE]
proof (chain)
picking this:
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
(\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
c\<^sub>2\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A
(\<langle>(?x \<leftarrow> Load ?y) ;; ?tail\<^sub>A, mds\<^sub>A_of ?mds\<^sub>C, mem\<^sub>A_of ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>?c\<^sub>2\<^sub>C, ?mds\<^sub>C, ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<Longrightarrow> \<exists>!tail\<^sub>C. ?c\<^sub>2\<^sub>C = (var\<^sub>C_of ?x \<leftarrow> Load (var\<^sub>C_of ?y)) ;; tail\<^sub>C \<and> eval_abv\<^sub>C \<langle>(var\<^sub>C_of ?x \<leftarrow> Load (var\<^sub>C_of ?y)) ;; tail\<^sub>C, ?mds\<^sub>C, ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, ?mds\<^sub>C, ?mem\<^sub>2\<^sub>C(var\<^sub>C_of ?x := ?mem\<^sub>2\<^sub>C (var\<^sub>C_of ?y))\<rangle>\<^sub>C
[PROOF STEP]
obtain tail\<^sub>C' where
      c\<^sub>2\<^sub>C_def: "c\<^sub>2\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C'" and
      eval\<^sub>2\<^sub>C': "(\<langle>(var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C,
                 \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>2\<^sub>C((var\<^sub>C_of x) := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C)
                \<in> C.eval\<^sub>w"
[PROOF STATE]
proof (prove)
using this:
mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C
(\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch
c\<^sub>2\<^sub>A = (x \<leftarrow> Load y) ;; tail\<^sub>A
(\<langle>(?x \<leftarrow> Load ?y) ;; ?tail\<^sub>A, mds\<^sub>A_of ?mds\<^sub>C, mem\<^sub>A_of ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>?c\<^sub>2\<^sub>C, ?mds\<^sub>C, ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<Longrightarrow> \<exists>!tail\<^sub>C. ?c\<^sub>2\<^sub>C = (var\<^sub>C_of ?x \<leftarrow> Load (var\<^sub>C_of ?y)) ;; tail\<^sub>C \<and> eval_abv\<^sub>C \<langle>(var\<^sub>C_of ?x \<leftarrow> Load (var\<^sub>C_of ?y)) ;; tail\<^sub>C, ?mds\<^sub>C, ?mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, ?mds\<^sub>C, ?mem\<^sub>2\<^sub>C(var\<^sub>C_of ?x := ?mem\<^sub>2\<^sub>C (var\<^sub>C_of ?y))\<rangle>\<^sub>C

goal (1 subgoal):
 1. (\<And>tail\<^sub>C'. \<lbrakk>c\<^sub>2\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C'; eval_abv\<^sub>C \<langle>(var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
c\<^sub>2\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C'
eval_abv\<^sub>C \<langle>(var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
have eval_tail\<^sub>C': "(\<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C,
                  \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C((var\<^sub>C_of x) := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C)
                  \<in> C.eval\<^sub>w"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C
[PROOF STEP]
by(simp add: mds\<^sub>C'_def c\<^sub>2\<^sub>C_def eval\<^sub>2\<^sub>C')
[PROOF STATE]
proof (state)
this:
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
with eval_tail\<^sub>C C.eval_det
[PROOF STATE]
proof (chain)
picking this:
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C
\<lbrakk>eval_abv\<^sub>C ?lc ?lc'; eval_abv\<^sub>C ?lc ?lc''\<rbrakk> \<Longrightarrow> ?lc' = ?lc''
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C
[PROOF STEP]
have
        tails_eq: "tail\<^sub>C = tail\<^sub>C'"
[PROOF STATE]
proof (prove)
using this:
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C
\<lbrakk>eval_abv\<^sub>C ?lc ?lc'; eval_abv\<^sub>C ?lc ?lc''\<rbrakk> \<Longrightarrow> ?lc' = ?lc''
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C

goal (1 subgoal):
 1. tail\<^sub>C = tail\<^sub>C'
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
tail\<^sub>C = tail\<^sub>C'

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
tail\<^sub>C = tail\<^sub>C'

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
have "(\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', ?mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C)
                    \<in> RefRel_HighBranch"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
from Assign_Load_RefRel_HighBranchE[OF in_Rel[simplified c\<^sub>2\<^sub>A_def c\<^sub>2\<^sub>C_def assign_load_rel(3)]]
[PROOF STATE]
proof (chain)
picking this:
(\<lbrakk>\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A_of mds\<^sub>C GuarNoReadOrWrite; x \<notin> mds\<^sub>A_of mds\<^sub>C GuarNoWrite; y \<notin> mds\<^sub>A_of mds\<^sub>C GuarNoReadOrWrite; \<forall>mem\<^sub>A'' mds\<^sub>C' mem\<^sub>C'. (\<exists>mem\<^sub>C''. mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>(x \<leftarrow> Load y) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>(var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>C'\<rangle>\<^sub>C) \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch\<rbrakk> \<Longrightarrow> ?P) \<Longrightarrow> ?P
[PROOF STEP]
have "((\<langle>(x \<leftarrow> aexp.Load y) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A,
              \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of ?mem\<^sub>2\<^sub>C'\<rangle>\<^sub>A)
             \<in> A.eval\<^sub>w) \<longrightarrow>
            (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of ?mem\<^sub>2\<^sub>C'\<rangle>\<^sub>A,
             \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', ?mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C)
            \<in> RefRel_HighBranch"
[PROOF STATE]
proof (prove)
using this:
(\<lbrakk>\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A_of mds\<^sub>C GuarNoReadOrWrite; x \<notin> mds\<^sub>A_of mds\<^sub>C GuarNoWrite; y \<notin> mds\<^sub>A_of mds\<^sub>C GuarNoReadOrWrite; \<forall>mem\<^sub>A'' mds\<^sub>C' mem\<^sub>C'. (\<exists>mem\<^sub>C''. mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>(x \<leftarrow> Load y) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>(var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>C'\<rangle>\<^sub>C) \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch\<rbrakk> \<Longrightarrow> ?P) \<Longrightarrow> ?P

goal (1 subgoal):
 1. eval_abv\<^sub>A \<langle>(x \<leftarrow> Load y) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
using eval\<^sub>2\<^sub>C'
[PROOF STATE]
proof (prove)
using this:
(\<lbrakk>\<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A_of mds\<^sub>C GuarNoReadOrWrite; x \<notin> mds\<^sub>A_of mds\<^sub>C GuarNoWrite; y \<notin> mds\<^sub>A_of mds\<^sub>C GuarNoReadOrWrite; \<forall>mem\<^sub>A'' mds\<^sub>C' mem\<^sub>C'. (\<exists>mem\<^sub>C''. mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>(x \<leftarrow> Load y) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>(var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>C'\<rangle>\<^sub>C) \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>C'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch\<rbrakk> \<Longrightarrow> ?P) \<Longrightarrow> ?P
eval_abv\<^sub>C \<langle>(var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C, mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C

goal (1 subgoal):
 1. eval_abv\<^sub>A \<langle>(x \<leftarrow> Load y) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
by (metis mds\<^sub>C'_def)
[PROOF STATE]
proof (state)
this:
eval_abv\<^sub>A \<langle>(x \<leftarrow> Load y) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (1 subgoal):
 1. (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
hence "(\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of ?mem\<^sub>2\<^sub>C'\<rangle>\<^sub>A,
              \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', ?mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C)
             \<in> RefRel_HighBranch"
[PROOF STATE]
proof (prove)
using this:
eval_abv\<^sub>A \<langle>(x \<leftarrow> Load y) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (1 subgoal):
 1. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
using A.eval\<^sub>w.seq assign_eval\<^sub>w_load\<^sub>A mds\<^sub>C'_def A.update_modes.simps mem_assign_refinement_helper_var
[PROOF STATE]
proof (prove)
using this:
eval_abv\<^sub>A \<langle>(x \<leftarrow> Load y) ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A \<longrightarrow> (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch
eval_abv\<^sub>A \<langle>?c\<^sub>1, ?mds, ?mem\<rangle>\<^sub>A \<langle>?c\<^sub>1', ?mds', ?mem'\<rangle>\<^sub>A \<Longrightarrow> eval_abv\<^sub>A \<langle>?c\<^sub>1 ;; ?c\<^sub>2, ?mds, ?mem\<rangle>\<^sub>A \<langle>?c\<^sub>1' ;; ?c\<^sub>2, ?mds', ?mem'\<rangle>\<^sub>A
eval_abv\<^sub>A \<langle>?x \<leftarrow> Load ?y, ?mds, ?mem\<rangle>\<^sub>A \<langle>Stop, ?mds, ?mem(?x := ?mem ?y)\<rangle>\<^sub>A
mds\<^sub>C' = mds\<^sub>C
A.update_modes (?x +=\<^sub>m ?m) ?mds = ?mds(?m := insert ?x (?mds ?m))
A.update_modes (?x -=\<^sub>m ?m) ?mds = ?mds(?m := {y \<in> ?mds ?m. y \<noteq> ?x})
mem\<^sub>A_of (?mem\<^sub>C(var\<^sub>C_of ?x := ?mem\<^sub>C (var\<^sub>C_of ?y))) = (mem\<^sub>A_of ?mem\<^sub>C)(?x := mem\<^sub>A_of ?mem\<^sub>C ?y)

goal (1 subgoal):
 1. (\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (1 subgoal):
 1. (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of (mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y)))\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (1 subgoal):
 1. (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch
[PROOF STEP]
by(simp add: c\<^sub>2\<^sub>C_def c\<^sub>2\<^sub>A'_def mem\<^sub>2\<^sub>A'_def)
[PROOF STATE]
proof (state)
this:
(\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
have "(\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', ?mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
using c\<^sub>1\<^sub>C'_def tails_eq rel_inv\<^sub>C_default
[PROOF STATE]
proof (prove)
using this:
c\<^sub>1\<^sub>C' = Stop ;; tail\<^sub>C
tail\<^sub>C = tail\<^sub>C'
?c = ?c' \<Longrightarrow> (\<langle>?c, ?mds, ?mem\<rangle>\<^sub>C, \<langle>?c', ?mds', ?mem'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C

goal (1 subgoal):
 1. (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
note eval_tail\<^sub>C eval_tail\<^sub>C'
[PROOF STATE]
proof (state)
this:
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C

goal (1 subgoal):
 1. \<And>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. \<lbrakk>(\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R; (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch; (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; eval_abv\<^sub>A \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A\<rbrakk> \<Longrightarrow> \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
tail\<^sub>C = tail\<^sub>C'
(\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch
(\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C
[PROOF STEP]
show "(\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'.
                  (\<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> C.eval\<^sub>w \<and>
                  (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and>
                  (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)"
[PROOF STATE]
proof (prove)
using this:
tail\<^sub>C = tail\<^sub>C'
(\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> RefRel_HighBranch
(\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C
eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>Stop ;; tail\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C(var\<^sub>C_of x := mem\<^sub>2\<^sub>C (var\<^sub>C_of y))\<rangle>\<^sub>C

goal (1 subgoal):
 1. \<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A 1 \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)

goal (21 subgoals):
 1. \<And>c\<^sub>A x y c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Load y) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Load (var\<^sub>C_of y)) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; y \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> \<C>; y \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = (reg0 \<leftarrow> Load y_mem) ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 21 subgoals...
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A 1 \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)

goal (1 subgoal):
 1. \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
[PROOF STEP]
using in_Rel' abs_steps_load neval\<^sub>A
[PROOF STATE]
proof (prove)
using this:
\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A 1 \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)
(\<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch
abs_steps' c\<^sub>A c\<^sub>C = 1
A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A 1 \<langle>Stop ;; tail\<^sub>A, mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A

goal (1 subgoal):
 1. \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))

goal (20 subgoals):
 1. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 2. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = (reg3 \<leftarrow> Load (var\<^sub>C_of x)) ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 3. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stop ;; Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> mem\<^sub>A'' = mem\<^sub>A' \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 4. \<And>c\<^sub>A x c\<^sub>A_then c\<^sub>A_else c\<^sub>C c\<^sub>C_then c\<^sub>C_else mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = Stmt.If (Neq (Load x) (Const 0)) c\<^sub>A_then c\<^sub>A_else; c\<^sub>C = Stmt.If (Neq (Load reg3) (Const 0)) c\<^sub>C_then c\<^sub>C_else; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<in> mds\<^sub>A AsmNoWrite \<and> x \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>B mem\<^sub>C (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A (Neq (Load x) (Const 0)); reg3 \<notin> mds\<^sub>C GuarNoReadOrWrite \<and> reg3 \<notin> mds\<^sub>C GuarNoWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>x'. x \<in> \<C>_vars x' \<longrightarrow> x' \<notin> mds\<^sub>A GuarNoReadOrWrite; \<forall>mem\<^sub>C' mem\<^sub>C''. (\<langle>c\<^sub>C_then, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C; \<forall>mem\<^sub>A' mem\<^sub>C' mem\<^sub>A'' mem\<^sub>C''. mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) \<and> ev\<^sub>B mem\<^sub>C' (Neq (Load reg3) (Const 0)) = ev\<^sub>B mem\<^sub>A' (Neq (Load x) (Const 0)) \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>if ev\<^sub>B mem\<^sub>A'' (Neq (Load x) (Const 0)) then c\<^sub>A_then else c\<^sub>A_else, mds\<^sub>A, mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>if ev\<^sub>B mem\<^sub>C'' (Neq (Load reg3) (Const 0)) then c\<^sub>C_then else c\<^sub>C_else, mds\<^sub>C, mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 5. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 6. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = Skip ;; (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 7. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Skip ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 8. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = (reg0 \<leftarrow> Load y_mem) ;; (x_mem \<leftarrow> Load reg0); mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 9. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = (reg0 \<leftarrow> Load y_mem) ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
 10. \<And>c\<^sub>A c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = x_var \<leftarrow> Load y_var; c\<^sub>C = Stop ;; c\<^sub>C_tail; c\<^sub>C_tail = x_mem \<leftarrow> Load reg0; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; y_var \<in> mds\<^sub>A AsmNoWrite \<and> y_var \<notin> mds\<^sub>A AsmNoReadOrWrite; ev\<^sub>A mem\<^sub>C (Load reg0) = ev\<^sub>A mem\<^sub>A (Load y_var); \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> ev\<^sub>A mem\<^sub>C' (Load reg0) = ev\<^sub>A mem\<^sub>A' (Load y_var) \<and> ev\<^sub>A mem\<^sub>C'' (Load reg0) = ev\<^sub>A mem\<^sub>A'' (Load y_var) \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C))
A total of 20 subgoals...
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (20 subgoals):
 1. \<And>c\<^sub>A x z c\<^sub>A_tail c\<^sub>C c\<^sub>C_tail mds\<^sub>A mds\<^sub>C mem\<^sub>A mem\<^sub>C. \<lbrakk>c\<^sub>A = (x \<leftarrow> Const z) ;; c\<^sub>A_tail; c\<^sub>C = (var\<^sub>C_of x \<leftarrow> Const z) ;; c\<^sub>C_tail; mds\<^sub>A = mds\<^sub>A_of mds\<^sub>C; mem\<^sub>A = mem\<^sub>A_of mem\<^sub>C; \<forall>v\<^sub>C. v\<^sub>C \<notin> range var\<^sub>C_of \<longrightarrow> v\<^sub>C \<in> mds\<^sub>C AsmNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoReadOrWrite; x \<notin> mds\<^sub>A GuarNoWrite; x \<notin> \<C>; \<forall>mds\<^sub>A' mem\<^sub>A' mem\<^sub>A'' mds\<^sub>C'' mem\<^sub>C' mem\<^sub>C''. mds\<^sub>A' = mds\<^sub>A_of mds\<^sub>C'' \<and> mem\<^sub>A' = mem\<^sub>A_of mem\<^sub>C' \<and> mem\<^sub>A'' = mem\<^sub>A_of mem\<^sub>C'' \<and> eval_abv\<^sub>A \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A''\<rangle>\<^sub>A \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A \<and> eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C''\<rangle>\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (eval_abv\<^sub>C \<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C \<longrightarrow> (\<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>Stop ;; c\<^sub>A_tail, mds\<^sub>A', mem\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>Stop ;; c\<^sub>C_tail, mds\<^sub>C'', mem\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A', mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C'', mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C)))); eval_abv\<^sub>C \<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C\<rbrakk> \<Longrightarrow> \<exists>n c\<^sub>1\<^sub>A'. A.neval \<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A n \<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A \<and> (\<langle>c\<^sub>1\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>A_of mem\<^sub>1\<^sub>C'\<rangle>\<^sub>A, \<langle>c\<^sub>1\<^sub>C', mds\<^sub>C', mem\<^sub>1\<^sub>C'\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<forall>c\<^sub>2\<^sub>A c\<^sub>2\<^sub>C mem\<^sub>2\<^sub>C c\<^sub>2\<^sub>A' mem\<^sub>2\<^sub>A'. (\<langle>c\<^sub>A, mds\<^sub>A, mem\<^sub>A\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A) \<in> A.R \<and> (\<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> RefRel_HighBranch \<and> (\<langle>c\<^sub>C, mds\<^sub>C, mem\<^sub>C\<rangle>\<^sub>C, \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C) \<in> rel_inv\<^sub>C \<and> A.neval \<langle>c\<^sub>2\<^sub>A, mds\<^sub>A, mem\<^sub>A_of mem\<^sub>2\<^sub>C\<rangle>\<^sub>A n \<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A \<longrightarrow> (\<exists>c\<^sub>2\<^sub>C' mem\<^sub>2\<^sub>C'. eval_abv\<^sub>C \<langle>c\<^sub>2\<^sub>C, mds\<^sub>C, mem\<^sub>2\<^sub>C\<rangle>\<^sub>C \<langle>c\<^sub>2\<^sub>C', mds\<^sub>C', mem\<^sub>2\<^sub>C'\<rangle>\<^sub>C \<and> (\<langle>c\<^sub>2\<^sub>A', mds\<^sub>A_of mds\<^sub>C', mem\<^sub>2\<^sub>A'\<rangle>\<^sub>A, \<la