equal
deleted
inserted
replaced
625 let |
625 let |
626 val xs = rename_params (Logic.strip_params A); |
626 val xs = rename_params (Logic.strip_params A); |
627 val xs' = |
627 val xs' = |
628 (case filter (fn x' => x' = x) xs of |
628 (case filter (fn x' => x' = x) xs of |
629 [] => xs | [_] => xs | _ => index 1 xs); |
629 [] => xs | [_] => xs | _ => index 1 xs); |
630 in Logic.list_rename_params (xs', A) end; |
630 in Logic.list_rename_params xs' A end; |
631 fun rename_prop p = |
631 fun rename_prop p = |
632 let val (As, C) = Logic.strip_horn p |
632 let val (As, C) = Logic.strip_horn p |
633 in Logic.list_implies (map rename_asm As, C) end; |
633 in Logic.list_implies (map rename_asm As, C) end; |
634 val cp' = cterm_fun rename_prop (Thm.cprop_of thm); |
634 val cp' = cterm_fun rename_prop (Thm.cprop_of thm); |
635 val thm' = Thm.equal_elim (Thm.reflexive cp') thm; |
635 val thm' = Thm.equal_elim (Thm.reflexive cp') thm; |