equal
deleted
inserted
replaced
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 = |