src/Pure/Isar/rule_cases.ML
changeset 45328 e5b33eecbf6e
parent 44045 2814ff2a6e3e
child 45375 7fe19930dfc9
equal deleted inserted replaced
45327:4a027cc86f1a 45328:e5b33eecbf6e
   401 fun internalize_params rule =
   401 fun internalize_params rule =
   402   let
   402   let
   403     fun rename prem =
   403     fun rename prem =
   404       let val xs =
   404       let val xs =
   405         map (Name.internal o Name.clean o fst) (Logic.strip_params prem)
   405         map (Name.internal o Name.clean o fst) (Logic.strip_params prem)
   406       in Logic.list_rename_params (xs, prem) end;
   406       in Logic.list_rename_params xs prem end;
   407     fun rename_prems prop =
   407     fun rename_prems prop =
   408       let val (As, C) = Logic.strip_horn prop
   408       let val (As, C) = Logic.strip_horn prop
   409       in Logic.list_implies (map rename As, C) end;
   409       in Logic.list_implies (map rename As, C) end;
   410   in Thm.equal_elim (Thm.reflexive (Drule.cterm_fun rename_prems (Thm.cprop_of rule))) rule end;
   410   in Thm.equal_elim (Thm.reflexive (Drule.cterm_fun rename_prems (Thm.cprop_of rule))) rule end;
   411 
   411