src/sml/systest/refine.sml
author agriesma
Thu, 17 Apr 2003 18:01:03 +0200
branchgriesmayer
changeset 338 90390fecbe74
child 708 7d3338563b8c
permissions -rw-r--r--
neues cvs-verzeichnis
agriesma@338
     1
(* intermediately stores !ptyps
agriesma@338
     2
   WN.16.9.01
agriesma@338
     3
   use"tests/refine.sml";
agriesma@338
     4
   *)
agriesma@338
     5
agriesma@338
     6
agriesma@338
     7
"----------------------- store test-pbtyps ----------------------------";
agriesma@338
     8
"----------------------- refin test-pbtyps ----------------------------";
agriesma@338
     9
"----------------------- refine_ori test-pbtyps ----------------------------";
agriesma@338
    10
"----------------------- refine test-pbtyps ----------------------------";
agriesma@338
    11
"----------------------- Refine_Problem (aus subp-rooteq.sml) ---------";
agriesma@338
    12
agriesma@338
    13
agriesma@338
    14
agriesma@338
    15
agriesma@338
    16
"----------------------- store test-pbtyps ----------------------------";
agriesma@338
    17
val intermediate_ptyps = !ptyps;
agriesma@338
    18
ptyps:= ([]:ptyps);
agriesma@338
    19
agriesma@338
    20
store_pbt
agriesma@338
    21
 (prep_pbt DiffApp.thy
agriesma@338
    22
 (["pbla"],         
agriesma@338
    23
  [("#Given", ["fixedValues a_"])], e_rls, None, []));
agriesma@338
    24
store_pbt
agriesma@338
    25
 (prep_pbt DiffApp.thy
agriesma@338
    26
 (["pbla1","pbla"], 
agriesma@338
    27
  [("#Given", ["fixedValues a_","maximum a1_"])], e_rls, None, []));
agriesma@338
    28
store_pbt
agriesma@338
    29
 (prep_pbt DiffApp.thy
agriesma@338
    30
 (["pbla2","pbla"], 
agriesma@338
    31
  [("#Given", ["fixedValues a_","valuesFor a2_"])], e_rls, None, []));
agriesma@338
    32
store_pbt
agriesma@338
    33
 (prep_pbt DiffApp.thy
agriesma@338
    34
 (["pbla2x","pbla2","pbla"],
agriesma@338
    35
  [("#Given", ["fixedValues a_","valuesFor a2_","functionOf a2x_"])], 
agriesma@338
    36
  e_rls, None, []));
agriesma@338
    37
store_pbt
agriesma@338
    38
 (prep_pbt DiffApp.thy
agriesma@338
    39
 (["pbla2y","pbla2","pbla"],
agriesma@338
    40
  [("#Given" ,["fixedValues a_","valuesFor a2_","boundVariable a2y_"])], 
agriesma@338
    41
  e_rls, None, []));
agriesma@338
    42
store_pbt
agriesma@338
    43
 (prep_pbt DiffApp.thy
agriesma@338
    44
 (["pbla2z","pbla2","pbla"],
agriesma@338
    45
  [("#Given" ,["fixedValues a_","valuesFor a2_","interval a2z_"])], 
agriesma@338
    46
  e_rls, None, []));
agriesma@338
    47
store_pbt
agriesma@338
    48
 (prep_pbt DiffApp.thy
agriesma@338
    49
 (["pbla3","pbla"],
agriesma@338
    50
  [("#Given" ,["fixedValues a_","relations a3_"])], 
agriesma@338
    51
  e_rls, None, []));
agriesma@338
    52
agriesma@338
    53
show_ptyps();
agriesma@338
    54
agriesma@338
    55
(*case 1: no refinement *)
agriesma@338
    56
val thy = Isac.thy;
agriesma@338
    57
val (d1,ts1,vs1) = split_dts thy ((term_of o the o (parse thy)) 
agriesma@338
    58
				"fixedValues [aaa=0]");
agriesma@338
    59
val (d2,ts2,vs2) = split_dts thy ((term_of o the o (parse thy)) 
agriesma@338
    60
				"errorBound (ddd=0)");
agriesma@338
    61
val ori1 = [(1,[1],"#Given",d1,ts1),
agriesma@338
    62
	    (2,[1],"#Given",d2,ts2)]:ori list;
agriesma@338
    63
agriesma@338
    64
agriesma@338
    65
(*case 2: refined to pbt without children *)
agriesma@338
    66
