test/Tools/isac/Knowledge/rooteq.sml
author Walther Neuper <neuper@ist.tugraz.at>
Wed, 08 Sep 2010 16:47:22 +0200
branchisac-update-Isa09-2
changeset 37991 028442673981
parent 37986 7b1d2366c191
child 38031 460c24a6a6ba
permissions -rw-r--r--
tuned src + test

find . -type f -exec sed -i s/nadd_divide_distrib/add_divide_distrib/g {} \;
find . -type f -exec sed -i s/"\.thy\""/"\""/g {} \;
find . -type f -exec sed -i s/" indexname_ord"/" Term_Ord.indexname_ord"/g {} \;
find . -type f -exec sed -i s/"(string_of_cterm o cterm_of(sign_of thy))"/"(Syntax.string_of_term (thy2ctxt thy))"/g {} \;
find . -type f -exec sed -i s/" L_"/" L_L"/g {} \;
find . -type f -exec sed -i s/" L_:"/" L_L:"/g {} \;
find . -type f -exec sed -i s/"e_;"/"e_e;"/g {} \;
find . -type f -exec sed -i s/"v_)"/"v_v)"/g {} \;
find . -type f -exec sed -i s/"v_:"/"v_v:"/g {} \;
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@37906
     8
 trace_rewrite:=true;
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@37906
    17
neuper@37906
    18
val t = (term_of o the o (parse RootEq.thy)) "(sqrt(2+x+3)) is_rootTerm_in  x";
neuper@37926
    19
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    20
val result = term2str t_;
neuper@37906
    21
if result <>  "True"  then raise error "rooteq.sml: new behaviour:" else ();
neuper@37906
    22
neuper@37906
    23
val t = (term_of o the o (parse RootEq.thy)) "(sqrt(2+x+3)) is_rootTerm_in  x";
neuper@37926
    24
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    25
val result = term2str t_;
neuper@37906
    26
if result <>  "True"  then raise error "rooteq.sml: new behaviour:" else ();
neuper@37906
    27
neuper@37906
    28
val t = (term_of o the o (parse RootEq.thy)) "(nroot 5 (x+4)) is_rootTerm_in  x";
neuper@37926
    29
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    30
val result = term2str t_;
neuper@37906
    31
if result <>  "True"  then raise error "rooteq.sml: new behaviour:" else ();
neuper@37906
    32
neuper@37906
    33
val t = (term_of o the o (parse RootEq.thy)) "(sqrt(2+x+3)) is_sqrtTerm_in  x";
neuper@37926
    34
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    35
val result = term2str t_;
neuper@37906
    36
if result <>  "True"  then raise error "rooteq.sml: new behaviour:" else ();
neuper@37906
    37
neuper@37906
    38
val t = (term_of o the o (parse RootEq.thy)) "(sqrt(25)) is_sqrtTerm_in  x";
neuper@37926
    39
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    40
val result = term2str t_;
neuper@37906
    41
if result <>  "False"  then raise error "rooteq.sml: new behaviour:" else ();
neuper@37906
    42
neuper@37906
    43
val t = (term_of o the o (parse RootEq.thy)) "sqrt(1 + x) is_normSqrtTerm_in x";
neuper@37926
    44
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    45
val result = term2str t_;
neuper@37906
    46
if result <>  "True"  then raise error "rooteq.sml: new behaviour:" else ();
neuper@37906
    47
neuper@37906
    48
val t = (term_of o the o (parse RootEq.thy)) "(3+3*sqrt(x)) is_normSqrtTerm_in x";
neuper@37926
    49
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    50
val result = term2str t_;
neuper@37906
    51
if result <>  "True"  then raise error "rooteq.sml: new behaviour:" else ();
neuper@37906
    52
neuper@37906
    53
val t = (term_of o the o (parse RootEq.thy)) "(sqrt(x+1)+1) is_normSqrtTerm_in x";
neuper@37926
    54
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    55
val result = term2str t_;
neuper@37906
    56
if result <>  "False"  then raise error "rooteq.sml: new behaviour:" else ();
neuper@37906
    57
