src/HOL/Tools/Qelim/cooper.ML
changeset 42284 326f57825e1a
parent 41472 f6ab14e61604
child 42361 23f352990944
equal deleted inserted replaced
42283:25d9d836ed9c 42284:326f57825e1a
   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)