src/HOL/Tools/ATP/atp_translate.ML
changeset 43188 0c36ae874fcc
parent 43185 697d32fa183d
child 43189 0ab7265f659f
equal deleted inserted replaced
43187:95bd1ef1331a 43188:0c36ae874fcc
  1372   | fold_type_consts _ _ x = x
  1372   | fold_type_consts _ _ x = x
  1373 
  1373 
  1374 (*Type constructors used to instantiate overloaded constants are the only ones needed.*)
  1374 (*Type constructors used to instantiate overloaded constants are the only ones needed.*)
  1375 fun add_type_consts_in_term thy =
  1375 fun add_type_consts_in_term thy =
  1376   let
  1376   let
  1377     fun add ((t as Const (s, _)) $ u) =
  1377     fun add (Const (@{const_name Meson.skolem}, _) $ _) = I
  1378         if s = @{const_name Meson.skolem} orelse
       
  1379            String.isPrefix skolem_const_prefix s then
       
  1380           I
       
  1381         else
       
  1382           add t #> add u
       
  1383       | add (t $ u) = add t #> add u
  1378       | add (t $ u) = add t #> add u
  1384       | add (Const x) =
  1379       | add (Const (x as (s, _))) =
  1385         x |> Sign.const_typargs thy |> fold (fold_type_consts set_insert)
  1380         if String.isPrefix skolem_const_prefix s then I
       
  1381         else x |> Sign.const_typargs thy |> fold (fold_type_consts set_insert)
  1386       | add (Abs (_, _, u)) = add u
  1382       | add (Abs (_, _, u)) = add u
  1387       | add _ = I
  1383       | add _ = I
  1388   in add end
  1384   in add end
  1389 
  1385 
  1390 fun type_consts_of_terms thy ts =
  1386 fun type_consts_of_terms thy ts =