neuper@37906
    58
val t = (term_of o the o (parse RootEq.thy)) "(1 - u/(sqrt(r - u))) is_normSqrtTerm_in u";
neuper@37926
    59
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    60
val result = term2str t_;
neuper@37906
    61
if result <>  "False"  then raise error "rooteq.sml: new behaviour:" else ();
neuper@37906
    62
neuper@37906
    63
val t = (term_of o the o (parse RootEq.thy)) "(x*(1+x)/(sqrt(x+1))) is_normSqrtTerm_in x";
neuper@37926
    64
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    65
val result = term2str t_;
neuper@37906
    66
if result <>  "True"  then raise error "rooteq.sml: new behaviour:" else ();
neuper@37906
    67
neuper@37906
    68
val t = (term_of o the o (parse RootEq.thy)) "(1 - (sqrt(2+x+3)^^^3)) is_normSqrtTerm_in  x";
neuper@37926
    69
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    70
val result = term2str t_;
neuper@37906
    71
if result <>  "False"  then raise error "rooteq.sml: new behaviour:" else ();
neuper@37906
    72
neuper@37906
    73
val t = (term_of o the o (parse RootEq.thy)) "(1 + (sqrt(2+x+3)^^^3)) is_normSqrtTerm_in  x";
neuper@37926
    74
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
neuper@37906
    75
val result = term2str t_;
neuper@37906
    76
if result <>  "True"  then raise error "rooteq.sml: new behaviour:" else ();
neuper@37906
    77
neuper@37906
    78
neuper@37906
    79
neuper@37906
    80
val result = match_pbl ["equality (sqrt(x)=1)","solveFor x","solutions L"] 
neuper@37986
    81
                (get_pbt ["root'","univariate","equation"]); 
neuper@37906
    82
case result of Matches' _  => ()  | _ => raise error "rooteq.sml: new behaviour:";
neuper@37906
    83
neuper@37906
    84
val result = match_pbl ["equality (sqrt(25)=1)","solveFor x","solutions L"] 
neuper@37986
    85
                (get_pbt ["root'","univariate","equation"]); 
neuper@37906
    86
case result of NoMatch' _  => ()  | _ => raise error "rooteq.sml: new behaviour:";
neuper@37906
    87
neuper@37906
    88
(*---------rooteq---- 23.8.02 ---------------------*)
neuper@37906
    89
"---------(1/sqrt(x)=5)---------------------";
neuper@37906
    90
val fmz = ["equality (1/sqrt(x)=5)","solveFor x","solutions L"];
neuper@37991
    91
val (dI',pI',mI') = ("RootEq",["univariate","equation"],["no_met"]);
neuper@37906
    92
neuper@37906
    93
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
    94
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
    95
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
    96
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
    97
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;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;
neuper@37991
   100
(*"1 / x = 25" -> Subproblem ("RootEq", ["univariate", ...]) *)
neuper@37906
   101
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   102
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   103
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   104
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   105
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;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@37991
   107
(*"1 = 25 * x" -> Subproblem ("RatEq", ["univariate", ...])*)
neuper@37906
   108
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@37906
   110
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   111
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;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
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "1 + -25 * x = 0")) then ()
neuper@37906
   115
else raise error "rooteq.sml: diff.behav.poly in (1/sqrt(x)=5)";
neuper@37991
   116
(*-> Subproblem ("PolyEq", ["polynomial", ...])*)
neuper@37906
   117
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   118
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   119
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   120
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   121
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;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
case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = 1 / 25]")) => ()
neuper@37906
   129
	 | _ => raise error "rooteq.sml: diff.behav. [x = 1 / 25]";
neuper@37906
   130
if asms2str (get_assumptions_ pt p) = "[(0 <= 1 / 25, [])]"
neuper@37906
   131
(*WN050916 before correction 'rewrite__set_ called with 'Erls' for ..:
neuper@37906
   132
     [(str2term"25 ~= 0",[])] *)
neuper@37906
   133
then writeln "should be True\n\
neuper@37906
   134
	     \should be True\n\
