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