src/HOL/MicroJava/BV/SemilatAlg.thy
changeset 23281 e26ec695c9b3
parent 16417 9bc16273c2d4
child 23464 bc2563c37b1a
equal deleted inserted replaced
23280:4e61c67a87e3 23281:e26ec695c9b3
   154 qed
   154 qed
   155 
   155 
   156 
   156 
   157 lemma ub1': includes semilat
   157 lemma ub1': includes semilat
   158 shows "\<lbrakk>\<forall>(p,s) \<in> set S. s \<in> A; y \<in> A; (a,b) \<in> set S\<rbrakk> 
   158 shows "\<lbrakk>\<forall>(p,s) \<in> set S. s \<in> A; y \<in> A; (a,b) \<in> set S\<rbrakk> 
   159   \<Longrightarrow> b <=_r map snd [(p', t')\<in>S. p' = a] ++_f y" 
   159   \<Longrightarrow> b <=_r map snd [(p', t')\<leftarrow>S. p' = a] ++_f y" 
   160 proof -
   160 proof -
   161   let "b <=_r ?map ++_f y" = ?thesis
   161   let "b <=_r ?map ++_f y" = ?thesis
   162 
   162 
   163   assume "y \<in> A"
   163   assume "y \<in> A"
   164   moreover
   164   moreover
   173     
   173     
   174  
   174  
   175 
   175 
   176 lemma plusplus_empty:  
   176 lemma plusplus_empty:  
   177   "\<forall>s'. (q, s') \<in> set S \<longrightarrow> s' +_f ss ! q = ss ! q \<Longrightarrow>
   177   "\<forall>s'. (q, s') \<in> set S \<longrightarrow> s' +_f ss ! q = ss ! q \<Longrightarrow>
   178    (map snd [(p', t')\<in> S. p' = q] ++_f ss ! q) = ss ! q"
   178    (map snd [(p', t') \<leftarrow> S. p' = q] ++_f ss ! q) = ss ! q"
   179 apply (induct S)
   179 apply (induct S)
   180 apply auto 
   180 apply auto 
   181 done
   181 done
   182 
   182 
   183 
   183