equal
deleted
inserted
replaced
520 SOME concl => |
520 SOME concl => |
521 (compose_tac (false, spec_rule (goal_prefix n goal) concl, 1) THEN' rtac asm_rl) i |
521 (compose_tac (false, spec_rule (goal_prefix n goal) concl, 1) THEN' rtac asm_rl) i |
522 | NONE => all_tac) |
522 | NONE => all_tac) |
523 end); |
523 end); |
524 |
524 |
525 fun miniscope_tac p = |
525 fun miniscope_tac p = CONVERSION o |
526 CONVERSION (Conv.forall_conv p (MetaSimplifier.rewrite true [Thm.symmetric Drule.norm_hhf_eq])); |
526 Conv.forall_conv p (K (MetaSimplifier.rewrite true [Thm.symmetric Drule.norm_hhf_eq])); |
527 |
527 |
528 in |
528 in |
529 |
529 |
530 fun fix_tac _ _ [] = K all_tac |
530 fun fix_tac _ _ [] = K all_tac |
531 | fix_tac ctxt n xs = SUBGOAL (fn (goal, i) => |
531 | fix_tac ctxt n xs = SUBGOAL (fn (goal, i) => |
532 (EVERY' (map (meta_spec_tac ctxt n) xs) THEN' |
532 (EVERY' (map (meta_spec_tac ctxt n) xs) THEN' |
533 (miniscope_tac (goal_params n goal))) i); |
533 (miniscope_tac (goal_params n goal) ctxt)) i); |
534 |
534 |
535 end; |
535 end; |
536 |
536 |
537 |
537 |
538 (* add_defs *) |
538 (* add_defs *) |