equal
deleted
inserted
replaced
330 (map (fn t => ("x", fastype_of t)) args)) |
330 (map (fn t => ("x", fastype_of t)) args)) |
331 val varnames = map (fst o dest_Free) vars |
331 val varnames = map (fst o dest_Free) vars |
332 val dummy_var = Free (singleton |
332 val dummy_var = Free (singleton |
333 (Variable.variant_frees ctxt (concl :: assms @ vars)) ("dummy", T)) |
333 (Variable.variant_frees ctxt (concl :: assms @ vars)) ("dummy", T)) |
334 val new_assms = map HOLogic.mk_eq (vars ~~ args) |
334 val new_assms = map HOLogic.mk_eq (vars ~~ args) |
335 val cont_t = mk_smart_test_term' concl (union (op =) varnames bound_vars) |
335 val bound_vars' = union (op =) (vars_of lhs) (union (op =) varnames bound_vars) |
336 (new_assms @ assms) genuine |
336 val cont_t = mk_smart_test_term' concl bound_vars' (new_assms @ assms) genuine |
337 in |
337 in |
338 (vars_of lhs, Datatype_Case.make_case ctxt Datatype_Case.Quiet [] lhs |
338 (vars_of lhs, Datatype_Case.make_case ctxt Datatype_Case.Quiet [] lhs |
339 [(list_comb (constr, vars), cont_t), (dummy_var, none_t)]) |
339 [(list_comb (constr, vars), cont_t), (dummy_var, none_t)]) |
340 end |
340 end |
341 else c (assm, assms) |
341 else c (assm, assms) |