val (d2,ts2,vs2) = split_dts thy ((term_of o the o (parse thy)) 
agriesma@338
    67
				"relations aaa333");
agriesma@338
    68
val ori2 = [(1,[1],"#Given",d1,ts1),
agriesma@338
    69
	    (2,[1],"#Given",d2,ts2)]:ori list;
agriesma@338
    70
agriesma@338
    71
agriesma@338
    72
(*case 3: refined to pbt with children *)
agriesma@338
    73
val (d2,ts2,vs2) = split_dts thy ((term_of o the o (parse thy)) 
agriesma@338
    74
				"valuesFor aaa222");
agriesma@338
    75
val ori3 = [(1,[1],"#Given",d1,ts1),
agriesma@338
    76
	    (2,[1],"#Given",d2,ts2)]:ori list;
agriesma@338
    77
agriesma@338
    78
agriesma@338
    79
(*case 4: refined to children (without child)*)
agriesma@338
    80
val (d3,ts3,vs3) = split_dts thy ((term_of o the o (parse thy)) 
agriesma@338
    81
				"boundVariable aaa222yyy");
agriesma@338
    82
val ori4 = [(1,[1],"#Given",d1,ts1),
agriesma@338
    83
	    (2,[1],"#Given",d2,ts2),
agriesma@338
    84
	    (3,[1],"#Given",d3,ts3)]:ori list;
agriesma@338
    85
agriesma@338
    86
"----------------------- refin test-pbtyps ----------------------------";
agriesma@338
    87
agriesma@338
    88
(*case 1: no refinement *)
agriesma@338
    89
refin [] ori1 (hd (!ptyps));
agriesma@338
    90
(*val it = Some ["pbla"] : pblID option*)
agriesma@338
    91
agriesma@338
    92
(*case 2: refined to pbt without children *)
agriesma@338
    93
refin [] ori2 (hd (!ptyps));
agriesma@338
    94
(*val it = Some ["pbla","pbla3"] : pblID option*)
agriesma@338
    95
agriesma@338
    96
(*case 3: refined to pbt with children *)
agriesma@338
    97
refin [] ori3 (hd (!ptyps));
agriesma@338
    98
(*val it = Some ["pbla","pbla2"] : pblID option*)
agriesma@338
    99
agriesma@338
   100
(*case 4: refined to children (without child)*)
agriesma@338
   101
refin [] ori4 (hd (!ptyps));
agriesma@338
   102
(*val it = Some ["pbla","pbla2","pbla2y"] : pblID option*)
agriesma@338
   103
agriesma@338
   104
(*case 5: start refinement somewhere in ptyps*)
agriesma@338
   105
val [Ptyp ("pbla",_,[_, ppp as Ptyp ("pbla2",_,_), _])] = !ptyps;
agriesma@338
   106
refin ["pbla"] ori4 ppp;
agriesma@338
   107
(*val it = Some ["pbla2","pbla2y"] : pblRD option*)
agriesma@338
   108
agriesma@338
   109
agriesma@338
   110
"----------------------- refine_ori test-pbtyps ----------------------------";
agriesma@338
   111
agriesma@338
   112
(*case 1: no refinement *)
agriesma@338
   113
refine_ori ori1 ["pbla"];
agriesma@338
   114
(*val it = None : pblID option !!!!*)
agriesma@338
   115
agriesma@338
   116
(*case 2: refined to pbt without children *)
agriesma@338
   117
refine_ori ori2 ["pbla"];
agriesma@338
   118
(*val it = Some ["pbla3","pbla"] : pblID option*)
agriesma@338
   119
agriesma@338
   120
(*case 3: refined to pbt with children *)
agriesma@338
   121
refine_ori ori3 ["pbla"];
agriesma@338
   122
(*val it = Some ["pbla2","pbla"] : pblID option*)
agriesma@338
   123
agriesma@338
   124
(*case 4: refined to children (without child)*)
agriesma@338
   125
val opt = refine_ori ori4 ["pbla"];
agriesma@338
   126
if opt = Some ["pbla2y","pbla2","pbla"] then ()
agriesma@338
   127
else raise error "new behaviour in refine.sml case 4";
agriesma@338
   128
agriesma@338
   129
(*case 5: start refinement somewhere in ptyps*)
agriesma@338
   130
refine_ori ori4 ["pbla2","pbla"];
agriesma@338
   131
(*val it = Some ["pbla2y","pbla2","pbla"] : pblID option*)
agriesma@338
   132
