test/Tools/isac/Knowledge/rooteq.sml
author wneuper <Walther.Neuper@jku.at>
Sun, 09 Oct 2022 07:44:22 +0200
changeset 60565 f92963a33fe3
parent 60559 aba19e46dd84
child 60571 19a172de0bb5
permissions -rw-r--r--
eliminate term2str in test/*
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
*)
neuper@37906
     9
"----------- rooteq.sml begin--------";
neuper@37906
    10
"--------------(1/sqrt(x)=5)---------------------------------------";
neuper@37906
    11
"--------------(4*sqrt(4*x+2)=3*sqrt(2*x+24))----------------------";
neuper@37906
    12
"--------------(sqrt(x+1)=5)---------------------------------------";
neuper@37906
    13
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))-----------------";
neuper@37906
    14
"--------------(3*sqrt(x+3)+sqrt(x+6)=sqrt(4*x+33))----------------";
neuper@37906
    15
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))-----------------";
wneuper@59430
    16
"---------------- root-eq + subpbl: solve_linear ----------";
wneuper@59430
    17
"---------------- root-eq + subpbl: solve_plain_square ----";
wneuper@59430
    18
"---------------- root-eq + subpbl: no_met: linear --------";
wneuper@59430
    19
"---------------- root-eq + subpbl: no_met: square --------";
wneuper@59430
    20
"---------------- no_met in rootpbl -> linear -------------";
neuper@41943
    21
"--------------------------------------------------------";
neuper@41943
    22
neuper@41943
    23
(*=== inhibit exn ?=============================================================
neuper@37906
    24
walther@60230
    25
val t = (Thm.term_of o the o (TermC.parse RootEq.thy)) "(sqrt(2+x+3)) is_rootTerm_in  x";
neuper@37926
    26
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
walther@59868
    27
val result = UnparseC.term t_;
wenzelm@60309
    28
if result <>  \<^const_name>\<open>True\<close>  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    29
walther@60230
    30
val t = (Thm.term_of o the o (TermC.parse RootEq.thy)) "(sqrt(2+x+3)) is_rootTerm_in  x";
neuper@37926
    31
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
walther@59868
    32
val result = UnparseC.term t_;
wenzelm@60309
    33
if result <>  \<^const_name>\<open>True\<close>  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    34
walther@60230
    35
val t = (Thm.term_of o the o (TermC.parse RootEq.thy)) "(nroot 5 (x+4)) is_rootTerm_in  x";
neuper@37926
    36
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
walther@59868
    37
val result = UnparseC.term t_;
wenzelm@60309
    38
if result <>  \<^const_name>\<open>True\<close>  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    39
walther@60230
    40
val t = (Thm.term_of o the o (TermC.parse RootEq.thy)) "(sqrt(2+x+3)) is_sqrtTerm_in  x";
neuper@37926
    41
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
walther@59868
    42
val result = UnparseC.term t_;
wenzelm@60309
    43
if result <>  \<^const_name>\<open>True\<close>  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    44
walther@60230
    45
val t = (Thm.term_of o the o (TermC.parse RootEq.thy)) "(sqrt(25)) is_sqrtTerm_in  x";
neuper@37926
    46
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
walther@59868
    47
val result = UnparseC.term t_;
wenzelm@60309
    48
if result <>  \<^const_name>\<open>False\<close>  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    49
walther@60230
    50
val t = (Thm.term_of o the o (TermC.parse RootEq.thy)) "sqrt(1 + x) is_normSqrtTerm_in x";
neuper@37926
    51
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
walther@59868
    52
val result = UnparseC.term t_;
wenzelm@60309
    53
if result <>  \<^const_name>\<open>True\<close>  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    54
walther@60230
    55
val t = (Thm.term_of o the o (TermC.parse RootEq.thy)) "(3+3*sqrt(x)) is_normSqrtTerm_in x";
neuper@37926
    56
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
walther@59868
    57
val result = UnparseC.term t_;
wenzelm@60309
    58
if result <>  \<^const_name>\<open>True\<close>  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    59
walther@60230
    60
val t = (Thm.term_of o the o (TermC.parse RootEq.thy)) "(sqrt(x+1)+1) is_normSqrtTerm_in x";
neuper@37926
    61
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
walther@59868
    62
val result = UnparseC.term t_;
wenzelm@60309
    63
if result <>  \<^const_name>\<open>False\<close>  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    64
walther@60230
    65
val t = (Thm.term_of o the o (TermC.parse RootEq.thy)) "(1 - u/(sqrt(r - u))) is_normSqrtTerm_in u";
neuper@37926
    66
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
walther@59868
    67
val result = UnparseC.term t_;
wenzelm@60309
    68
if result <>  \<^const_name>\<open>False\<close>  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    69
walther@60230
    70
val t = (Thm.term_of o the o (TermC.parse RootEq.thy)) "(x*(1+x)/(sqrt(x+1))) is_normSqrtTerm_in x";
neuper@37926
    71
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
walther@59868
    72
val result = UnparseC.term t_;
wenzelm@60309
    73
if result <>  \<^const_name>\<open>True\<close>  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    74
walther@60242
    75
val t = (Thm.term_of o the o (TermC.parse RootEq.thy)) "(1 - (sqrt(2+x+3) \<up> 3)) is_normSqrtTerm_in  x";
neuper@37926
    76
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
walther@59868
    77
val result = UnparseC.term t_;
wenzelm@60309
    78
if result <>  \<^const_name>\<open>False\<close>  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    79
walther@60242
    80
val t = (Thm.term_of o the o (TermC.parse RootEq.thy)) "(1 + (sqrt(2+x+3) \<up> 3)) is_normSqrtTerm_in  x";
neuper@37926
    81
val SOME(t_, _) = rewrite_set_ RootEq.thy  false RootEq_prls t;
walther@59868
    82
val result = UnparseC.term t_;
wenzelm@60309
    83
if result <>  \<^const_name>\<open>True\<close>  then error "rooteq.sml: new behaviour:" else ();
neuper@37906
    84
neuper@37906
    85
neuper@37906
    86
walther@59997
    87
val result = M_Match.match_pbl ["equality (sqrt(x)=1)", "solveFor x", "solutions L"] 
walther@59997
    88
                (Problem.from_store ["rootX", "univariate", "equation"]); 
walther@59984
    89
case result of M_Match.Matches' _  => ()  | _ => error "rooteq.sml: new behaviour:";
neuper@37906
    90
walther@59997
    91
val result = M_Match.match_pbl ["equality (sqrt(25)=1)", "solveFor x", "solutions L"] 
walther@59997
    92
                (Problem.from_store ["rootX", "univariate", "equation"]); 
walther@59984
    93
case result of M_Match.NoMatch' _  => ()  | _ => error "rooteq.sml: new behaviour:";
neuper@37906
    94
neuper@37906
    95
(*---------rooteq---- 23.8.02 ---------------------*)
neuper@37906
    96
"---------(1/sqrt(x)=5)---------------------";
walther@59997
    97
val fmz = ["equality (1/sqrt(x)=5)", "solveFor x", "solutions L"];
walther@59997
    98
val (dI',pI',mI') = ("RootEq",["univariate", "equation"],["no_met"]);
neuper@37906
    99
neuper@37906
   100
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
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;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;
neuper@37991
   107
(*"1 / x = 25" -> Subproblem ("RootEq", ["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;
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@37991
   114
(*"1 = 25 * x" -> Subproblem ("RatEq", ["univariate", ...])*)
neuper@37906
   115
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
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   118
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;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;
walther@60329
   121
if f = Form' (Test_Out.FormKF (~1, EdUndef, 0, Nundef, "1 + - 25 * x = 0")) then ()
neuper@38031
   122
else error "rooteq.sml: diff.behav.poly in (1/sqrt(x)=5)";
neuper@37991
   123
(*-> Subproblem ("PolyEq", ["polynomial", ...])*)
neuper@37906
   124
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   125
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
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   132
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   133
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37906
   134
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59959
   135
case f of Form' (Test_Out.FormKF (~1,EdUndef,0,Nundef,"[x = 1 / 25]")) => ()
neuper@38031
   136
	 | _ => error "rooteq.sml: diff.behav. [x = 1 / 25]";
walther@59868
   137
if UnparseC.terms (*WN1104changed*) (Ctree.get_assumptions pt p) = "[0 <= 1 / 25]"
walther@59851
   138
(*WN050916 before correction 'rewrite__set_ called with 'Rule_Set.Empty' for ..:
Walther@60565
   139
     [(TermC.parse_test @{context}"25 ~= 0",[])] *)
neuper@37906
   140
then writeln "should be True\n\
neuper@37906
   141
	     \should be True\n\
neuper@37906
   142
	     \should be True\n"
neuper@38031
   143
else error "rooteq.sml: diff.behav. with 25 ~= 0";
neuper@37906
   144
neuper@37906
   145
"---------(sqrt(x+1)=5)---------------------";
walther@59997
   146
val fmz = ["equality (sqrt(x+1)=5)", "solveFor x", "solutions L"];
walther@59997
   147
val (dI',pI',mI') = ("RootEq",["univariate", "equation"],["no_met"]);
neuper@37906
   148
(*val p = e_pos'; 
neuper@37906
   149
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   150
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@37906
   155
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
neuper@37991
   156
(*-> Subproblem ("RootEq", ["univariate", ...])*)
neuper@37906
   157
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
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60329
   163
if f = Form' (Test_Out.FormKF (~1, EdUndef, 0, Nundef, "- 24 + x = 0")) then ()
neuper@38031
   164
else error "rooteq.sml: diff.behav.poly in sqrt(x+1)=5";
neuper@37991
   165
(*-> Subproblem ("PolyEq", ["polynomial", ...])*)
neuper@37906
   166
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
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59959
   175
case f of Form' (Test_Out.FormKF (~1,EdUndef,0,Nundef,"[x = 24]")) => ()
neuper@38031
   176
	 | _ => error "rooteq.sml: diff.behav. [x = 24]";
neuper@37906
   177
neuper@37906
   178
"-------------(4*sqrt(4*x+2)=3*sqrt(2*x+24))-----------------";
walther@59997
   179
val fmz = ["equality (4*sqrt(4*x+2)=3*sqrt(2*x+24))", "solveFor x", "solutions L"];
walther@59997
   180
val (dI',pI',mI') = ("RootEq",["univariate", "equation"],["no_met"]);
neuper@37906
   181
neuper@37906
   182
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
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
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60329
   194
if f = Form' (Test_Out.FormKF (~1, EdUndef, 0, Nundef, "- 184 + 46 * x = 0")) then ()
neuper@38031
   195
else error "rooteq.sml: diff.behav.poly in 4*sqrt(4*x+2)=3*sqrt(2*x+24)";
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
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59959
   205
case f of Form' (Test_Out.FormKF (~1,EdUndef,0,Nundef,"[x = 4]")) => ()
neuper@38031
   206
	 | _ => error "rooteq.sml: diff.behav. [x = 4]";
Walther@60565
   207
if Ctree.get_assumptions pt p = [TermC.parse_test @{context}"0 <= 12 * sqrt 2 * 4"] 
neuper@37906
   208
then writeln "should be True\nshould be True\nshould be True\n\
neuper@37906
   209
	     \should be True\nshould be True\nshould be True\n"
neuper@38031
   210
else error "rooteq.sml: diff.behav. with 0 <= 12 * sqrt 2 * 4";
neuper@37906
   211
neuper@37906
   212
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))----------------";
walther@59997
   213
val fmz = ["equality (sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))", "solveFor x", "solutions L"];
walther@59997
   214
val (dI',pI',mI') = ("RootEq",["univariate", "equation"],["no_met"]);
neuper@37906
   215
neuper@37906
   216
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
walther@59997
   217
(*val nxt = Model_Problem ["sq", "rootX", "univariate", "equation"]) *)
neuper@37906
   218
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
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@60329
   225
(*"13 + 13 * x + - 2 * sqrt ((4 + 4 * x) * (9 + 9 * x)) = 1 + x"))
walther@59997
   226
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate", "equation"]))*)
neuper@37906
   227
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   228
(*val nxt = Model_Problem ["sq", "rootX", "univariate", "equation"]) *)
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;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   235
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@60242
   236
(*"144 + 288 * x + 144 * x \<up> 2 = 144 + x \<up> 2 + 288 * x + 143 * x \<up> 2"))
walther@59997
   237
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate", "equation"]))*)
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;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   243
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   244
if f = Form' (Test_Out.FormKF (~1, EdUndef, 0, Nundef, "0 = 0")) then ()
neuper@38031
   245
else error "rooteq.sml: diff.behav.poly in (sqrt(x+1)+sqrt(4*x+4)=sqr..";
neuper@37991
   246
(*-> Subproblem ("PolyEq", ["degree_0", ...])*)
neuper@37906
   247
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;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   256
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59844
   257
val asm = Ctree.get_assumptions pt p;
walther@59959
   258
if f = Form' (Test_Out.FormKF (~1,EdUndef,0,Nundef,"UniversalList")) andalso asm = []
neuper@38031
   259
then () else error "rooteq.sml: diff.behav. in UniversalList 1";
neuper@37906
   260
neuper@37906
   261
neuper@37906
   262
neuper@37906
   263
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))---------- SUBPBL.2.------";
neuper@37906
   264
val fmz = 
walther@60329
   265
    ["equality (13 + 13 * x + - 2 * sqrt ((4 + 4 * x) * (9 + 9 * x)) = 1 + x)",
walther@59997
   266
     "solveFor x", "solutions L"];
walther@59997
   267
val (dI',pI',mI') = ("RootEq",["sq", "rootX", "univariate", "equation"],
walther@59997
   268
		     ["RootEq", "solve_sq_root_equation"]);
neuper@37906
   269
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   270
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
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@60242
   277
(*"144 + 288 * x + 144 * x \<up> 2 = 144 + x \<up> 2 + 288 * x + 143 * x \<up> 2"))
walther@59997
   278
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate", "equation"])) *)
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;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   282
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   283
(*val p = ([6],Pbl)val nxt = Specify_Method ["PolyEq", "normalise_poly"])*)
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,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   286
(*val p = ([6,2],Res) val f = Form' (Test_Out.FormKF (~1,EdUndef,2,Nundef,"0 = 0"))
walther@59997
   287
val nxt = Subproblem ("PolyEq",["polynomial", "univariate", "equation"]))*)
walther@59959
   288
if f = Form' (Test_Out.FormKF (~1, EdUndef, 0, Nundef, "0 = 0")) then ()
neuper@38031
   289
else error "rooteq.sml: diff.behav.poly in sqrt(x+1)+sqrt(4*x+4)=sqrt..";
neuper@37906
   290
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 (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   294
(*val nxt = Specify_Method ["PolyEq", "solve_d0_polyeq_equation"])       *)
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 (p,_,f,nxt,_,pt) = me nxt p c pt;
wenzelm@60309
   297
(*val p = ([6,3,1],Res) val f = Form' (Test_Out.FormKF (~1,EdUndef,3,Nundef,\<^const_name>\<open>True\<close>))
neuper@37906
   298
val nxt = ("Or_to_List",Or_to_List) : string * tac*)
neuper@37906
   299
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   300
(*val p = ([6,3,2],Res)  val f = (~1,EdUndef,3,Nundef,"UniversalList"))
walther@59997
   301
val nxt = Check_Postcond ["degree_0", "polynomial", "univariate", "equation"])*)
neuper@37906
   302
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   303
(*val p = ([6,3],Res) val f =(~1,EdUndef,2,Nundef,"UniversalList"))
walther@59997
   304
val nxt = Check_Postcond ["normalise", "polynomial", "univariate", "equation"])*)
neuper@37906
   305
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   306
if f = Form' (Test_Out.FormKF (~1, EdUndef, 0, Nundef, "UniversalList")) then ()
neuper@38031
   307
else error "rooteq.sml: diff.behav.poly in sqrt(x+1)+sqrt(4*x+4)=sqrt..";
walther@59959
   308
(* val Form' (Test_Out.FormKF (~1, EdUndef, 0, Nundef, str)) = f;
neuper@37906
   309
   *)
neuper@37906
   310
neuper@37906
   311
(*same error as full expl #######*)
neuper@37906
   312
neuper@37906
   313
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))---------- OKversion----";
walther@59997
   314
val fmz = ["equality (sqrt(x) = 1)", "solveFor x", "solutions L"];
walther@59997
   315
val (dI',pI',mI') = ("RootEq",["sq", "rootX", "univariate", "equation"],
walther@59997
   316
		     ["RootEq", "solve_sq_root_equation"]);
neuper@37906
   317
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   318
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   319
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   320
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   321
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   322
(*val p = ([],Pbl)val nxt = Specify_Method ["RootEq", "solve_sq_root_equation"*)
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;
walther@59959
   326
(* val p = ([2],Res) val f = Form' (Test_Out.FormKF (~1,EdUndef,1,Nundef,"x = 1"))
walther@59997
   327
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate", "equation"]))*)
neuper@37906
   328
val (p,_,f,nxt,_,pt) = me nxt p c pt;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;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   331
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   332
(*val nxt = ("Specify_Method",Specify_Method ["PolyEq", "normalise_poly"])*)
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;
walther@60329
   335
(*val p = ([3,2],Res)val f = Form' (Test_Out.FormKF (~1,EdUndef,2,Nundef,"- 1 + x = 0"))
walther@59997
   336
val nxt = Subproblem ("PolyEq",["polynomial", "univariate", "equation"]))*)
walther@60329
   337
if f = Form' (Test_Out.FormKF (~1, EdUndef, 0, Nundef, "- 1 + x = 0")) then ()
neuper@38031
   338
else error "rooteq.sml: diff.behav.poly in sqrt(x+1)+sqrt(4*x+4)=sqrt..";
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,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
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;
walther@59997
   343
(*val nxt = Specify_Method ["PolyEq", "solve_d1_polyeq_equation"])       *)
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;
walther@59959
   346
(*val p = ([3,3,2],Res) val f = Form' (Test_Out.FormKF (~1,EdUndef,3,Nundef,"x = 1"))
neuper@37906
   347
val nxt = ("Or_to_List",Or_to_List) *)
neuper@37906
   348
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   349
(*val p = ([3,3,3],Res) val f = Form' (Test_Out.FormKF (~1,EdUndef,3,Nundef,"[x = 1]"))
neuper@37906
   350
val nxt = ("Check_elementwise",Check_elementwise "Assumptions")*)
neuper@37906
   351
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   352
(*val p = ([3,3,4],Res) val f = Form' (Test_Out.FormKF (~1,EdUndef,3,Nundef,"[x = 1]"))
walther@59997
   353
val nxt = Check_Postcond ["degree_1", "polynomial", "univariate", "equation"])*)
neuper@37906
   354
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   355
(*val p = ([3,3],Res) val f = Form' (Test_Out.FormKF (~1,EdUndef,2,Nundef,"[x = 1]"))
walther@59997
   356
val nxt = Check_Postcond ["normalise", "polynomial", "univariate", "equation"])*)
neuper@37906
   357
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   358
walther@59959
   359
(*val p = ([3],Res) val f = Form' (Test_Out.FormKF (~1,EdUndef,1,Nundef,"[x = 1]"))
neuper@37906
   360
val nxt = ("Check_elementwise",Check_elementwise "Assumptions")
neuper@37906
   361
                               --------------------------------*)
neuper@37906
   362
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   363
(*val p = ([4],Res)  val f = Form' (Test_Out.FormKF (~1,EdUndef,1,Nundef,"[x = 1]"))
walther@59997
   364
val nxt = Check_Postcond ["sq", "rootX", "univariate", "equation"]) *)
neuper@37906
   365
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   366
if p = ([],Res) andalso f = Form' (Test_Out.FormKF (~1,EdUndef,0,Nundef,"[x = 1]"))
neuper@38031
   367
then () else error "diff.behav. in rooteq.sml: sqrt(x) = 1";
neuper@37906
   368
neuper@37906
   369
neuper@37906
   370
"--------------(sqrt(x+1)+sqrt(4*x+4)=sqrt(9*x+9))---------- SHORTEST.1.----\
neuper@37906
   371
\                                                            with same error";
walther@59997
   372
val fmz = ["equality (sqrt x = sqrt x)", "solveFor x", "solutions L"];
walther@59997
   373
val (dI',pI',mI') = ("RootEq",["sq", "rootX", "univariate", "equation"],
walther@59997
   374
		     ["RootEq", "solve_sq_root_equation"]);
neuper@37906
   375
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   376
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   377
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   378
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   379
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   380
(*val p = ([],Pbl)val nxt = Specify_Method ["RootEq", "solve_sq_root_equation"*)
neuper@37906
   381
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   382
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   383
(*val p = ([1],Res) val f = Form' (Test_Out.FormKF (~1,EdUndef,1,Nundef,"x = x"))
walther@59997
   384
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate", "equation"]))*)
neuper@37906
   385
val (p,_,f,nxt,_,pt) = me nxt p c pt;
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;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;
walther@59997
   389
(*val p = ([2],Pbl) val nxt = Specify_Method ["PolyEq", "normalise_poly"])*)
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,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   392
(*val p = ([2,2],Res) val f = Form' (Test_Out.FormKF (~1,EdUndef,2,Nundef,"0 = 0"))
walther@59997
   393
val nxt = Subproblem ("PolyEq",["polynomial", "univariate", "equation"]))*)
walther@59959
   394
if f = Form' (Test_Out.FormKF (~1, EdUndef, 0, Nundef, "0 = 0")) then ()
neuper@38031
   395
else error "rooteq.sml: diff.behav.poly in sqrt(x+1)+sqrt(4*x+4)=sqrt..";
neuper@37906
   396
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   397
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   398
val (p,_,f,nxt,_,pt) = me nxt p c pt;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;
walther@59997
   400
(*val p = ([2,3],Pbl)nxt=Specify_Method ["PolyEq", "solve_d0_polyeq_equation"]*)
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,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   403
(*val p = ([2,3,2],Res) val f = (Test_Out.FormKF (~1,EdUndef,3,Nundef,"UniversalList"))
walther@59997
   404
val nxt = Check_Postcond ["degree_0", "polynomial", "univariate", "equation"])*)
neuper@37906
   405
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   406
(*val p = ([2,3],Res) val f = (Test_Out.FormKF (~1,EdUndef,2,Nundef,"UniversalList"))
walther@59997
   407
val nxt =  Check_Postcond ["normalise", "polynomial", "univariate", "equation"])*)
neuper@37906
   408
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   409
(*val p = ([2],Res)  val f = (Test_Out.FormKF (~1,EdUndef,1,Nundef,"UniversalList"))
neuper@37906
   410
val nxt = Check_elementwise "Assumptions"*)
neuper@37906
   411
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   412
(*val p = ([3],Res) val f = (Test_Out.FormKF (~1,EdUndef,1,Nundef,"UniversalList"))
walther@59997
   413
val nxt = Check_Postcond ["sq", "rootX", "univariate", "equation"])       *)
neuper@37906
   414
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59959
   415
if p = ([],Res) andalso f = Form'(Test_Out.FormKF (~1,EdUndef,0,Nundef,"UniversalList"))
neuper@38031
   416
then () else error "new behav. in rooteq.sml: sqrt x = sqrt x";
neuper@37906
   417
neuper@37906
   418
neuper@37906
   419
"--------------(3*sqrt(x+3)+sqrt(x+6)=sqrt(4*x+33))----------------";
walther@59997
   420
val fmz = ["equality (3*sqrt(x+3)+sqrt(x+6)=sqrt(4*x+33))", "solveFor x", "solutions L"];
walther@59997
   421
val (dI',pI',mI') = ("RootEq",["univariate", "equation"],["no_met"]);
neuper@37906
   422
neuper@37906
   423
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
neuper@37906
   424
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   425
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   426
val (p,_,f,nxt,_,pt) = me nxt p c pt;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;
neuper@37906
   431
(*        "6 + x = 60 + 13 * x + -6 * sqrt ((3 + x) * (33 + 4 * x))")) : mout
walther@59997
   432
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate", "equation"]))*)
neuper@37906
   433
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   434
(*val nxt = Model_Problem ["sq", "rootX", "univariate", "equation"]) *)
neuper@37906
   435
val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   436
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   437
val (p,_,f,nxt,_,pt) = me nxt p c pt;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;
walther@60242
   442
(*"2916 + x \<up> 2 + 1296 * x + 143 * x \<up> 2 = 3564 + 1620 * x + 144 * x \<up> 2"))
walther@59997
   443
val nxt = ("Subproblem",Subproblem ("RootEq",["univariate", "equation"]))*)
neuper@37906
   444
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
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;
walther@59959
   450
if f = Form' (Test_Out.FormKF (~1, EdUndef, 0, Nundef, "-648 + -324 * x = 0")) then ()
neuper@38031
   451
else error "rooteq.sml: diff.behav.poly in 3*sqrt(x+3)+sqrt(x+6)=sqrt..";
neuper@37991
   452
(*-> Subproblem ("PolyEq", ["degree_1", ...])*)
neuper@37906
   453
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   454
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   455
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
neuper@37906
   456
val (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;
wneuper@59430
   462
val (p,_,f,nxt,_,pt) = me nxt p c pt;                                  
walther@60329
   463
case f of Form' (Test_Out.FormKF (~1,EdUndef,0,Nundef,"[x = - 2]")) => ()
walther@60329
   464
	 | _ => error "rooteq.sml: diff.behav. [x = - 2]";
neuper@37906
   465
neuper@37906
   466
"----------- rooteq.sml end--------";
neuper@37906
   467
neuper@37906
   468
neuper@41943
   469
===== inhibit exn ?===========================================================*)
wneuper@59430
   470
wneuper@59585
   471
(*===== copied here from OLDTESTS in case there is a Program ===vvv=============================
wneuper@59430
   472
val c = [];
wneuper@59430
   473
wneuper@59430
   474
"---------------- root-eq + subpbl: solve_linear ----------";
wneuper@59430
   475
"---------------- root-eq + subpbl: solve_linear ----------";
wneuper@59430
   476
"---------------- root-eq + subpbl: solve_linear ----------";
wneuper@59430
   477
val fmz = ["equality (sqrt(9+4*x)=sqrt x + sqrt(5+x))",
walther@59997
   478
	   "solveFor x", "solutions L"];
wneuper@59430
   479
val (dI',pI',mI') =
walther@59997
   480
  ("Test",["sqroot-test", "univariate", "equation", "test"],
walther@59997
   481
   ["Test", "square_equation1"]);
wneuper@59430
   482
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
wneuper@59430
   483
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   484
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   485
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   486
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   487
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   488
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   489
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   490
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   491
(*"sqrt (9 + 4 * x) = sqrt x + sqrt (5 + x)"
wneuper@59430
   492
square_equation_left*)
wneuper@59430
   493
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60242
   494
(*"9 + 4 * x = (sqrt x + sqrt (5 + x)) \<up> 2"
wneuper@59430
   495
Test_simplify*)
wneuper@59430
   496
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60242
   497
(*"9 + 4 * x = 5 + (2 * x + 2 * sqrt (x \<up> 2 + 5 * x))"
wneuper@59430
   498
rearrange_assoc*)
wneuper@59430
   499
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60242
   500
(*"9 + 4 * x = 5 + 2 * x + 2 * sqrt (x \<up> 2 + 5 * x)"
wneuper@59430
   501
isolate_root*)
wneuper@59430
   502
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60329
   503
(*"sqrt (x \<up> 2 + 5 * x) = (5 + 2 * x + - 1 * (9 + 4 * x)) / (- 1 * 2)"
wneuper@59430
   504
Test_simplify*)
wneuper@59430
   505
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   506
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   507
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   508
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   509
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   510
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60329
   511
(*"x \<up> 2 + 5 * x + - 1 * (4 + (x \<up> 2 + 4 * x)) = 0"*)
wneuper@59430
   512
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   513
(*"-4 + x = 0"
walther@59997
   514
  val nxt =("Subproblem",Subproblem ("Test",["LINEAR", "univariate"...*)
wneuper@59430
   515
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   516
(*val nxt =("Model_Problem",Model_Problem ["LINEAR", "univariate"...*)
wneuper@59430
   517
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   518
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   519
wneuper@59430
   520
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   521
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   522
(*val nxt = ("Specify_Theory",Specify_Theory "Test")*)
wneuper@59430
   523
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   524
(*("Specify_Problem",Specify_Problem ["LINEAR", "univariate", "equation"])*)
wneuper@59430
   525
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   526
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   527
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   528
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60329
   529
(*"x = 0 + - 1 * -4", nxt Test_simplify*)
wneuper@59430
   530
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   531
(*"x = 4", nxt Check_Postcond ["LINEAR", "univariate", "equation", "test"]*)
wneuper@59430
   532
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   533
(*"[x = 4]", nxt Check_elementwise "Assumptions"*)
wneuper@59430
   534
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   535
(*"[]", nxt Check_Postcond ["sqroot-test", "univariate", "equation", "test"]*)
wneuper@59430
   536
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59959
   537
val Form' (Test_Out.FormKF (~1,EdUndef,0,Nundef,res)) = f;
wneuper@59430
   538
if (snd nxt)=End_Proof' andalso res="[x = 4]" then ()
wneuper@59430
   539
else error "subp-rooteq.sml: new.behav. in  root-eq + subpbl: solve_linear";
wneuper@59430
   540
wneuper@59430
   541
wneuper@59430
   542
wneuper@59430
   543
"---------------- root-eq + subpbl: solve_plain_square ----";
wneuper@59430
   544
"---------------- root-eq + subpbl: solve_plain_square ----";
wneuper@59430
   545
"---------------- root-eq + subpbl: solve_plain_square ----";
wneuper@59430
   546
val fmz = ["equality (sqrt(5+x)+sqrt(5-x)=sqrt 18)",
walther@59997
   547
	   "solveFor x", "solutions L"];
wneuper@59430
   548
val (dI',pI',mI') =
walther@59997
   549
  ("Test",["sqroot-test", "univariate", "equation", "test"],
walther@59997
   550
   ["Test", "square_equation2"]);
Walther@60559
   551
val Prog sc = (#scr o MethodC.from_store ctxt) ["Test", "square_equation2"];
walther@59868
   552
(writeln o UnparseC.term) sc;
wneuper@59430
   553
wneuper@59430
   554
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
wneuper@59430
   555
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   556
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   557
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   558
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   559
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   560
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   561
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   562
(*val nxt = ("Apply_Method",Apply_Method ("Test", "square_equation1"))*)
wneuper@59430
   563
val (p,_,f,nxt,_,pt) = 
wneuper@59430
   564
wneuper@59430
   565
me nxt p [1] pt;
wneuper@59430
   566
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   567
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   568
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   569
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   570
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   571
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   572
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   573
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60329
   574
(*"9 + - 1 * x \<up> 2 = 0"
walther@59997
   575
  Subproblem ("Test",["plain_square", "univariate", "equation"]))*)
wneuper@59430
   576
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   577
(*Model_Problem ["plain_square", "univariate", "equation"]*)
wneuper@59430
   578
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   579
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   580
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   581
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   582
(*val nxt = ("Specify_Theory",Specify_Theory "Test")*)
wneuper@59430
   583
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   584
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   585
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   586
(*Apply_Method ("Test", "solve_plain_square")*)
wneuper@59430
   587
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60329
   588
(*"9 + - 1 * x \<up> 2 = 0", nxt Rewrite_Set "isolate_bdv"*)
wneuper@59430
   589
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60329
   590
(*"x \<up> 2 = (0 + - 1 * 9) / - 1", nxt Rewrite_Set "Test_simplify"*)
wneuper@59430
   591
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60242
   592
(*"x \<up> 2 = 9", nxt Rewrite ("square_equality"*)
wneuper@59430
   593
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@60329
   594
(*"x = sqrt 9 | x = - 1 * sqrt 9", nxt Rewrite_Set "tval_rls"*)
wneuper@59430
   595
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   596
(*"x = -3 | x = 3", nxt Or_to_List*)
wneuper@59430
   597
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   598
(*"[x = -3, x = 3]", 
walther@59997
   599
  nxt Check_Postcond ["plain_square", "univariate", "equation", "test"]*)
wneuper@59430
   600
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   601
wneuper@59430
   602
wneuper@59430
   603
wneuper@59430
   604
(*"[x = -3, x = 3]", nxt Check_elementwise "Assumptions"*)
wneuper@59430
   605
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   606
(*"[]", nxt Check_Postcond ["sqroot-test", "univariate", "equation", "test"]*)
wneuper@59430
   607
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59959
   608
val Form' (Test_Out.FormKF (~1,EdUndef,0,Nundef,res)) = f;
wneuper@59430
   609
if (snd nxt)=End_Proof' andalso res="[x = -3, x = 3]" then ()
wneuper@59430
   610
else error "subp-rooteq.sml: new.behav. in  root-eq + subpbl: solve_plain_square";
wneuper@59430
   611
wneuper@59430
   612
wneuper@59430
   613
writeln (pr_ctree pr_short pt);
wneuper@59430
   614
wneuper@59430
   615
wneuper@59430
   616
Walther@60559
   617
val Prog s = (#scr o MethodC.from_store ctxt) ["Test", "square_equation"];
wneuper@59430
   618
atomt s;
wneuper@59430
   619
wneuper@59430
   620
wneuper@59430
   621
wneuper@59430
   622
wneuper@59430
   623
"---------------- root-eq + subpbl: no_met: linear ----";
wneuper@59430
   624
"---------------- root-eq + subpbl: no_met: linear ----";
wneuper@59430
   625
"---------------- root-eq + subpbl: no_met: linear ----";
wneuper@59430
   626
val fmz = ["equality (sqrt(9+4*x)=sqrt x + sqrt(5+x))",
walther@59997
   627
	   "solveFor x", "solutions L"];
wneuper@59430
   628
val (dI',pI',mI') =
walther@59997
   629
  ("Test",["squareroot", "univariate", "equation", "test"],
walther@59997
   630
   ["Test", "square_equation"]);
wneuper@59430
   631
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
wneuper@59430
   632
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   633
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   634
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   635
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   636
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   637
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   638
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   639
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   640
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   641
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   642
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   643
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   644
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   645
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   646
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   647
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   648
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   649
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   650
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   651
(*"-4 + x = 0", nxt Subproblem ("Test",["univariate", "equation"]))*)
wneuper@59430
   652
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   653
(*val nxt =("Model_Problem",Model_Problem ["LINEAR", "univar...*)
wneuper@59430
   654
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   655
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   656
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   657
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   658
(*val nxt = ("Specify_Theory",Specify_Theory "Test")*)
wneuper@59430
   659
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   660
(*val nxt = ("Specify_Problem",Specify_Problem ["LINEAR", "univariate", "equ*)
wneuper@59430
   661
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   662
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   663
(*Apply_Method ("Test", "norm_univar_equation")*)
wneuper@59430
   664
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   665
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   666
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   667
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   668
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   669
if p = ([13],Res) then ()
wneuper@59430
   670
else error ("subp-rooteq.sml: new.behav. in  \
wneuper@59430
   671
		 \root-eq + subpbl: solve_linear, p ="^(pos'2str p));
wneuper@59430
   672
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59959
   673
val Form' (Test_Out.FormKF (~1,EdUndef,0,Nundef,res)) = f;
wneuper@59430
   674
if (snd nxt)=End_Proof' andalso res="[x = 4]" then ()
wneuper@59430
   675
else error "subp-rooteq.sml: new.behav. in  root-eq + subpbl: solve_plain_square";
wneuper@59430
   676
wneuper@59430
   677
wneuper@59430
   678
wneuper@59430
   679
wneuper@59430
   680
"---------------- root-eq + subpbl: no_met: square ----";
wneuper@59430
   681
"---------------- root-eq + subpbl: no_met: square ----";
wneuper@59430
   682
"---------------- root-eq + subpbl: no_met: square ----";
wneuper@59430
   683
val fmz = ["equality (sqrt(5+x)+sqrt(5-x)=sqrt 18)",
walther@59997
   684
	   "solveFor x", "solutions L"];
wneuper@59430
   685
val (dI',pI',mI') =
walther@59997
   686
  ("Test",["squareroot", "univariate", "equation", "test"],
walther@59997
   687
   ["Test", "square_equation"]);
Walther@60559
   688
 val Prog sc = (#scr o MethodC.from_store ctxt) ["Test", "square_equation"];
walther@59868
   689
 (writeln o UnparseC.term) sc;
wneuper@59430
   690
wneuper@59430
   691
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
wneuper@59430
   692
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   693
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   694
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   695
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   696
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   697
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   698
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   699
(*val nxt = ("Apply_Method",Apply_Method ("Test", "square_equation1"))*)
wneuper@59430
   700
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   701
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   702
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   703
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   704
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   705
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   706
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   707
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   708
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   709
(*Subproblem ("Test",["univariate", "equation"]))*)
wneuper@59430
   710
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   711
(*Model_Problem ["plain_square", "univariate", "equation"]*)
wneuper@59430
   712
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   713
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   714
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   715
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   716
(*val nxt = ("Specify_Theory",Specify_Theory "Test")*)
wneuper@59430
   717
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   718
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   719
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   720
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   721
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   722
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   723
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   724
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   725
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   726
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
wneuper@59430
   727
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59997
   728
(*val nxt = ("Check_Postcond",Check_Postcond ["squareroot", "univariate", "equ*)
wneuper@59430
   729
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
walther@59959
   730
val Form' (Test_Out.FormKF (~1,EdUndef,0,Nundef,res)) = f;
wneuper@59430
   731
if (snd nxt)=End_Proof' andalso res="[x = -3, x = 3]" then ()
wneuper@59430
   732
else error "subp-rooteq.sml: new.behav. in  root-eq + subpbl: no_met: square";
wneuper@59430
   733
wneuper@59430
   734
wneuper@59430
   735
wneuper@59430
   736
"---------------- no_met in rootpbl -> linear --------------";
wneuper@59430
   737
"---------------- no_met in rootpbl -> linear --------------";
wneuper@59430
   738
"---------------- no_met in rootpbl -> linear --------------";
wneuper@59430
   739
val fmz = ["equality (1+2*x+3=4*x- 6)",
walther@59997
   740
	   "solveFor x", "solutions L"];
wneuper@59430
   741
val (dI',pI',mI') =
walther@59997
   742
  ("Test",["univariate", "equation", "test"],
wneuper@59430
   743
   ["no_met"]);
wneuper@59430
   744
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
walther@59997
   745
(*val nxt = ("Model_Problem",Model_Problem ["normalise", "univariate", "equati*)
wneuper@59430
   746
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   747
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   748
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   749
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   750
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   751
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   752
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   753
(*val nxt = ("Apply_Method",Apply_Method ("Test", "norm_univar_equation"*)
wneuper@59430
   754
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   755
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   756
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   757
(*val nxt = ("Subproblem",Subproblem ("Test",["univariate", "equation"])*)
wneuper@59430
   758
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   759
(*val nxt = ("Model_Problem",Model_Problem ["LINEAR", "univariate", "equation"]*)
wneuper@59430
   760
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   761
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   762
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   763
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   764
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   765
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   766
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   767
(*val nxt = ("Apply_Method",Apply_Method ("Test", "solve_linear"))*)
wneuper@59430
   768
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   769
val (p,_,f,nxt,_,pt) = me nxt p c pt;
wneuper@59430
   770
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   771
(*val nxt = ("Check_Postcond",Check_Postcond ["LINEAR", "univariate", "equatio*)
wneuper@59430
   772
val (p,_,f,nxt,_,pt) = me nxt p c pt;
walther@59997
   773
(*val nxt = ("Check_Postcond",Check_Postcond ["normalise", "univariate", "equa*)
walther@59959
   774
val (p,_,Form' (Test_Out.FormKF (_,_,_,_,f)),nxt,_,_) = 
wneuper@59430
   775
    me nxt p c pt;
wneuper@59430
   776
if f="[x = 5]" andalso nxt=("End_Proof'",End_Proof') then ()
wneuper@59430
   777
else error "subp-rooteq.sml: new.behav. in no_met in rootpbl -> linear ---";
wneuper@59430
   778
wneuper@59430
   779
walther@59997
   780
Refine.refine fmz ["univariate", "equation", "test"];
walther@59997
   781
M_Match.match_pbl fmz (Problem.from_store ["polynomial", "univariate", "equation", "test"]);
wneuper@59430
   782
walther@60242
   783
===== copied here from OLDTESTS in case there is a Program === \<up> =============================*)