walther@59892
|
1 |
(* Title: BaseDefinitions/method-def.sml
|
walther@59882
|
2 |
Author: Walther Neuper
|
walther@59882
|
3 |
(c) due to copyright terms
|
walther@59882
|
4 |
|
walther@59892
|
5 |
Will be enhanced by Method later.
|
walther@59892
|
6 |
*)
|
walther@59893
|
7 |
signature METHOD_DEFINITION =
|
walther@59882
|
8 |
sig
|
walther@59888
|
9 |
type met
|
walther@59888
|
10 |
val e_met: met
|
walther@59884
|
11 |
type mets
|
walther@59890
|
12 |
val e_Mets: met Store.ptyp
|
walther@59892
|
13 |
(*vvv check_unique*)
|
walther@59892
|
14 |
val check_metguh_unique: Check_Unique.guh -> met Store.ptyp list -> unit
|
walther@59882
|
15 |
(* ---- for tests only: shifted from below to remove the Warning "unused" at fun.def. --------- *)
|
walther@59882
|
16 |
(*NONE*)
|
walther@59886
|
17 |
(*/-------------------------------------------------------- ! aktivate for Test_Isac BEGIN ---\* )
|
walther@59882
|
18 |
(*NONE*)
|
walther@59886
|
19 |
( *\--- ! aktivate for Test_Isac END ----------------------------------------------------------/*)
|
walther@59882
|
20 |
end
|
walther@59882
|
21 |
|
walther@59882
|
22 |
(**)
|
walther@59893
|
23 |
structure Meth_Def(**): METHOD_DEFINITION(**) =
|
walther@59882
|
24 |
struct
|
walther@59882
|
25 |
(**)
|
walther@59882
|
26 |
|
walther@59882
|
27 |
(*/------- to Celem6 -------\*)
|
walther@59884
|
28 |
(* data for methods stored in 'methods'-database*)
|
walther@59884
|
29 |
type met =
|
walther@59892
|
30 |
{guh : Check_Unique.guh, (* unique within this isac-knowledge *)
|
walther@59884
|
31 |
mathauthors: string list, (* copyright *)
|
walther@59891
|
32 |
init : Spec.pblID, (* WN060721 introduced mistakenly--TODO.REMOVE! *)
|
walther@59884
|
33 |
rew_ord' : Rule_Def.rew_ord', (* for rules in Detail
|
walther@59884
|
34 |
TODO.WN0509 store fun itself, see 'type pbt' *)
|
walther@59884
|
35 |
erls : Rule_Set.T, (* the eval_rls for cond. in rules FIXME "rls'
|
walther@59884
|
36 |
instead erls in "fun prep_met" *)
|
walther@59884
|
37 |
srls : Rule_Set.T, (* for evaluating list expressions in scr *)
|
walther@59884
|
38 |
crls : Rule_Set.T, (* for check_elementwise, ie. formulae in calc. *)
|
walther@59884
|
39 |
nrls : Rule_Set.T, (* canonical simplifier specific for this met *)
|
walther@59884
|
40 |
errpats : Error_Fill_Def.errpat list,(* error patterns expected in this method *)
|
walther@59884
|
41 |
calc : Rule_Def.calc list, (* Theory_Data in fun prep_met *)
|
walther@59884
|
42 |
(*branch : TransitiveB set in append_problem at generation ob pblobj *)
|
walther@59884
|
43 |
scr : Rule.program, (* progam, empty as @{thm refl} or Rfuns *)
|
walther@59884
|
44 |
(*TODO: abstract to ?pre_model?...*)
|
walther@59884
|
45 |
prls : Rule_Set.T, (* for evaluating predicates in modelpattern *)
|
walther@59884
|
46 |
ppc : Celem4.pat list, (* items in given, find, relate;
|
walther@59884
|
47 |
items (in "#Find") which need not occur in the arg-list of a SubProblem
|
walther@59884
|
48 |
are 'copy-named' with an identifier "*'.'".
|
walther@59884
|
49 |
copy-named items are 'generating' if they are NOT "*'''" ?WN120516??
|
walther@59884
|
50 |
see ME/calchead.sml 'fun is_copy_named'. *)
|
walther@59884
|
51 |
pre : term list (* preconditions in where *)
|
walther@59884
|
52 |
};
|
walther@59891
|
53 |
val e_met = {guh = "met_empty", mathauthors = [], init = Spec.e_metID, rew_ord' = Rewrite_Ord.e_rew_ord',
|
walther@59884
|
54 |
erls = Rule_Set.empty, srls = Rule_Set.empty, prls = Rule_Set.empty, calc = [], crls = Rule_Set.empty,
|
walther@59884
|
55 |
errpats = [], nrls = Rule_Set.empty, ppc = [], pre = [], scr = Rule.Empty_Prog};
|
walther@59890
|
56 |
val e_Mets = Store.Ptyp ("e_metID", [e_met],[]);
|
walther@59884
|
57 |
|
walther@59890
|
58 |
type mets = (met Store.ptyp) list;
|
walther@59882
|
59 |
(*\------- to Celem6 -------/*)
|
walther@59882
|
60 |
|
walther@59892
|
61 |
val check_metguh_unique =
|
walther@59893
|
62 |
Check_Unique.message (Check_Unique.collect (#guh: met -> Check_Unique.guh));
|
walther@59892
|
63 |
|
walther@59882
|
64 |
(**)end(**)
|