agriesma@338
   133
agriesma@338
   134
"----------------------- refine test-pbtyps ----------------------------";
agriesma@338
   135
agriesma@338
   136
val fmz1 = ["fixedValues [aaa=0]","errorBound (ddd=0)"];
agriesma@338
   137
val fmz2 = ["fixedValues [aaa=0]","relations aaa333"];
agriesma@338
   138
val fmz3 = ["fixedValues [aaa=0]","valuesFor aaa222"];
agriesma@338
   139
val fmz4 = ["fixedValues [aaa=0]","valuesFor aaa222",
agriesma@338
   140
	    "boundVariable aaa222yyy"];
agriesma@338
   141
agriesma@338
   142
(*case 1: no refinement *)
agriesma@338
   143
refine fmz1 ["pbla"];
agriesma@338
   144
(* 
agriesma@338
   145
*** pass ["pbla"]
agriesma@338
   146
*** pass ["pbla","pbla1"]
agriesma@338
   147
*** pass ["pbla","pbla2"]
agriesma@338
   148
*** pass ["pbla","pbla3"]
agriesma@338
   149
val it =
agriesma@338
   150
  [Matches
agriesma@338
   151
     (["pbla"],
agriesma@338
   152
      {Find=[],
agriesma@338
   153
       Given=[Correct "fixedValues [aaa = #0]",
agriesma@338
   154
              Superfl "errorBound (ddd = #0)"],Relate=[],Where=[],With=[]}),
agriesma@338
   155
   NoMatch
agriesma@338
   156
     (["pbla1","pbla"],
agriesma@338
   157
      {Find=[],
agriesma@338
   158
       Given=[Correct "fixedValues [aaa = #0]",Missing "maximum a1_",
agriesma@338
   159
              Superfl "errorBound (ddd = #0)"],Relate=[],Where=[],With=[]}),
agriesma@338
   160
   NoMatch
agriesma@338
   161
     (["pbla2","pbla"],
agriesma@338
   162
      {Find=[],
agriesma@338
   163
       Given=[Correct "fixedValues [aaa = #0]",Missing "valuesFor a2_",
agriesma@338
   164
              Superfl "errorBound (ddd = #0)"],Relate=[],Where=[],With=[]}),
agriesma@338
   165
   NoMatch
agriesma@338
   166
     (["pbla3","pbla"],
agriesma@338
   167
      {Find=[],
agriesma@338
   168
       Given=[Correct "fixedValues [aaa = #0]",Missing "relations a3_",
agriesma@338
   169
              Superfl "errorBound (ddd = #0)"],Relate=[],Where=[],With=[]})]
agriesma@338
   170
  : match list*)
agriesma@338
   171
agriesma@338
   172
(*case 2: refined to pbt without children *)
agriesma@338
   173
refine fmz2 ["pbla"];
agriesma@338
   174
(* 
agriesma@338
   175
*** pass ["pbla"]
agriesma@338
   176
*** pass ["pbla","pbla1"]
agriesma@338
   177
*** pass ["pbla","pbla2"]
agriesma@338
   178
*** pass ["pbla","pbla3"]
agriesma@338
   179
val it =
agriesma@338
   180
  [Matches
agriesma@338
   181
     (["pbla"],
agriesma@338
   182
      {Find=[],
agriesma@338
   183
       Given=[Correct "fixedValues [aaa = #0]",Superfl "relations aaa333"],
agriesma@338
   184
       Relate=[],Where=[],With=[]}),
agriesma@338
   185
   NoMatch
agriesma@338
   186
     (["pbla1","pbla"],
agriesma@338
   187
      {Find=[],
agriesma@338
   188
       Given=[Correct "fixedValues [aaa = #0]",Missing "maximum a1_",
agriesma@338
   189
              Superfl "relations aaa333"],Relate=[],Where=[],With=[]}),
agriesma@338
   190
   NoMatch
agriesma@338
   191
     (["pbla2","pbla"],
agriesma@338
   192
      {Find=[],
agriesma@338
   193
       Given=[Correct "fixedValues [aaa = #0]",Missing "valuesFor a2_",
agriesma@338
   194
              Superfl "relations aaa333"],Relate=[],Where=[],With=[]}),
agriesma@338
   195
   Matches
agriesma@338
   196
     (["pbla3","pbla"],
agriesma@338
   197
      {Find=[],
agriesma@338
   198
       Given=[Correct "fixedValues [aaa = #0]",Correct "relations aaa333"],
agriesma@338
   199
       Relate=[],Where=[],With=[]})] : match list*)
