test/Tools/isac/Test_Isac.thy
author Walther Neuper <neuper@ist.tugraz.at>
Thu, 05 May 2011 09:23:32 +0200
branchdecompose-isar
changeset 41975 61f358925792
parent 41973 bf17547ce960
child 41976 792c59bf54d4
permissions -rw-r--r--
tuned
neuper@41945
     1
(* Title:  All tests on isac; observe outcommented
neuper@41943
     2
   Author: Walther Neuper 101001
neuper@41943
     3
   (c) copyright due to lincense terms.
neuper@41943
     4
neuper@41943
     5
$ cd /usr/local/isabisac/test/Tools/isac
neuper@41945
     6
$ /usr/local/isabisac/bin/isabelle emacs -l Isac Test_Isac.thy &
neuper@41968
     7
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
neuper@41968
     8
        10        20        30        40        50        60        70        80         90      100
neuper@41943
     9
*)
neuper@41943
    10
neuper@41954
    11
theory Test_Isac imports Isac
neuper@41945
    12
uses 
neuper@41945
    13
  (         "library.sml")
neuper@41945
    14
  (         "calcelems.sml")
neuper@41945
    15
  ("ProgLang/termC.sml") 
neuper@41945
    16
  ("ProgLang/calculate.sml")
neuper@41945
    17
  ("ProgLang/rewrite.sml")
neuper@41945
    18
(*("ProgLang/listg.sml") ("ProgLang/scrtools.sml") ("ProgLang/tools.sml") *)
neuper@41945
    19
neuper@41945
    20
  ("Interpret/mstools.sml") 
bonzai@41951
    21
  ("Interpret/ctree.sml")
neuper@41945
    22
  ("Interpret/ptyps.sml") 
neuper@41945
    23
(*("Interpret/generate.sml")*)
neuper@41945
    24
  ("Interpret/calchead.sml") 
neuper@41945
    25
(*("Interpret/appl.sml")*)
neuper@41945
    26
  ("Interpret/rewtools.sml") 
neuper@41945
    27
(*("Interpret/script.sml")
neuper@41945
    28
  ("Interpret/solve.sml") 
neuper@41945
    29
  ("Interpret/inform.sml")*)
neuper@41945
    30
  ("Interpret/mathengine.sml")
neuper@41945
    31
neuper@41945
    32
(*("xmlsrc/mathml.sml")
neuper@41945
    33
  ("xmlsrc/datatypes.sml")
neuper@41945
    34
  ("xmlsrc/pbl-met-hierarchy.sml")
neuper@41945
    35
  ("xmlsrc/thy-hierarchy.sml")*)
neuper@41945
    36
  ("xmlsrc/interface-xml.sml")
neuper@41945
    37
neuper@41945
    38
  ("Frontend/messages.sml")
neuper@41945
    39
  ("Frontend/states.sml")
neuper@41945
    40
  ("Frontend/interface.sml")
neuper@41945
    41
  ("print_exn_G.sml")
neuper@41945
    42
neuper@41945
    43
  ("Knowledge/delete.sml")
neuper@41945
    44
  ("Knowledge/descript.sml")
neuper@41945
    45
  ("Knowledge/atools.sml")
neuper@41945
    46
  ("Knowledge/simplify.sml")
neuper@41945
    47
  ("Knowledge/poly.sml")
neuper@41945
    48
  ("Knowledge/rational.sml")
neuper@41945
    49
  ("Knowledge/equation.sml")
neuper@41945
    50
  ("Knowledge/root.sml")
neuper@41945
    51
  ("Knowledge/lineq.sml")
neuper@41945
    52
  ("Knowledge/rooteq.sml")
neuper@41945
    53
  ("Knowledge/rateq.sml")
neuper@41945
    54
  ("Knowledge/rootrateq.sml")
neuper@41945
    55
(*("Knowledge/polyeq.sml")*)
neuper@41945
    56
  ("Knowledge/calculus.sml")
neuper@41945
    57
  ("Knowledge/trig.sml")
neuper@41945
    58
  ("Knowledge/logexp.sml")
neuper@41945
    59
  ("Knowledge/diff.sml")
neuper@41945
    60
  ("Knowledge/integrate.sml")
neuper@41945
    61
  ("Knowledge/eqsystem.sml")
neuper@41945
    62
  ("Knowledge/test.sml")
neuper@41945
    63
  ("Knowledge/polyminus.sml")
