src/HOL/Tools/BNF/bnf_fp_def_sugar.ML
changeset 57279 88263522c31e
parent 57260 8747af0d1012
child 57301 7b997028aaac
equal deleted inserted replaced
57278:8f7d6f01a775 57279:88263522c31e
  1356 
  1356 
  1357               fun mk_rel_thm postproc ctr_defs' cxIn cyIn =
  1357               fun mk_rel_thm postproc ctr_defs' cxIn cyIn =
  1358                 fold_thms lthy ctr_defs'
  1358                 fold_thms lthy ctr_defs'
  1359                   (unfold_thms lthy (pre_rel_def :: abs_inverse ::
  1359                   (unfold_thms lthy (pre_rel_def :: abs_inverse ::
  1360                        (if fp = Least_FP then [] else [dtor_ctor]) @ sumprod_thms_rel @
  1360                        (if fp = Least_FP then [] else [dtor_ctor]) @ sumprod_thms_rel @
  1361                        @{thms vimage2p_def sum.inject Inl_Inr_False})
  1361                        @{thms vimage2p_def sum.inject sum.distinct(1)[THEN eq_False[THEN iffD2]]})
  1362                      (cterm_instantiate_pos (nones @ [SOME cxIn, SOME cyIn]) fp_rel_thm))
  1362                      (cterm_instantiate_pos (nones @ [SOME cxIn, SOME cyIn]) fp_rel_thm))
  1363                 |> postproc
  1363                 |> postproc
  1364                 |> singleton (Proof_Context.export names_lthy no_defs_lthy);
  1364                 |> singleton (Proof_Context.export names_lthy no_defs_lthy);
  1365 
  1365 
  1366               fun mk_rel_inject_thm ((ctr_def', cxIn), (_, cyIn)) =
  1366               fun mk_rel_inject_thm ((ctr_def', cxIn), (_, cyIn)) =