test/Tools/isac/Knowledge/rooteq.sml
author Walther Neuper <neuper@ist.tugraz.at>
Mon, 02 Sep 2013 16:16:08 +0200
changeset 52101 c3f399ce32af
parent 41956 03151cfbdc02
child 59188 c477d0f79ab9
permissions -rw-r--r--
Test_Isac works again, almost ..

4 files raise errors:
# Interpret/solve.sml: "solve.sml: interSteps on norm_Rational 2"
# Interpret/inform.sml: "inform.sml: [rational,simplification] 2"
# Knowledge/partial_fractions.sml: "autoCalculate for met_partial_fraction changed: final result"
# Knowledge/eqsystem.sml: "eqsystem.sml: exp 7.70 normalize 4x4 by rewrite changed"

The chunk of changes is due to the fact, that Isac's code still is unstable.
The changes are accumulated since e8f46493af82.
neuper@37906
     1
(* RL 10.02
neuper@37906
     2
 use"../kbtest/rooteq.sml";
neuper@37906
     3
 use"rooteq.sml";
neuper@37906
     4
 testexamples for RootEq, equations with fractions
neuper@37906
     5
neuper@37906
     6
 Compiler.Control.Print.printDepth:=10; (*4 default*)
neuper@37906
     7
 Compiler.Control.Print.printDepth:=5; (*4 default*)
neuper@52101
     8
trace_rewrite := false;
neuper@37906
     9
*)
neuper@37906
    10
"----------- rooteq.sml begin--------";
neuper@37906
    11
"--------------(1/sqrt(x)=5)---------------------------------------";
neuper@37906
    12
"--------------(4*sqrt(4*x+2)=3*sqrt(2*x+24))----------------------";
neuper@37906
    13
"--------------(sqrt(x+1)=5)---------------------------------------";
neuper@37906
    14
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))-----------------";
neuper@37906
    15
"--------------(3*sqrt(x+3)+sqrt(x+6)=sqrt(4*x+33))----------------";
neuper@37906
    16
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))-----------------";
neuper@41943
    17
"--------------------------------------------------------";
neuper@41943
    18
neuper@41943
    19
