src/HOL/Tools/BNF/bnf_fp_n2m_tactics.ML
changeset 58634 9f10d82e8188
parent 58375 7b92932ffea5
child 58963 26bf09b95dda
equal deleted inserted replaced
58633:8529745af3dc 58634:9f10d82e8188
    30     val unfolds = map (fn def =>
    30     val unfolds = map (fn def =>
    31       unfold_thms ctxt (id_apply :: vimage2p_unfolds @ abs_inverses @ no_reflexive [def])) rel_defs;
    31       unfold_thms ctxt (id_apply :: vimage2p_unfolds @ abs_inverses @ no_reflexive [def])) rel_defs;
    32     val folded_C_IHs = map (fn thm => thm RS @{thm spec2} RS mp) raw_C_IHs;
    32     val folded_C_IHs = map (fn thm => thm RS @{thm spec2} RS mp) raw_C_IHs;
    33     val C_IHs = map2 (curry op |>) folded_C_IHs unfolds;
    33     val C_IHs = map2 (curry op |>) folded_C_IHs unfolds;
    34     val C_IH_monos =
    34     val C_IH_monos =
    35       map3 (fn C_IH => fn mono => fn unfold =>
    35       @{map 3} (fn C_IH => fn mono => fn unfold =>
    36         (mono RSN (2, @{thm vimage2p_mono}), C_IH)
    36         (mono RSN (2, @{thm vimage2p_mono}), C_IH)
    37         |> fp = Greatest_FP ? swap
    37         |> fp = Greatest_FP ? swap
    38         |> op RS
    38         |> op RS
    39         |> unfold)
    39         |> unfold)
    40       folded_C_IHs rel_monos unfolds;
    40       folded_C_IHs rel_monos unfolds;