equal
deleted
inserted
replaced
656 (cert (Term.head_of arg), cert (Logic.rlist_abs (xs, v)))]); |
656 (cert (Term.head_of arg), cert (Logic.rlist_abs (xs, v)))]); |
657 |
657 |
658 fun goal_concl k xs (Const ("all", _) $ Abs (a, T, B)) = goal_concl k ((a, T) :: xs) B |
658 fun goal_concl k xs (Const ("all", _) $ Abs (a, T, B)) = goal_concl k ((a, T) :: xs) B |
659 | goal_concl 0 xs B = |
659 | goal_concl 0 xs B = |
660 if not (Term.exists_subterm (fn t => t aconv v) B) then NONE |
660 if not (Term.exists_subterm (fn t => t aconv v) B) then NONE |
661 else SOME (xs, Term.absfree (x, T, Term.incr_boundvars 1 B)) |
661 else SOME (xs, absfree (x, T) (Term.incr_boundvars 1 B)) |
662 | goal_concl k xs (Const ("==>", _) $ _ $ B) = goal_concl (k - 1) xs B |
662 | goal_concl k xs (Const ("==>", _) $ _ $ B) = goal_concl (k - 1) xs B |
663 | goal_concl _ _ _ = NONE; |
663 | goal_concl _ _ _ = NONE; |
664 in |
664 in |
665 (case goal_concl n [] goal of |
665 (case goal_concl n [] goal of |
666 SOME concl => |
666 SOME concl => |