(*=== inhibit exn ?=============================================================
neuper@37906
    20
neuper@37906
    21
val t = (term_of o the o (parse RootEq.thy)) "(sqrt(2+x+3)) is_rootTerm_in  x";
neuper@37926
    22
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    23
val result = term2str t_;
neuper@41928
    24
if result <>  "HOL.True"  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    25
neuper@37906
    26
val t = (term_of o the o (parse RootEq.thy)) "(sqrt(2+x+3)) is_rootTerm_in  x";
neuper@37926
    27
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    28
val result = term2str t_;
neuper@41928
    29
if result <>  "HOL.True"  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    30
neuper@37906
    31
val t = (term_of o the o (parse RootEq.thy)) "(nroot 5 (x+4)) is_rootTerm_in  x";
neuper@37926
    32
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    33
val result = term2str t_;
neuper@41928
    34
if result <>  "HOL.True"  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    35
neuper@37906
    36
val t = (term_of o the o (parse RootEq.thy)) "(sqrt(2+x+3)) is_sqrtTerm_in  x";
neuper@37926
    37
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    38
val result = term2str t_;
neuper@41928
    39
if result <>  "HOL.True"  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    40
neuper@37906
    41
val t = (term_of o the o (parse RootEq.thy)) "(sqrt(25)) is_sqrtTerm_in  x";
neuper@37926
    42
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    43
val result = term2str t_;
neuper@41928
    44
if result <>  "HOL.False"  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    45
neuper@37906
    46
val t = (term_of o the o (parse RootEq.thy)) "sqrt(1 + x) is_normSqrtTerm_in x";
neuper@37926
    47
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    48
val result = term2str t_;
neuper@41928
    49
if result <>  "HOL.True"  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    50
neuper@37906
    51
val t = (term_of o the o (parse RootEq.thy)) "(3+3*sqrt(x)) is_normSqrtTerm_in x";
neuper@37926
    52
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    53
val result = term2str t_;
neuper@41928
    54
if result <>  "HOL.True"  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    55
neuper@37906
    56
val t = (term_of o the o (parse RootEq.thy)) "(sqrt(x+1)+1) is_normSqrtTerm_in x";
neuper@37926
    57
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    58
val result = term2str t_;
neuper@41928
    59
if result <>  "HOL.False"  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    60
neuper@37906
    61
val t = (term_of o the o (parse RootEq.thy)) "(1 - u/(sqrt(r - u))) is_normSqrtTerm_in u";
neuper@37926
    62
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    63
val result = term2str t_;
neuper@41928
    64
if result <>  "HOL.False"  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    65
neuper@37906
    66
val t = (term_of o the o (parse RootEq.thy)) "(x*(1+x)/(sqrt(x+1))) is_normSqrtTerm_in x";
neuper@37926
    67
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    68
val result = term2str t_;
neuper@41928
    69
if result <>  "HOL.True"  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    70
neuper@37906
    71
val t = (term_of o the o (parse RootEq.thy)) "(1 - (sqrt(2+x+3)^^^3)) is_normSqrtTerm_in  x";
neuper@37926
    72
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    73
val result = term2str t_;
neuper@41928
    74
if result <>  "HOL.False"  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    75
neuper@37906
    76
val t = (term_of o the o (parse RootEq.thy)) "(1 + (sqrt(2+x+3)^^^3)) is_normSqrtTerm_in  x";
neuper@37926
    77
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    78
val result = term2str t_;
neuper@41928
    79
if result <>  "HOL.True"  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    80
neuper@37906
    81
neuper@37906
    82
neuper@37906
    83
val result = match_pbl ["equality (sqrt(x)=1)","solveFor x","solutions L"] 
neuper@37986
    84
                (get_pbt ["root'","univariate","equation"]); 
neuper@38031
    85
case result of Matches' _  => ()  | _ => error "rooteq.sml: new behaviour:";
neuper@37906
    86
neuper@37906
    87
val result = match_pbl ["equality (sqrt(25)=1)","solveFor x","solutions L"] 
neuper@37986
    88
                (get_pbt ["root'","univariate","equation"]); 
neuper@38031
    89
case result of NoMatch' _  => ()  | _ => error "rooteq.sml: new behaviour:";
neuper@37906
    90
neuper@37906
    91
(*---------rooteq---- 23.8.02 ---------------------*)
neuper@37906
    92
"---------(1/sqrt(x)=5)---------------------";
neuper@37906
    93
val fmz = ["equality (1/sqrt(x)=5)","solveFor x","solutions L"];
neuper@37991
    94
val (dI',pI',mI') = ("RootEq",["univariate","equation"],["no_met"]);
neuper@37906
    95
neuper@37906
    96
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
    97
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
    98
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
    99
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   100
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   101
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   102
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37991
   103
(*"1 / x = 25" -> Subproblem ("RootEq", ["univariate", ...]) *)
neuper@37906
   104
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   105
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   106
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   107
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   108
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   109
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37991
   110
(*"1 = 25 * x" -> Subproblem ("RatEq", ["univariate", ...])*)
neuper@37906
   111
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   112
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   113
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   114
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   115
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   116
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   117
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "1 + -25 * x = 0")) then ()
neuper@38031
   118
else error "rooteq.sml: diff.behav.poly in (1/sqrt(x)=5)";
neuper@37991
   119
(*-> Subproblem ("PolyEq", ["polynomial", ...])*)
neuper@37906
   120
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   121
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   122
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   123
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   124
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   125
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   126
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   127
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   128
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   129
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   130
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   131
case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = 1 / 25]")) => ()
neuper@38031
   132
	 | _ => error "rooteq.sml: diff.behav. [x = 1 / 25]";
neuper@41956
   133
if terms2str (*WN1104changed*) (get_assumptions_ pt p) = "[0 <= 1 / 25]"
neuper@37906
   134
(*WN050916 before correction 'rewrite__set_ called with 'Erls' for ..:
neuper@37906
   135
     [(str2term"25 ~= 0",[])] *)
neuper@37906
   136
then writeln "should be True\n\
neuper@37906
   137
	     \should be True\n\
neuper@37906
   138
	     \should be True\n"