neuper@41945
    64
  ("Knowledge/vect.sml")
neuper@41945
    65
  ("Knowledge/diffapp.sml")
neuper@41945
    66
  ("Knowledge/biegelinie.sml")
neuper@41945
    67
  ("Knowledge/algein.sml")
neuper@41945
    68
  ("Knowledge/diophanteq.sml")
neuper@41945
    69
  ("Knowledge/isac.sml")
neuper@41945
    70
neuper@41943
    71
begin
neuper@41947
    72
neuper@41943
    73
  ML {*"%%%%%%%%%%%%%%%%% start ProgLang.thy %%%%%%%%%%%%%%%%%%%";*}
neuper@41945
    74
  use          "library.sml"        (*new 2011*)
neuper@41945
    75
  use          "calcelems.sml"      (*complete*)
neuper@41943
    76
  use "ProgLang/termC.sml"          (*part.*)
neuper@41943
    77
  use "ProgLang/calculate.sml"      (*part.*)
neuper@41943
    78
  use "ProgLang/rewrite.sml"        (*part.*)
neuper@41943
    79
(*use "ProgLang/listg.sml"            2002*)
neuper@41943
    80
(*use "ProgLang/scrtools.sml"         2002*)
neuper@41943
    81
(*use "ProgLang/tools.sml"            2002*)
neuper@41943
    82
  ML {*"%%%%%%%%%%%%%%%%% end ProgLang.thy %%%%%%%%%%%%%%%%%%%%%";*}
neuper@41943
    83
  ML {*"%%%%%%%%%%%%%%%%% start Interpret.thy %%%%%%%%%%%%%%%%%%";*}
neuper@41973
    84