agriesma@338
   200
agriesma@338
   201
(*case 3: refined to pbt with children *)
agriesma@338
   202
refine fmz3 ["pbla"];
agriesma@338
   203
(* 
agriesma@338
   204
*** pass ["pbla"]
agriesma@338
   205
*** pass ["pbla","pbla1"]
agriesma@338
   206
*** pass ["pbla","pbla2"]
agriesma@338
   207
*** pass ["pbla","pbla2","pbla2x"]
agriesma@338
   208
*** pass ["pbla","pbla2","pbla2y"]
agriesma@338
   209
*** pass ["pbla","pbla2","pbla2z"]
agriesma@338
   210
*** pass ["pbla","pbla3"]
agriesma@338
   211
val it =
agriesma@338
   212
  [Matches
agriesma@338
   213
     (["pbla"],
agriesma@338
   214
      {Find=[],
agriesma@338
   215
       Given=[Correct "fixedValues [aaa = #0]",Superfl "valuesFor aaa222"],
agriesma@338
   216
       Relate=[],Where=[],With=[]}),
agriesma@338
   217
   NoMatch
agriesma@338
   218
     (["pbla1","pbla"],
agriesma@338
   219
      {Find=[],
agriesma@338
   220
       Given=[Correct "fixedValues [aaa = #0]",Missing "maximum a1_",
agriesma@338
   221
              Superfl "valuesFor aaa222"],Relate=[],Where=[],With=[]}),
agriesma@338
   222
   Matches
agriesma@338
   223
     (["pbla2","pbla"],
agriesma@338
   224
      {Find=[],
agriesma@338
   225
       Given=[Correct "fixedValues [aaa = #0]",Correct "valuesFor aaa222"],
agriesma@338
   226
       Relate=[],Where=[],With=[]}),
agriesma@338
   227
   NoMatch
agriesma@338
   228
     (["pbla2x","pbla2","pbla"],
agriesma@338
   229
      {Find=[],
agriesma@338
   230
       Given=[Correct "fixedValues [aaa = #0]",Correct "valuesFor aaa222",
agriesma@338
   231
              Missing "functionOf a2x_"],Relate=[],Where=[],With=[]}),
agriesma@338
   232
   NoMatch
agriesma@338
   233
     (["pbla2y","pbla2","pbla"],
agriesma@338
   234
      {Find=[],
agriesma@338
   235
       Given=[Correct "fixedValues [aaa = #0]",Correct "valuesFor aaa222",
agriesma@338
   236
              Missing "boundVariable a2y_"],Relate=[],Where=[],With=[]}),
agriesma@338
   237
   NoMatch
agriesma@338
   238
     (["pbla2z","pbla2","pbla"],
agriesma@338
   239
      {Find=[],
agriesma@338
   240
       Given=[Correct "fixedValues [aaa = #0]",Correct "valuesFor aaa222",
agriesma@338
   241
              Missing "interval a2z_"],Relate=[],Where=[],With=[]}),
agriesma@338
   242
   NoMatch
agriesma@338
   243
     (["pbla3","pbla"],
agriesma@338
   244
      {Find=[],
agriesma@338
   245
       Given=[Correct "fixedValues [aaa = #0]",Missing "relations a3_",
agriesma@338
   246
              Superfl "valuesFor aaa222"],Relate=[],Where=[],With=[]})]
agriesma@338
   247
  : match list*)
agriesma@338
   248
agriesma@338
   249
(*case 4: refined to children (without child)*)
agriesma@338
   250
refine fmz4 ["pbla"];
agriesma@338
   251
