test/Tools/isac/OLDTESTS/scriptnew.sml
author Mathias Lehnfeld <s1210629013@students.fh-hagenberg.at>
Mon, 27 Jan 2014 21:49:27 +0100
changeset 55359 73dc85c025ab
parent 55355 e55f16caf498
child 55363 d78bc1342183
permissions -rw-r--r--
cleanup, naming: 'KEStore_Elems' in Tests now 'Test_KEStore_Elems', 'store_pbts' now 'add_pbts'
neuper@37906
     1
(* use"../systest/scriptnew.sml";
neuper@37906
     2
   use"systest/scriptnew.sml";
neuper@37906
     3
   use"scriptnew.sml";
neuper@37906
     4
   *)
neuper@37906
     5
neuper@37906
     6
(*contents*)
neuper@37906
     7
" --- test 30.4.02 Testterm:  Repeat Repeat Or ------------------ ";
neuper@37906
     8
" --- test  9.5.02 Testeq: While Try Repeat @@ ------------------ ";
neuper@37981
     9
" --- test 11.5.02 Testeq: let e_e =... in [e_] ------------------ ";
neuper@37906
    10
" _________________ me + nxt_step from script ___________________ ";
neuper@37906
    11
" _________________ me + sqrt-equ-test: 1.norm_equation  ________ ";
neuper@37906
    12
" _________________ equation with x =(-12)/5, but L ={} ------- ";
neuper@37906
    13
"------------------ script with Map, Subst (biquadr.equ.)---------";
neuper@37906
    14
(*contents*)
neuper@37906
    15
neuper@37906
    16
neuper@37906
    17
neuper@37906
    18
neuper@37906
    19
"  --- test 30.4.02 Testterm:  Repeat Repeat Or ------------------ ";
neuper@37906
    20
"  --- test 30.4.02 Testterm:  Repeat Repeat Or ------------------ ";
neuper@37906
    21
"  --- test 30.4.02 Testterm:  Repeat Repeat Or ------------------ ";
neuper@37906
    22
store_pbt
neuper@37906
    23
 (prep_pbt Test.thy "pbl_testss" [] e_pblID
neuper@37906
    24
 (["tests"],
neuper@37906
    25
  []:(string * string list) list,
neuper@37926
    26
  e_rls, NONE, []));
neuper@37906
    27
store_pbt
neuper@37906
    28
 (prep_pbt Test.thy "pbl_testss_term" [] e_pblID
neuper@37906
    29
 (["met_testterm","tests"],
neuper@37906
    30
  [("#Given" ,["realTestGiven g_"]),
neuper@37906
    31
   ("#Find"  ,["realTestFind f_"])
neuper@37906
    32
  ],
neuper@37926
    33
  e_rls, NONE, []));
s1210629013@55355
    34
s1210629013@55359
    35
Test_KEStore_Elems.add_pbts
s1210629013@55355
    36
  [prep_pbt Test.thy "pbl_testss" [] e_pblID
s1210629013@55355
    37
      (["tests"], []:(string * string list) list, e_rls, NONE, []),
s1210629013@55355
    38
    prep_pbt Test.thy "pbl_testss_term" [] e_pblID
s1210629013@55355
    39
      (["met_testterm","tests"],
s1210629013@55355
    40
        [("#Given" ,["realTestGiven g_"]),
s1210629013@55355
    41
          ("#Find"  ,["realTestFind f_"])],
s1210629013@55355
    42
        e_rls, NONE, [])]
s1210629013@55355
    43
  thy;
s1210629013@55355
    44
neuper@37906
    45
store_met
neuper@37906
    46
 (prep_met Test.thy "met_test_simp" [] e_metID
neuper@37906
    47
 (*test for simplification*)
neuper@37906
    48
 (["Test","met_testterm"]:metID,
neuper@37906
    49
  [("#Given" ,["realTestGiven g_"]),
neuper@37906
    50
   ("#Find"  ,["realTestFind f_"])
neuper@37906
    51
   ],
neuper@37906
    52
   {rew_ord'="tless_true",rls'=tval_rls,srls=e_rls,prls=e_rls,calc=[],
neuper@42425
    53
    crls=tval_rls, errpats = [], nrls=e_rls(*,
neuper@37906
    54
    asm_rls=[],asm_thm=[]*)},
neuper@37906
    55
 "Script Testterm (g_::real) =   \
neuper@37906
    56
 \Repeat\
neuper@37906
    57
 \  ((Repeat (Rewrite rmult_1 False)) Or\
neuper@37906
    58
 \   (Repeat (Rewrite rmult_0 False)) Or\
neuper@37906
    59
 \   (Repeat (Rewrite radd_0 False))) g_"
neuper@37906
    60
 ));
