src/HOL/Tools/res_atpset.ML
author haftmann
Thu, 28 Jun 2007 19:09:34 +0200
changeset 23512 770e7f9f715b
parent 22846 fb79144af9a3
permissions -rw-r--r--
code generation for dvd
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
21506
b2a673894ce5 prefer Proof.context over Context.generic;
wenzelm
parents: 20773
diff changeset
     9
  val print_atpset: Proof.context -> unit
b2a673894ce5 prefer Proof.context over Context.generic;
wenzelm
parents: 20773
diff changeset
    10
  val get_atpset: Proof.context -> thm list
20773
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
  type T = thm list;
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    22
  val empty = [];
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    23
  val extend = I;
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    24
  fun merge _ = Drule.merge_rules;
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    25
);
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
    26
21506
b2a673894ce5 prefer Proof.context over Context.generic;
wenzelm
parents: 20773
diff changeset
    27
val get_atpset = Data.get o Context.Proof;
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
    28
22846
fb79144af9a3 simplified DataFun interfaces;
wenzelm
parents: 21506
diff changeset
    29
fun print_atpset ctxt =
fb79144af9a3 simplified DataFun interfaces;
wenzelm
parents: 21506
diff changeset
    30
  Pretty.writeln (Pretty.big_list "ATP rules:"
fb79144af9a3 simplified DataFun interfaces;
wenzelm
parents: 21506
diff changeset
    31
    (map (ProofContext.pretty_thm ctxt) (get_atpset ctxt)));
fb79144af9a3 simplified DataFun interfaces;
wenzelm
parents: 21506
diff changeset
    32
20773
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    33
val atp_add = Thm.declaration_attribute (Data.map o Drule.add_rule);
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    34
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
    35
20773
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    36
val setup =
468af396cf6f removed legacy code;
wenzelm
parents: 20547
diff changeset
    37
  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
    38
20547
wenzelm
parents: 19170
diff changeset
    39
end;