equal
deleted
inserted
replaced
466 val ps = Term.variant_frees t (Term.strip_all_vars t); (*as they are printed :-*) |
466 val ps = Term.variant_frees t (Term.strip_all_vars t); (*as they are printed :-*) |
467 val (xs, Ts) = split_list ps; |
467 val (xs, Ts) = split_list ps; |
468 val (xs', ctxt') = variant_fixes xs ctxt; |
468 val (xs', ctxt') = variant_fixes xs ctxt; |
469 val ps' = ListPair.map (cert o Free) (xs', Ts); |
469 val ps' = ListPair.map (cert o Free) (xs', Ts); |
470 val goal' = fold forall_elim_prop ps' goal; |
470 val goal' = fold forall_elim_prop ps' goal; |
471 in ((ps', goal'), ctxt') end; |
471 val ctxt'' = ctxt' |> fold (declare_constraints o Thm.term_of) ps'; |
|
472 in ((ps', goal'), ctxt'') end; |
472 |
473 |
473 fun focus_subgoal i st = |
474 fun focus_subgoal i st = |
474 let |
475 let |
475 val all_vars = Thm.fold_terms Term.add_vars st []; |
476 val all_vars = Thm.fold_terms Term.add_vars st []; |
476 val no_binds = map (fn (xi, _) => (xi, NONE)) all_vars; |
477 val no_binds = map (fn (xi, _) => (xi, NONE)) all_vars; |