neuper@37906
    61
val fmz = ["realTestGiven ((0+0)*(1*(1*a)))","realTestFind F"];
neuper@38058
    62
val (dI',pI',mI') = ("Test",["met_testterm","tests"],
neuper@37906
    63
		     ["Test","met_testterm"]);
neuper@37906
    64
(*val p = e_pos'; val c = []; 
neuper@37906
    65
val nxt = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
    66
val (p,_,f,nxt,_,pt) = me nxt p c EmptyPtree;*)
neuper@37906
    67
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
    68
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
    69
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
    70
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
    71
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
    72
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
    73
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@38058
    74
(*val nxt = ("Apply_Method",Apply_Method ("Test","met_testterm"))*)
neuper@37906
    75
(*----script 111 ------------------------------------------------*)
neuper@37906
    76
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
    77
(*"(#0 + #0) * (#1 * (#1 * a))"  nxt= Rewrite ("rmult_1",*)
neuper@37906
    78
(*----script 222 ------------------------------------------------*)
neuper@37906
    79
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
    80
(*"(#0 + #0) * (#1 * a)"         nxt= Rewrite ("rmult_1",*)
neuper@37906
    81
(*----script 333 ------------------------------------------------*)
neuper@37906
    82
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
    83
(*"(#0 + #0) * a"                nxt= Rewrite ("radd_0",*)
neuper@37906
    84
(*----script 444 ------------------------------------------------*)
neuper@37906
    85
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
    86
(*"#0 * a"*)
neuper@37906
    87
(*----script 555 ------------------------------------------------*)
neuper@37906
    88
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
    89
(*"#0"*)
neuper@37906
    90
if p=([4],Res) then ()
neuper@38031
    91
else error ("new behaviour in 30.4.02 Testterm: p="^(pos'2str p));
neuper@37906
    92
(*----script 666 ------------------------------------------------*)
neuper@37906
    93
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
    94
(*"#0"*)
neuper@37906
    95
if nxt=("End_Proof'",End_Proof') then ()
neuper@38031
    96
else error "new behaviour in 30.4.02 Testterm: End_Proof";
neuper@37906
    97
neuper@37906
    98
neuper@37906
    99
neuper@37906
   100
neuper@37906
   101
neuper@37906
   102
"  --- test 9.5.02 Testeq: While Try Repeat @@ ------------------ ";
neuper@37906
   103
"  --- test 9.5.02 Testeq: While Try Repeat @@ ------------------ ";
neuper@37906
   104
"  --- test 9.5.02 Testeq: While Try Repeat @@ ------------------ ";
neuper@37906
   105
store_pbt
neuper@37906
   106
 (prep_pbt Test.thy "pbl_testss_eq" [] e_pblID
neuper@37906
   107
 (["met_testeq","tests"],
neuper@37981
   108
  [("#Given" ,["boolTestGiven e_e"]),
neuper@37906
   109
   ("#Find"  ,["boolTestFind v_i_"])
neuper@37906
   110
  ],
neuper@37926
   111
  e_rls, NONE, []));
s1210629013@55359
   112
Test_KEStore_Elems.add_pbts
s1210629013@55355
   113
  [prep_pbt Test.thy "pbl_testss_eq" [] e_pblID
s1210629013@55355
   114
      (["met_testeq","tests"],
s1210629013@55355
   115
        [("#Given" ,["boolTestGiven e_e"]),
s1210629013@55355
   116
          ("#Find"  ,["boolTestFind v_i_"])],
s1210629013@55355
   117
        e_rls, NONE, [])]
s1210629013@55355
   118
  thy;
neuper@37906
   119
neuper@37906
   120
store_met
neuper@37906
   121
 (prep_met Test.thy "met_test_eq1" [] e_metID
neuper@37906
   122
 (["Test","testeq1"]:metID,
neuper@37981
   123
   [("#Given",["boolTestGiven e_e"]),
neuper@37906
   124
   ("#Where" ,[]), 
neuper@37906
   125
   ("#Find"  ,["boolTestFind v_i_"]) 
neuper@37906
   126
   ],
neuper@37906
   127
   {rew_ord'="tless_true",rls'=tval_rls,
neuper@37906
   128
    srls=append_rls "testeq1_srls" e_rls 
neuper@37906
   129
		    [Calc ("Test.contains'_root", eval_contains_root"")],
neuper@42425
   130
    prls=e_rls,calc=[], crls=tval_rls, errpats = [], nrls=e_rls
neuper@37906
   131
		  (*,asm_rls=[],asm_thm=[("square_equation_left","")]*)},
neuper@37982
   132
 "Script Testeq (e_e::bool) =                                        \
neuper@37981
   133
   \(While (contains_root e_e) Do                                     \
neuper@37906
   134
   \((Try (Repeat (Rewrite rroot_square_inv False))) @@    \
neuper@37906
   135
   \  (Try (Repeat (Rewrite square_equation_left True))) @@ \
neuper@37906
   136
   \  (Try (Repeat (Rewrite radd_0 False)))))\
neuper@37981
   137
   \ e_e"
neuper@37906
   138
 ));
neuper@37906
   139
neuper@37906
   140
val fmz = ["boolTestGiven (0+(sqrt(sqrt(sqrt a))^^^2)^^^2=0)",
neuper@37906
   141
	   "boolTestFind v_i_"];
neuper@38058
   142
val (dI',pI',mI') = ("Test",["met_testeq","tests"],
neuper@37906
   143
		     ["Test","testeq1"]);
neuper@48790
   144
val Prog sc = (#scr o get_met) ["Test","testeq1"];
neuper@37906
   145
atomt sc;
neuper@37906
   146
(*val p = e_pos'; val c = []; 
neuper@37906
   147
val nxt = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   148
val (p,_,f,nxt,_,pt) = me nxt p c EmptyPtree;*)
neuper@37906
   149
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   150
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   151
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   152
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   153
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   154
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   155
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@38058
   156
(*val nxt = ("Apply_Method",Apply_Method ("Test","testeq1")) *)
neuper@37906
   157
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   158
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   159
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   160
(*val f = Form' (FormKF (~1,EdUndef,1,Nundef,"#0 + sqrt a = #0"))
neuper@37906
   161
val nxt = ("Rewrite",Rewrite ("radd_0","#0 + ?k = ?k"))*)
neuper@37906
   162
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   163
neuper@37906
   164
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   165
(*** No such constant: "Test.contains'_root"  *)
neuper@37906
   166
neuper@37906
   167
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   168
if f=(Form' (FormKF (~1,EdUndef,0,Nundef,"a = 0 ^^^ 2"))) andalso
neuper@37906
   169
   nxt=("End_Proof'",End_Proof') then ()
neuper@38031
   170
else error "different behaviour test 9.5.02 Testeq: While Try Repeat @@";
neuper@37906
   171
neuper@37906
   172
neuper@37906
   173
neuper@37906
   174
neuper@37981
   175
" --- test 11.5.02 Testeq: let e_e =... in [e_] --------- ";
neuper@37981
   176
" --- test 11.5.02 Testeq: let e_e =... in [e_] --------- ";
neuper@37981
   177
" --- test 11.5.02 Testeq: let e_e =... in [e_] --------- ";
neuper@37906
   178
store_met
neuper@37906
   179
 (prep_met Test.thy "met_test_let" [] e_metID
neuper@37906
   180
 (["Test","testlet"]:metID,
neuper@37981
   181
   [("#Given",["boolTestGiven e_e"]),
neuper@37906
   182
   ("#Where" ,[]), 
neuper@37906
   183
   ("#Find"  ,["boolTestFind v_i_"]) 
neuper@37906
   184
   ],
neuper@37906
   185
   {rew_ord'="tless_true",rls'=tval_rls,
neuper@37906
   186
    srls=append_rls "testlet_srls" e_rls 
neuper@37906
   187
		    [Calc ("Test.contains'_root",eval_contains_root"")],
neuper@42425
   188
    prls=e_rls,calc=[], crls=tval_rls, errpats = [], nrls=e_rls
neuper@37906
   189
		  (*,asm_rls=[],asm_thm=[("square_equation_left","")]*)},
neuper@37982
   190
   "Script Testeq2 (e_e::bool) =                                        \
neuper@37981
   191
   \(let e_e =\
neuper@37981
   192
   \  ((While (contains_root e_e) Do                                     \
neuper@37906
   193
   \   (Rewrite square_equation_left True))\
neuper@37981
   194
   \   e_e)\
neuper@37906
   195
   \in [e_::bool])"
neuper@37906
   196
   ));
neuper@48790
   197
val Prog sc = (#scr o get_met) ["Test","testlet"];
neuper@37906
   198
writeln(term2str sc);
neuper@37906
   199
val fmz = ["boolTestGiven (sqrt a = 0)",
neuper@37906
   200
	   "boolTestFind v_i_"];
neuper@38058
   201
val (dI',pI',mI') = ("Test",["met_testeq","tests"],
neuper@37906
   202
		     ["Test","testlet"]);
neuper@37906
   203
(*val p = e_pos'; val c = []; 
neuper@37906
   204
val nxt = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   205
val (p,_,f,nxt,_,pt) = me nxt p c EmptyPtree;*)
neuper@37906
   206
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   207
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   208
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   209
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   210
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   211
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   212
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@38058
   213
(*val nxt = ("Apply_Method",Apply_Method ("Test","testlet"))*)
neuper@37906
   214
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   215
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@38043
   216
val (p,_,f,nxt,_,pt) = (me nxt p c pt) handle e => OldGoals.print_exn e;
neuper@37906
   217
if f=(Form' (FormKF (~1,EdUndef,0,Nundef,"[a = 0 ^^^ 2]"))) andalso
neuper@37906
   218
   nxt=("End_Proof'",End_Proof') then ()
neuper@38031
   219
else error "different behaviour in test 11.5.02 Testeq: let e_e =... in [e_]";
neuper@37906
   220
neuper@37906
   221
neuper@37906
   222
neuper@37906
   223
neuper@37906
   224
" _________________ me + nxt_step from script _________________ ";
neuper@37906
   225
" _________________ me + nxt_step from script _________________ ";
neuper@37906
   226
" _________________ me + nxt_step from script _________________ ";
neuper@37906
   227
val fmz = ["equality (sqrt(9+4*x)=sqrt x + sqrt(5+x))",
neuper@37906
   228
	   "solveFor x","solutions L"];
neuper@37906
   229
val (dI',pI',mI') =
neuper@38058
   230
  ("Test",["sqroot-test","univariate","equation","test"],
neuper@37906
   231
   ["Test","sqrt-equ-test"]);
neuper@48790
   232
val Prog sc = (#scr o get_met) ["Test","sqrt-equ-test"];
neuper@37906
   233
writeln(term2str sc);
neuper@37906
   234
neuper@37906
   235
"--- s1 ---";
neuper@37906
   236
(*val p = e_pos'; val c = []; 
neuper@37906
   237
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   238
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
neuper@37906
   239
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   240
"--- s2 ---";
neuper@37906
   241
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   242
(* val nxt =
neuper@37906
   243
  ("Add_Given",
neuper@37906
   244
   Add_Given "equality (sqrt (#9 + #4 * x) = sqrt x + sqrt (#5 + x))");*)
neuper@37906
   245
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   246
"--- s3 ---";
neuper@37906
   247
(* val nxt = ("Add_Given",Add_Given "solveFor x");*)
neuper@37906
   248
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   249
"--- s4 ---";
neuper@37906
   250
(* val nxt = ("Add_Given",Add_Given "errorBound (eps = #0)");*)
neuper@37906
   251
"--- s5 ---";
neuper@37906
   252
(* val nxt = ("Add_Find",Add_Find "solutions L");*)
neuper@37906
   253
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   254
"--- s6 ---";
neuper@38058
   255
(* val nxt = ("Specify_Theory",Specify_Theory "Test");*)
neuper@37906
   256
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   257
"--- s7 ---";
neuper@37906
   258
(* val nxt =
neuper@37906
   259
  ("Specify_Problem",
neuper@37906
   260
   Specify_Problem ["sqroot-test","univariate","equation","test"]);*)
neuper@37906
   261
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   262
"--- s8 ---";
neuper@38058
   263
(* val nxt = ("Specify_Method",Specify_Method ("Test","sqrt-equ-test"));*)
neuper@37906
   264
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   265
"--- s9 ---";
neuper@38058
   266
(* val nxt = ("Apply_Method",Apply_Method ("Test","sqrt-equ-test"));*)
neuper@37906
   267
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   268
"--- 1 ---";
neuper@37906
   269
(* val nxt = ("Rewrite",Rewrite ("square_equation_left",""));*)
neuper@37906
   270
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   271
"--- 2 ---";
neuper@37906
   272
(* val nxt = ("Rewrite_Set",Rewrite_Set "Test_simplify");*)
neuper@37906
   273
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   274
"--- 3 ---";
neuper@37906
   275
(* val nxt = ("Rewrite_Set",Rewrite_Set "rearrange_assoc");*)
neuper@37906
   276
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   277
"--- 4 ---";
neuper@37906
   278
(* val nxt = ("Rewrite_Set",Rewrite_Set "isolate_root");*)
neuper@37906
   279
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   280
"--- 5 ---";
neuper@37906
   281
(* val nxt = ("Rewrite_Set",Rewrite_Set "Test_simplify");*)
neuper@37906
   282
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   283
"--- 6 ---";
neuper@37906
   284
(* val nxt = ("Rewrite",Rewrite ("square_equation_left",""));*)
neuper@37906
   285
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   286
"--- 7 ---";
neuper@37906
   287
(* val nxt = ("Rewrite_Set",Rewrite_Set "Test_simplify");*)
neuper@37906
   288
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   289
"--- 8<> ---";
neuper@37906
   290
(* val nxt = ("Rewrite_Set",Rewrite_Set "rearrange_assoc");*)
neuper@37906
   291
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   292
"--- 9<> ---";
neuper@37906
   293
(* val nxt = ("Rewrite_Set",Rewrite_Set "Test_simplify");*)
neuper@37906
   294
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   295
"--- 10<> ---";
neuper@37906
   296
(* val nxt = ("Rewrite_Set",Rewrite_Set "norm_equation");*)
neuper@37906
   297
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   298
"--- 11<> ---";
neuper@37906
   299
(* val nxt = ("Rewrite_Set",Rewrite_Set "Test_simplify");*)
neuper@37906
   300
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   301
"--- 12<> ---.";
neuper@37906
   302
(* val nxt = ("Rewrite_Set_Inst",Rewrite_Set_Inst (["(bdv,x)"],"isolate_bdv"));*)
neuper@37906
   303
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   304
"--- 13<> ---";
neuper@37906
   305
(* val nxt = ("Rewrite_Set",Rewrite_Set "Test_simplify");*)
neuper@37906
   306
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   307
"--- 14<> ---";
neuper@38058
   308
(* nxt = ("Check_Postcond",Check_Postcond ("Test","sqrt-equ-test"));*)
neuper@37906
   309
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   310
if f<>(Form' (FormKF (~1,EdUndef,0,Nundef,"[x = 4]")))
neuper@38031
   311
then error "scriptnew.sml 1: me + tacs from script: new behaviour" 
neuper@37906
   312
else ();
neuper@37906
   313
"--- 15<> ---";
neuper@37906
   314
(* val nxt = ("End_Proof'",End_Proof');*)
neuper@37906
   315
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   316
neuper@37906
   317
writeln (pr_ptree pr_short pt);
neuper@37906
   318
writeln("result: "^((term2str o fst o (get_obj g_result pt)) [])^
neuper@37906
   319
"\n=============================================================");
neuper@37906
   320
(*get_obj g_asm pt [];
neuper@37906
   321
val it = [("#0 <= sqrt x + sqrt (#5 + x)",[1]),("#0 <= #9 + #4 * x",[1]),...*)
neuper@37906
   322
neuper@37906
   323
neuper@37906
   324
neuper@37906
   325
neuper@37906
   326
neuper@37906
   327
" _________________ me + sqrt-equ-test: 1.norm_equation  _________________ ";
neuper@37906
   328
" _________________ me + sqrt-equ-test: 1.norm_equation  _________________ ";
neuper@37906
   329
" _________________ me + sqrt-equ-test: 1.norm_equation  _________________ ";
neuper@37906
   330
val fmz = ["equality (sqrt(9+4*x)=sqrt x + sqrt(5+x))",
neuper@37906
   331
	   "solveFor x","errorBound (eps=0)",
neuper@37906
   332
	   "solutions L"];
neuper@37906
   333
val (dI',pI',mI') =
neuper@38058
   334
  ("Test",["sqroot-test","univariate","equation","test"],
neuper@37906
   335
   ["Test","sqrt-equ-test"]);
neuper@48790
   336
 val Prog sc = (#scr o get_met) ["Test","sqrt-equ-test"];
neuper@37906
   337
 (writeln o term2str) sc;
neuper@37906
   338
"--- s1 ---";
neuper@37906
   339
(*val p = e_pos'; val c = []; 
neuper@37906
   340
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   341
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
neuper@37906
   342
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   343
"--- s2 ---";
neuper@37906
   344
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   345
(* val nxt = ("Add_Given",
neuper@37906
   346
   Add_Given "equality (sqrt (#9 + #4 * x) = sqrt x + sqrt (#5 + x))");*)
neuper@37906
   347
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   348
"--- s3 ---";
neuper@37906
   349
(* val nxt = ("Add_Given",Add_Given "solveFor x");*)
neuper@37906
   350
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   351
"--- s4 ---";
neuper@37906
   352
(* val nxt = ("Add_Given",Add_Given "errorBound (eps = #0)");*)
neuper@37906
   353
(*val (p,_,f,nxt,_,pt) = me nxt p [1] pt;*)
neuper@37906
   354
"--- s5 ---";
neuper@37906
   355
(* val nxt = ("Add_Find",Add_Find "solutions L");*)
neuper@37906
   356
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   357
"--- s6 ---";
neuper@38058
   358
(* val nxt = ("Specify_Theory",Specify_Theory "Test");*)
neuper@37906
   359
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   360
"--- s7 ---";
neuper@37906
   361
(* val nxt = ("Specify_Problem",
neuper@37906
   362
   Specify_Problem ["sqroot-test","univariate","equation","test"]);*)
neuper@37906
   363
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   364
"--- s8 ---";
neuper@38058
   365
(* val nxt = ("Specify_Method",Specify_Method ("Test","sqrt-equ-test"));*)
neuper@37906
   366
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   367
"--- s9 ---";
neuper@38058
   368
(* val nxt = ("Apply_Method",Apply_Method ("Test","sqrt-equ-test"));*)
neuper@37906
   369
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   370
(*"sqrt (9 + 4 * x) = sqrt x + sqrt (5 + x)"*)
neuper@37906
   371
"--- !!! x1 --- 1.norm_equation";
neuper@37906
   372
(*###*)val nxt = ("Rewrite_Set",Rewrite_Set "norm_equation");
neuper@37906
   373
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   374
"--- !!! x2 --- 1.norm_equation";
neuper@37906
   375
(*meNEW: "9 + 4 * x = (sqrt x + sqrt (5 + x)) ^^^ 2" -- NICHT norm_equation!!*)
neuper@37906
   376
(*meOLD: "sqrt (9 + 4 * x) + -1 * (sqrt x + sqrt (5 + x)) = 0"*)
neuper@37906
   377
(* val nxt = ("Rewrite_Set",Rewrite_Set "Test_simplify");*)
neuper@37906
   378
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   379
(*"-1 * sqrt x + (-1 * sqrt (5 + x) + sqrt (9 + 4 * x)) = 0"*)
neuper@37906
   380
(*(me nxt p [1] pt) handle e => print_exn_G e;*)
neuper@37906
   381
"--- !!! x3 --- 1.norm_equation";
neuper@37906
   382
(*val nxt = ("Empty_Tac",Empty_Tac) ### helpless*)
neuper@37906
   383
(*###*)val nxt = ("Rewrite_Set",Rewrite_Set "rearrange_assoc");
neuper@37906
   384
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   385
"--- !!! x4 --- 1.norm_equation";
neuper@37906
   386
(*"-1 * sqrt x + -1 * sqrt (5 + x) + sqrt (9 + 4 * x) = 0"*)
neuper@37906
   387
(*val nxt = ("Rewrite_Set",Rewrite_Set "isolate_root")*)
neuper@37906
   388
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   389
"--- !!! x5 --- 1.norm_equation";
neuper@37906
   390
(*"sqrt (9 + 4 * x) = 0 + -1 * (-1 * sqrt x + -1 * sqrt (5 + x))"*)
neuper@37906
   391
(* val nxt = ("Rewrite_Set",Rewrite_Set "Test_simplify");*)
neuper@37906
   392
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   393
neuper@37906
   394
(*FIXXXXXXXXXXXXXXXXXXXXXXXME reestablish check:
neuper@37906
   395
if f= Form'(FormKF(~1,EdUndef,1,Nundef,"sqrt (9 + 4 * x) = sqrt x + sqrt (5 + x)"))
neuper@38031
   396
then() else error "new behaviour in test-example 1.norm sqrt-equ-test";
neuper@37906
   397
#################################################*)
neuper@37906
   398
neuper@37906
   399
(* use"../tests/scriptnew.sml";
neuper@37906
   400
   *)
neuper@37906
   401
neuper@37906
   402
" _________________ equation with x =(-12)/5, but L ={} ------- ";
neuper@37906
   403
neuper@37906
   404
val fmz = ["equality (sqrt(9+4*x)=sqrt x + sqrt(-3+x))",
neuper@37906
   405
	   "solveFor x","errorBound (eps=0)",
neuper@37906
   406
	   "solutions L"];
neuper@37906
   407
val (dI',pI',mI') =
neuper@38058
   408
  ("Test",["sqroot-test","univariate","equation","test"],
neuper@37906
   409
   ["Test","square_equation"]);
neuper@37906
   410
neuper@37906
   411
(*val p = e_pos'; val c = []; 
neuper@37906
   412
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   413
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
neuper@37906
   414
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   415
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   416
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   417
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   418
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   419
(*val nxt = ("Apply_Method",Apply_Method ["Test","square_equation"])*)
neuper@37906
   420
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   421
(*val nxt = "square_equation_left",
neuper@37906
   422
      "[| 0 <= ?a; 0 <= ?b |] ==> (sqrt ?a = ?b) = (?a = ?b ^^^ 2)"))*)
neuper@37906
   423
get_assumptions_ pt p;
neuper@37906
   424
(*it = [] : string list;*)
neuper@37906
   425
trace_rewrite:=true;
neuper@37906
   426
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   427
trace_rewrite:=false;
neuper@37906
   428
val asms = get_assumptions_ pt p;
neuper@37906
   429
if asms = [(str2term "0 <= 9 + 4 * x",[1]),
neuper@37906
   430
	   (str2term "0 <= x",[1]),
neuper@37906
   431
	   (str2term "0 <= -3 + x",[1])] then ()
neuper@38031
   432
else error "scriptnew.sml diff.behav. in sqrt assumptions 1";
neuper@37906
   433
neuper@37906
   434
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   435
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   436
(*val nxt = Rewrite ("square_equation_left",     *)
neuper@37906
   437
val asms = get_assumptions_ pt p;
neuper@37906
   438
[("0 <= 9 + 4 * x",[1]),("0 <= x",[1]),("0 <= -3 + x",[1])];
neuper@37906
   439
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   440
val asms = get_assumptions_ pt p;
neuper@37906
   441
if asms = [(str2term "0 <= 9 + 4 * x",[1]),
neuper@37906
   442
	   (str2term "0 <= x",[1]),
neuper@37906
   443
	   (str2term "0 <= -3 + x",[1]),
neuper@37906
   444
	   (str2term "0 <= x ^^^ 2 + -3 * x",[6]),
neuper@37906
   445
	   (str2term "0 <= 6 + x",[6])] then ()
neuper@38031
   446
else error "scriptnew.sml diff.behav. in sqrt assumptions 2";
neuper@37906
   447
neuper@37906
   448
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   449
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   450
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@55279
   451
(*val nxt = Subproblem ("Test",["LINEAR","univariate","equation","test"*)
neuper@37906
   452
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   453
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   454
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   455
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   456
(*val nxt = ("Apply_Method",Apply_Method ["Test","solve_linear"])*)
neuper@37906
   457
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   458
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   459
(*val nxt =
neuper@55279
   460
  ("Check_Postcond",Check_Postcond ["LINEAR","univariate","equation","test"])*)
neuper@37906
   461
val asms = get_assumptions_ pt p;
neuper@37906
   462
if asms = [] then ()
neuper@38031
   463
else error "scriptnew.sml diff.behav. in sqrt assumptions 3";
neuper@37906
   464
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   465
(*val nxt = ("Check_elementwise",Check_elementwise "Assumptions")*)
neuper@37906
   466
neuper@37906
   467
val asms = get_assumptions_ pt p;
neuper@37906
   468
if asms = [(str2term "0 <= 9 + 4 * x",[1]),
neuper@37906
   469
	   (str2term "0 <= x",[1]),
neuper@37906
   470
	   (str2term "0 <= -3 + x",[1]),
neuper@37906
   471
	   (str2term "0 <= x ^^^ 2 + -3 * x",[6]),
neuper@37906
   472
	   (str2term "0 <= 6 + x",[6])] then ()
neuper@37906
   473
else raise 
neuper@37906
   474
    error "scriptnew.sml: diff.behav. at Check_elementwise [x = -12 / 5]";
neuper@37906
   475
neuper@37906
   476
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   477
(*val nxt = Check_Postcond ["sqroot-test","univariate","equation","test"])*)
neuper@37906
   478
val asms = get_assumptions_ pt p;
neuper@37906
   479
[("0 <= 9 + 4 * x",[1]),("0 <= x",[1]),("0 <= -3 + x",[1]),
neuper@37906
   480
   ("0 <= x ^^^ 2 + -3 * x",[6]),("0 <= 6 + x",[6]),
neuper@37906
   481
   ("0 <= 6 + -12 / 5 &\n0 <= (-12 / 5) ^^^ 2 + -3 * (-12 / 5) &\n0 <= -3 + -12 / 5 & 0 <= -12 / 5 & 0 <= 9 + 4 * (-12 / 5)",
neuper@37906
   482
    [13])];
neuper@37906
   483
neuper@37906
   484
neuper@37906
   485
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   486
val Form' (FormKF (_,_,_,_,ff)) = f;
neuper@37906
   487
if ff="[x = -12 / 5]"
neuper@37906
   488
then writeln("there should be L = []\nthere should be L = []\nthere should be L = []\nthere should be L = []\nthere should be L = []\n")
neuper@38031
   489
else error "diff.behav. in scriptnew.sml; root-eq: L = []";
neuper@37906
   490
neuper@37906
   491
val asms = get_assumptions_ pt p;
neuper@37906
   492
if asms = [(str2term "0 <= 9 + 4 * (-12 / 5)",[]),
neuper@37906
   493
	   (str2term "0 <= -12 / 5", []),
neuper@37906
   494
	   (str2term "0 <= -3 + -12 / 5", []),
neuper@37906
   495
	   (str2term "0 <= (-12 / 5) ^^^ 2 + -3 * (-12 / 5)", []),
neuper@37906
   496
	   (str2term "0 <= 6 + -12 / 5", [])] then ()
neuper@38031
   497
else error "scriptnew.sml diff.behav. in sqrt assumptions 4";
neuper@37906
   498
neuper@37906
   499
neuper@37906
   500
"------------------ script with Map, Subst (biquadr.equ.)---------";
neuper@37906
   501
"------------------ script with Map, Subst (biquadr.equ.)---------";
neuper@37906
   502
"------------------ script with Map, Subst (biquadr.equ.)---------";
neuper@37906
   503
neuper@37906
   504
neuper@37906
   505
(*GoOn.5.03. script with Map, Subst (biquadr.equ.)
neuper@48790
   506
val scr = Prog (((inst_abs thy) o term_of o the o (parse thy))
neuper@37982
   507
    "Script Biquadrat_poly (e_e::bool) (v_::real) =                       \
neuper@37981
   508
    \(let e_e = Substitute [(v_^^^4, v_0_^^^2),(v_^^^2, v_0_)] e_;        \ 
neuper@37906
   509
    \     L_0_ = (SubProblem (PolyEq_,[univariate,equation], [no_met])   \
neuper@37984
   510
    \             [BOOL e_e, REAL v_0_]);                               \ 
neuper@37906
   511
    \     L_i_ = Map (((Substitute [(v_0_, v_^^^2)]) @@                  \
neuper@37906
   512
    \                  ((Rewrite real_root_positive False) Or            \
neuper@37906
   513
    \                   (Rewrite real_root_negative False)) @@           \
neuper@37906
   514
    \                  OrToList) L_0_                                    \ 
neuper@37906
   515
    \ in (flat ....))"
neuper@37906
   516
);
neuper@37906
   517
neuper@37906
   518
*)
neuper@37906
   519