neuper@38031
   139
else error "rooteq.sml: diff.behav. with 25 ~= 0";
neuper@37906
   140
neuper@37906
   141
"---------(sqrt(x+1)=5)---------------------";
neuper@37906
   142
val fmz = ["equality (sqrt(x+1)=5)","solveFor x","solutions L"];
neuper@37991
   143
val (dI',pI',mI') = ("RootEq",["univariate","equation"],["no_met"]);
neuper@37906
   144
(*val p = e_pos'; 
neuper@37906
   145
val c = []; 
neuper@37906
   146
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   147
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
neuper@37906
   148
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   149
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   150
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   151
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   152
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   153
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   154
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37991
   155
(*-> Subproblem ("RootEq", ["univariate", ...])*)
neuper@37906
   156
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   157
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   158
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   159
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   160
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   161
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   162
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "-24 + x = 0")) then ()
neuper@38031
   163
else error "rooteq.sml: diff.behav.poly in sqrt(x+1)=5";
neuper@37991
   164
(*-> Subproblem ("PolyEq", ["polynomial", ...])*)
neuper@37906
   165
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   166
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   167
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   168
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   169
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   170
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   171
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   172
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   173
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   174
case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = 24]")) => ()
neuper@38031
   175
	 | _ => error "rooteq.sml: diff.behav. [x = 24]";
neuper@37906
   176
neuper@37906
   177
"-------------(4*sqrt(4*x+2)=3*sqrt(2*x+24))-----------------";
neuper@37906
   178
val fmz = ["equality (4*sqrt(4*x+2)=3*sqrt(2*x+24))","solveFor x","solutions L"];
neuper@37991
   179
val (dI',pI',mI') = ("RootEq",["univariate","equation"],["no_met"]);
neuper@37906
   180
neuper@37906
   181
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   182
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   183
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   184
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   185
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   186
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   187
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   188
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   189
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   190
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   191
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   192
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   193
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "-184 + 46 * x = 0")) then ()
neuper@38031
   194
else error "rooteq.sml: diff.behav.poly in 4*sqrt(4*x+2)=3*sqrt(2*x+24)";
neuper@37906
   195
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   196
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   197
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   198
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   199
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   200
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   201
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   202
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   203
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   204
case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = 4]")) => ()
neuper@38031
   205
	 | _ => error "rooteq.sml: diff.behav. [x = 4]";
neuper@41956
   206
if get_assumptions_ pt p = [str2term"0 <= 12 * sqrt 2 * 4"] 
neuper@37906
   207
then writeln "should be True\nshould be True\nshould be True\n\
neuper@37906
   208
	     \should be True\nshould be True\nshould be True\n"
neuper@38031
   209
else error "rooteq.sml: diff.behav. with 0 <= 12 * sqrt 2 * 4";
neuper@37906
   210
neuper@37906
   211
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))----------------";
neuper@37906
   212
val fmz = ["equality (sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))","solveFor x","solutions L"];
neuper@37991
   213
val (dI',pI',mI') = ("RootEq",["univariate","equation"],["no_met"]);
neuper@37906
   214
neuper@37906
   215
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37986
   216
(*val nxt = Model_Problem ["sq","root'","univariate","equation"]) *)
neuper@37906
   217
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   218
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   219
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   220
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   221
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   222
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   223
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   224
(*"13 + 13 * x + -2 * sqrt ((4 + 4 * x) * (9 + 9 * x)) = 1 + x"))
neuper@37991
   225
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"]))*)
neuper@37906
   226
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37986
   227
(*val nxt = Model_Problem ["sq","root'","univariate","equation"]) *)
neuper@37906
   228
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   229
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   230
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   231
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   232
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   233
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   234
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   235
(*"144 + 288 * x + 144 * x ^^^ 2 = 144 + x ^^^ 2 + 288 * x + 143 * x ^^^ 2"))
neuper@37991
   236
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"]))*)
neuper@37906
   237
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   238
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   239
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   240
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   241
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   242
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   243
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "0 = 0")) then ()
neuper@38031
   244
else error "rooteq.sml: diff.behav.poly in (sqrt(x+1)+sqrt(4*x+4)=sqr..";
neuper@37991
   245
