src/HOL/HOLCF/ex/Domain_Proofs.thy
changeset 41290 e9c9577d88b5
parent 41287 029a6fc1bfb8
child 41292 2b7bc8d9fd6e
equal deleted inserted replaced
41289:f655912ac235 41290:e9c9577d88b5
   105 
   105 
   106 definition defl_foo :: "'a foo itself \<Rightarrow> udom defl"
   106 definition defl_foo :: "'a foo itself \<Rightarrow> udom defl"
   107 where "defl_foo \<equiv> \<lambda>a. foo_defl\<cdot>LIFTDEFL('a)"
   107 where "defl_foo \<equiv> \<lambda>a. foo_defl\<cdot>LIFTDEFL('a)"
   108 
   108 
   109 definition
   109 definition
   110   "(liftemb :: 'a foo u \<rightarrow> udom) \<equiv> udom_emb u_approx oo u_map\<cdot>emb"
   110   "(liftemb :: 'a foo u \<rightarrow> udom) \<equiv> u_emb oo u_map\<cdot>emb"
   111 
   111 
   112 definition
   112 definition
   113   "(liftprj :: udom \<rightarrow> 'a foo u) \<equiv> u_map\<cdot>prj oo udom_prj u_approx"
   113   "(liftprj :: udom \<rightarrow> 'a foo u) \<equiv> u_map\<cdot>prj oo u_prj"
   114 
   114 
   115 definition
   115 definition
   116   "liftdefl \<equiv> \<lambda>(t::'a foo itself). u_defl\<cdot>DEFL('a foo)"
   116   "liftdefl \<equiv> \<lambda>(t::'a foo itself). u_defl\<cdot>DEFL('a foo)"
   117 
   117 
   118 instance
   118 instance
   140 
   140 
   141 definition defl_bar :: "'a bar itself \<Rightarrow> udom defl"
   141 definition defl_bar :: "'a bar itself \<Rightarrow> udom defl"
   142 where "defl_bar \<equiv> \<lambda>a. bar_defl\<cdot>LIFTDEFL('a)"
   142 where "defl_bar \<equiv> \<lambda>a. bar_defl\<cdot>LIFTDEFL('a)"
   143 
   143 
   144 definition
   144 definition
   145   "(liftemb :: 'a bar u \<rightarrow> udom) \<equiv> udom_emb u_approx oo u_map\<cdot>emb"
   145   "(liftemb :: 'a bar u \<rightarrow> udom) \<equiv> u_emb oo u_map\<cdot>emb"
   146 
   146 
   147 definition
   147 definition
   148   "(liftprj :: udom \<rightarrow> 'a bar u) \<equiv> u_map\<cdot>prj oo udom_prj u_approx"
   148   "(liftprj :: udom \<rightarrow> 'a bar u) \<equiv> u_map\<cdot>prj oo u_prj"
   149 
   149 
   150 definition
   150 definition
   151   "liftdefl \<equiv> \<lambda>(t::'a bar itself). u_defl\<cdot>DEFL('a bar)"
   151   "liftdefl \<equiv> \<lambda>(t::'a bar itself). u_defl\<cdot>DEFL('a bar)"
   152 
   152 
   153 instance
   153 instance
   175 
   175 
   176 definition defl_baz :: "'a baz itself \<Rightarrow> udom defl"
   176 definition defl_baz :: "'a baz itself \<Rightarrow> udom defl"
   177 where "defl_baz \<equiv> \<lambda>a. baz_defl\<cdot>LIFTDEFL('a)"
   177 where "defl_baz \<equiv> \<lambda>a. baz_defl\<cdot>LIFTDEFL('a)"
   178 
   178 
   179 definition
   179 definition
   180   "(liftemb :: 'a baz u \<rightarrow> udom) \<equiv> udom_emb u_approx oo u_map\<cdot>emb"
   180   "(liftemb :: 'a baz u \<rightarrow> udom) \<equiv> u_emb oo u_map\<cdot>emb"
   181 
   181 
   182 definition
   182 definition
   183   "(liftprj :: udom \<rightarrow> 'a baz u) \<equiv> u_map\<cdot>prj oo udom_prj u_approx"
   183   "(liftprj :: udom \<rightarrow> 'a baz u) \<equiv> u_map\<cdot>prj oo u_prj"
   184 
   184 
   185 definition
   185 definition
   186   "liftdefl \<equiv> \<lambda>(t::'a baz itself). u_defl\<cdot>DEFL('a baz)"
   186   "liftdefl \<equiv> \<lambda>(t::'a baz itself). u_defl\<cdot>DEFL('a baz)"
   187 
   187 
   188 instance
   188 instance