neuper@37906
   135
	     \should be True\n"
neuper@37906
   136
else raise error "rooteq.sml: diff.behav. with 25 ~= 0";
neuper@37906
   137
neuper@37906
   138
"---------(sqrt(x+1)=5)---------------------";
neuper@37906
   139
val fmz = ["equality (sqrt(x+1)=5)","solveFor x","solutions L"];
neuper@37991
   140
val (dI',pI',mI') = ("RootEq",["univariate","equation"],["no_met"]);
neuper@37906
   141
(*val p = e_pos'; 
neuper@37906
   142
val c = []; 
neuper@37906
   143
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   144
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
neuper@37906
   145
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   146
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   147
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   148
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   149
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;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@37991
   152
(*-> Subproblem ("RootEq", ["univariate", ...])*)
neuper@37906
   153
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@37906
   155
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   156
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;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
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "-24 + x = 0")) then ()
neuper@37906
   160
else raise error "rooteq.sml: diff.behav.poly in sqrt(x+1)=5";
neuper@37991
   161
(*-> Subproblem ("PolyEq", ["polynomial", ...])*)
neuper@37906
   162
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   163
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   164
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   165
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;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
case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = 24]")) => ()
neuper@37906
   172
	 | _ => raise error "rooteq.sml: diff.behav. [x = 24]";
neuper@37906
   173
neuper@37906
   174
"-------------(4*sqrt(4*x+2)=3*sqrt(2*x+24))-----------------";
neuper@37906
   175
val fmz = ["equality (4*sqrt(4*x+2)=3*sqrt(2*x+24))","solveFor x","solutions L"];
neuper@37991
   176
val (dI',pI',mI') = ("RootEq",["univariate","equation"],["no_met"]);
neuper@37906
   177
neuper@37906
   178
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   179
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   180
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   181
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
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
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "-184 + 46 * x = 0")) then ()
neuper@37906
   191
else raise error "rooteq.sml: diff.behav.poly in 4*sqrt(4*x+2)=3*sqrt(2*x+24)";
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
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   194
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
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
case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = 4]")) => ()
neuper@37906
   202
	 | _ => raise error "rooteq.sml: diff.behav. [x = 4]";
neuper@37906
   203
if get_assumptions_ pt p = [(str2term"0 <= 12 * sqrt 2 * 4",[])] 
neuper@37906
   204
then writeln "should be True\nshould be True\nshould be True\n\
neuper@37906
   205
	     \should be True\nshould be True\nshould be True\n"
neuper@37906
   206
else raise error "rooteq.sml: diff.behav. with 0 <= 12 * sqrt 2 * 4";
neuper@37906
   207
neuper@37906
   208
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))----------------";
neuper@37906
   209
val fmz = ["equality (sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))","solveFor x","solutions L"];
neuper@37991
   210
val (dI',pI',mI') = ("RootEq",["univariate","equation"],["no_met"]);
neuper@37906
   211
neuper@37906
   212
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37986
   213
(*val nxt = Model_Problem ["sq","root'","univariate","equation"]) *)
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;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   216
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   217
val (p,_,f,nxt,_,pt) = me nxt p c pt;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
(*"13 + 13 * x + -2 * sqrt ((4 + 4 * x) * (9 + 9 * x)) = 1 + x"))
neuper@37991
   222
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"]))*)
neuper@37906
   223
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37986
   224
(*val nxt = Model_Problem ["sq","root'","univariate","equation"]) *)
neuper@37906
   225
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   226
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   227
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
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;
neuper@37906
   232
(*"144 + 288 * x + 144 * x ^^^ 2 = 144 + x ^^^ 2 + 288 * x + 143 * x ^^^ 2"))
neuper@37991
   233
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"]))*)
neuper@37906
   234
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   235
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   236
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
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;
neuper@37906
   240
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "0 = 0")) then ()
neuper@37906
   241
else raise error "rooteq.sml: diff.behav.poly in (sqrt(x+1)+sqrt(4*x+4)=sqr..";
neuper@37991
   242