(*-> Subproblem ("PolyEq", ["degree_0", ...])*)
neuper@37906
   246
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   247
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   248
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   249
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   250
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   251
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   252
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   253
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   254
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   255
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   256
val asm = get_assumptions_ pt p;
neuper@37906
   257
if f = Form' (FormKF (~1,EdUndef,0,Nundef,"UniversalList")) andalso asm = []
neuper@38031
   258
then () else error "rooteq.sml: diff.behav. in UniversalList 1";
neuper@37906
   259
neuper@37906
   260
neuper@37906
   261
neuper@37906
   262
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))---------- SUBPBL.2.------";
neuper@37906
   263
val fmz = 
neuper@37906
   264
    ["equality (13 + 13 * x + -2 * sqrt ((4 + 4 * x) * (9 + 9 * x)) = 1 + x)",
neuper@37906
   265
     "solveFor x","solutions L"];
neuper@37991
   266
val (dI',pI',mI') = ("RootEq",["sq","root'","univariate","equation"],
neuper@37906
   267
		     ["RootEq","solve_sq_root_equation"]);
neuper@37906
   268
(*val p = e_pos'; val c = []; 
neuper@37906
   269
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   270
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
neuper@37906
   271
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   272
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   273
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   274
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   275
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   276
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   277
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   278
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   279
(*"144 + 288 * x + 144 * x ^^^ 2 = 144 + x ^^^ 2 + 288 * x + 143 * x ^^^ 2"))
neuper@37991
   280
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"])) *)
neuper@37906
   281
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   282
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   283
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   284
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   285
(*val p = ([6],Pbl)val nxt = Specify_Method ["PolyEq","normalize_poly"])*)
neuper@37906
   286
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   287
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   288
(*val p = ([6,2],Res) val f = Form' (FormKF (~1,EdUndef,2,Nundef,"0 = 0"))
neuper@37991
   289
val nxt = Subproblem ("PolyEq",["polynomial","univariate","equation"]))*)
neuper@37906
   290
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "0 = 0")) then ()
neuper@38031
   291
else error "rooteq.sml: diff.behav.poly in sqrt(x+1)+sqrt(4*x+4)=sqrt..";
neuper@37906
   292
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   293
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   294
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   295
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   296
(*val nxt = Specify_Method ["PolyEq","solve_d0_polyeq_equation"])       *)
neuper@37906
   297
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   298
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@41928
   299
(*val p = ([6,3,1],Res) val f = Form' (FormKF (~1,EdUndef,3,Nundef,"HOL.True"))
neuper@37906
   300
val nxt = ("Or_to_List",Or_to_List) : string * tac*)
neuper@37906
   301
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   302
(*val p = ([6,3,2],Res)  val f = (~1,EdUndef,3,Nundef,"UniversalList"))
neuper@37906
   303
val nxt = Check_Postcond ["degree_0","polynomial","univariate","equation"])*)
neuper@37906
   304
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   305
(*val p = ([6,3],Res) val f =(~1,EdUndef,2,Nundef,"UniversalList"))
neuper@37906
   306
val nxt = Check_Postcond ["normalize","polynomial","univariate","equation"])*)
neuper@37906
   307
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   308
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "UniversalList")) then ()
neuper@38031
   309
else error "rooteq.sml: diff.behav.poly in sqrt(x+1)+sqrt(4*x+4)=sqrt..";
neuper@37906
   310
(* val Form' (FormKF (~1, EdUndef, 0, Nundef, str)) = f;
neuper@37906
   311
   *)
neuper@37906
   312
neuper@37906
   313
(*same error as full expl #######*)
neuper@37906
   314
neuper@37906
   315
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))---------- OKversion----";
neuper@37906
   316
val fmz = ["equality (sqrt(x) = 1)","solveFor x","solutions L"];
neuper@37991
   317
val (dI',pI',mI') = ("RootEq",["sq","root'","univariate","equation"],
neuper@37906
   318
		     ["RootEq","solve_sq_root_equation"]);
neuper@37906
   319
