equal
deleted
inserted
replaced
211 let |
211 let |
212 val (n1, t1) = args2typ n (snd con) |
212 val (n1, t1) = args2typ n (snd con) |
213 val (n2, t2) = cons2typ n1 cons |
213 val (n2, t2) = cons2typ n1 cons |
214 in (n2, mk_ssumT (t1, t2)) end |
214 in (n2, mk_ssumT (t1, t2)) end |
215 val ct = Thm.global_ctyp_of thy (snd (cons2typ 1 spec')) |
215 val ct = Thm.global_ctyp_of thy (snd (cons2typ 1 spec')) |
216 val thm1 = instantiate' [SOME ct] [] @{thm exh_start} |
216 val thm1 = Thm.instantiate' [SOME ct] [] @{thm exh_start} |
217 val thm2 = rewrite_rule (Proof_Context.init_global thy) |
217 val thm2 = rewrite_rule (Proof_Context.init_global thy) |
218 (map mk_meta_eq @{thms ex_bottom_iffs}) thm1 |
218 (map mk_meta_eq @{thms ex_bottom_iffs}) thm1 |
219 val thm3 = rewrite_rule (Proof_Context.init_global thy) |
219 val thm3 = rewrite_rule (Proof_Context.init_global thy) |
220 [mk_meta_eq @{thm conj_assoc}] thm2 |
220 [mk_meta_eq @{thm conj_assoc}] thm2 |
221 |
221 |