equal
deleted
inserted
replaced
195 val (result, thy) = |
195 val (result, thy) = |
196 Domain_Constructors.add_domain_constructors |
196 Domain_Constructors.add_domain_constructors |
197 (Long_Name.base_name dname) dom_eqn |
197 (Long_Name.base_name dname) dom_eqn |
198 (rep_const, abs_const) (ax_rep_iso, ax_abs_iso) thy; |
198 (rep_const, abs_const) (ax_rep_iso, ax_abs_iso) thy; |
199 |
199 |
200 val axs_con_def = #con_defs result; |
200 val con_appls = #con_betas result; |
201 val con_compacts = #con_compacts result; |
201 val con_compacts = #con_compacts result; |
202 val sel_rews = #sel_rews result; |
202 val sel_rews = #sel_rews result; |
203 |
203 |
204 (* ----- theorems concerning the isomorphism -------------------------------- *) |
204 (* ----- theorems concerning the isomorphism -------------------------------- *) |
205 |
205 |
242 in pg (def::betas) appl (K [rtac reflexive_thm 1]) end; |
242 in pg (def::betas) appl (K [rtac reflexive_thm 1]) end; |
243 end; |
243 end; |
244 |
244 |
245 val _ = trace "Proving when_appl..."; |
245 val _ = trace "Proving when_appl..."; |
246 val when_appl = appl_of_def ax_when_def; |
246 val when_appl = appl_of_def ax_when_def; |
247 val _ = trace "Proving con_appls..."; |
|
248 val con_appls = map appl_of_def axs_con_def; |
|
249 |
247 |
250 local |
248 local |
251 fun arg2typ n arg = |
249 fun arg2typ n arg = |
252 let val t = TVar (("'a", n), pcpoS) |
250 let val t = TVar (("'a", n), pcpoS) |
253 in (n + 1, if is_lazy arg then mk_uT t else t) end; |
251 in (n + 1, if is_lazy arg then mk_uT t else t) end; |