--- a/src/HOL/Metis_Examples/Proxies.thy Mon Jun 06 20:56:06 2011 +0200
+++ b/src/HOL/Metis_Examples/Proxies.thy Mon Jun 06 20:56:06 2011 +0200
@@ -58,7 +58,7 @@
lemma "id (op =) x x"
sledgehammer [type_sys = erased, expect = none] (id_apply)
-sledgehammer [type_sys = poly_tags?, expect = none] (id_apply) (* unfortunate *)
+sledgehammer [type_sys = poly_tags?, expect = some] (id_apply)
sledgehammer [type_sys = poly_tags, expect = some] (id_apply)
sledgehammer [type_sys = poly_preds?, expect = some] (id_apply)
sledgehammer [type_sys = poly_preds, expect = some] (id_apply)
--- a/src/HOL/Tools/ATP/atp_translate.ML Mon Jun 06 20:56:06 2011 +0200
+++ b/src/HOL/Tools/ATP/atp_translate.ML Mon Jun 06 20:56:06 2011 +0200
@@ -1059,8 +1059,7 @@
val bool_vars' = bool_vars orelse body_type T = @{typ bool}
fun repair_min_arity {pred_sym, min_ary, max_ary, types} =
{pred_sym = pred_sym andalso not bool_vars',
- min_ary =
- fold (fn T' => consider_var_arity T' T) types min_ary,
+ min_ary = fold (fn T' => consider_var_arity T' T) types min_ary,
max_ary = max_ary, types = types}
val fun_var_Ts' =
fun_var_Ts |> can dest_funT T ? insert_type ctxt I T
@@ -1069,8 +1068,7 @@
pointer_eq (fun_var_Ts', fun_var_Ts) then
accum
else
- ((bool_vars', fun_var_Ts'),
- Symtab.map (K repair_min_arity) sym_tab)
+ ((bool_vars', fun_var_Ts'), Symtab.map (K repair_min_arity) sym_tab)
end
else
accum
@@ -1833,7 +1831,7 @@
repaired_sym_tab |> helper_facts_for_sym_table ctxt format type_sys
|> map repair
val lavish_nonmono_Ts =
- if null nonmono_Ts orelse
+ if null nonmono_Ts orelse nonmono_Ts = [@{typ bool}] orelse
polymorphism_of_type_sys type_sys <> Polymorphic then
nonmono_Ts
else