(*-> Subproblem ("PolyEq", ["degree_0", ...])*)
neuper@37906
   243
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   244
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   245
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   246
val (p,_,f,nxt,_,pt) = me nxt p c pt;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;
neuper@37906
   253
val asm = get_assumptions_ pt p;
neuper@37906
   254
if f = Form' (FormKF (~1,EdUndef,0,Nundef,"UniversalList")) andalso asm = []
neuper@37906
   255
then () else raise error "rooteq.sml: diff.behav. in UniversalList 1";
neuper@37906
   256
neuper@37906
   257
neuper@37906
   258
neuper@37906
   259
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))---------- SUBPBL.2.------";
neuper@37906
   260
val fmz = 
neuper@37906
   261
    ["equality (13 + 13 * x + -2 * sqrt ((4 + 4 * x) * (9 + 9 * x)) = 1 + x)",
neuper@37906
   262
     "solveFor x","solutions L"];
neuper@37991
   263
val (dI',pI',mI') = ("RootEq",["sq","root'","univariate","equation"],
neuper@37906
   264
		     ["RootEq","solve_sq_root_equation"]);
neuper@37906
   265
(*val p = e_pos'; val c = []; 
neuper@37906
   266
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   267
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
neuper@37906
   268
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   269
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   270
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   271
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   272
val (p,_,f,nxt,_,pt) = me nxt p c pt;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
(*"144 + 288 * x + 144 * x ^^^ 2 = 144 + x ^^^ 2 + 288 * x + 143 * x ^^^ 2"))
neuper@37991
   277
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"])) *)
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
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   280
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   281
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   282
(*val p = ([6],Pbl)val nxt = Specify_Method ["PolyEq","normalize_poly"])*)
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;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   285
(*val p = ([6,2],Res) val f = Form' (FormKF (~1,EdUndef,2,Nundef,"0 = 0"))
neuper@37991
   286
val nxt = Subproblem ("PolyEq",["polynomial","univariate","equation"]))*)
neuper@37906
   287
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "0 = 0")) then ()
neuper@37906
   288
else raise error "rooteq.sml: diff.behav.poly in sqrt(x+1)+sqrt(4*x+4)=sqrt..";
neuper@37906
   289
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   290
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   291
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   292
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   293
(*val nxt = Specify_Method ["PolyEq","solve_d0_polyeq_equation"])       *)
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;
neuper@37906
   296
(*val p = ([6,3,1],Res) val f = Form' (FormKF (~1,EdUndef,3,Nundef,"True"))
neuper@37906
   297
val nxt = ("Or_to_List",Or_to_List) : string * tac*)
neuper@37906
   298
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   299
(*val p = ([6,3,2],Res)  val f = (~1,EdUndef,3,Nundef,"UniversalList"))
neuper@37906
   300
val nxt = Check_Postcond ["degree_0","polynomial","univariate","equation"])*)
neuper@37906
   301
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   302
(*val p = ([6,3],Res) val f =(~1,EdUndef,2,Nundef,"UniversalList"))
neuper@37906
   303
val nxt = Check_Postcond ["normalize","polynomial","univariate","equation"])*)
neuper@37906
   304
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   305
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "UniversalList")) then ()
neuper@37906
   306
else raise error "rooteq.sml: diff.behav.poly in sqrt(x+1)+sqrt(4*x+4)=sqrt..";
neuper@37906
   307
(* val Form' (FormKF (~1, EdUndef, 0, Nundef, str)) = f;
neuper@37906
   308
   *)
neuper@37906
   309
neuper@37906
   310
(*same error as full expl #######*)
neuper@37906
   311
neuper@37906
   312
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))---------- OKversion----";
neuper@37906
   313
val fmz = ["equality (sqrt(x) = 1)","solveFor x","solutions L"];
neuper@37991
   314
val (dI',pI',mI') = ("RootEq",["sq","root'","univariate","equation"],
neuper@37906
   315
		     ["RootEq","solve_sq_root_equation"]);
neuper@37906
   316
