src/HOL/Tools/Function/partial_function.ML
changeset 42083 e1209fc7ecdc
parent 41472 f6ab14e61604
child 42361 23f352990944
equal deleted inserted replaced
42082:47f8bfe0f597 42083:e1209fc7ecdc
    85     _ $ (_ $ Abs (_, _, body)) =>
    85     _ $ (_ $ Abs (_, _, body)) =>
    86       (case dest_case (ProofContext.theory_of ctxt) body of
    86       (case dest_case (ProofContext.theory_of ctxt) body of
    87          NONE => no_tac
    87          NONE => no_tac
    88        | SOME (arg, conv) =>
    88        | SOME (arg, conv) =>
    89            let open Conv in
    89            let open Conv in
    90               if not (null (loose_bnos arg)) then no_tac
    90               if Term.is_open arg then no_tac
    91               else ((DETERM o strip_cases o Induct.cases_tac ctxt false [[SOME arg]] NONE [])
    91               else ((DETERM o strip_cases o Induct.cases_tac ctxt false [[SOME arg]] NONE [])
    92                 THEN_ALL_NEW (rewrite_with_asm_tac ctxt 0)
    92                 THEN_ALL_NEW (rewrite_with_asm_tac ctxt 0)
    93                 THEN_ALL_NEW etac @{thm thin_rl}
    93                 THEN_ALL_NEW etac @{thm thin_rl}
    94                 THEN_ALL_NEW (CONVERSION
    94                 THEN_ALL_NEW (CONVERSION
    95                   (params_conv ~1 (fn ctxt' =>
    95                   (params_conv ~1 (fn ctxt' =>