tuning
authorblanchet
Tue, 31 May 2011 16:38:36 +0200
changeset 43086 4dce7f2bb59f
parent 43085 0a2f5b86bdd7
child 43087 b870759ce0f3
tuning
src/HOL/Tools/ATP/atp_translate.ML
src/HOL/Tools/Metis/metis_translate.ML
--- a/src/HOL/Tools/ATP/atp_translate.ML	Tue May 31 16:38:36 2011 +0200
+++ b/src/HOL/Tools/ATP/atp_translate.ML	Tue May 31 16:38:36 2011 +0200
@@ -23,14 +23,15 @@
     TConsLit of name * name * name list |
     TVarLit of name * name
 
-  datatype arity_clause =
-    ArityClause of
-      {name: string,
-       prem_lits: arity_literal list,
-       concl_lits: arity_literal}
+  type arity_clause =
+    {name: string,
+     prem_lits: arity_literal list,
+     concl_lits: arity_literal}
 
-  datatype class_rel_clause =
-    ClassRelClause of {name: string, subclass: name, superclass: name}
+  type class_rel_clause =
+    {name: string,
+     subclass: name,
+     superclass: name}
 
   datatype combterm =
     CombConst of name * typ * typ list |
@@ -341,11 +342,10 @@
   | pack_sort (tvar, cls :: srt) =
     (`make_type_class cls, `I tvar) :: pack_sort (tvar, srt)
 
-datatype arity_clause =
-  ArityClause of
-    {name: string,
-     prem_lits: arity_literal list,
-     concl_lits: arity_literal}
+type arity_clause =
+  {name: string,
+   prem_lits: arity_literal list,
+   concl_lits: arity_literal}
 
 (* Arity of type constructor "tcon :: (arg1, ..., argN) res" *)
 fun make_axiom_arity_clause (tcons, name, (cls, args)) =
@@ -353,11 +353,11 @@
     val tvars = gen_TVars (length args)
     val tvars_srts = ListPair.zip (tvars, args)
   in
-    ArityClause {name = name,
-                 prem_lits = map TVarLit (union_all (map pack_sort tvars_srts)),
-                 concl_lits = TConsLit (`make_type_class cls,
-                                        `make_fixed_type_const tcons,
-                                        tvars ~~ tvars)}
+    {name = name,
+     prem_lits = map TVarLit (union_all (map pack_sort tvars_srts)),
+     concl_lits = TConsLit (`make_type_class cls,
+                            `make_fixed_type_const tcons,
+                            tvars ~~ tvars)}
   end
 
 fun arity_clause _ _ (_, []) = []
@@ -401,8 +401,10 @@
 
 (** Isabelle class relations **)
 
-datatype class_rel_clause =
-  ClassRelClause of {name: string, subclass: name, superclass: name}
+type class_rel_clause =
+  {name: string,
+   subclass: name,
+   superclass: name}
 
 (*Generate all pairs (sub,super) such that sub is a proper subclass of super in theory thy.*)
 fun class_pairs _ [] _ = []
@@ -414,9 +416,9 @@
       in fold add_supers subs [] end
 
 fun make_class_rel_clause (sub,super) =
-  ClassRelClause {name = sub ^ "_" ^ super,
-                  subclass = `make_type_class sub,
-                  superclass = `make_type_class super}
+  {name = sub ^ "_" ^ super,
+   subclass = `make_type_class sub,
+   superclass = `make_type_class super}
 
 fun make_class_rel_clauses thy subs supers =
   map make_class_rel_clause (class_pairs thy subs supers);
@@ -1461,8 +1463,8 @@
            | Simp => simp_info
            | _ => NONE)
 
-fun formula_line_for_class_rel_clause
-        (ClassRelClause {name, subclass, superclass, ...}) =
+fun formula_line_for_class_rel_clause ({name, subclass, superclass, ...}
+                                       : class_rel_clause) =
   let val ty_arg = ATerm (`I "T", []) in
     Formula (class_rel_clause_prefix ^ ascii_of name, Axiom,
              AConn (AImplies, [AAtom (ATerm (subclass, [ty_arg])),
@@ -1475,8 +1477,8 @@
   | fo_literal_from_arity_literal (TVarLit (c, sort)) =
     (false, ATerm (c, [ATerm (sort, [])]))
 
-fun formula_line_for_arity_clause
-        (ArityClause {name, prem_lits, concl_lits, ...}) =
+fun formula_line_for_arity_clause ({name, prem_lits, concl_lits, ...}
+                                   : arity_clause) =
   Formula (arity_clause_prefix ^ ascii_of name, Axiom,
            mk_ahorn (map (formula_from_fo_literal o apfst not
                           o fo_literal_from_arity_literal) prem_lits)
--- a/src/HOL/Tools/Metis/metis_translate.ML	Tue May 31 16:38:36 2011 +0200
+++ b/src/HOL/Tools/Metis/metis_translate.ML	Tue May 31 16:38:36 2011 +0200
@@ -272,7 +272,7 @@
   | m_arity_cls (TVarLit ((c, _), (s, _))) =
     metis_lit false c [Metis_Term.Var s]
 (*TrueI is returned as the Isabelle counterpart because there isn't any.*)
-fun arity_cls (ArityClause {prem_lits, concl_lits, ...}) =
+fun arity_cls ({prem_lits, concl_lits, ...} : arity_clause) =
   (TrueI,
    Metis_Thm.axiom (Metis_LiteralSet.fromList
                         (map m_arity_cls (concl_lits :: prem_lits))));
@@ -280,7 +280,7 @@
 (* CLASSREL CLAUSE *)
 fun m_class_rel_cls (subclass, _) (superclass, _) =
   [metis_lit false subclass [Metis_Term.Var "T"], metis_lit true superclass [Metis_Term.Var "T"]];
-fun class_rel_cls (ClassRelClause {subclass, superclass, ...}) =
+fun class_rel_cls ({subclass, superclass, ...} : class_rel_clause) =
   (TrueI, Metis_Thm.axiom (Metis_LiteralSet.fromList (m_class_rel_cls subclass superclass)));
 
 fun type_ext thy tms =