src/HOL/HOLCF/Domain.thy
changeset 41437 5bc117c382ec
parent 41436 480978f80eae
child 41529 ba60efa2fd08
equal deleted inserted replaced
41436:480978f80eae 41437:5bc117c382ec
   272 apply (simp add: emb_prod_def prj_prod_def)
   272 apply (simp add: emb_prod_def prj_prod_def)
   273 apply (simp add: prod_map_map cfcomp1)
   273 apply (simp add: prod_map_map cfcomp1)
   274 done
   274 done
   275 
   275 
   276 lemma isodefl_u:
   276 lemma isodefl_u:
   277   "isodefl' d t \<Longrightarrow> isodefl (u_map\<cdot>d) (u_defl\<cdot>t)"
   277   "isodefl d t \<Longrightarrow> isodefl (u_map\<cdot>d) (u_defl\<cdot>t)"
   278 apply (rule isodeflI)
   278 apply (rule isodeflI)
   279 apply (simp add: cast_u_defl isodefl'_def)
   279 apply (simp add: cast_u_defl cast_isodefl)
       
   280 apply (simp add: emb_u_def prj_u_def liftemb_eq liftprj_eq u_map_map)
       
   281 done
       
   282 
       
   283 lemma isodefl_u_liftdefl:
       
   284   "isodefl' d t \<Longrightarrow> isodefl (u_map\<cdot>d) (u_liftdefl\<cdot>t)"
       
   285 apply (rule isodeflI)
       
   286 apply (simp add: cast_u_liftdefl isodefl'_def)
   280 apply (simp add: emb_u_def prj_u_def liftemb_eq liftprj_eq)
   287 apply (simp add: emb_u_def prj_u_def liftemb_eq liftprj_eq)
   281 done
   288 done
   282 
   289 
   283 lemma encode_prod_u_map:
   290 lemma encode_prod_u_map:
   284   "encode_prod_u\<cdot>(u_map\<cdot>(prod_map\<cdot>f\<cdot>g)\<cdot>(decode_prod_u\<cdot>x))
   291   "encode_prod_u\<cdot>(u_map\<cdot>(prod_map\<cdot>f\<cdot>g)\<cdot>(decode_prod_u\<cdot>x))
   317 
   324 
   318 setup Domain_Isomorphism.setup
   325 setup Domain_Isomorphism.setup
   319 
   326 
   320 lemmas [domain_defl_simps] =
   327 lemmas [domain_defl_simps] =
   321   DEFL_cfun DEFL_sfun DEFL_ssum DEFL_sprod DEFL_prod DEFL_u
   328   DEFL_cfun DEFL_sfun DEFL_ssum DEFL_sprod DEFL_prod DEFL_u
   322   liftdefl_eq LIFTDEFL_prod
   329   liftdefl_eq LIFTDEFL_prod u_liftdefl_liftdefl_of
   323 
   330 
   324 lemmas [domain_map_ID] =
   331 lemmas [domain_map_ID] =
   325   cfun_map_ID sfun_map_ID ssum_map_ID sprod_map_ID prod_map_ID u_map_ID
   332   cfun_map_ID sfun_map_ID ssum_map_ID sprod_map_ID prod_map_ID u_map_ID
   326 
   333 
   327 lemmas [domain_isodefl] =
   334 lemmas [domain_isodefl] =
   328   isodefl_u isodefl_sfun isodefl_ssum isodefl_sprod
   335   isodefl_u isodefl_sfun isodefl_ssum isodefl_sprod
   329   isodefl_cfun isodefl_prod isodefl_prod_u isodefl'_liftdefl_of
   336   isodefl_cfun isodefl_prod isodefl_prod_u isodefl'_liftdefl_of
       
   337   isodefl_u_liftdefl
   330 
   338 
   331 lemmas [domain_deflation] =
   339 lemmas [domain_deflation] =
   332   deflation_cfun_map deflation_sfun_map deflation_ssum_map
   340   deflation_cfun_map deflation_sfun_map deflation_ssum_map
   333   deflation_sprod_map deflation_prod_map deflation_u_map
   341   deflation_sprod_map deflation_prod_map deflation_u_map
   334 
   342