(*val p = e_pos'; val c = []; 
neuper@37906
   320
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   321
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
neuper@37906
   322
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   323
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   324
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   325
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   326
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   327
(*val p = ([],Pbl)val nxt = Specify_Method ["RootEq","solve_sq_root_equation"*)
neuper@37906
   328
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   329
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   330
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   331
(* val p = ([2],Res) val f = Form' (FormKF (~1,EdUndef,1,Nundef,"x = 1"))
neuper@37991
   332
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"]))*)
neuper@37906
   333
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   334
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   335
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   336
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   337
(*val nxt = ("Specify_Method",Specify_Method ["PolyEq","normalize_poly"])*)
neuper@37906
   338
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   339
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   340
(*val p = ([3,2],Res)val f = Form' (FormKF (~1,EdUndef,2,Nundef,"-1 + x = 0"))
neuper@37991
   341
val nxt = Subproblem ("PolyEq",["polynomial","univariate","equation"]))*)
neuper@37906
   342
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "-1 + x = 0")) then ()
neuper@38031
   343
else error "rooteq.sml: diff.behav.poly in sqrt(x+1)+sqrt(4*x+4)=sqrt..";
neuper@37906
   344
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   345
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   346
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   347
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   348
(*val nxt = Specify_Method ["PolyEq","solve_d1_polyeq_equation"])       *)
neuper@37906
   349
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   350
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   351
(*val p = ([3,3,2],Res) val f = Form' (FormKF (~1,EdUndef,3,Nundef,"x = 1"))
neuper@37906
   352
val nxt = ("Or_to_List",Or_to_List) *)
neuper@37906
   353
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   354
(*val p = ([3,3,3],Res) val f = Form' (FormKF (~1,EdUndef,3,Nundef,"[x = 1]"))
neuper@37906
   355
val nxt = ("Check_elementwise",Check_elementwise "Assumptions")*)
neuper@37906
   356
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   357
(*val p = ([3,3,4],Res) val f = Form' (FormKF (~1,EdUndef,3,Nundef,"[x = 1]"))
neuper@37906
   358
val nxt = Check_Postcond ["degree_1","polynomial","univariate","equation"])*)
neuper@37906
   359
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   360
(*val p = ([3,3],Res) val f = Form' (FormKF (~1,EdUndef,2,Nundef,"[x = 1]"))
neuper@37906
   361
val nxt = Check_Postcond ["normalize","polynomial","univariate","equation"])*)
neuper@37906
   362
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   363
neuper@37906
   364
(*val p = ([3],Res) val f = Form' (FormKF (~1,EdUndef,1,Nundef,"[x = 1]"))
neuper@37906
   365
val nxt = ("Check_elementwise",Check_elementwise "Assumptions")
neuper@37906
   366
                               --------------------------------*)
neuper@37906
   367
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   368
(*val p = ([4],Res)  val f = Form' (FormKF (~1,EdUndef,1,Nundef,"[x = 1]"))
neuper@37986
   369
val nxt = Check_Postcond ["sq","root'","univariate","equation"]) *)
neuper@37906
   370
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   371
if p = ([],Res) andalso f = Form' (FormKF (~1,EdUndef,0,Nundef,"[x = 1]"))
neuper@38031
   372
then () else error "diff.behav. in rooteq.sml: sqrt(x) = 1";
neuper@37906
   373
neuper@37906
   374
neuper@37906
   375
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))---------- SHORTEST.1.----\
neuper@37906
   376
\                                                            with same error";
neuper@37906
   377
val fmz = ["equality (sqrt x = sqrt x)","solveFor x","solutions L"];
neuper@37991
   378
val (dI',pI',mI') = ("RootEq",["sq","root'","univariate","equation"],
neuper@37906
   379
		     ["RootEq","solve_sq_root_equation"]);
