src/HOL/Nominal/nominal_datatype.ML
changeset 59635 025f70f35daf
parent 59621 291934bac95e
child 59859 f9d1442c70f3
equal deleted inserted replaced
59634:4b94cc030ba0 59635:025f70f35daf
   106       in if member (op =) (permTs_of u) aT andalso aT <> bT then
   106       in if member (op =) (permTs_of u) aT andalso aT <> bT then
   107           let
   107           let
   108             val cp = cp_inst_of thy a b;
   108             val cp = cp_inst_of thy a b;
   109             val dj = dj_thm_of thy b a;
   109             val dj = dj_thm_of thy b a;
   110             val dj_cp' = [cp, dj] MRS dj_cp;
   110             val dj_cp' = [cp, dj] MRS dj_cp;
   111             val cert = SOME o Thm.global_cterm_of thy
   111             val cert = SOME o Thm.cterm_of ctxt
   112           in
   112           in
   113             SOME (mk_meta_eq (Drule.instantiate' [SOME (Thm.global_ctyp_of thy S)]
   113             SOME (mk_meta_eq (Drule.instantiate' [SOME (Thm.ctyp_of ctxt S)]
   114               [cert t, cert r, cert s] dj_cp'))
   114               [cert t, cert r, cert s] dj_cp'))
   115           end
   115           end
   116         else NONE
   116         else NONE
   117       end
   117       end
   118   | perm_simproc' _ _ = NONE;
   118   | perm_simproc' _ _ = NONE;