src/HOLCF/UpperPD.thy
changeset 29511 7071b017cb35
parent 29252 ea97aa6aeba2
child 29672 07f3da9fd2a0
equal deleted inserted replaced
29510:6fe4200532b7 29511:7071b017cb35
   246 lemma upper_plus_absorb: "xs +\<sharp> xs = xs"
   246 lemma upper_plus_absorb: "xs +\<sharp> xs = xs"
   247 apply (induct xs rule: upper_pd.principal_induct, simp)
   247 apply (induct xs rule: upper_pd.principal_induct, simp)
   248 apply (simp add: PDPlus_absorb)
   248 apply (simp add: PDPlus_absorb)
   249 done
   249 done
   250 
   250 
   251 class_interpretation aci_upper_plus: ab_semigroup_idem_mult ["op +\<sharp>"]
   251 interpretation aci_upper_plus!: ab_semigroup_idem_mult "op +\<sharp>"
   252   by unfold_locales
   252   proof qed (rule upper_plus_assoc upper_plus_commute upper_plus_absorb)+
   253     (rule upper_plus_assoc upper_plus_commute upper_plus_absorb)+
       
   254 
   253 
   255 lemma upper_plus_left_commute: "xs +\<sharp> (ys +\<sharp> zs) = ys +\<sharp> (xs +\<sharp> zs)"
   254 lemma upper_plus_left_commute: "xs +\<sharp> (ys +\<sharp> zs) = ys +\<sharp> (xs +\<sharp> zs)"
   256 by (rule aci_upper_plus.mult_left_commute)
   255 by (rule aci_upper_plus.mult_left_commute)
   257 
   256 
   258 lemma upper_plus_left_absorb: "xs +\<sharp> (xs +\<sharp> ys) = xs +\<sharp> ys"
   257 lemma upper_plus_left_absorb: "xs +\<sharp> (xs +\<sharp> ys) = xs +\<sharp> ys"