(* 
agriesma@338
   252
*** pass ["pbla"]
agriesma@338
   253
*** pass ["pbla","pbla1"]
agriesma@338
   254
*** pass ["pbla","pbla2"]
agriesma@338
   255
*** pass ["pbla","pbla2","pbla2x"]
agriesma@338
   256
*** pass ["pbla","pbla2","pbla2y"]
agriesma@338
   257
val it =
agriesma@338
   258
  [Matches
agriesma@338
   259
     (["pbla"],
agriesma@338
   260
      {Find=[],
agriesma@338
   261
       Given=[Correct "fixedValues [aaa = #0]",Superfl "valuesFor aaa222",
agriesma@338
   262
              Superfl "boundVariable aaa222yyy"],Relate=[],Where=[],With=[]}),
agriesma@338
   263
   NoMatch
agriesma@338
   264
     (["pbla1","pbla"],
agriesma@338
   265
      {Find=[],
agriesma@338
   266
       Given=[Correct "fixedValues [aaa = #0]",Missing "maximum a1_",
agriesma@338
   267
              Superfl "valuesFor aaa222",Superfl "boundVariable aaa222yyy"],
agriesma@338
   268
       Relate=[],Where=[],With=[]}),
agriesma@338
   269
   Matches
agriesma@338
   270
     (["pbla2","pbla"],
agriesma@338
   271
      {Find=[],
agriesma@338
   272
       Given=[Correct "fixedValues [aaa = #0]",Correct "valuesFor aaa222",
agriesma@338
   273
              Superfl "boundVariable aaa222yyy"],Relate=[],Where=[],With=[]}),
agriesma@338
   274
   NoMatch
agriesma@338
   275
     (["pbla2x","pbla2","pbla"],
agriesma@338
   276
      {Find=[],
agriesma@338
   277
       Given=[Correct "fixedValues [aaa = #0]",Correct "valuesFor aaa222",
agriesma@338
   278
              Missing "functionOf a2x_",Superfl "boundVariable aaa222yyy"],
agriesma@338
   279
       Relate=[],Where=[],With=[]}),
agriesma@338
   280
   Matches
agriesma@338
   281
     (["pbla2y","pbla2","pbla"],
agriesma@338
   282
      {Find=[],
agriesma@338
   283
       Given=[Correct "fixedValues [aaa = #0]",Correct "valuesFor aaa222",
agriesma@338
   284
              Correct "boundVariable aaa222yyy"],Relate=[],Where=[],With=[]})]
agriesma@338
   285
  : match list*)
agriesma@338
   286
agriesma@338
   287
(*case 5: start refinement somewhere in ptyps*)
agriesma@338
   288
refine fmz4 ["pbla2","pbla"];
agriesma@338
   289
(* 
agriesma@338
   290
*** pass ["pbla","pbla2"]
agriesma@338
   291
*** pass ["pbla","pbla2","pbla2x"]
agriesma@338
   292
*** pass ["pbla","pbla2","pbla2y"]
agriesma@338
   293
val it =
agriesma@338
   294
  [Matches
agriesma@338
   295
     (["pbla2","pbla"],
agriesma@338
   296
      {Find=[],
agriesma@338
   297
       Given=[Correct "fixedValues [aaa = #0]",Correct "valuesFor aaa222",
agriesma@338
   298
              Superfl "boundVariable aaa222yyy"],Relate=[],Where=[],With=[]}),
agriesma@338
   299
   NoMatch
agriesma@338
   300
     (["pbla2x","pbla2","pbla"],
agriesma@338
   301
      {Find=[],
agriesma@338
   302
       Given=[Correct "fixedValues [aaa = #0]",Correct "valuesFor aaa222",
agriesma@338
   303
              Missing "functionOf a2x_",Superfl "boundVariable aaa222yyy"],
agriesma@338
   304
       Relate=[],Where=[],With=[]}),
agriesma@338
   305
   Matches
agriesma@338
   306
     (["pbla2y","pbla2","pbla"],
agriesma@338
   307
      {Find=[],
agriesma@338
   308
       Given=[Correct "fixedValues [aaa = #0]",Correct "valuesFor aaa222",
agriesma@338
   309
              Correct "boundVariable aaa222yyy"],Relate=[],Where=[],With=[]})]
agriesma@338
   310
  : match list*)
agriesma@338
   311
agriesma@338
   312
agriesma@338
   313
ptyps:= intermediate_ptyps;
agriesma@338
   314
show_ptyps();
agriesma@338
   315
agriesma@338
   316
agriesma@338
   317
agriesma@338
   318
"----------------------- Refine_Problem (aus subp-rooteq.sml) ---------";
agriesma@338
   319
"----------------refine.sml: miniscript with mini-subpbl -------------";
agriesma@338
   320
val fmz = ["equality ((x+1)*(x+2)=x^^^2+8)","solveFor x",
agriesma@338
   321
	   "errorBound (eps=0)","solutions L"];
agriesma@338
   322
val (dI',pI',mI') = ("Test.thy",["sqroot-test","univariate","equation","test"],
agriesma@338
   323
		     ("Test.thy","squ-equ-test-subpbl1"));
agriesma@338
   324
