422 | lift Ts ((c as Const ("all", _)) $ Abs (a, T, B)) t = c $ Abs (a, T, lift (T :: Ts) B t) |
422 | lift Ts ((c as Const ("all", _)) $ Abs (a, T, B)) t = c $ Abs (a, T, lift (T :: Ts) B t) |
423 | lift Ts _ t = incr_indexes (rev Ts, inc) t; |
423 | lift Ts _ t = incr_indexes (rev Ts, inc) t; |
424 in lift [] end; |
424 in lift [] end; |
425 |
425 |
426 (*Strips assumptions in goal, yielding list of hypotheses. *) |
426 (*Strips assumptions in goal, yielding list of hypotheses. *) |
427 fun strip_assums_hyp (Const("==>", _) $ H $ B) = H :: strip_assums_hyp B |
427 fun strip_assums_hyp B = |
428 | strip_assums_hyp (Const("all",_)$Abs(a,T,t)) = strip_assums_hyp t |
428 let |
429 | strip_assums_hyp B = []; |
429 fun strip Hs (Const ("==>", _) $ H $ B) = strip (H :: Hs) B |
|
430 | strip Hs (Const ("all", _) $ Abs (a, T, t)) = |
|
431 strip (map (incr_boundvars 1) Hs) t |
|
432 | strip Hs B = rev Hs |
|
433 in strip [] B end; |
430 |
434 |
431 (*Strips assumptions in goal, yielding conclusion. *) |
435 (*Strips assumptions in goal, yielding conclusion. *) |
432 fun strip_assums_concl (Const("==>", _) $ H $ B) = strip_assums_concl B |
436 fun strip_assums_concl (Const("==>", _) $ H $ B) = strip_assums_concl B |
433 | strip_assums_concl (Const("all",_)$Abs(a,T,t)) = strip_assums_concl t |
437 | strip_assums_concl (Const("all",_)$Abs(a,T,t)) = strip_assums_concl t |
434 | strip_assums_concl B = B; |
438 | strip_assums_concl B = B; |