2 testexamples for RatEq, equations with fractions
4 Compiler.Control.Print.printDepth:=10; (*4 default*)
5 Compiler.Control.Print.printDepth:=5; (*4 default*)
10 "----------- rateq.sml begin--------";
11 "---------(1/x=5) ---------------------";
12 "--------- S.68, Bsp.: 40, ((x)/(x - 8) + (x - 8)/(x) = 26/5)---------------------";
14 val t = (term_of o the o (parse RatEq.thy)) "(1/b+1/x=1) is_ratequation_in x";
15 val SOME(t_, _) = rewrite_set_ RatEq.thy false RatEq_prls t;
16 val result = term2str t_;
17 if result <> "True" then error "rateq.sml: new behaviour 1:" else ();
19 val t = (term_of o the o (parse RatEq.thy)) "(sqrt(x)=1) is_ratequation_in x";
20 val SOME(t_, _) = rewrite_set_ RatEq.thy false RatEq_prls t;
21 val result = term2str t_;
22 if result <> "False" then error "rateq.sml: new behaviour 2:" else ();
24 val t = (term_of o the o (parse RatEq.thy)) "(x=-1) is_ratequation_in x";
25 val SOME(t_,_) = rewrite_set_ RatEq.thy false RatEq_prls t;
26 val result = term2str t_;
27 if result <> "False" then error "rateq.sml: new behaviour 3:" else ();
29 val t = (term_of o the o (parse RatEq.thy)) "(3 + x^^^2 + 1/(x^^^2+3)=1) is_ratequation_in x";
30 val SOME(t_,_) = rewrite_set_ RatEq.thy false RatEq_prls t;
31 val result = term2str t_;
32 if result <> "True" then error "rateq.sml: new behaviour 4:" else ();
34 val result = match_pbl ["equality (x=1)","solveFor x","solutions L"]
35 (get_pbt ["rational","univariate","equation"]);
36 case result of NoMatch' _ => () | _ => error "rateq.sml: new behaviour: 5";
38 val result = match_pbl ["equality (3 + x^^^2 + 1/(x^^^2+3)=1)","solveFor x","solutions L"]
39 (get_pbt ["rational","univariate","equation"]);
40 case result of Matches' _ => () | _ => error "rateq.sml: new behaviour: 6";
43 (*---------rateq---- 23.8.02 ---------------------*)
44 "---------(1/x=5) ---------------------";
45 val fmz = ["equality (1/x=5)","solveFor x","solutions L"];
46 (* refine fmz ["univariate","equation"];
49 val (dI',pI',mI') = ("RatEq",["univariate","equation"],["no_met"]);
50 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
51 (* val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
52 --------------------------------------- Refine_Tacitly*)
53 (* nxt = ("Model_Problem",Model_Problem ["rational","univariate","equation"]) *)
54 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
55 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
56 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
57 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
58 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
59 (* val nxt = ("Subproblem",Subproblem ("RatEq",["univariate","equation"])*)
60 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
61 (* val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
62 --------------------------------------- Refine_Tacitly*)
63 (*val nxt = ("Model_Problem", Model_Problem ["normalize","polynomial","univariate","equation"])*)
64 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
65 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
66 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
67 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
68 (*val nxt = Apply_Method ["PolyEq", "normalize_poly"])*)
70 (* get_obj g_fmz pt [2];
73 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
74 (**** assoc_thm': 'all_left' not in 'RatEq.thy' (and parents)*)
75 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
76 (* val nxt = ("Subproblem", Subproblem ("PolyEq",["polynomial","univariate","equation"]))*)
80 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
81 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
82 (* ("Model_Problem", Model_Problem ["degree_1","polynomial","univariate","equation"])*)
83 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
84 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
85 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
86 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
87 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
88 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
89 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
91 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
92 if mout2str(f) = "Form' FormKF (~1,EdUndef,0,Nundef,([x = 1 / 5])" then ()
93 else error "rateq.sml: new behaviour: [x = 1 / 5]";
97 (*---------((x)/(x - 8) + (x - 8)/(x) = 26/5)---------------------*)
98 "--------- S.68, Bsp.: 40, ((x)/(x - 8) + (x - 8)/(x) = 26/5)---------------------";
99 (*EP Schalk_II_p68_n40*)
100 val fmz = ["equality ((x)/(x - 8) + (x - 8)/(x) = 26/5)","solveFor x","solutions L"];
101 (* val fmz = ["equality (3+x= 9*x^^^4+((1+2*x)/x^^^2)^^^2 + 6*(x^^^2*((1+2*x)/x^^^2)))",
102 "solveFor x","solutions L"];*)
104 (* refine fmz ["univariate","equation"];
107 val (dI',pI',mI') = ("RatEq",["univariate","equation"],["no_met"]);
110 val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
111 val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;*)
112 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
113 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
114 (* nxt = ("Model_Problem",Model_Problem ["rational","univariate","equation"])*)
115 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
116 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
117 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
118 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
119 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
120 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
121 (* nxt = ("Subproblem",Subproblem ("RatEq",["univariate","equation"]))*)
122 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
123 (* nxt = ("Model_Problem", Model_Problem ["normalize","polynomial","univariate","equation"])*)
124 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
125 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
126 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
127 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
128 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
129 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
130 (* ("Subproblem", Subproblem ("PolyEq",["polynomial","univariate","equation"])) *)
131 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
132 (* nxt = ("Model_Problem", Model_Problem
133 ["abcFormula","degree_2","polynomial","univariate","equation"])*)
134 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
135 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
136 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
137 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
138 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
139 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
140 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
141 (* "x = -2, x = 10" *)
142 if mout2str(f) = "Form' FormKF (~1,EdUndef,0,Nundef,([x = -2, x = 10])" then()
143 else error "rateq.sml: new behaviour: [x = -2, x = 10]";
145 "----------- rateq.sml end--------";