val p = e_pos'; val c = []; 
agriesma@338
   325
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
agriesma@338
   326
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;
agriesma@338
   327
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   328
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   329
agriesma@338
   330
val nxt = ("Specify_Problem",
agriesma@338
   331
	   Specify_Problem ["linear","univariate","equation","test"]);
agriesma@338
   332
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   333
(*ML> f;
agriesma@338
   334
val it = Form' (PpcKF (0,EdUndef,0,Nundef,
agriesma@338
   335
        (Problem ["linear","univariate","equation","test"],
agriesma@338
   336
         {Find=[Incompl "solutions []"],
agriesma@338
   337
          Given=[Incompl "errorBound",
agriesma@338
   338
                 Correct "equality ((x + #1) * (x + #2) = x ^^^ #2 + #8)",
agriesma@338
   339
                 Correct "solveFor x"],Relate=[],
agriesma@338
   340
          Where=[False "matches (x = #0) ((x + #1) * (x + #2) = x ^^^ #2 + #8)
agriesma@338
   341
                |\nmatches (?b * x = #0) ((x + #1) * (x + #2) = x ^^^ #2 + #8)
agriesma@338
   342
                |\nmatches (?a + x = #0) ((x + #1) * (x + #2) = x ^^^ #2 + #8)
agriesma@338
   343
        |\nmatches (?a + ?b * x = #0) ((x + #1) * (x + #2) = x ^^^ #2 + #8)"],
agriesma@338
   344
          With=[]}))) : mout
agriesma@338
   345
agriesma@338
   346
val nxt = ("Add_Given",Add_Given "errorBound (eps = #0)")*)
agriesma@338
   347
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   348
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   349
(*val nxt = ("Refine_Problem",Refine_Problem ["linear","univariate","equation","test"]
agriesma@338
   350
             kann nicht gut gehen            --------- *)
agriesma@338
   351
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   352
(*val nxt = ("Specify_Problem",Specify_Problem []) FIXXXME*)
agriesma@338
   353
agriesma@338
   354
val nxt = ("Refine_Problem",Refine_Problem ["univariate","equation","test"]);
agriesma@338
   355
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   356
(*("Specify_Problem",Specify_Problem ["normalize","univariate","equation","test"])*)
agriesma@338
   357
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   358
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   359
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   360
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   361
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   362
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   363
(*val nxt = ("Subproblem",Subproblem ("Test.thy",[#,#,#])) : string * mstep
agriesma@338
   364
  in Script "uberdefiniert                         -^-*)
agriesma@338
   365
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   366
(*val nxt = ("Model_Problem",Model_Problem ["linear","univariate","equation","test"]*)
agriesma@338
   367
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   368
(*val nxt = ("Add_Given",Add_Given "equality (x + #1 + #-1 * #2 = #0)") *)
agriesma@338
   369
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   370
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   371
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   372
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   373
(*("Specify_Problem",Specify_Problem ["linear","univariate","equation","test"])*)
agriesma@338
   374
agriesma@338
   375
val nxt = ("Refine_Problem",Refine_Problem ["univariate","equation","test"]);
agriesma@338
   376
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   377
(*val nxt = ("Specify_Method",Specify_Method ("RatArith.thy","solve_linear"))*)
agriesma@338
   378
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   379
(*val nxt = ("Apply_Method",Apply_Method ("RatArith.thy","solve_linear"))*)
agriesma@338
   380
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   381
(*val nxt = ("Rewrite_Set_Inst",Rewrite_Set_Inst ([#],"isolate_bdv"))*)
agriesma@338
   382
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   383
(*val nxt = ("Rewrite_Set",Rewrite_Set "Test_simplify")*)
agriesma@338
   384
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   385
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   386
(*val nxt = ("Check_Postcond",Check_Postcond ["linear","univariate","eq*)
agriesma@338
   387
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   388
(*val nxt = ("Check_elementwise",Check_elementwise "Assumptions")*)
agriesma@338
   389
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   390
(*("Check_Postcond",Check_Postcond ["normalize","univariate","equation","test"])*)
agriesma@338
   391
val (p,_,f,nxt,_,pt) = me nxt p c pt;
agriesma@338
   392
val Form' (FormKF (~1,EdUndef,0,Nundef,res)) = f;
agriesma@338
   393
if (snd nxt)=End_Proof' andalso res="[x = 2]" then ()
agriesma@338
   394
else raise error "new behaviour in test:refine.sml: miniscript with mini-subpbl";
agriesma@338
   395
agriesma@338
   396