equal
deleted
inserted
replaced
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 |