neuper@37906
   380
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   381
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   382
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   383
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   384
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   385
(*val p = ([],Pbl)val nxt = Specify_Method ["RootEq","solve_sq_root_equation"*)
neuper@37906
   386
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   387
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   388
(*val p = ([1],Res) val f = Form' (FormKF (~1,EdUndef,1,Nundef,"x = x"))
neuper@37991
   389
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"]))*)
neuper@37906
   390
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   391
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   392
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   393
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   394
(*val p = ([2],Pbl) val nxt = Specify_Method ["PolyEq","normalize_poly"])*)
neuper@37906
   395
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   396
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   397
(*val p = ([2,2],Res) val f = Form' (FormKF (~1,EdUndef,2,Nundef,"0 = 0"))
neuper@37991
   398
val nxt = Subproblem ("PolyEq",["polynomial","univariate","equation"]))*)
neuper@37906
   399
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "0 = 0")) then ()
neuper@38031
   400
else error "rooteq.sml: diff.behav.poly in sqrt(x+1)+sqrt(4*x+4)=sqrt..";
neuper@37906
   401
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   402
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   403
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   404
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   405
(*val p = ([2,3],Pbl)nxt=Specify_Method ["PolyEq","solve_d0_polyeq_equation"]*)
neuper@37906
   406
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   407
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   408
(*val p = ([2,3,2],Res) val f = (FormKF (~1,EdUndef,3,Nundef,"UniversalList"))
neuper@37906
   409
val nxt = Check_Postcond ["degree_0","polynomial","univariate","equation"])*)
neuper@37906
   410
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   411
(*val p = ([2,3],Res) val f = (FormKF (~1,EdUndef,2,Nundef,"UniversalList"))
neuper@37906
   412
val nxt =  Check_Postcond ["normalize","polynomial","univariate","equation"])*)
neuper@37906
   413
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   414
(*val p = ([2],Res)  val f = (FormKF (~1,EdUndef,1,Nundef,"UniversalList"))
neuper@37906
   415
val nxt = Check_elementwise "Assumptions"*)
neuper@37906
   416
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   417
(*val p = ([3],Res) val f = (FormKF (~1,EdUndef,1,Nundef,"UniversalList"))
neuper@37986
   418
val nxt = Check_Postcond ["sq","root'","univariate","equation"])       *)
neuper@37906
   419
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   420
if p = ([],Res) andalso f = Form'(FormKF (~1,EdUndef,0,Nundef,"UniversalList"))
neuper@38031
   421
then () else error "new behav. in rooteq.sml: sqrt x = sqrt x";
neuper@37906
   422
neuper@37906
   423
neuper@37906
   424
"--------------(3*sqrt(x+3)+sqrt(x+6)=sqrt(4*x+33))----------------";
neuper@37906
   425
val fmz = ["equality (3*sqrt(x+3)+sqrt(x+6)=sqrt(4*x+33))","solveFor x","solutions L"];
neuper@37991
   426
val (dI',pI',mI') = ("RootEq",["univariate","equation"],["no_met"]);
neuper@37906
   427
neuper@37906
   428
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   429
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   430
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   431
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   432
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   433
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
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;
neuper@37906
   436
(*        "6 + x = 60 + 13 * x + -6 * sqrt ((3 + x) * (33 + 4 * x))")) : mout
neuper@37991
   437
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"]))*)
neuper@37906
   438
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37986
   439
(*val nxt = Model_Problem ["sq","root'","univariate","equation"]) *)
neuper@37906
   440
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   441
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   442
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   443
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   444
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   445
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   446
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   447
(*"2916 + x ^^^ 2 + 1296 * x + 143 * x ^^^ 2 = 3564 + 1620 * x + 144 * x ^^^ 2"))
neuper@37991
   448
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"]))*)
neuper@37906
   449
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   450
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   451
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
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
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "-648 + -324 * x = 0")) then ()
neuper@38031
   456
else error "rooteq.sml: diff.behav.poly in 3*sqrt(x+3)+sqrt(x+6)=sqrt..";
neuper@37991
   457
(*-> Subproblem ("PolyEq", ["degree_1", ...])*)
neuper@37906
   458
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   459
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   460
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   461
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   462
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   463
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   464
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   465
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   466
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   467
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   468
case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = -2]")) => ()
neuper@38031
   469
	 | _ => error "rooteq.sml: diff.behav. [x = -2]";
neuper@37906
   470
neuper@37906
   471
"----------- rooteq.sml end--------";
neuper@37906
   472
neuper@37906
   473
neuper@41943
   474
===== inhibit exn ?===========================================================*)