@@ -3,7 +3,7 @@ theory CFGOptimizationsLoop
33begin
44
55definition hybrid_block_lemma_target_succ_verifies
6- where "hybrid_block_lemma_target_succ_verifies A M \<Lambda> \<Gamma> \<Omega> G' tgt_block s1' posts\<equiv>
6+ where "hybrid_block_lemma_target_succ_verifies A M \<Lambda> \<Gamma> \<Omega> G' tgt_block s1' posts \<equiv>
77 (\<forall>ns1'. s1' = Normal ns1' \<longrightarrow>
88 (\<forall>target_succ. List.member (out_edges(G') ! tgt_block) target_succ \<longrightarrow>
99 (\<forall>m2' s2'. (A,M,\<Lambda>,\<Gamma>,\<Omega>,G' \<turnstile> (Inl target_succ, (Normal ns1')) -n\<rightarrow>* (m2', s2')) \<longrightarrow>
@@ -12,10 +12,10 @@ definition hybrid_block_lemma_target_succ_verifies
1212 )"
1313
1414definition hybrid_block_lemma_target_verifies
15- where "hybrid_block_lemma_target_verifies A M \<Lambda> \<Gamma> \<Omega> G' tgt_block tgt_cmds ns posts\<equiv>
15+ where "hybrid_block_lemma_target_verifies A M \<Lambda> \<Gamma> \<Omega> G' tgt_block tgt_cmds ns posts \<equiv>
1616 (\<forall>s1'. (A,M,\<Lambda>,\<Gamma>,\<Omega> \<turnstile> \<langle>tgt_cmds, Normal ns\<rangle> [\<rightarrow>] s1') \<longrightarrow> \<comment>\<open>First reduce the coalesced commands\<close>
1717 (if (out_edges(G') ! tgt_block = []) then valid_configuration A \<Lambda> \<Gamma> \<Omega> posts (Inr()) s1' else s1' \<noteq> Failure) \<and>
18- \<comment>\<open>All successors blocks of \<^term>\<open>tgt_block\<close> must verify\<close>
18+ \<comment>\<open>All successor blocks of \<^term>\<open>tgt_block\<close> must verify\<close>
1919 hybrid_block_lemma_target_succ_verifies A M \<Lambda> \<Gamma> \<Omega> G' tgt_block s1' posts
2020 )"
2121
@@ -307,8 +307,8 @@ subsubsection \<open>Main Lemma 1: Shows that the Loop Global Block Lemma holds
307307
308308lemma loopBlock_global_block :
309309 assumes SuccBlocks : "out_edges G ! src_block = ls"
310- and GlobalBlockSucc : "\<forall>x\<in>set(ls).(\<exists>lsSubsetList. lsSubsetList\<subseteq>lsLoopHead \<and> global_block_lemma_loop A M \<Lambda> \<Gamma> \<Omega> G G' x (f(x)) lsSubsetList posts) \<or> (\<exists>(LoopHead, LoopHead')\<in>lsLoopHead. (x = LoopHead \<and> f(x) = LoopHead'))"
311- and FunctionCorr : "\<forall>x\<in>set(ls). f(x) \<in>set(out_edges G' ! tgt_block)"
310+ and GlobalBlockSucc : "\<forall>x\<in>set(ls).(\<exists>lsSubsetList. lsSubsetList\<subseteq>lsLoopHead \<and> global_block_lemma_loop A M \<Lambda> \<Gamma> \<Omega> G G' x (f x) lsSubsetList posts) \<or> (\<exists>(LoopHead, LoopHead')\<in>lsLoopHead. (x = LoopHead \<and> f x = LoopHead'))"
311+ and FunctionCorr : "\<forall>x\<in>set(ls). f x \<in> set(out_edges G' ! tgt_block)"
312312 and TargetBlock : "node_to_block G' ! tgt_block = tgt_cmds"
313313 and SourceBlock : "node_to_block G ! src_block = src_cmds"
314314 and NotCoalesced : "tgt_cmds = src_cmds"
@@ -431,9 +431,9 @@ lemma loopHead_global_block:
431431 assumes SuccBlocks : "out_edges G ! src_block = ls"
432432 and GlobalBlockSucc :
433433 "\<forall>x\<in>set(ls). ( \<exists>lsSubsetList. lsSubsetList\<subseteq>(lsLoopHead \<union> {(src_block,tgt_block)}) \<and>
434- global_block_lemma_loop A M \<Lambda> \<Gamma> \<Omega> G G' x (f(x) ) lsSubsetList posts )
435- \<or> (\<exists>(LoopHead, LoopHead')\<in>(lsLoopHead\<union>{(src_block,tgt_block)}). (x = LoopHead \<and> f(x) = LoopHead'))"
436- and FunctionCorr : "\<forall>x\<in>set(ls). f(x) \<in>set(out_edges G' ! tgt_block)"
434+ global_block_lemma_loop A M \<Lambda> \<Gamma> \<Omega> G G' x (f x ) lsSubsetList posts )
435+ \<or> (\<exists>(LoopHead, LoopHead')\<in>(lsLoopHead\<union>{(src_block,tgt_block)}). (x = LoopHead \<and> f x = LoopHead'))"
436+ and FunctionCorr : "\<forall>x\<in>set(ls). f x \<in> set(out_edges G' ! tgt_block)"
437437 and TargetBlock : "node_to_block G' ! tgt_block = tgt_cmds"
438438 and SourceBlock : "node_to_block G ! src_block = src_cmds"
439439 and NotCoalesced : "tgt_cmds = src_cmds"
@@ -726,9 +726,9 @@ lemma loopBlock_global_block_hybrid:
726726 assumes SuccBlocks : "out_edges G ! src_block = ls"
727727 and GlobalBlockSucc :
728728 "\<forall>x\<in>set(ls).
729- (\<exists>lsSubsetList. lsSubsetList\<subseteq>lsLoopHead \<and> global_block_lemma_loop A M \<Lambda> \<Gamma> \<Omega> G G' x (f(x) ) lsSubsetList posts)
730- \<or> (\<exists>(LoopHead, LoopHead')\<in>lsLoopHead. (x = LoopHead \<and> f(x) = LoopHead'))"
731- and FunctionCorr : "\<forall>x\<in>set(ls). f(x) \<in>set(out_edges G' ! tgt_block)"
729+ (\<exists>lsSubsetList. lsSubsetList\<subseteq>lsLoopHead \<and> global_block_lemma_loop A M \<Lambda> \<Gamma> \<Omega> G G' x (f x ) lsSubsetList posts)
730+ \<or> (\<exists>(LoopHead, LoopHead')\<in>lsLoopHead. (x = LoopHead \<and> f x = LoopHead'))"
731+ and FunctionCorr : "\<forall>x\<in>set(ls). f x \<in> set (out_edges G' ! tgt_block)"
732732 and SourceBlock : "node_to_block G ! src_block = src_cmds"
733733 and NoSuccEq : "ls = [] \<Longrightarrow> out_edges G' ! tgt_block = []"
734734 shows "hybrid_block_lemma_loop A M \<Lambda> \<Gamma> \<Omega> G G' src_block tgt_block src_cmds lsLoopHead posts"
0 commit comments