1 (* use"../systest/details.sml";
2 use"systest/details.sml";
5 ########################################################
6 is NOT dependent on Test, but on other thys:
7 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8 uses from Rational.ML: Rrls cancel_p, Rrls cancel
10 uses from Poly.ML: Rls make_polynomial, Rls expand_binom
11 ########################################################
13 "-------- cancel, without detail ------------------------------";
14 "-------- cancel, detail rev-rew (cancel) afterwards ----------";
15 "-------------- cancel_p, without detail ------------------------------";
16 "-------------- cancel_p, detail rev-rew (cancel) afterwards ----------";
26 [("#Given" ,["realTestGiven t_"]),
27 ("#Find" ,["realTestFind s_"])
29 e_rls, None, [("Test.thy","test_detail")]));
31 methods:= overwritel (!methods,
34 (("Test.thy","test_detail_binom"):metID,
35 [("#Given" ,["realTestGiven t_"]),
36 ("#Find" ,["realTestFind s_"])
38 {rew_ord'="sqrt_right",rls'=tval_rls,calc = [],srls=e_rls,prls=e_rls,
39 asm_rls=[],asm_thm=[("real_mult_div_cancel2","")]},
40 "Script Testterm (g_::real) = \
41 \(((Rewrite_Set expand_binoms False) @@\
42 \ (Rewrite_Set cancel False)) g_)"
45 (("Test.thy","test_detail_poly"):metID,
46 [("#Given" ,["realTestGiven t_"]),
47 ("#Find" ,["realTestFind s_"])
49 {rew_ord'="sqrt_right",rls'=tval_rls,calc=[],srls=e_rls,prls=e_rls,
50 asm_rls=[],asm_thm=[("real_mult_div_cancel2","")]},
51 "Script Testterm (g_::real) = \
52 \(((Rewrite_Set make_polynomial False) @@\
53 \ (Rewrite_Set cancel_p False)) g_)"
56 (*---- funktionieren mit Rationals.ML: dummy-Funktionen(1)--------*)
58 "-------- cancel, without detail ------------------------------";
59 "-------- cancel, without detail ------------------------------";
60 "-------- cancel, without detail ------------------------------";
61 val fmz = ["realTestGiven (((3 + x) * (3 - x)) / ((3 + x) * (3 + x)))",
64 ("Test.thy",["detail","test"],("Test.thy","test_detail_binom"));
66 val p = e_pos'; val c = [];
67 val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
68 val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;
69 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
70 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
71 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
72 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
73 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
74 (*nxt = ("Apply_Method",Apply_Method ("Test.thy","test_detail"))*)
75 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
76 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
77 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
78 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
79 (*"(3 + -1 * x) / (3 + x)"*)
80 if nxt = ("End_Proof'",End_Proof') then ()
81 else raise error "details.sml, changed behaviour in: without detail";
84 "-------- cancel, detail rev-rew (cancel) afterwards ----------";
85 "-------- cancel, detail rev-rew (cancel) afterwards ----------";
86 "-------- cancel, detail rev-rew (cancel) afterwards ----------";
87 val p = e_pos'; val c = [];
88 val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
89 val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;
90 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
91 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
92 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
93 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
94 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
95 (*nxt = ("Apply_Method",Apply_Method ("Test.thy","test_detail"))*)
96 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
97 (*val nxt = ("Rewrite_Set",Rewrite_Set "expand_binoms")*)
98 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
99 val nxt = ("Detail",Detail);"----------------------";
100 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
101 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
102 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
103 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
104 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
105 (*val nxt = ("End_Detail",End_Detail)*)
106 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
107 (*val nxt = ("Rewrite_Set",Rewrite_Set "cancel")*)
108 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
109 val nxt = ("Detail",Detail);"----------------------";
110 val (p,_,f,nxt,_,pt) = (me nxt p [] pt) handle e => print_exn e;
111 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
113 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
115 rewrite "Rationals.thy" "tless_true""e_rls"true("sym_real_plus_minus_binom","")
118 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
119 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
120 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
121 val (p,_,f,nxt,_,pt) = (me nxt p [] pt) handle e => print_exn e;
122 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
123 if f = Form' (FormKF (~1,EdUndef,0,Nundef,"(3 - x) / (3 + x)"))
124 andalso nxt = ("End_Proof'",End_Proof') then ()
125 else raise error "new behaviour in details.sml, \
126 \cancel, rev-rew (cancel) afterwards";
128 (*---- funktionieren mit Rationals.ML: dummy-Funktionen(1)--------*)
130 "-------------- cancel_p, without detail ------------------------------";
131 "-------------- cancel_p, without detail ------------------------------";
132 "-------------- cancel_p, without detail ------------------------------";
133 val fmz = ["realTestGiven (((3 + x)*(3+(-1)*x)) / ((3+x) * (3+x)))",
136 ("Test.thy",["detail","test"],("Test.thy","test_detail_poly"));
138 val p = e_pos'; val c = [];
139 val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
140 val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;
141 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
142 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
143 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
144 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
145 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
146 (*nxt = ("Apply_Method",Apply_Method ("Test.thy","test_detail"))*)
147 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
148 "(3 + x) * (3 + -1 * x) / ((3 + x) * (3 + x))";
151 val t = str2term "(3 + x) * (3 + -1 * x) / ((3 + x) * (3 + x))";
152 val Some (t,_) = rewrite_set_ thy false make_polynomial t; term2str t;
153 "(9 + - (x ^^^ 2)) / (9 + 6 * x + x ^^^ 2)";
154 val Some (t,_) = rewrite_set_ thy false cancel_p t; term2str t;
157 val t = str2term "(3 + x) * (3 + -1 * x)";
158 val Some (t,_) = rewrite_set_ thy false expand_poly t; term2str t;
159 "3 * 3 + 3 * (-1 * x) + (x * 3 + x * (-1 * x))";
160 val Some (t,_) = rewrite_set_ thy false order_add_mult t; term2str t;
161 "3 * 3 + (3 * x + (-1 * (3 * x) + -1 * (x * x)))";
162 val Some (t,_) = rewrite_set_ thy false simplify_power t; term2str t;
163 "3 ^^^ 2 + (3 * x + (-1 * (3 * x) + -1 * x ^^^ 2))";
164 val Some (t,_) = rewrite_set_ thy false collect_numerals t; term2str t;
165 "9 + (0 * x + -1 * x ^^^ 2)";
166 val Some (t,_) = rewrite_set_ thy false reduce_012 t; term2str t;
170 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
171 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
172 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
173 (*"(3 + -1 * x) / (3 + x)"*)
174 if nxt = ("End_Proof'",End_Proof') then ()
175 else raise error "details.sml, changed behaviour in: cancel_p, without detail";
177 "-------------- cancel_p, detail rev-rew (cancel) afterwards ----------";
178 "-------------- cancel_p, detail rev-rew (cancel) afterwards ----------";
179 "-------------- cancel_p, detail rev-rew (cancel) afterwards ----------";
180 val p = e_pos'; val c = [];
181 val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
182 val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;
183 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
184 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
185 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
186 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
187 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
188 (*nxt = ("Apply_Method",Apply_Method ("Test.thy","test_detail_poly"))*)
189 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
190 (*val nxt = ("Rewrite_Set",Rewrite_Set "make_polynomial")*)
191 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
193 (*14.3.03.FIXXXXXME since Isa02/reverse-rew.sml:
194 fun make_deriv ... Rls_ not yet impl. (| Thm | Calc)
195 Rls_ needed for make_polynomial ----------------------
196 val nxt = ("Detail",Detail);"----------------------";
197 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
198 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
199 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
200 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
201 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
202 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
203 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
204 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
205 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
206 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
207 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
208 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
209 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
210 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
211 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
212 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
213 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
214 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
215 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
216 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
217 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
218 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
219 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
220 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
221 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
222 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
223 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
224 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
225 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
226 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
227 if nxt = ("End_Detail",End_Detail) then ()
228 else raise error "details.sml: new behav. in Detail make_polynomial";
229 ----------------------------------------------------------------------*)
232 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
233 (*val nxt = ("Rewrite_Set",Rewrite_Set "cancel_p")*)
234 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
235 val nxt = ("Detail",Detail);"----------------------";
236 val (p,_,f,nxt,_,pt) = (me nxt p [] pt) handle e => print_exn e;
237 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
238 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
239 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
240 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
241 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
242 val (p,_,f,nxt,_,pt) = (me nxt p [] pt) handle e => print_exn e;
243 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
244 if f = Form' (FormKF (~1,EdUndef,0,Nundef,"(3 + x) / (3 - x)"))
245 andalso nxt = ("End_Proof'",End_Proof') then ()
246 else raise error "new behaviour in details.sml, cancel_p afterwards";
254 val fmz = ["realTestGiven ((x+3)+(-1)*(2+6*x))",
257 ("Test.thy",["detail","test"],("Test.thy","test_detail_poly"));
259 val p = e_pos'; val c = [];
260 val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI')));
261 val (p,_,f,nxt,_,pt) = me (mI,m) p c EmptyPtree;
262 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
263 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
264 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
265 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
266 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
267 (*nxt = ("Apply_Method",Apply_Method ("Test.thy","test_detail_poly"))*)
268 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
269 (*16.10.02 --- kommt auf POLY_EXCEPTION ?!??? ----------------------------
270 (*val nxt = ("Rewrite_Set",Rewrite_Set "make_polynomial")*)
271 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (* rewrite must exist for Detail*)
272 val nxt = ("Detail",Detail);"----------------------";
273 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
274 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
275 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
276 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
277 -------------------------------------------------------------------------*)