equal
deleted
inserted
replaced
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]: |