198 ([3, 1], Frm), |
198 ([3, 1], Frm), |
199 ([3, 1], Res), |
199 ([3, 1], Res), |
200 ([3, 2], Res), |
200 ([3, 2], Res), |
201 ([3], Res), |
201 ([3], Res), |
202 ([4], Res)] |
202 ([4], Res)] |
203 then () else raise error "ctree.sml: diff:behav. in cut_level 1a"; |
203 then () else error "ctree.sml: diff:behav. in cut_level 1a"; |
204 val (res,asm) = get_obj g_result pt' [2]; |
204 val (res,asm) = get_obj g_result pt' [2]; |
205 if res = e_term andalso asm = [] then () else |
205 if res = e_term andalso asm = [] then () else |
206 raise error "ctree.sml: diff:behav. in cut_level 1aa" WN050219*); |
206 error "ctree.sml: diff:behav. in cut_level 1aa" WN050219*); |
207 if not (existpt [2] pt') then () else |
207 if not (existpt [2] pt') then () else |
208 raise error "ctree.sml: diff:behav. in cut_level 1aa2" (*WN050220*); |
208 error "ctree.sml: diff:behav. in cut_level 1aa2" (*WN050220*); |
209 |
209 |
210 val (res,asm) = get_obj g_result pt' []; |
210 val (res,asm) = get_obj g_result pt' []; |
211 if term2str res = "[x = 1]" (*WN050219 e_term in cut_tree!!!*) then () else |
211 if term2str res = "[x = 1]" (*WN050219 e_term in cut_tree!!!*) then () else |
212 raise error "ctree.sml: diff:behav. in cut_level 1ab"; |
212 error "ctree.sml: diff:behav. in cut_level 1ab"; |
213 if map fst (get_interval ([],Frm) ([],Res) 9999 pt') = |
213 if map fst (get_interval ([],Frm) ([],Res) 9999 pt') = |
214 [([], Frm), |
214 [([], Frm), |
215 ([1], Frm), |
215 ([1], Frm), |
216 ([1], Res), |
216 ([1], Res), |
217 ([2], Res),(*, e_term in cut_tree!!!*) |
217 ([2], Res),(*, e_term in cut_tree!!!*) |
218 ([], Res)] then () else |
218 ([], Res)] then () else |
219 raise error "ctree.sml: diff:behav. in cut_level 1b"; |
219 error "ctree.sml: diff:behav. in cut_level 1b"; |
220 |
220 |
221 |
221 |
222 val (pt',cuts) = cut_level [] [] pt ([2],Res); |
222 val (pt',cuts) = cut_level [] [] pt ([2],Res); |
223 if cuts = [([3], Frm), |
223 if cuts = [([3], Frm), |
224 ([3, 1], Frm), |
224 ([3, 1], Frm), |
225 ([3, 1], Res), |
225 ([3, 1], Res), |
226 ([3, 2], Res), |
226 ([3, 2], Res), |
227 ([3], Res), |
227 ([3], Res), |
228 ([4], Res)] |
228 ([4], Res)] |
229 then () else raise error "ctree.sml: diff:behav. in cut_level 2a"; |
229 then () else error "ctree.sml: diff:behav. in cut_level 2a"; |
230 |
230 |
231 if pr_ptree pr_short pt' = ". ----- pblobj -----\n1. x + 1 = 2\n2. x + 1 + -1 * 2 = 0\n" |
231 if pr_ptree pr_short pt' = ". ----- pblobj -----\n1. x + 1 = 2\n2. x + 1 + -1 * 2 = 0\n" |
232 then () else raise error "ctree.sml: diff:behav. in cut_level 2b"; |
232 then () else error "ctree.sml: diff:behav. in cut_level 2b"; |
233 |
233 |
234 val (pt',cuts) = cut_level [] [3] pt ([3,1],Frm); |
234 val (pt',cuts) = cut_level [] [3] pt ([3,1],Frm); |
235 if cuts = [([3, 1], Res), ([3, 2], Res)] |
235 if cuts = [([3, 1], Res), ([3, 2], Res)] |
236 then () else raise error "ctree.sml: diff:behav. in cut_level 3a"; |
236 then () else error "ctree.sml: diff:behav. in cut_level 3a"; |
237 if pr_ptree pr_short pt' = ". ----- pblobj -----\n1. x + 1 = 2\n2. x + 1 + -1 * 2 = 0\n3. ----- pblobj -----\n3.1. -1 + x = 0\n4. [x = 1]\n" |
237 if pr_ptree pr_short pt' = ". ----- pblobj -----\n1. x + 1 = 2\n2. x + 1 + -1 * 2 = 0\n3. ----- pblobj -----\n3.1. -1 + x = 0\n4. [x = 1]\n" |
238 then () else raise error "ctree.sml: diff:behav. in cut_level 3b"; |
238 then () else error "ctree.sml: diff:behav. in cut_level 3b"; |
239 |
239 |
240 val (pt',cuts) = cut_level [] [3] pt ([3,1],Res); |
240 val (pt',cuts) = cut_level [] [3] pt ([3,1],Res); |
241 if cuts = [([3, 2], Res)] |
241 if cuts = [([3, 2], Res)] |
242 then () else raise error "ctree.sml: diff:behav. in cut_level 4a"; |
242 then () else error "ctree.sml: diff:behav. in cut_level 4a"; |
243 if pr_ptree pr_short pt' = ". ----- pblobj -----\n1. x + 1 = 2\n2. x + 1 + -1 * 2 = 0\n3. ----- pblobj -----\n3.1. -1 + x = 0\n4. [x = 1]\n" |
243 if pr_ptree pr_short pt' = ". ----- pblobj -----\n1. x + 1 = 2\n2. x + 1 + -1 * 2 = 0\n3. ----- pblobj -----\n3.1. -1 + x = 0\n4. [x = 1]\n" |
244 then () else raise error "ctree.sml: diff:behav. in cut_level 4b"; |
244 then () else error "ctree.sml: diff:behav. in cut_level 4b"; |
245 |
245 |
246 |
246 |
247 "-------------- cut_tree (from ptree above)-----------------------"; |
247 "-------------- cut_tree (from ptree above)-----------------------"; |
248 "-------------- cut_tree (from ptree above)-----------------------"; |
248 "-------------- cut_tree (from ptree above)-----------------------"; |
249 "-------------- cut_tree (from ptree above)-----------------------"; |
249 "-------------- cut_tree (from ptree above)-----------------------"; |
254 ([3, 1], Res), |
254 ([3, 1], Res), |
255 ([3, 2], Res), |
255 ([3, 2], Res), |
256 ([3], Res), |
256 ([3], Res), |
257 ([4], Res), |
257 ([4], Res), |
258 ([], Res)] |
258 ([], Res)] |
259 then () else raise error "ctree.sml: diff:behav. in cut_tree 1a"; |
259 then () else error "ctree.sml: diff:behav. in cut_tree 1a"; |
260 |
260 |
261 val (res,asm) = get_obj g_result pt' [2]; |
261 val (res,asm) = get_obj g_result pt' [2]; |
262 if res = e_term (*WN050219 done by cut_level*) then () else |
262 if res = e_term (*WN050219 done by cut_level*) then () else |
263 raise error "ctree.sml: diff:behav. in cut_tree 1aa"; |
263 error "ctree.sml: diff:behav. in cut_tree 1aa"; |
264 |
264 |
265 val form = get_obj g_form pt' [2]; |
265 val form = get_obj g_form pt' [2]; |
266 if term2str form = "x + 1 + -1 * 2 = 0" (*remained !!!*) then () else |
266 if term2str form = "x + 1 + -1 * 2 = 0" (*remained !!!*) then () else |
267 raise error "ctree.sml: diff:behav. in cut_tree 1ab"; |
267 error "ctree.sml: diff:behav. in cut_tree 1ab"; |
268 |
268 |
269 val (res,asm) = get_obj g_result pt' []; |
269 val (res,asm) = get_obj g_result pt' []; |
270 if res = e_term (*WN050219 done by cut_tree*) then () else |
270 if res = e_term (*WN050219 done by cut_tree*) then () else |
271 raise error "ctree.sml: diff:behav. in cut_tree 1ac"; |
271 error "ctree.sml: diff:behav. in cut_tree 1ac"; |
272 |
272 |
273 if map fst (get_interval ([],Frm) ([],Res) 9999 pt') = |
273 if map fst (get_interval ([],Frm) ([],Res) 9999 pt') = |
274 [([], Frm), |
274 [([], Frm), |
275 ([1], Frm), |
275 ([1], Frm), |
276 ([1], Res)] then () else |
276 ([1], Res)] then () else |
277 raise error "ctree.sml: diff:behav. in cut_tree 1ad"; |
277 error "ctree.sml: diff:behav. in cut_tree 1ad"; |
278 |
278 |
279 val (pt', cuts) = cut_tree pt ([2],Res); |
279 val (pt', cuts) = cut_tree pt ([2],Res); |
280 if cuts = [([3], Frm), |
280 if cuts = [([3], Frm), |
281 ([3, 1], Frm), |
281 ([3, 1], Frm), |
282 ([3, 1], Res), |
282 ([3, 1], Res), |
283 ([3, 2], Res), |
283 ([3, 2], Res), |
284 ([3], Res), |
284 ([3], Res), |
285 ([4], Res), |
285 ([4], Res), |
286 ([], Res)] |
286 ([], Res)] |
287 then () else raise error "ctree.sml: diff:behav. in cut_tree 2"; |
287 then () else error "ctree.sml: diff:behav. in cut_tree 2"; |
288 |
288 |
289 val (pt', cuts) = cut_tree pt ([3,1],Frm); |
289 val (pt', cuts) = cut_tree pt ([3,1],Frm); |
290 if cuts = [([3, 1], Res), |
290 if cuts = [([3, 1], Res), |
291 ([3, 2], Res), |
291 ([3, 2], Res), |
292 ([3], Res), |
292 ([3], Res), |
293 ([4], Res), |
293 ([4], Res), |
294 ([], Res)] |
294 ([], Res)] |
295 then () else raise error "ctree.sml: diff:behav. in cut_tree 3"; |
295 then () else error "ctree.sml: diff:behav. in cut_tree 3"; |
296 |
296 |
297 val (pt', cuts) = cut_tree pt ([3,1],Res); |
297 val (pt', cuts) = cut_tree pt ([3,1],Res); |
298 if cuts = [([3, 2], Res), |
298 if cuts = [([3, 2], Res), |
299 ([3], Res), |
299 ([3], Res), |
300 ([4], Res), |
300 ([4], Res), |
301 ([], Res)] |
301 ([], Res)] |
302 then () else raise error "ctree.sml: diff:behav. in cut_tree 4"; |
302 then () else error "ctree.sml: diff:behav. in cut_tree 4"; |
303 |
303 |
304 |
304 |
305 "=====new ptree 1a miniscript with mini-subpbl ==================="; |
305 "=====new ptree 1a miniscript with mini-subpbl ==================="; |
306 "=====new ptree 1a miniscript with mini-subpbl ==================="; |
306 "=====new ptree 1a miniscript with mini-subpbl ==================="; |
307 "=====new ptree 1a miniscript with mini-subpbl ==================="; |
307 "=====new ptree 1a miniscript with mini-subpbl ==================="; |
439 val p = ([1], Frm); |
439 val p = ([1], Frm); |
440 val (pt,cuts) = cappend_form pt (fst p) e_istate (str2term "x + 1 = 2"); |
440 val (pt,cuts) = cappend_form pt (fst p) e_istate (str2term "x + 1 = 2"); |
441 val form = get_obj g_form pt (fst p); |
441 val form = get_obj g_form pt (fst p); |
442 val (res,_) = get_obj g_result pt (fst p); |
442 val (res,_) = get_obj g_result pt (fst p); |
443 if term2str form = "x + 1 = 2" andalso res = e_term then () else |
443 if term2str form = "x + 1 = 2" andalso res = e_term then () else |
444 raise error "ctree.sml, diff.behav. cappend minisubpbl ([1],Frm)"; |
444 error "ctree.sml, diff.behav. cappend minisubpbl ([1],Frm)"; |
445 if not (existpt ((lev_on o fst) p) pt) then () else |
445 if not (existpt ((lev_on o fst) p) pt) then () else |
446 raise error "ctree.sml, diff.behav. cappend minisubpbl ([1],Frm) nxt"; |
446 error "ctree.sml, diff.behav. cappend minisubpbl ([1],Frm) nxt"; |
447 |
447 |
448 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**)cappend_atomic: pos =[1]*); |
448 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**)cappend_atomic: pos =[1]*); |
449 val p = ([1], Res); |
449 val p = ([1], Res); |
450 val (pt,cuts) = |
450 val (pt,cuts) = |
451 cappend_atomic pt (fst p) e_istate (str2term "x + 1 = 2") |
451 cappend_atomic pt (fst p) e_istate (str2term "x + 1 = 2") |
452 Empty_Tac (str2term "x + 1 + -1 * 2 = 0",[]) Incomplete; |
452 Empty_Tac (str2term "x + 1 + -1 * 2 = 0",[]) Incomplete; |
453 val form = get_obj g_form pt (fst p); |
453 val form = get_obj g_form pt (fst p); |
454 val (res,_) = get_obj g_result pt (fst p); |
454 val (res,_) = get_obj g_result pt (fst p); |
455 if term2str form = "x + 1 = 2" andalso term2str res = "x + 1 + -1 * 2 = 0" |
455 if term2str form = "x + 1 = 2" andalso term2str res = "x + 1 + -1 * 2 = 0" |
456 then () else raise error "ctree.sml, diff.behav. cappend minisubpbl ([1],Res)"; |
456 then () else error "ctree.sml, diff.behav. cappend minisubpbl ([1],Res)"; |
457 if not (existpt ((lev_on o fst) p) pt) then () else |
457 if not (existpt ((lev_on o fst) p) pt) then () else |
458 raise error "ctree.sml, diff.behav. cappend minisubpbl ([1],Res) nxt"; |
458 error "ctree.sml, diff.behav. cappend minisubpbl ([1],Res) nxt"; |
459 |
459 |
460 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**)cappend_atomic: pos =[2]*); |
460 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**)cappend_atomic: pos =[2]*); |
461 val p = ([2], Res); |
461 val p = ([2], Res); |
462 val (pt,cuts) = |
462 val (pt,cuts) = |
463 cappend_atomic pt (fst p) e_istate (str2term "x + 1 + -1 * 2 = 0") |
463 cappend_atomic pt (fst p) e_istate (str2term "x + 1 + -1 * 2 = 0") |
464 Empty_Tac (str2term "-1 + x = 0",[]) Incomplete; |
464 Empty_Tac (str2term "-1 + x = 0",[]) Incomplete; |
465 val form = get_obj g_form pt (fst p); |
465 val form = get_obj g_form pt (fst p); |
466 val (res,_) = get_obj g_result pt (fst p); |
466 val (res,_) = get_obj g_result pt (fst p); |
467 if term2str form = "x + 1 + -1 * 2 = 0" andalso term2str res = "-1 + x = 0" |
467 if term2str form = "x + 1 + -1 * 2 = 0" andalso term2str res = "-1 + x = 0" |
468 then () else raise error "ctree.sml, diff.behav. cappend minisubpbl ([2],Res)"; |
468 then () else error "ctree.sml, diff.behav. cappend minisubpbl ([2],Res)"; |
469 if not (existpt ((lev_on o fst) p) pt) then () else |
469 if not (existpt ((lev_on o fst) p) pt) then () else |
470 raise error "ctree.sml, diff.behav. cappend minisubpbl ([2],Res) nxt"; |
470 error "ctree.sml, diff.behav. cappend minisubpbl ([2],Res) nxt"; |
471 |
471 |
472 |
472 |
473 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(**)cappend_problem: pos =[3]*) |
473 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(**)cappend_problem: pos =[3]*) |
474 val p = ([3], Pbl); |
474 val p = ([3], Pbl); |
475 val (pt,cuts) = cappend_problem pt (fst p) e_istate e_fmz ([],e_spec,e_term); |
475 val (pt,cuts) = cappend_problem pt (fst p) e_istate e_fmz ([],e_spec,e_term); |
476 if is_pblobj (get_obj I pt (fst p)) then () else |
476 if is_pblobj (get_obj I pt (fst p)) then () else |
477 raise error "ctree.sml, diff.behav. cappend minisubpbl ([3],Pbl)"; |
477 error "ctree.sml, diff.behav. cappend minisubpbl ([3],Pbl)"; |
478 if not (existpt ((lev_on o fst) p) pt) then () else |
478 if not (existpt ((lev_on o fst) p) pt) then () else |
479 raise error "ctree.sml, diff.behav. cappend minisubpbl ([3],Pbl) nxt"; |
479 error "ctree.sml, diff.behav. cappend minisubpbl ([3],Pbl) nxt"; |
480 |
480 |
481 (* ...complete calchead skipped...*) |
481 (* ...complete calchead skipped...*) |
482 |
482 |
483 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**)cappend_form: pos =[3,1]*); |
483 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**)cappend_form: pos =[3,1]*); |
484 val p = ([3, 1], Frm); |
484 val p = ([3, 1], Frm); |
485 val (pt,cuts) = cappend_form pt (fst p) e_istate (str2term "-1 + x = 0"); |
485 val (pt,cuts) = cappend_form pt (fst p) e_istate (str2term "-1 + x = 0"); |
486 val form = get_obj g_form pt (fst p); |
486 val form = get_obj g_form pt (fst p); |
487 val (res,_) = get_obj g_result pt (fst p); |
487 val (res,_) = get_obj g_result pt (fst p); |
488 if term2str form = "-1 + x = 0" andalso res = e_term then () else |
488 if term2str form = "-1 + x = 0" andalso res = e_term then () else |
489 raise error "ctree.sml, diff.behav. cappend minisubpbl ([3,1],Frm)"; |
489 error "ctree.sml, diff.behav. cappend minisubpbl ([3,1],Frm)"; |
490 if not (existpt ((lev_on o fst) p) pt) then () else |
490 if not (existpt ((lev_on o fst) p) pt) then () else |
491 raise error "ctree.sml, diff.behav. cappend minisubpbl ([3,1],Frm) nxt"; |
491 error "ctree.sml, diff.behav. cappend minisubpbl ([3,1],Frm) nxt"; |
492 |
492 |
493 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(**)cappend_atomic: pos =[3,1]*) |
493 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(**)cappend_atomic: pos =[3,1]*) |
494 val p = ([3, 1], Res); |
494 val p = ([3, 1], Res); |
495 val (pt,cuts) = |
495 val (pt,cuts) = |
496 cappend_atomic pt (fst p) e_istate (str2term "-1 + x = 0") |
496 cappend_atomic pt (fst p) e_istate (str2term "-1 + x = 0") |
497 Empty_Tac (str2term "x = 0 + -1 * -1",[]) Incomplete; |
497 Empty_Tac (str2term "x = 0 + -1 * -1",[]) Incomplete; |
498 val form = get_obj g_form pt (fst p); |
498 val form = get_obj g_form pt (fst p); |
499 val (res,_) = get_obj g_result pt (fst p); |
499 val (res,_) = get_obj g_result pt (fst p); |
500 if term2str form = "-1 + x = 0" andalso term2str res = "x = 0 + -1 * -1" then() |
500 if term2str form = "-1 + x = 0" andalso term2str res = "x = 0 + -1 * -1" then() |
501 else raise error "ctree.sml, diff.behav. cappend minisubpbl ([3,1],Res)"; |
501 else error "ctree.sml, diff.behav. cappend minisubpbl ([3,1],Res)"; |
502 if not (existpt ((lev_on o fst) p) pt) then () else |
502 if not (existpt ((lev_on o fst) p) pt) then () else |
503 raise error "ctree.sml, diff.behav. cappend minisubpbl ([3,1],Res) nxt"; |
503 error "ctree.sml, diff.behav. cappend minisubpbl ([3,1],Res) nxt"; |
504 |
504 |
505 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**)cappend_form: pos =[3,1]*); |
505 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**)cappend_form: pos =[3,1]*); |
506 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**)cappend_atomic: pos =[3,1]*); |
506 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**)cappend_atomic: pos =[3,1]*); |
507 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**)cappend_atomic: pos =[3,2]*); |
507 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**)cappend_atomic: pos =[3,2]*); |
508 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**).append_result: pos =[3]*); |
508 (*val (p,_,f,nxt,_,pt) = me nxt p [1] pt(**).append_result: pos =[3]*); |
798 end; |
798 end; |
799 |
799 |
800 writeln(pr_ptree pr_short pt); |
800 writeln(pr_ptree pr_short pt); |
801 case get_trace pt [1,3] [4,1,1] of |
801 case get_trace pt [1,3] [4,1,1] of |
802 [[1,3],[1,4],[2],[3],[4],[4,1],[4,1,1]] => () |
802 [[1,3],[1,4],[2],[3],[4],[4,1],[4,1,1]] => () |
803 | _ => raise error "diff.behav.in ctree.sml: get_interval lev 1a"; |
803 | _ => error "diff.behav.in ctree.sml: get_interval lev 1a"; |
804 case get_trace pt [2] [4,3,2] of |
804 case get_trace pt [2] [4,3,2] of |
805 [[2],[3],[4],[4,1],[4,1,1],[4,2],[4,3],[4,3,1],[4,3,2]] => () |
805 [[2],[3],[4],[4,1],[4,1,1],[4,2],[4,3],[4,3,1],[4,3,2]] => () |
806 | _ => raise error "diff.behav.in ctree.sml: get_interval lev 1b"; |
806 | _ => error "diff.behav.in ctree.sml: get_interval lev 1b"; |
807 case get_trace pt [1,4] [4,3,1] of |
807 case get_trace pt [1,4] [4,3,1] of |
808 [[1,4],[2],[3],[4],[4,1],[4,1,1],[4,2],[4,3],[4,3,1]] => () |
808 [[1,4],[2],[3],[4],[4,1],[4,1,1],[4,2],[4,3],[4,3,1]] => () |
809 | _ => raise error "diff.behav.in ctree.sml: get_interval lev 1c"; |
809 | _ => error "diff.behav.in ctree.sml: get_interval lev 1c"; |
810 case get_trace pt [4,2] [5] of |
810 case get_trace pt [4,2] [5] of |
811 (*[([4,2],_),([4,3],_),([4,4],_),([4,4,1],_),([4,4,2],_),([4,4,3],_), |
811 (*[([4,2],_),([4,3],_),([4,4],_),([4,4,1],_),([4,4,2],_),([4,4,3],_), |
812 ([4,4,4],_),([4,4,5],_),([5],_)] => () ..with pt_form*) |
812 ([4,4,4],_),([4,4,5],_),([5],_)] => () ..with pt_form*) |
813 [[4,2],[4,3],[4,3,1],[4,3,2],[4,3,3],[4,3,4],[4,3,5],[5]]=>() |
813 [[4,2],[4,3],[4,3,1],[4,3,2],[4,3,3],[4,3,4],[4,3,5],[5]]=>() |
814 | _ => raise error "diff.behav.in ctree.sml: get_interval lev 1d"; |
814 | _ => error "diff.behav.in ctree.sml: get_interval lev 1d"; |
815 case get_trace pt [] [4,4,2] of |
815 case get_trace pt [] [4,4,2] of |
816 [[1],[1,1],[1,2],[1,3],[1,4],[2],[3],[4],[4,1],[4,1,1],[4,2], |
816 [[1],[1,1],[1,2],[1,3],[1,4],[2],[3],[4],[4,1],[4,1,1],[4,2], |
817 [4,3],[4,3,1],[4,3,2]] => () |
817 [4,3],[4,3,1],[4,3,2]] => () |
818 | _ => raise error "diff.behav.in ctree.sml: get_interval lev 1e"; |
818 | _ => error "diff.behav.in ctree.sml: get_interval lev 1e"; |
819 case get_trace pt [] [] of |
819 case get_trace pt [] [] of |
820 [[1],[1,1],[1,2],[1,3],[1,4],[2],[3],[4],[4,1],[4,1,1],[4,2], |
820 [[1],[1,1],[1,2],[1,3],[1,4],[2],[3],[4],[4,1],[4,1,1],[4,2], |
821 [4,3],[4,3,1],[4,3,2],[4,3,3],[4,3,4],[4,3,5],[5]] => () |
821 [4,3],[4,3,1],[4,3,2],[4,3,3],[4,3,4],[4,3,5],[5]] => () |
822 | _ => raise error "diff.behav.in ctree.sml: get_interval lev 1f"; |
822 | _ => error "diff.behav.in ctree.sml: get_interval lev 1f"; |
823 case get_trace pt [4,3] [4,3] of |
823 case get_trace pt [4,3] [4,3] of |
824 [[4,3],[4,3,1],[4,3,2],[4,3,3],[4,3,4],[4,3,5]] => () |
824 [[4,3],[4,3,1],[4,3,2],[4,3,3],[4,3,4],[4,3,5]] => () |
825 | _ => raise error "diff.behav.in ctree.sml: get_interval lev 1g"; |
825 | _ => error "diff.behav.in ctree.sml: get_interval lev 1g"; |
826 |
826 |
827 "--- level 2: get pos' from start b to end p ---------------------"; |
827 "--- level 2: get pos' from start b to end p ---------------------"; |
828 "--- level 2: get pos' from start b to end p ---------------------"; |
828 "--- level 2: get pos' from start b to end p ---------------------"; |
829 "--- level 2: get pos' from start b to end p ---------------------"; |
829 "--- level 2: get pos' from start b to end p ---------------------"; |
830 (*idea: pos_ is _ONLY_ relevant exactly at (endpoint of) from, to |
830 (*idea: pos_ is _ONLY_ relevant exactly at (endpoint of) from, to |
832 actually used (inefficient) version with move_dn: see modspec.sml |
832 actually used (inefficient) version with move_dn: see modspec.sml |
833 *) |
833 *) |
834 (* |
834 (* |
835 case get_trace pt ([1,4],Res) ([4,4,1],Frm) of |
835 case get_trace pt ([1,4],Res) ([4,4,1],Frm) of |
836 [[2],[3],[4],[4,1],[4,2],[4,2,1],[4,3],[4,4],[4,4,1]] => () |
836 [[2],[3],[4],[4,1],[4,2],[4,2,1],[4,3],[4,4],[4,4,1]] => () |
837 | _ => raise error "diff.behav.in ctree.sml: get_interval lev 1b"; |
837 | _ => error "diff.behav.in ctree.sml: get_interval lev 1b"; |
838 case get_trace pt ([],Pbl) ([],Res) of |
838 case get_trace pt ([],Pbl) ([],Res) of |
839 [[1],[1,1],[1,2],[1,3],[1,4],[2],[3],[4],[4,1],[4,2],[4,2,1],[4,3], |
839 [[1],[1,1],[1,2],[1,3],[1,4],[2],[3],[4],[4,1],[4,2],[4,2,1],[4,3], |
840 [4,4],[4,4,1],[4,4,2],[4,4,3],[4,4,4],[4,4,5],[5]] => () |
840 [4,4],[4,4,1],[4,4,2],[4,4,3],[4,4,4],[4,4,5],[5]] => () |
841 | _ => raise error "diff.behav.in ctree.sml: get_interval lev 1e"; |
841 | _ => error "diff.behav.in ctree.sml: get_interval lev 1e"; |
842 *) |
842 *) |
843 |
843 |
844 (******************************************************************) |
844 (******************************************************************) |
845 (**) val get_trace = SAVE_get_trace; (**) |
845 (**) val get_trace = SAVE_get_trace; (**) |
846 (******************************************************************) |
846 (******************************************************************) |
906 val (ModSpec (_,_,form,_,_,_), SOME tac, asm) = pt_extract (pt, ([], Frm)); |
906 val (ModSpec (_,_,form,_,_,_), SOME tac, asm) = pt_extract (pt, ([], Frm)); |
907 case (term2str form, tac, terms2strs asm) of |
907 case (term2str form, tac, terms2strs asm) of |
908 ("solve (x + 1 = 2, x)", |
908 ("solve (x + 1 = 2, x)", |
909 Apply_Method ["Test", "squ-equ-test-subpbl1"], |
909 Apply_Method ["Test", "squ-equ-test-subpbl1"], |
910 []) => () |
910 []) => () |
911 | _ => raise error "diff.behav.in ctree.sml: pt_extract ([], Pbl)"; |
911 | _ => error "diff.behav.in ctree.sml: pt_extract ([], Pbl)"; |
912 |
912 |
913 val (Form form, SOME tac, asm) = pt_extract (pt, ([1], Frm)); |
913 val (Form form, SOME tac, asm) = pt_extract (pt, ([1], Frm)); |
914 case (term2str form, tac, terms2strs asm) of |
914 case (term2str form, tac, terms2strs asm) of |
915 ("x + 1 = 2", Rewrite_Set "norm_equation", []) => () |
915 ("x + 1 = 2", Rewrite_Set "norm_equation", []) => () |
916 | _ => raise error "diff.behav.in ctree.sml: pt_extract ([1], Frm)"; |
916 | _ => error "diff.behav.in ctree.sml: pt_extract ([1], Frm)"; |
917 |
917 |
918 val (Form form, SOME tac, asm) = pt_extract (pt, ([1], Res)); |
918 val (Form form, SOME tac, asm) = pt_extract (pt, ([1], Res)); |
919 case (term2str form, tac, terms2strs asm) of |
919 case (term2str form, tac, terms2strs asm) of |
920 ("x + 1 + -1 * 2 = 0", Rewrite_Set "Test_simplify", []) => () |
920 ("x + 1 + -1 * 2 = 0", Rewrite_Set "Test_simplify", []) => () |
921 | _ => raise error "diff.behav.in ctree.sml: pt_extract ([1], Res)"; |
921 | _ => error "diff.behav.in ctree.sml: pt_extract ([1], Res)"; |
922 |
922 |
923 val (Form form, SOME tac, asm) = pt_extract (pt, ([2], Res)); |
923 val (Form form, SOME tac, asm) = pt_extract (pt, ([2], Res)); |
924 case (term2str form, tac, terms2strs asm) of |
924 case (term2str form, tac, terms2strs asm) of |
925 ("-1 + x = 0", |
925 ("-1 + x = 0", |
926 Subproblem ("Test.thy", ["linear", "univariate", "equation", "test"]), |
926 Subproblem ("Test.thy", ["linear", "univariate", "equation", "test"]), |
927 []) => () |
927 []) => () |
928 | _ => raise error "diff.behav.in ctree.sml: pt_extract ([2], Res)"; |
928 | _ => error "diff.behav.in ctree.sml: pt_extract ([2], Res)"; |
929 |
929 |
930 val (ModSpec (_,_,form,_,_,_), SOME tac, asm) = pt_extract (pt, ([3], Pbl)); |
930 val (ModSpec (_,_,form,_,_,_), SOME tac, asm) = pt_extract (pt, ([3], Pbl)); |
931 case (term2str form, tac, terms2strs asm) of |
931 case (term2str form, tac, terms2strs asm) of |
932 ("solve (-1 + x = 0, x)", Apply_Method ["Test", "solve_linear"], []) => () |
932 ("solve (-1 + x = 0, x)", Apply_Method ["Test", "solve_linear"], []) => () |
933 | _ => raise error "diff.behav.in ctree.sml: pt_extract ([3], Pbl)"; |
933 | _ => error "diff.behav.in ctree.sml: pt_extract ([3], Pbl)"; |
934 |
934 |
935 val (Form form, SOME tac, asm) = pt_extract (pt, ([3,1], Frm)); |
935 val (Form form, SOME tac, asm) = pt_extract (pt, ([3,1], Frm)); |
936 case (term2str form, tac, terms2strs asm) of |
936 case (term2str form, tac, terms2strs asm) of |
937 ("-1 + x = 0", Rewrite_Set_Inst (["(bdv, x)"], "isolate_bdv"), []) => () |
937 ("-1 + x = 0", Rewrite_Set_Inst (["(bdv, x)"], "isolate_bdv"), []) => () |
938 | _ => raise error "diff.behav.in ctree.sml: pt_extract ([3,1], Frm)"; |
938 | _ => error "diff.behav.in ctree.sml: pt_extract ([3,1], Frm)"; |
939 |
939 |
940 val (Form form, SOME tac, asm) = pt_extract (pt, ([3,1], Res)); |
940 val (Form form, SOME tac, asm) = pt_extract (pt, ([3,1], Res)); |
941 case (term2str form, tac, terms2strs asm) of |
941 case (term2str form, tac, terms2strs asm) of |
942 ("x = 0 + -1 * -1", Rewrite_Set "Test_simplify", []) => () |
942 ("x = 0 + -1 * -1", Rewrite_Set "Test_simplify", []) => () |
943 | _ => raise error "diff.behav.in ctree.sml: pt_extract ([3,1], Res)"; |
943 | _ => error "diff.behav.in ctree.sml: pt_extract ([3,1], Res)"; |
944 |
944 |
945 val (Form form, SOME tac, asm) = pt_extract (pt, ([3,2], Res)); |
945 val (Form form, SOME tac, asm) = pt_extract (pt, ([3,2], Res)); |
946 case (term2str form, tac, terms2strs asm) of |
946 case (term2str form, tac, terms2strs asm) of |
947 ("x = 1", Check_Postcond ["linear", "univariate", "equation", "test"], |
947 ("x = 1", Check_Postcond ["linear", "univariate", "equation", "test"], |
948 []) => () |
948 []) => () |
949 | _ => raise error "diff.behav.in ctree.sml: pt_extract ([3,2], Res)"; |
949 | _ => error "diff.behav.in ctree.sml: pt_extract ([3,2], Res)"; |
950 |
950 |
951 val (Form form, SOME tac, asm) = pt_extract (pt, ([3], Res)); |
951 val (Form form, SOME tac, asm) = pt_extract (pt, ([3], Res)); |
952 case (term2str form, tac, terms2strs asm) of |
952 case (term2str form, tac, terms2strs asm) of |
953 ("[x = 1]", Check_elementwise "Assumptions", []) => () |
953 ("[x = 1]", Check_elementwise "Assumptions", []) => () |
954 | _ => raise error "diff.behav.in ctree.sml: pt_extract ([3], Res)"; |
954 | _ => error "diff.behav.in ctree.sml: pt_extract ([3], Res)"; |
955 |
955 |
956 val (Form form, SOME tac, asm) = pt_extract (pt, ([4], Res)); |
956 val (Form form, SOME tac, asm) = pt_extract (pt, ([4], Res)); |
957 case (term2str form, tac, terms2strs asm) of |
957 case (term2str form, tac, terms2strs asm) of |
958 ("[x = 1]", |
958 ("[x = 1]", |
959 Check_Postcond ["sqroot-test", "univariate", "equation", "test"], |
959 Check_Postcond ["sqroot-test", "univariate", "equation", "test"], |
960 []) => () |
960 []) => () |
961 | _ => raise error "diff.behav.in ctree.sml: pt_extract ([4], Res)"; |
961 | _ => error "diff.behav.in ctree.sml: pt_extract ([4], Res)"; |
962 |
962 |
963 val (Form form, tac, asm) = pt_extract (pt, ([], Res)); |
963 val (Form form, tac, asm) = pt_extract (pt, ([], Res)); |
964 case (term2str form, tac, terms2strs asm) of |
964 case (term2str form, tac, terms2strs asm) of |
965 ("[x = 1]", NONE, []) => () |
965 ("[x = 1]", NONE, []) => () |
966 | _ => raise error "diff.behav.in ctree.sml: pt_extract ([], Res)"; |
966 | _ => error "diff.behav.in ctree.sml: pt_extract ([], Res)"; |
967 |
967 |
968 "=====new ptree 6 minisubpbl intersteps =========================="; |
968 "=====new ptree 6 minisubpbl intersteps =========================="; |
969 "=====new ptree 6 minisubpbl intersteps =========================="; |
969 "=====new ptree 6 minisubpbl intersteps =========================="; |
970 "=====new ptree 6 minisubpbl intersteps =========================="; |
970 "=====new ptree 6 minisubpbl intersteps =========================="; |
971 states:=[]; |
971 states:=[]; |
1001 ([3, 2, 1], Frm), ([3, 2, 1], Res), ([3, 2, 2], Res), |
1001 ([3, 2, 1], Frm), ([3, 2, 1], Res), ([3, 2, 2], Res), |
1002 ([3, 2], Res), |
1002 ([3, 2], Res), |
1003 ([3], Res), |
1003 ([3], Res), |
1004 ([4], Res), |
1004 ([4], Res), |
1005 ([], Res)] then () else |
1005 ([], Res)] then () else |
1006 raise error "ctree.sml diff.behav. get_allp new []"; |
1006 error "ctree.sml diff.behav. get_allp new []"; |
1007 |
1007 |
1008 print_depth 99; |
1008 print_depth 99; |
1009 val cuts2 = get_allps [] [1] (children pt); |
1009 val cuts2 = get_allps [] [1] (children pt); |
1010 print_depth 3; |
1010 print_depth 3; |
1011 if cuts = cuts2 @ [([], Res)] then () else |
1011 if cuts = cuts2 @ [([], Res)] then () else |
1012 raise error "ctree.sml diff.behav. get_allps new []"; |
1012 error "ctree.sml diff.behav. get_allps new []"; |
1013 |
1013 |
1014 "---(3) on S(606)..S(608)--------"; |
1014 "---(3) on S(606)..S(608)--------"; |
1015 "--- nd [2] with 6 children---------------------------------"; |
1015 "--- nd [2] with 6 children---------------------------------"; |
1016 val cuts = get_allp [] ([2], ([],Frm)) (get_nd pt [2]); |
1016 val cuts = get_allp [] ([2], ([],Frm)) (get_nd pt [2]); |
1017 if cuts = |
1017 if cuts = |
1018 [([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), ([2, 3], Res), |
1018 [([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), ([2, 3], Res), |
1019 ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), |
1019 ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), |
1020 ([2], Res)] then () else |
1020 ([2], Res)] then () else |
1021 raise error "ctree.sml diff.behav. get_allp new [2]"; |
1021 error "ctree.sml diff.behav. get_allp new [2]"; |
1022 |
1022 |
1023 val cuts2 = get_allps [] [2,1] (children (get_nd pt [2])); |
1023 val cuts2 = get_allps [] [2,1] (children (get_nd pt [2])); |
1024 if cuts = cuts2 @ [([2], Res)] then () else |
1024 if cuts = cuts2 @ [([2], Res)] then () else |
1025 raise error "ctree.sml diff.behav. get_allps new [2]"; |
1025 error "ctree.sml diff.behav. get_allps new [2]"; |
1026 |
1026 |
1027 |
1027 |
1028 "---(4) on S(606)..S(608)--------"; |
1028 "---(4) on S(606)..S(608)--------"; |
1029 "--- nd [3] subproblem--------------------------------------"; |
1029 "--- nd [3] subproblem--------------------------------------"; |
1030 val cuts = get_allp [] ([3], ([],Frm)) (get_nd pt [3]); |
1030 val cuts = get_allp [] ([3], ([],Frm)) (get_nd pt [3]); |
1032 [([3, 1], Frm), |
1032 [([3, 1], Frm), |
1033 ([3, 1], Res), |
1033 ([3, 1], Res), |
1034 ([3, 2, 1], Frm), ([3, 2, 1], Res), ([3, 2, 2], Res), |
1034 ([3, 2, 1], Frm), ([3, 2, 1], Res), ([3, 2, 2], Res), |
1035 ([3, 2], Res), |
1035 ([3, 2], Res), |
1036 ([3], Res)] then () else |
1036 ([3], Res)] then () else |
1037 raise error "ctree.sml diff.behav. get_allp new [3]"; |
1037 error "ctree.sml diff.behav. get_allp new [3]"; |
1038 |
1038 |
1039 val cuts2 = get_allps [] [3,1] (children (get_nd pt [3])); |
1039 val cuts2 = get_allps [] [3,1] (children (get_nd pt [3])); |
1040 if cuts = cuts2 @ [([3], Res)] then () else |
1040 if cuts = cuts2 @ [([3], Res)] then () else |
1041 raise error "ctree.sml diff.behav. get_allps new [3]"; |
1041 error "ctree.sml diff.behav. get_allps new [3]"; |
1042 |
1042 |
1043 "--- nd [3,2] with 2 children--------------------------------"; |
1043 "--- nd [3,2] with 2 children--------------------------------"; |
1044 val cuts = get_allp [] ([3,2], ([],Frm)) (get_nd pt [3,2]); |
1044 val cuts = get_allp [] ([3,2], ([],Frm)) (get_nd pt [3,2]); |
1045 if cuts = |
1045 if cuts = |
1046 [([3, 2, 1], Frm), ([3, 2, 1], Res), ([3, 2, 2], Res), |
1046 [([3, 2, 1], Frm), ([3, 2, 1], Res), ([3, 2, 2], Res), |
1047 ([3, 2], Res)] then () else |
1047 ([3, 2], Res)] then () else |
1048 raise error "ctree.sml diff.behav. get_allp new [3,2]"; |
1048 error "ctree.sml diff.behav. get_allp new [3,2]"; |
1049 |
1049 |
1050 val cuts2 = get_allps [] [3,2,1] (children (get_nd pt [3,2])); |
1050 val cuts2 = get_allps [] [3,2,1] (children (get_nd pt [3,2])); |
1051 if cuts = cuts2 @ [([3, 2], Res)] then () else |
1051 if cuts = cuts2 @ [([3, 2], Res)] then () else |
1052 raise error "ctree.sml diff.behav. get_allps new [3,2]"; |
1052 error "ctree.sml diff.behav. get_allps new [3,2]"; |
1053 |
1053 |
1054 "---(5a) on S(606)..S(608)--------"; |
1054 "---(5a) on S(606)..S(608)--------"; |
1055 "--- nd [3,2,1] with 0 children------------------------------"; |
1055 "--- nd [3,2,1] with 0 children------------------------------"; |
1056 val cuts = get_allp [] ([3,2,1], ([],Frm)) (get_nd pt [3,2,1]); |
1056 val cuts = get_allp [] ([3,2,1], ([],Frm)) (get_nd pt [3,2,1]); |
1057 if cuts = |
1057 if cuts = |
1058 [] then () else |
1058 [] then () else |
1059 raise error "ctree.sml diff.behav. get_allp new [3,2,1]"; |
1059 error "ctree.sml diff.behav. get_allp new [3,2,1]"; |
1060 |
1060 |
1061 val cuts2 = get_allps [] [3,2,1,1] (children (get_nd pt [3,2,1])); |
1061 val cuts2 = get_allps [] [3,2,1,1] (children (get_nd pt [3,2,1])); |
1062 if cuts = cuts2 @ [] then () else |
1062 if cuts = cuts2 @ [] then () else |
1063 raise error "ctree.sml diff.behav. get_allps new [3,2,1]"; |
1063 error "ctree.sml diff.behav. get_allps new [3,2,1]"; |
1064 |
1064 |
1065 |
1065 |
1066 (**#################################################################**) |
1066 (**#################################################################**) |
1067 "-------------- cut_tree new (from ptree above)-------------------"; |
1067 "-------------- cut_tree new (from ptree above)-------------------"; |
1068 "-------------- cut_tree new (from ptree above)-------------------"; |
1068 "-------------- cut_tree new (from ptree above)-------------------"; |
1069 "-------------- cut_tree new (from ptree above)-------------------"; |
1069 "-------------- cut_tree new (from ptree above)-------------------"; |
1070 show_pt pt; |
1070 show_pt pt; |
1071 val b = get_obj g_branch pt []; |
1071 val b = get_obj g_branch pt []; |
1072 if b = TransitiveB then () else |
1072 if b = TransitiveB then () else |
1073 raise error ("ctree.sml diff.behav. in [] branch="^branch2str b); |
1073 error ("ctree.sml diff.behav. in [] branch="^branch2str b); |
1074 val b = get_obj g_branch pt [3]; |
1074 val b = get_obj g_branch pt [3]; |
1075 if b = TransitiveB then () else |
1075 if b = TransitiveB then () else |
1076 raise error ("ctree.sml diff.behav. in [3] branch="^branch2str b); |
1076 error ("ctree.sml diff.behav. in [3] branch="^branch2str b); |
1077 |
1077 |
1078 "---(2) on S(606)..S(608)--------"; |
1078 "---(2) on S(606)..S(608)--------"; |
1079 val (pt', cuts) = cut_tree pt ([1],Res); |
1079 val (pt', cuts) = cut_tree pt ([1],Res); |
1080 print_depth 99; |
1080 print_depth 99; |
1081 cuts; |
1081 cuts; |
1083 if cuts = [([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), ([2, 3], Res), |
1083 if cuts = [([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), ([2, 3], Res), |
1084 ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), ([2], Res), ([3], Pbl), |
1084 ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), ([2], Res), ([3], Pbl), |
1085 ([3, 1], Frm), ([3, 1], Res), ([3, 2, 1], Frm), ([3, 2, 1], Res), |
1085 ([3, 1], Frm), ([3, 1], Res), ([3, 2, 1], Frm), ([3, 2, 1], Res), |
1086 ([3, 2, 2], Res), ([3, 2], Res), ([3], Res), ([4], Res), |
1086 ([3, 2, 2], Res), ([3, 2], Res), ([3], Res), ([4], Res), |
1087 (*WN060727 after replacing cutlevup by test_trans:*)([], Res)] then () else |
1087 (*WN060727 after replacing cutlevup by test_trans:*)([], Res)] then () else |
1088 raise error "ctree.sml: diff.behav. cut_tree ([1],Res)"; |
1088 error "ctree.sml: diff.behav. cut_tree ([1],Res)"; |
1089 |
1089 |
1090 |
1090 |
1091 "---(3) on S(606)..S(608)--------"; |
1091 "---(3) on S(606)..S(608)--------"; |
1092 val (pt', cuts) = cut_tree pt ([2],Res); |
1092 val (pt', cuts) = cut_tree pt ([2],Res); |
1093 print_depth 99; |
1093 print_depth 99; |
1117 ([3, 2, 1], Frm), ([3, 2, 1], Res), ([3, 2, 2], Res), |
1117 ([3, 2, 1], Frm), ([3, 2, 1], Res), ([3, 2, 2], Res), |
1118 ([3, 2], Res), |
1118 ([3, 2], Res), |
1119 ([3], Res), |
1119 ([3], Res), |
1120 ([4], Res), |
1120 ([4], Res), |
1121 (*WN060727 added after replacing cutlevup by test_trans:*)([], Res)] |
1121 (*WN060727 added after replacing cutlevup by test_trans:*)([], Res)] |
1122 then () else raise error "ctree.sml: diff.behav. cut_tree ([3],Pbl)"; |
1122 then () else error "ctree.sml: diff.behav. cut_tree ([3],Pbl)"; |
1123 |
1123 |
1124 "---(5a) on S(606)..S(608) cut_tree --------"; |
1124 "---(5a) on S(606)..S(608) cut_tree --------"; |
1125 val (pt', cuts) = cut_tree pt ([3,2,1],Res); |
1125 val (pt', cuts) = cut_tree pt ([3,2,1],Res); |
1126 print_depth 99; |
1126 print_depth 99; |
1127 cuts; |
1127 cuts; |
1128 print_depth 1; |
1128 print_depth 1; |
1129 if cuts = [([3, 2, 2], Res), ([3, 2], Res), |
1129 if cuts = [([3, 2, 2], Res), ([3, 2], Res), |
1130 (*WN060727 added after replacing cutlevup by test_trans:*) |
1130 (*WN060727 added after replacing cutlevup by test_trans:*) |
1131 ([3], Res), ([4], Res),([],Res)] then () |
1131 ([3], Res), ([4], Res),([],Res)] then () |
1132 else raise error "ctree.sml: diff.behav. cut_tree ([3,2,1],Res)"; |
1132 else error "ctree.sml: diff.behav. cut_tree ([3,2,1],Res)"; |
1133 show_pt pt'; |
1133 show_pt pt'; |
1134 |
1134 |
1135 |
1135 |
1136 "-------------- cappend on complete ctree from above -------------"; |
1136 "-------------- cappend on complete ctree from above -------------"; |
1137 "-------------- cappend on complete ctree from above -------------"; |
1137 "-------------- cappend on complete ctree from above -------------"; |
1147 if cuts = [([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), ([2, 3], Res), |
1147 if cuts = [([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), ([2, 3], Res), |
1148 ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), ([2], Res), ([3], Pbl), |
1148 ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), ([2], Res), ([3], Pbl), |
1149 ([3, 1], Frm), ([3, 1], Res), ([3, 2, 1], Frm), ([3, 2, 1], Res), |
1149 ([3, 1], Frm), ([3, 1], Res), ([3, 2, 1], Frm), ([3, 2, 1], Res), |
1150 ([3, 2, 2], Res), ([3, 2], Res), ([3], Res), ([4], Res), |
1150 ([3, 2, 2], Res), ([3, 2], Res), ([3], Res), ([4], Res), |
1151 (*WN060727 added after replacing cutlevup by test_trans:*) ([], Res)] then () |
1151 (*WN060727 added after replacing cutlevup by test_trans:*) ([], Res)] then () |
1152 else raise error "ctree.sml: diff:behav. in complete pt:append_atomic[1] cuts"; |
1152 else error "ctree.sml: diff:behav. in complete pt:append_atomic[1] cuts"; |
1153 val afterins = get_allp [] ([], ([],Frm)) pt'; |
1153 val afterins = get_allp [] ([], ([],Frm)) pt'; |
1154 print_depth 99; |
1154 print_depth 99; |
1155 afterins; |
1155 afterins; |
1156 print_depth 3; |
1156 print_depth 3; |
1157 if afterins = [([1], Frm), ([1], Res) |
1157 if afterins = [([1], Frm), ([1], Res) |
1158 (*, WN060727 removed after replacing cutlevup by test_trans:([], Res)*)] then() |
1158 (*, WN060727 removed after replacing cutlevup by test_trans:([], Res)*)] then() |
1159 else raise error "ctree.sml: diff:behav. in complete pt: append_atomic[1] afterins"; |
1159 else error "ctree.sml: diff:behav. in complete pt: append_atomic[1] afterins"; |
1160 show_pt pt'; |
1160 show_pt pt'; |
1161 |
1161 |
1162 "---(3) on S(606)..S(608)--------"; |
1162 "---(3) on S(606)..S(608)--------"; |
1163 show_pt pt; |
1163 show_pt pt; |
1164 val (pt', cuts) = cappend_atomic pt [2] e_istate (str2term "Inform[2]") |
1164 val (pt', cuts) = cappend_atomic pt [2] e_istate (str2term "Inform[2]") |
1169 if cuts = [([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), ([2, 3], Res), |
1169 if cuts = [([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), ([2, 3], Res), |
1170 ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), ([2], Res), ([3], Pbl), |
1170 ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), ([2], Res), ([3], Pbl), |
1171 ([3, 1], Frm),([3, 1], Res), ([3, 2, 1], Frm), ([3, 2, 1], Res), |
1171 ([3, 1], Frm),([3, 1], Res), ([3, 2, 1], Frm), ([3, 2, 1], Res), |
1172 ([3, 2, 2], Res), ([3, 2], Res), ([3], Res), ([4], Res), |
1172 ([3, 2, 2], Res), ([3, 2], Res), ([3], Res), ([4], Res), |
1173 (*WN060727 added after replacing cutlevup by test_trans:*) ([], Res)] then () |
1173 (*WN060727 added after replacing cutlevup by test_trans:*) ([], Res)] then () |
1174 else raise error "ctree.sml: diff:behav.in complete pt: append_atomic[2] cuts"; |
1174 else error "ctree.sml: diff:behav.in complete pt: append_atomic[2] cuts"; |
1175 val afterins = get_allp [] ([], ([],Frm)) pt'; |
1175 val afterins = get_allp [] ([], ([],Frm)) pt'; |
1176 print_depth 99; |
1176 print_depth 99; |
1177 afterins; |
1177 afterins; |
1178 print_depth 3; |
1178 print_depth 3; |
1179 if afterins = [([1], Frm), ([1], Res), ([2], Frm), ([2], Res) |
1179 if afterins = [([1], Frm), ([1], Res), ([2], Frm), ([2], Res) |
1180 (*, WN060727 removed after replacing cutlevup by test_trans:([], Res)*)] |
1180 (*, WN060727 removed after replacing cutlevup by test_trans:([], Res)*)] |
1181 then () else |
1181 then () else |
1182 raise error "ctree.sml: diff:behav. in complete pt: append_atomic[2] afterins"; |
1182 error "ctree.sml: diff:behav. in complete pt: append_atomic[2] afterins"; |
1183 show_pt pt'; |
1183 show_pt pt'; |
1184 (* |
1184 (* |
1185 val p = move_dn [] pt' ([],Pbl) (*-> ([1],Frm)*); |
1185 val p = move_dn [] pt' ([],Pbl) (*-> ([1],Frm)*); |
1186 val p = move_dn [] pt' p (*-> ([1],Res)*); |
1186 val p = move_dn [] pt' p (*-> ([1],Res)*); |
1187 val p = move_dn [] pt' p (*-> ([2],Frm)*); |
1187 val p = move_dn [] pt' p (*-> ([2],Frm)*); |
1202 ([3, 1], Frm), ([3, 1], Res), |
1202 ([3, 1], Frm), ([3, 1], Res), |
1203 ([3, 2, 1], Frm), ([3, 2, 1], Res), ([3, 2, 2], Res), |
1203 ([3, 2, 1], Frm), ([3, 2, 1], Res), ([3, 2, 2], Res), |
1204 ([3, 2], Res), |
1204 ([3, 2], Res), |
1205 ([3], Res), ([4], Res), |
1205 ([3], Res), ([4], Res), |
1206 (*WN060727 added after replacing cutlevup by test_trans*)([], Res)] then ()else |
1206 (*WN060727 added after replacing cutlevup by test_trans*)([], Res)] then ()else |
1207 raise error "ctree.sml: diff:behav. in ccomplete pt: append_problem[3] cuts"; |
1207 error "ctree.sml: diff:behav. in ccomplete pt: append_problem[3] cuts"; |
1208 val afterins = get_allp [] ([], ([],Frm)) pt'; |
1208 val afterins = get_allp [] ([], ([],Frm)) pt'; |
1209 print_depth 99; |
1209 print_depth 99; |
1210 afterins; |
1210 afterins; |
1211 print_depth 3; |
1211 print_depth 3; |
1212 if afterins = |
1212 if afterins = |
1213 [([1], Frm), ([1], Res),([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), |
1213 [([1], Frm), ([1], Res),([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), |
1214 ([2, 3], Res), ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), ([2], Res), |
1214 ([2, 3], Res), ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), ([2], Res), |
1215 ([3], Pbl)] then () else |
1215 ([3], Pbl)] then () else |
1216 raise error "ctree.sml: diff:behav.in complete pt: append_problem[3] afterins"; |
1216 error "ctree.sml: diff:behav.in complete pt: append_problem[3] afterins"; |
1217 (* use"systest/ctree.sml"; |
1217 (* use"systest/ctree.sml"; |
1218 use"ctree.sml"; |
1218 use"ctree.sml"; |
1219 *) |
1219 *) |
1220 |
1220 |
1221 "---(6-1) on S(606)..S(608)--------"; |
1221 "---(6-1) on S(606)..S(608)--------"; |
1240 ([3], Pbl), |
1240 ([3], Pbl), |
1241 ([3, 1], Frm), ([3, 1], Res)(*replaced*), (*([3, 2], Res) cut!*) |
1241 ([3, 1], Frm), ([3, 1], Res)(*replaced*), (*([3, 2], Res) cut!*) |
1242 ([3], Res)(*cutlevup=false*), |
1242 ([3], Res)(*cutlevup=false*), |
1243 ([4], Res), |
1243 ([4], Res), |
1244 ([], Res)(*cutlevup=false*)] then () else |
1244 ([], Res)(*cutlevup=false*)] then () else |
1245 raise error "ctree.sml: diff:behav. in complete pt: append_atomic[3,1] insrtd"; |
1245 error "ctree.sml: diff:behav. in complete pt: append_atomic[3,1] insrtd"; |
1246 *) |
1246 *) |
1247 if afterins = [([1], Frm), ([1], Res), |
1247 if afterins = [([1], Frm), ([1], Res), |
1248 ([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), |
1248 ([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), |
1249 ([2, 3], Res), ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), |
1249 ([2, 3], Res), ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), |
1250 ([2], Res), |
1250 ([2], Res), |
1251 ([3], Pbl), |
1251 ([3], Pbl), |
1252 ([3, 1], Frm), ([3, 1], Res)] then () else |
1252 ([3, 1], Frm), ([3, 1], Res)] then () else |
1253 raise error "ctree.sml: diff:behav. in complete pt: append_atomic[3,1] insrtd"; |
1253 error "ctree.sml: diff:behav. in complete pt: append_atomic[3,1] insrtd"; |
1254 |
1254 |
1255 if term2str (get_obj g_form pt' [3,1]) = "Inform [3, 1]" then () else |
1255 if term2str (get_obj g_form pt' [3,1]) = "Inform [3, 1]" then () else |
1256 raise error "ctree.sml: diff:behav. in complete pt: append_atomic[3,1] Inform"; |
1256 error "ctree.sml: diff:behav. in complete pt: append_atomic[3,1] Inform"; |
1257 |
1257 |
1258 "---(6) on S(606)..S(608)--------"; |
1258 "---(6) on S(606)..S(608)--------"; |
1259 val (pt', cuts) = cappend_atomic pt [3,2] e_istate (str2term "Inform[3,2]") |
1259 val (pt', cuts) = cappend_atomic pt [3,2] e_istate (str2term "Inform[3,2]") |
1260 (Tac "test") (str2term "Inres[3,2]",[]) Complete; |
1260 (Tac "test") (str2term "Inres[3,2]",[]) Complete; |
1261 print_depth 99; |
1261 print_depth 99; |
1262 cuts; |
1262 cuts; |
1263 print_depth 3; |
1263 print_depth 3; |
1264 if cuts = [(*just after is: cutlevup=false in [3]*) |
1264 if cuts = [(*just after is: cutlevup=false in [3]*) |
1265 (*WN060727 after test_trans instead cutlevup added:*) |
1265 (*WN060727 after test_trans instead cutlevup added:*) |
1266 ([3], Res), ([4], Res), ([], Res)] then () else |
1266 ([3], Res), ([4], Res), ([], Res)] then () else |
1267 raise error "ctree.sml: diff:behav. in complete pt: append_atomic[3,2] cuts"; |
1267 error "ctree.sml: diff:behav. in complete pt: append_atomic[3,2] cuts"; |
1268 val afterins = get_allp [] ([], ([],Frm)) pt'; |
1268 val afterins = get_allp [] ([], ([],Frm)) pt'; |
1269 print_depth 99; |
1269 print_depth 99; |
1270 afterins; |
1270 afterins; |
1271 print_depth 3; |
1271 print_depth 3; |
1272 (*WN060727 replaced after overwriting cutlevup by test_trans |
1272 (*WN060727 replaced after overwriting cutlevup by test_trans |
1276 ([2], Res), |
1276 ([2], Res), |
1277 ([3], Pbl), |
1277 ([3], Pbl), |
1278 ([3, 1], Frm), ([3, 1], Res), ([3, 2], Frm), ([3, 2], Res), |
1278 ([3, 1], Frm), ([3, 1], Res), ([3, 2], Frm), ([3, 2], Res), |
1279 ([3], Res), |
1279 ([3], Res), |
1280 ([4], Res), ([], Res)] then () else |
1280 ([4], Res), ([], Res)] then () else |
1281 raise error "ctree.sml: diff:behav. in complete pt: append_atomic[3,2] insrtd"; |
1281 error "ctree.sml: diff:behav. in complete pt: append_atomic[3,2] insrtd"; |
1282 *) |
1282 *) |
1283 if afterins = [([1], Frm), ([1], Res), |
1283 if afterins = [([1], Frm), ([1], Res), |
1284 ([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), |
1284 ([2, 1], Frm), ([2, 1], Res), ([2, 2], Res), |
1285 ([2, 3], Res), ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), |
1285 ([2, 3], Res), ([2, 4], Res), ([2, 5], Res), ([2, 6], Res), |
1286 ([2], Res), |
1286 ([2], Res), |
1287 ([3], Pbl), |
1287 ([3], Pbl), |
1288 ([3, 1], Frm), ([3, 1], Res), ([3, 2], Frm), ([3, 2], Res)] |
1288 ([3, 1], Frm), ([3, 1], Res), ([3, 2], Frm), ([3, 2], Res)] |
1289 then () else |
1289 then () else |
1290 raise error "ctree.sml: diff:behav. in complete pt: append_atomic[3,2] insrtd"; |
1290 error "ctree.sml: diff:behav. in complete pt: append_atomic[3,2] insrtd"; |
1291 |
1291 |
1292 if term2str (get_obj g_form pt' [3,2]) = "Inform [3, 2]" then () else |
1292 if term2str (get_obj g_form pt' [3,2]) = "Inform [3, 2]" then () else |
1293 raise error "ctree.sml: diff:behav. in complete pt: append_atomic[3,2] Inform"; |
1293 error "ctree.sml: diff:behav. in complete pt: append_atomic[3,2] Inform"; |
1294 |
1294 |
1295 "---(6++) on S(606)..S(608)--------"; |
1295 "---(6++) on S(606)..S(608)--------"; |
1296 (**) |
1296 (**) |
1297 val (pt', cuts) = cappend_atomic pt [3,2,1] e_istate (str2term "Inform[3,2,1]") |
1297 val (pt', cuts) = cappend_atomic pt [3,2,1] e_istate (str2term "Inform[3,2,1]") |
1298 (Tac "test") (str2term "Inres[3,2,1]",[]) Complete; |
1298 (Tac "test") (str2term "Inres[3,2,1]",[]) Complete; |