577 in case t of |
577 in case t of |
578 (l as f $ a) $ b => if skip orelse is_op f then add_bools b o add_bools l |
578 (l as f $ a) $ b => if skip orelse is_op f then add_bools b o add_bools l |
579 else insert (op aconv) t |
579 else insert (op aconv) t |
580 | f $ a => if skip orelse is_op f then add_bools a o add_bools f |
580 | f $ a => if skip orelse is_op f then add_bools a o add_bools f |
581 else insert (op aconv) t |
581 else insert (op aconv) t |
582 | Abs p => add_bools (snd (variant_abs p)) |
582 | Abs p => add_bools (snd (Syntax_Trans.variant_abs p)) (* FIXME !? *) |
583 | _ => if skip orelse is_op t then I else insert (op aconv) t |
583 | _ => if skip orelse is_op t then I else insert (op aconv) t |
584 end; |
584 end; |
585 |
585 |
586 fun descend vs (abs as (_, xT, _)) = |
586 fun descend vs (abs as (_, xT, _)) = |
587 let |
587 let |
588 val (xn', p') = variant_abs abs; |
588 val (xn', p') = Syntax_Trans.variant_abs abs; (* FIXME !? *) |
589 in ((xn', xT) :: vs, p') end; |
589 in ((xn', xT) :: vs, p') end; |
590 |
590 |
591 local structure Proc = Cooper_Procedure in |
591 local structure Proc = Cooper_Procedure in |
592 |
592 |
593 fun num_of_term vs (Free vT) = Proc.Bound (find_index (fn vT' => vT' = vT) vs) |
593 fun num_of_term vs (Free vT) = Proc.Bound (find_index (fn vT' => vT' = vT) vs) |