src/Pure/term.ML
changeset 4185 71a79ac5516f
parent 4064 9c18a0c9b6f8
child 4188 1025a27b08f9
equal deleted inserted replaced
4184:23a09f2fd687 4185:71a79ac5516f
   562 fun add_term_consts (Const (c, _), cs) = c ins cs
   562 fun add_term_consts (Const (c, _), cs) = c ins cs
   563   | add_term_consts (t $ u, cs) = add_term_consts (t, add_term_consts (u, cs))
   563   | add_term_consts (t $ u, cs) = add_term_consts (t, add_term_consts (u, cs))
   564   | add_term_consts (Abs (_, _, t), cs) = add_term_consts (t, cs)
   564   | add_term_consts (Abs (_, _, t), cs) = add_term_consts (t, cs)
   565   | add_term_consts (_, cs) = cs;
   565   | add_term_consts (_, cs) = cs;
   566 
   566 
       
   567 fun exists_Const P t = let
       
   568 	fun ex (Const c      ) = P c
       
   569 	|   ex (t $ u        ) = ex t orelse ex u
       
   570 	|   ex (Abs (_, _, t)) = ex t
       
   571 	|   ex _               = false
       
   572     in ex t end;
   567 
   573 
   568 (*map classes, tycons*)
   574 (*map classes, tycons*)
   569 fun map_typ f g (Type (c, Ts)) = Type (g c, map (map_typ f g) Ts)
   575 fun map_typ f g (Type (c, Ts)) = Type (g c, map (map_typ f g) Ts)
   570   | map_typ f _ (TFree (x, S)) = TFree (x, map f S)
   576   | map_typ f _ (TFree (x, S)) = TFree (x, map f S)
   571   | map_typ f _ (TVar (xi, S)) = TVar (xi, map f S);
   577   | map_typ f _ (TVar (xi, S)) = TVar (xi, map f S);