avoid generating polymorphic SPASS constructs to monomorphic SPASS
authorblanchet
Mon, 01 Feb 2016 18:45:18 +0100
changeset 62218 42202671777c
parent 62217 527488dc8b90
child 62219 dbac573b27e7
avoid generating polymorphic SPASS constructs to monomorphic SPASS
src/HOL/Tools/ATP/atp_problem_generate.ML
--- a/src/HOL/Tools/ATP/atp_problem_generate.ML	Fri Jan 22 16:00:03 2016 +0000
+++ b/src/HOL/Tools/ATP/atp_problem_generate.ML	Mon Feb 01 18:45:18 2016 +0100
@@ -1675,12 +1675,12 @@
        |> class_membs_of_types type_enc add_sorts_on_tvar
        |> map (class_atom type_enc)))
     #> (case type_enc of
-         Native (_, poly, _) =>
+         Native (_, Type_Class_Polymorphic, _) =>
          mk_atyquant AForall (map (fn TVar (z as (_, S)) =>
-           (AType ((tvar_name z, []), []),
-            if poly = Type_Class_Polymorphic then map (`make_class) (normalize_classes S)
-            else [])) Ts)
-        | _ => mk_aquant AForall (map (fn TVar z => (tvar_name z, NONE)) Ts)))
+           (AType ((tvar_name z, []), []), map (`make_class) (normalize_classes S) )) Ts)
+       | Native (_, Raw_Polymorphic _, _) =>
+         mk_atyquant AForall (map (fn TVar (z as (_, S)) => (AType ((tvar_name z, []), []), [])) Ts)
+       | _ => mk_aquant AForall (map (fn TVar z => (tvar_name z, NONE)) Ts)))
 
 fun eq_formula type_enc atomic_Ts bounds pred_sym tm1 tm2 =
   (if pred_sym then AConn (AIff, [AAtom tm1, AAtom tm2])