src/HOL/UNITY/Transformers.thy
changeset 30971 7fbebf75b3ef
parent 30952 7ab2716dd93b
child 32587 caa5ada96a00
equal deleted inserted replaced
30970:3fe2e418a071 30971:7fbebf75b3ef
   336 
   336 
   337 text{*Next, we express the @{term "wens_set"} for single-assignment programs*}
   337 text{*Next, we express the @{term "wens_set"} for single-assignment programs*}
   338 
   338 
   339 constdefs
   339 constdefs
   340   wens_single_finite :: "[('a*'a) set, 'a set, nat] => 'a set"  
   340   wens_single_finite :: "[('a*'a) set, 'a set, nat] => 'a set"  
   341     "wens_single_finite act B k == \<Union>i \<in> atMost k. (wp act o^ i) B"
   341     "wens_single_finite act B k == \<Union>i \<in> atMost k. (wp act ^^ i) B"
   342 
   342 
   343   wens_single :: "[('a*'a) set, 'a set] => 'a set"  
   343   wens_single :: "[('a*'a) set, 'a set] => 'a set"  
   344     "wens_single act B == \<Union>i. (wp act o^ i) B"
   344     "wens_single act B == \<Union>i. (wp act ^^ i) B"
   345 
   345 
   346 lemma wens_single_Un_eq:
   346 lemma wens_single_Un_eq:
   347       "single_valued act
   347       "single_valued act
   348        ==> wens_single act B \<union> wp act (wens_single act B) = wens_single act B"
   348        ==> wens_single act B \<union> wp act (wens_single act B) = wens_single act B"
   349 apply (rule equalityI)
   349 apply (rule equalityI)