(*val p = e_pos'; val c = []; 
neuper@37906
   317
val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
neuper@37906
   318
val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
neuper@37906
   319
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   320
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   321
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   322
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   323
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   324
(*val p = ([],Pbl)val nxt = Specify_Method ["RootEq","solve_sq_root_equation"*)
neuper@37906
   325
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   326
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   327
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   328
(* val p = ([2],Res) val f = Form' (FormKF (~1,EdUndef,1,Nundef,"x = 1"))
neuper@37991
   329
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"]))*)
neuper@37906
   330
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   331
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   332
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   333
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   334
(*val nxt = ("Specify_Method",Specify_Method ["PolyEq","normalize_poly"])*)
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;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   337
(*val p = ([3,2],Res)val f = Form' (FormKF (~1,EdUndef,2,Nundef,"-1 + x = 0"))
neuper@37991
   338
val nxt = Subproblem ("PolyEq",["polynomial","univariate","equation"]))*)
neuper@37906
   339
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "-1 + x = 0")) then ()
neuper@37906
   340
else raise error "rooteq.sml: diff.behav.poly in sqrt(x+1)+sqrt(4*x+4)=sqrt..";
neuper@37906
   341
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   342
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   343
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   344
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   345
(*val nxt = Specify_Method ["PolyEq","solve_d1_polyeq_equation"])       *)
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;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   348
(*val p = ([3,3,2],Res) val f = Form' (FormKF (~1,EdUndef,3,Nundef,"x = 1"))
neuper@37906
   349
val nxt = ("Or_to_List",Or_to_List) *)
neuper@37906
   350
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   351
(*val p = ([3,3,3],Res) val f = Form' (FormKF (~1,EdUndef,3,Nundef,"[x = 1]"))
neuper@37906
   352
val nxt = ("Check_elementwise",Check_elementwise "Assumptions")*)
neuper@37906
   353
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   354
(*val p = ([3,3,4],Res) val f = Form' (FormKF (~1,EdUndef,3,Nundef,"[x = 1]"))
neuper@37906
   355
val nxt = Check_Postcond ["degree_1","polynomial","univariate","equation"])*)
neuper@37906
   356
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   357
(*val p = ([3,3],Res) val f = Form' (FormKF (~1,EdUndef,2,Nundef,"[x = 1]"))
neuper@37906
   358
val nxt = Check_Postcond ["normalize","polynomial","univariate","equation"])*)
neuper@37906
   359
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   360
neuper@37906
   361
(*val p = ([3],Res) val f = Form' (FormKF (~1,EdUndef,1,Nundef,"[x = 1]"))
neuper@37906
   362
val nxt = ("Check_elementwise",Check_elementwise "Assumptions")
neuper@37906
   363
                               --------------------------------*)
neuper@37906
   364
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   365
(*val p = ([4],Res)  val f = Form' (FormKF (~1,EdUndef,1,Nundef,"[x = 1]"))
neuper@37986
   366
val nxt = Check_Postcond ["sq","root'","univariate","equation"]) *)
neuper@37906
   367
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   368
if p = ([],Res) andalso f = Form' (FormKF (~1,EdUndef,0,Nundef,"[x = 1]"))
neuper@37906
   369
then () else raise error "diff.behav. in rooteq.sml: sqrt(x) = 1";
neuper@37906
   370
neuper@37906
   371
neuper@37906
   372
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))---------- SHORTEST.1.----\
neuper@37906
   373
\                                                            with same error";
neuper@37906
   374
val fmz = ["equality (sqrt x = sqrt x)","solveFor x","solutions L"];
neuper@37991
   375
val (dI',pI',mI') = ("RootEq",["sq","root'","univariate","equation"],
neuper@37906
   376
		     ["RootEq","solve_sq_root_equation"]);
neuper@37906
   377
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   378
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   379
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   380
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   381
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   382
(*val p = ([],Pbl)val nxt = Specify_Method ["RootEq","solve_sq_root_equation"*)
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 = ([1],Res) val f = Form' (FormKF (~1,EdUndef,1,Nundef,"x = x"))
neuper@37991
   386
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"]))*)
neuper@37906
   387
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   388
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   389
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   390
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   391
(*val p = ([2],Pbl) val nxt = Specify_Method ["PolyEq","normalize_poly"])*)
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,2],Res) val f = Form' (FormKF (~1,EdUndef,2,Nundef,"0 = 0"))
neuper@37991
   395
