114 apply ( force dest!: fstream_prefix |
114 apply ( force dest!: fstream_prefix |
115 dest: BufAC_Asm_d3 intro!: BufAC_Asm_d_req) |
115 dest: BufAC_Asm_d3 intro!: BufAC_Asm_d_req) |
116 done |
116 done |
117 |
117 |
118 (*adm_BufAC_Asm,BufAC_Asm_antiton,adm_non_BufAC_Asm,BufAC_Asm_cong*) |
118 (*adm_BufAC_Asm,BufAC_Asm_antiton,adm_non_BufAC_Asm,BufAC_Asm_cong*) |
119 lemma BufAC_Cmt_2stream_monoP: "f:BufEq ==> ? l. !i x s. s:BufAC_Asm --> x << s --> Fin (l i) < #x --> |
119 lemma BufAC_Cmt_2stream_monoP: "f:BufEq ==> ? l. !i x s. s:BufAC_Asm --> x << s --> enat (l i) < #x --> |
120 (x,f\<cdot>x):down_iterate BufAC_Cmt_F i --> |
120 (x,f\<cdot>x):down_iterate BufAC_Cmt_F i --> |
121 (s,f\<cdot>s):down_iterate BufAC_Cmt_F i" |
121 (s,f\<cdot>s):down_iterate BufAC_Cmt_F i" |
122 apply (rule_tac x="%i. 2*i" in exI) |
122 apply (rule_tac x="%i. 2*i" in exI) |
123 apply (rule allI) |
123 apply (rule allI) |
124 apply (induct_tac "i") |
124 apply (induct_tac "i") |
137 (* |
137 (* |
138 1. \<And>i d xa ya t. |
138 1. \<And>i d xa ya t. |
139 \<lbrakk>f \<in> BufEq; |
139 \<lbrakk>f \<in> BufEq; |
140 \<forall>x s. s \<in> BufAC_Asm \<longrightarrow> |
140 \<forall>x s. s \<in> BufAC_Asm \<longrightarrow> |
141 x \<sqsubseteq> s \<longrightarrow> |
141 x \<sqsubseteq> s \<longrightarrow> |
142 Fin (2 * i) < #x \<longrightarrow> |
142 enat (2 * i) < #x \<longrightarrow> |
143 (x, f\<cdot>x) \<in> down_iterate BufAC_Cmt_F i \<longrightarrow> |
143 (x, f\<cdot>x) \<in> down_iterate BufAC_Cmt_F i \<longrightarrow> |
144 (s, f\<cdot>s) \<in> down_iterate BufAC_Cmt_F i; |
144 (s, f\<cdot>s) \<in> down_iterate BufAC_Cmt_F i; |
145 Md d\<leadsto>\<bullet>\<leadsto>xa \<in> BufAC_Asm; Fin (2 * i) < #ya; f\<cdot>(Md d\<leadsto>\<bullet>\<leadsto>ya) = d\<leadsto>t; |
145 Md d\<leadsto>\<bullet>\<leadsto>xa \<in> BufAC_Asm; enat (2 * i) < #ya; f\<cdot>(Md d\<leadsto>\<bullet>\<leadsto>ya) = d\<leadsto>t; |
146 (ya, t) \<in> down_iterate BufAC_Cmt_F i; ya \<sqsubseteq> xa\<rbrakk> |
146 (ya, t) \<in> down_iterate BufAC_Cmt_F i; ya \<sqsubseteq> xa\<rbrakk> |
147 \<Longrightarrow> (xa, rt\<cdot>(f\<cdot>(Md d\<leadsto>\<bullet>\<leadsto>xa))) \<in> down_iterate BufAC_Cmt_F i |
147 \<Longrightarrow> (xa, rt\<cdot>(f\<cdot>(Md d\<leadsto>\<bullet>\<leadsto>xa))) \<in> down_iterate BufAC_Cmt_F i |
148 *) |
148 *) |
149 apply (rotate_tac 2) |
149 apply (rotate_tac 2) |
150 apply (drule BufAC_Asm_prefix2) |
150 apply (drule BufAC_Asm_prefix2) |
156 apply ( rotate_tac -1) |
156 apply ( rotate_tac -1) |
157 apply ( simp) |
157 apply ( simp) |
158 apply (erule subst) |
158 apply (erule subst) |
159 (* |
159 (* |
160 1. \<And>i d xa ya t ff ffa. |
160 1. \<And>i d xa ya t ff ffa. |
161 \<lbrakk>f\<cdot>(Md d\<leadsto>\<bullet>\<leadsto>ya) = d\<leadsto>ffa\<cdot>ya; Fin (2 * i) < #ya; |
161 \<lbrakk>f\<cdot>(Md d\<leadsto>\<bullet>\<leadsto>ya) = d\<leadsto>ffa\<cdot>ya; enat (2 * i) < #ya; |
162 (ya, ffa\<cdot>ya) \<in> down_iterate BufAC_Cmt_F i; ya \<sqsubseteq> xa; f \<in> BufEq; |
162 (ya, ffa\<cdot>ya) \<in> down_iterate BufAC_Cmt_F i; ya \<sqsubseteq> xa; f \<in> BufEq; |
163 \<forall>x s. s \<in> BufAC_Asm \<longrightarrow> |
163 \<forall>x s. s \<in> BufAC_Asm \<longrightarrow> |
164 x \<sqsubseteq> s \<longrightarrow> |
164 x \<sqsubseteq> s \<longrightarrow> |
165 Fin (2 * i) < #x \<longrightarrow> |
165 enat (2 * i) < #x \<longrightarrow> |
166 (x, f\<cdot>x) \<in> down_iterate BufAC_Cmt_F i \<longrightarrow> |
166 (x, f\<cdot>x) \<in> down_iterate BufAC_Cmt_F i \<longrightarrow> |
167 (s, f\<cdot>s) \<in> down_iterate BufAC_Cmt_F i; |
167 (s, f\<cdot>s) \<in> down_iterate BufAC_Cmt_F i; |
168 xa \<in> BufAC_Asm; ff \<in> BufEq; ffa \<in> BufEq\<rbrakk> |
168 xa \<in> BufAC_Asm; ff \<in> BufEq; ffa \<in> BufEq\<rbrakk> |
169 \<Longrightarrow> (xa, ff\<cdot>xa) \<in> down_iterate BufAC_Cmt_F i |
169 \<Longrightarrow> (xa, ff\<cdot>xa) \<in> down_iterate BufAC_Cmt_F i |
170 *) |
170 *) |