src/Pure/variable.ML
changeset 27119 c36c88fcdd22
parent 26714 4773b832f1b1
child 27280 2a38802d3649
equal deleted inserted replaced
27118:9a26c0d7a47a 27119:c36c88fcdd22
   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;