(* Title: HOL/Tools/BNF/bnf_fp_n2m_tactics.ML Author: Dmitriy Traytel, TU Muenchen Copyright 2013
Tactics for mutualization of nested (co)datatypes.
*)
signature BNF_FP_N2M_TACTICS = sig val mk_rel_xtor_co_induct_tac: BNF_Util.fp_kind -> thm list -> thm list -> thm list ->
thm list -> thm list -> thm list -> {prems: thm list, context: Proof.context} -> tactic val mk_xtor_un_fold_unique_tac: BNF_Util.fp_kind -> thm list -> thm list -> thm list ->
thm list -> thm list -> thm list -> thm list -> thm list -> thm list ->
{context: Proof.context, prems: thm list} -> tactic val mk_xtor_un_fold_tac: Proof.context -> int -> thm list -> thm list -> tactic val mk_xtor_un_fold_transfer_tac: Proof.context -> int -> thm list -> thm list -> thm list ->
thm list -> thm list -> thm list -> thm list -> tactic end;
fun mk_xtor_un_fold_tac ctxt n simps cache_defs =
REPEAT_DETERM (CHANGED (unfold_thms_tac ctxt simps) ORELSE
CHANGED (ALLGOALS (unfold_at_most_once_tac ctxt cache_defs))) THEN
CONJ_WRAP (K (HEADGOAL (rtac ctxt refl))) (1 upto n);
fun mk_xtor_un_fold_transfer_tac ctxt n xtor_un_fold_defs rel_defs fp_un_fold_transfers
map_transfers Abs_transfers fp_or_nesting_rel_eqs cache_defs = let val unfold = SELECT_GOAL (unfold_thms_tac ctxt fp_or_nesting_rel_eqs); in
unfold_thms_tac ctxt (xtor_un_fold_defs @ rel_defs) THEN
HEADGOAL (CONJ_WRAP'
(fn thm => EVERY' [REPEAT_DETERM_N n o rtac ctxt rel_funI, rtac ctxt thm THEN_ALL_NEW
REPEAT_DETERM o (FIRST' [assume_tac ctxt, rtac ctxt @{thm id_transfer},
rtac ctxt @{thm rel_funD[OF rel_funD[OF comp_transfer]]},
resolve_tac ctxt fp_un_fold_transfers, resolve_tac ctxt map_transfers,
unfold_once_tac ctxt cache_defs,
resolve_tac ctxt Abs_transfers, rtac ctxt @{thm vimage2p_rel_fun},
unfold THEN' rtac ctxt @{thm vimage2p_rel_fun}])])
fp_un_fold_transfers) end;
end;
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.10Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-04-26)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.