ML {*
neuper@41973
    85
val fmz = ["equality (x+1=(2::real))", "solveFor x","solutions L"];
neuper@41973
    86
val (dI',pI',mI') =
neuper@41973
    87
  ("Test", ["sqroot-test","univariate","equation","test"],
neuper@41973
    88
   ["Test","squ-equ-test-subpbl1"]);
neuper@41973
    89
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@41973
    90
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@41973
    91
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@41973
    92
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@41973
    93
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@41973
    94
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@41973
    95
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@41973
    96
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@41973
    97
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@41973
    98
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@41973
    99
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@41973
   100
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@41973
   101
(*val (p,_,f,nxt,_,pt) = me nxt p [1] pt; WAS: 
neuper@41973
   102
       Tac "[error] appl_add: is_known: identifiers [equality] not in example"*)
neuper@41973
   103
(*val (p,_,f,nxt,_,pt) = me nxt p [1] pt; WAS: applicable_in (p,Pbl) pt (Tac id): not at Pbl*)
neuper@41973
   104
show_pt pt; (*WAS ...(([3], Pbl), solve (-1 + x = 0, x))] OK*)
neuper@41973
   105
"~~~~~ fun me, args:"; val (_,tac) = nxt;
neuper@41973
   106
val (pt, p) = case locatetac tac (pt,p) of
neuper@41973
   107
	("ok", (_, _, ptp))  => ptp | _ => error "script.sml locatetac";
neuper@41973
   108
"~~~~~ fun step, args:"; val (ip as (_,p_), (ptp as (pt,p), tacis)) = (p, ((pt, e_pos'), []))
neuper@41973
   109
val pIopt = get_pblID (pt,ip);
neuper@41973
   110
tacis; (*= []*)
neuper@41973
   111
pIopt; (*= SOME ["sqroot-test", "univariate", ...]*)
neuper@41973
   112
member op = [Pbl,Met] p_ andalso is_none (get_obj g_env pt (fst p)); (*= true*)
neuper@41973
   113
"~~~~~ fun nxt_specify_, args:"; val (ptp as (pt, pos as (p,p_))) = (pt,ip);
neuper@41973
   114
val pblobj as (PblObj{meth,origin=origin as (oris,(dI',pI',mI'),_),
neuper@41973
   115
			  probl,spec=(dI,pI,mI),...}) = get_obj I pt p;
neuper@41973
   116
just_created_ pblobj (*by Subproblem*) andalso origin <> e_origin; (*false*)
neuper@41973
   117
val cpI = if pI = e_pblID then pI' else pI;
neuper@41973
   118
		val cmI = if mI = e_metID then mI' else mI;
neuper@41973
   119
		val {ppc, prls, where_, ...} = get_pbt cpI;
neuper@41973
   120
		val pre = check_preconds "thy 100820" prls where_ probl;
neuper@41973
   121
		val pb = foldl and_ (true, map fst pre);
neuper@41973
   122
val (_,tac) = nxt_spec p_ pb oris (dI',pI',mI') (probl, meth) 
neuper@41973
   123
			  (ppc, (#ppc o get_met) cmI) (dI, pI, mI);
neuper@41973
   124
"~~~~~ fun nxt_specif, args:"; val (Add_Given ct, ptp) = (tac, ptp);
neuper@41973
   125
"~~~~~ fun nxt_specif_additem, args:"; val (sel, ct, ptp as (pt, (p, Pbl))) = ("#Given", ct, ptp);
neuper@41973
   126
val (PblObj{meth=met,origin=(oris,(dI',pI',_),_),
neuper@41973
   127
		  probl=pbl,spec=(dI,pI,_),...}) = get_obj I pt p;
neuper@41973
   128
val thy = if dI = e_domID then assoc_thy dI' else assoc_thy dI;
neuper@41973
   129
val cpI = if pI = e_pblID then pI' else pI;
neuper@41973
   130
val ctxt = get_ctxt pt (p, Pbl);
neuper@41973
   131
oris; (*= [(1, [1], "#Given", Const ("Descript.equality", "HOL.bool...*)
neuper@41973
   132
"~~~~~ fun appl_add, args:"; val (ctxt, sel, oris, ppc, pbt, str) = 
neuper@41973
   133
                               (ctxt, sel, oris, pbl, (#ppc o get_pbt) cpI, ct);
neuper@41975
   134
*}
neuper@41975
   135
ML {*
neuper@41975
   136
val t = parseNEW ctxt str;
neuper@41975
   137
str;
neuper@41975
   138
t;
neuper@41975
   139
(*-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
neuper@41975
   140
if t = parseNEW ctxt "-1 + x = (0::real)" then ()
neuper@41973
   141
else error "TODO"
neuper@41975
   142
-.-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*)
neuper@41975
   143
neuper@41973
   144
*}
neuper@41975
   145
ML {*
neuper@41975
   146
(*-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
neuper@41975
   147
print_depth 999; applicable_in p pt m;
neuper@41975
   148
Model_Problem';
neuper@41975
   149
-.-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*)
neuper@41975
   150
*}
neuper@41975
   151
  use "Interpret/mstools.sml"       (*new 2010*)
neuper@41975
   152
  use "Interpret/ctree.sml"         (*!...see(25)*)
neuper@41943
   153
  use "Interpret/ptyps.sml"         (*    *)
neuper@41943
   154
(*use "Interpret/generate.sml"        new 2011*)
neuper@41972
   155
  use "Interpret/calchead.sml"      (*!    *)
neuper@41975
   156
  use "Interpret/appl.sml"          (*!complete WEGEN INTERMED TESTCODE*)
neuper@41972
   157
  use "Interpret/rewtools.sml"      (*!    *)
neuper@41972
   158
  use "Interpret/script.sml"        (*!TODO*)
neuper@41972
   159
(*use "Interpret/solve.sml"           !TODO*)
neuper@41972
   160
(*use "Interpret/inform.sml"          !TODO*)
neuper@41972
   161
  use "Interpret/mathengine.sml"    (*!part.*)
neuper@41943
   162
  ML {*"%%%%%%%%%%%%%%%%% end Interpret.thy %%%%%%%%%%%%%%%%%%%%";*}
neuper@41943
   163
  ML {*"%%%%%%%%%%%%%%%%% start xmlsrc.thy %%%%%%%%%%%%%%%%%%%%%";*}
neuper@41943
   164
(*use "xmlsrc/mathml.sml"             TODO*)
neuper@41943
   165
(*use "xmlsrc/datatypes.sml"          TODO*)
neuper@41943
   166
(*use "xmlsrc/pbl-met-hierarchy.sml"  TODO*)
neuper@41943
   167
(*use "xmlsrc/thy-hierarchy.sml"      TODO after 2009-2*) 
neuper@41943
   168
  use "xmlsrc/interface-xml.sml"    (*TODO after 2009-2*)
neuper@41943
   169
  ML {*"%%%%%%%%%%%%%%%%% end xmlsrc.thy %%%%%%%%%%%%%%%%%%%%%%%";*}
neuper@41943
   170
  ML {*"%%%%%%%%%%%%%%%%% start Frontend.thy %%%%%%%%%%%%%%%%%%%";*}
neuper@41943
   171
  use "Frontend/messages.sml"        (*new 2011*)
neuper@41943
   172
  use "Frontend/states.sml"          (*new 2011*)
neuper@41945
   173
  use "Frontend/interface.sml"       (*part.*)                            
neuper@41945
   174
  use         "print_exn_G.sml"      (*new 2011*)
neuper@41943
   175
  ML {*"%%%%%%%%%%%%%%%%% end Frontend.thy %%%%%%%%%%%%%%%%%%%%%";*}
neuper@41943
   176
  ML {*"%%%%%%%%%%%%%%%%% start Knowledge.thy %%%%%%%%%%%%%%%%%%";*}
neuper@41943
   177
  use "Knowledge/delete.sml"         (*new 2011*)
neuper@41943
   178
  use "Knowledge/descript.sml"       (*new 2011*)
neuper@41943
   179
(*use "Knowledge/atools.sml"           2002, added termorder.sml 2011*)
neuper@41943
   180
  use "Knowledge/simplify.sml"       (*part.*)
neuper@41943
   181
(*use "Knowledge/poly.sml"             2002*)
neuper@41947
   182
(*use "Knowledge/rational.sml"         part.; diff.emacs--jedit*)
neuper@41943
   183
(*use "Knowledge/equation.sml"         2002*)
neuper@41943
   184
(*use "Knowledge/root.sml"             2002*)
neuper@41943
   185
  use "Knowledge/lineq.sml"          (*new 2011*)
neuper@41943
   186
(*use "Knowledge/rooteq.sml"           2002*)
neuper@41943
   187
(*use "Knowledge/rateq.sml"            2002*)
neuper@41943
   188
(*use "Knowledge/rootrat.sml"          2002*)
neuper@41943
   189
(*use "Knowledge/rootrateq.sml"        2002*)
neuper@41943
   190
(*use "Knowledge/polyeq.sml"           2002*)
neuper@41956
   191
(*use "Knowledge/rlang.sml"            2002???*)
neuper@41943
   192
  use "Knowledge/calculus.sml"       (*new 2011*)
neuper@41943
   193
(*use "Knowledge/trig.sml"             2002*)
neuper@41943
   194
(*use "Knowledge/logexp.sml"           2002*)
neuper@41943
   195
  use "Knowledge/diff.sml"           (*part.*)
neuper@41947
   196
(*use "Knowledge/integrate.sml"        part. was complete 2009-2
neuper@41947
   197
                                              diff.emacs--jedit*)
neuper@41943
   198
(*use "Knowledge/eqsystem.sml"         2002*)
neuper@41943
   199
  use "Knowledge/test.sml"           (*new 2011*)
neuper@41943
   200
  use "Knowledge/polyminus.sml"      (*part.*)
neuper@41943
   201
(*use "Knowledge/vect.sml"             2002*)
neuper@41943
   202
(*use "Knowledge/diffapp.sml"          2002*)
neuper@41943
   203
(*use "Knowledge/biegelinie.sml"       2002*)
neuper@41943
   204
(*use "Knowledge/algein.sml"           2002*)
neuper@41943
   205
  use "Knowledge/diophanteq.sml"     (*complete*)
neuper@41943
   206
  use "Knowledge/isac.sml"           (*part.*)
neuper@41943
   207
  ML {*"%%%%%%%%%%%%%%%%% end Knowledge.thy %%%%%%%%%%%%%%%%%%%%";*}
neuper@41945
   208
  ML {*"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";*}
neuper@41945
   209
  ML {*"%%%%%%%%%%%%%%%%% all tests successful %%%%%%%%%%%%%%%%%";*}
neuper@41945
   210
  ML {*"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";*}
neuper@41943
   211
neuper@41943
   212
end
neuper@41943
   213
neuper@41943
   214
(*=== inhibit exn ?=============================================================
neuper@41943
   215
===== inhibit exn ?===========================================================*)
neuper@41943
   216
neuper@41969
   217
(*========== inhibit exn 110503 ================================================
neuper@41943
   218
neuper@41943
   219
"########### testcode inserted vvv ###########################################";
neuper@41943
   220
"########### testcode inserted ^^^ ###########################################";
neuper@41943
   221
neuper@41969
   222
============ inhibit exn 110503 ==============================================*)
neuper@41943
   223
neuper@41943
   224
(*-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
neuper@41943
   225
-.-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*)
neuper@41975
   226