src/HOL/Tools/res_atpset.ML
author wenzelm
Thu, 28 Sep 2006 23:42:49 +0200
changeset 20773 468af396cf6f
parent 20547 796ae7fa1049
child 21506 b2a673894ce5
permissions -rw-r--r--
removed legacy code; tuned;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19159
f737ecbad1c4 A new file that sets up rules set used by ATPs. Rules are added to and removed from the set using "atp" attribute.
mengj
parents:
diff changeset
     1
(*  ID:         $Id$
20773
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
     2
    Author:     Jia Meng, NICTA
19159
f737ecbad1c4 A new file that sets up rules set used by ATPs. Rules are added to and removed from the set using "atp" attribute.
mengj
parents:
diff changeset
     3
20773
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
     4
ATP rules.
19159
f737ecbad1c4 A new file that sets up rules set used by ATPs. Rules are added to and removed from the set using "atp" attribute.
mengj
parents:
diff changeset
     5
*)
f737ecbad1c4 A new file that sets up rules set used by ATPs. Rules are added to and removed from the set using "atp" attribute.
mengj
parents:
diff changeset
     6
19170
a55a3464a1de Added in a signature.
mengj
parents: 19159
diff changeset
     7
signature RES_ATPSET =
a55a3464a1de Added in a signature.
mengj
parents: 19159
diff changeset
     8
sig
20773
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
     9
  val print_atpset: Context.generic -> unit
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    10
  val get_atpset: Context.generic -> thm list
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    11
  val atp_add: attribute
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    12
  val atp_del: attribute
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    13
  val setup: theory -> theory
19170
a55a3464a1de Added in a signature.
mengj
parents: 19159
diff changeset
    14
end;
a55a3464a1de Added in a signature.
mengj
parents: 19159
diff changeset
    15
20773
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    16
structure ResAtpset: RES_ATPSET =
19159
f737ecbad1c4 A new file that sets up rules set used by ATPs. Rules are added to and removed from the set using "atp" attribute.
mengj
parents:
diff changeset
    17
struct
f737ecbad1c4 A new file that sets up rules set used by ATPs. Rules are added to and removed from the set using "atp" attribute.
mengj
parents:
diff changeset
    18
20773
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    19
structure Data = GenericDataFun
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    20
(
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    21
  val name = "HOL/atpset";
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    22
  type T = thm list;
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    23
  val empty = [];
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    24
  val extend = I;
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    25
  fun merge _ = Drule.merge_rules;
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    26
  fun print context rules =
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    27
    Pretty.writeln (Pretty.big_list "ATP rules:"
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    28
      (map (ProofContext.pretty_thm (Context.proof_of context)) rules));
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    29
);
19159
f737ecbad1c4 A new file that sets up rules set used by ATPs. Rules are added to and removed from the set using "atp" attribute.
mengj
parents:
diff changeset
    30
20773
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    31
val print_atpset = Data.print;
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    32
val get_atpset = Data.get;
19159
f737ecbad1c4 A new file that sets up rules set used by ATPs. Rules are added to and removed from the set using "atp" attribute.
mengj
parents:
diff changeset
    33
20773
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    34
val atp_add = Thm.declaration_attribute (Data.map o Drule.add_rule);
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    35
val atp_del = Thm.declaration_attribute (Data.map o Drule.del_rule);
19159
f737ecbad1c4 A new file that sets up rules set used by ATPs. Rules are added to and removed from the set using "atp" attribute.
mengj
parents:
diff changeset
    36
20773
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    37
val setup =
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    38
  Data.init #>
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    39
  Attrib.add_attributes [("atp", Attrib.add_del_args atp_add atp_del, "declaration of ATP rules")];
19159
f737ecbad1c4 A new file that sets up rules set used by ATPs. Rules are added to and removed from the set using "atp" attribute.
mengj
parents:
diff changeset
    40
20547
wenzelm
parents: 19170
diff changeset
    41
end;