src/HOL/HOLCF/Tools/Domain/domain_constructors.ML
changeset 60801 7664e0916eec
parent 60754 02924903a6fd
child 63003 bf5fcc65586b
equal deleted inserted replaced
60799:57dd0b45fc21 60801:7664e0916eec
   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