val nxt = Subproblem ("PolyEq",["polynomial","univariate","equation"]))*)
neuper@37906
   396
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "0 = 0")) then ()
neuper@37906
   397
else raise error "rooteq.sml: diff.behav.poly in sqrt(x+1)+sqrt(4*x+4)=sqrt..";
neuper@37906
   398
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   399
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   400
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   401
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   402
(*val p = ([2,3],Pbl)nxt=Specify_Method ["PolyEq","solve_d0_polyeq_equation"]*)
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,2],Res) val f = (FormKF (~1,EdUndef,3,Nundef,"UniversalList"))
neuper@37906
   406
val nxt = Check_Postcond ["degree_0","polynomial","univariate","equation"])*)
neuper@37906
   407
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   408
(*val p = ([2,3],Res) val f = (FormKF (~1,EdUndef,2,Nundef,"UniversalList"))
neuper@37906
   409
val nxt =  Check_Postcond ["normalize","polynomial","univariate","equation"])*)
neuper@37906
   410
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   411
(*val p = ([2],Res)  val f = (FormKF (~1,EdUndef,1,Nundef,"UniversalList"))
neuper@37906
   412
val nxt = Check_elementwise "Assumptions"*)
neuper@37906
   413
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   414
(*val p = ([3],Res) val f = (FormKF (~1,EdUndef,1,Nundef,"UniversalList"))
neuper@37986
   415
val nxt = Check_Postcond ["sq","root'","univariate","equation"])       *)
neuper@37906
   416
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   417
if p = ([],Res) andalso f = Form'(FormKF (~1,EdUndef,0,Nundef,"UniversalList"))
neuper@37906
   418
then () else raise error "new behav. in rooteq.sml: sqrt x = sqrt x";
neuper@37906
   419
neuper@37906
   420
neuper@37906
   421
"--------------(3*sqrt(x+3)+sqrt(x+6)=sqrt(4*x+33))----------------";
neuper@37906
   422
val fmz = ["equality (3*sqrt(x+3)+sqrt(x+6)=sqrt(4*x+33))","solveFor x","solutions L"];
neuper@37991
   423
val (dI',pI',mI') = ("RootEq",["univariate","equation"],["no_met"]);
neuper@37906
   424
neuper@37906
   425
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   426
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   427
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   428
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   429
val (p,_,f,nxt,_,pt) = me nxt p c pt;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;
neuper@37906
   433
(*        "6 + x = 60 + 13 * x + -6 * sqrt ((3 + x) * (33 + 4 * x))")) : mout
neuper@37991
   434
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"]))*)
neuper@37906
   435
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37986
   436
(*val nxt = Model_Problem ["sq","root'","univariate","equation"]) *)
neuper@37906
   437
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   438
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   439
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   440
val (p,_,f,nxt,_,pt) = me nxt p c pt;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
(*"2916 + x ^^^ 2 + 1296 * x + 143 * x ^^^ 2 = 3564 + 1620 * x + 144 * x ^^^ 2"))
neuper@37991
   445
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate","equation"]))*)
neuper@37906
   446
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   447
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
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;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
if f = Form' (FormKF (~1, EdUndef, 0, Nundef, "-648 + -324 * x = 0")) then ()
neuper@37906
   453
else raise error "rooteq.sml: diff.behav.poly in 3*sqrt(x+3)+sqrt(x+6)=sqrt..";
neuper@37991
   454
(*-> Subproblem ("PolyEq", ["degree_1", ...])*)
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 (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
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;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;
neuper@37906
   465
case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = -2]")) => ()
neuper@37906
   466
	 | _ => raise error "rooteq.sml: diff.behav. [x = -2]";
neuper@37906
   467
neuper@37906
   468
"----------- rooteq.sml end--------";
neuper@37906
   469
neuper@37906
   470