src/HOL/HOLCF/Library/List_Predomain.thy
changeset 69597 ff784d5a5bfb
parent 62175 8ffc4d0e652d
equal deleted inserted replaced
69596:c8a2755bf220 69597:ff784d5a5bfb
    59 apply (intro monofun_cfun below_refl)
    59 apply (intro monofun_cfun below_refl)
    60 apply (simp add: cfun_below_iff ep_pair.e_p_below)
    60 apply (simp add: cfun_below_iff ep_pair.e_p_below)
    61 done
    61 done
    62 
    62 
    63 text \<open>
    63 text \<open>
    64   Types @{typ "'a list u"}. and @{typ "'a u slist"} are isomorphic.
    64   Types \<^typ>\<open>'a list u\<close>. and \<^typ>\<open>'a u slist\<close> are isomorphic.
    65 \<close>
    65 \<close>
    66 
    66 
    67 fixrec encode_list_u where
    67 fixrec encode_list_u where
    68   "encode_list_u\<cdot>(up\<cdot>[]) = SNil" |
    68   "encode_list_u\<cdot>(up\<cdot>[]) = SNil" |
    69   "encode_list_u\<cdot>(up\<cdot>(x # xs)) = SCons\<cdot>(up\<cdot>x)\<cdot>(encode_list_u\<cdot>(up\<cdot>xs))"
    69   "encode_list_u\<cdot>(up\<cdot>(x # xs)) = SCons\<cdot>(up\<cdot>x)\<cdot>(encode_list_u\<cdot>(up\<cdot>xs))"
   166 apply (simp add: cfcomp1 encode_list_u_map)
   166 apply (simp add: cfcomp1 encode_list_u_map)
   167 apply (simp add: slist_map'_slist_map' u_emb_bottom)
   167 apply (simp add: slist_map'_slist_map' u_emb_bottom)
   168 done
   168 done
   169 
   169 
   170 setup \<open>
   170 setup \<open>
   171   Domain_Take_Proofs.add_rec_type (@{type_name "list"}, [true])
   171   Domain_Take_Proofs.add_rec_type (\<^type_name>\<open>list\<close>, [true])
   172 \<close>
   172 \<close>
   173 
   173 
   174 end
   174 end