src/HOL/Nominal/nominal_induct.ML
changeset 45328 e5b33eecbf6e
parent 45132 09de0d0de645
child 51717 9e7d1c139569
equal deleted inserted replaced
45327:4a027cc86f1a 45328:e5b33eecbf6e
    70         val ps = Logic.strip_params prem;
    70         val ps = Logic.strip_params prem;
    71         val p = length ps;
    71         val p = length ps;
    72         val ys =
    72         val ys =
    73           if p < n then []
    73           if p < n then []
    74           else map (tune o #1) (take (p - n) ps) @ xs;
    74           else map (tune o #1) (take (p - n) ps) @ xs;
    75       in Logic.list_rename_params (ys, prem) end;
    75       in Logic.list_rename_params ys prem end;
    76     fun rename_prems prop =
    76     fun rename_prems prop =
    77       let val (As, C) = Logic.strip_horn prop
    77       let val (As, C) = Logic.strip_horn prop
    78       in Logic.list_implies (map rename As, C) end;
    78       in Logic.list_implies (map rename As, C) end;
    79   in Thm.equal_elim (Thm.reflexive (Drule.cterm_fun rename_prems (Thm.cprop_of rule))) rule end;
    79   in Thm.equal_elim (Thm.reflexive (Drule.cterm_fun rename_prems (Thm.cprop_of rule))) rule end;
    80 
    80