src/HOL/HOLCF/UpperPD.thy
changeset 80768 c7723cc15de8
parent 67682 00c436488398
child 80786 70076ba563d2
equal deleted inserted replaced
80767:079fe4292526 80768:c7723cc15de8
   131     (infixl "\<union>\<sharp>" 65) where
   131     (infixl "\<union>\<sharp>" 65) where
   132   "xs \<union>\<sharp> ys == upper_plus\<cdot>xs\<cdot>ys"
   132   "xs \<union>\<sharp> ys == upper_plus\<cdot>xs\<cdot>ys"
   133 
   133 
   134 syntax
   134 syntax
   135   "_upper_pd" :: "args \<Rightarrow> logic" ("{_}\<sharp>")
   135   "_upper_pd" :: "args \<Rightarrow> logic" ("{_}\<sharp>")
       
   136 
       
   137 syntax_consts
       
   138   "_upper_pd" == upper_add
   136 
   139 
   137 translations
   140 translations
   138   "{x,xs}\<sharp>" == "{x}\<sharp> \<union>\<sharp> {xs}\<sharp>"
   141   "{x,xs}\<sharp>" == "{x}\<sharp> \<union>\<sharp> {xs}\<sharp>"
   139   "{x}\<sharp>" == "CONST upper_unit\<cdot>x"
   142   "{x}\<sharp>" == "CONST upper_unit\<cdot>x"
   140 
   143 
   332   "upper_bind = upper_pd.extension upper_bind_basis"
   335   "upper_bind = upper_pd.extension upper_bind_basis"
   333 
   336 
   334 syntax
   337 syntax
   335   "_upper_bind" :: "[logic, logic, logic] \<Rightarrow> logic"
   338   "_upper_bind" :: "[logic, logic, logic] \<Rightarrow> logic"
   336     ("(3\<Union>\<sharp>_\<in>_./ _)" [0, 0, 10] 10)
   339     ("(3\<Union>\<sharp>_\<in>_./ _)" [0, 0, 10] 10)
       
   340 
       
   341 syntax_consts
       
   342   "_upper_bind" == upper_bind
   337 
   343 
   338 translations
   344 translations
   339   "\<Union>\<sharp>x\<in>xs. e" == "CONST upper_bind\<cdot>xs\<cdot>(\<Lambda> x. e)"
   345   "\<Union>\<sharp>x\<in>xs. e" == "CONST upper_bind\<cdot>xs\<cdot>(\<Lambda> x. e)"
   340 
   346 
   341 lemma upper_bind_principal [simp]:
   347 lemma upper_bind_principal [simp]: