1 (* Title: 300-init-subpbl.sml
2 Author: Walther Neuper 1105
3 (c) copyright due to lincense terms.
6 "----------- Minisubplb/300-init-subpbl.sml ----------------------";
7 "----------- Minisubplb/300-init-subpbl.sml ----------------------";
8 "----------- Minisubplb/300-init-subpbl.sml ----------------------";
9 val fmz = ["equality (x+1=(2::real))", "solveFor x","solutions L"];
11 ("Test", ["sqroot-test","univariate","equation","test"],
12 ["Test","squ-equ-test-subpbl1"]);
13 val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
14 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
15 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
16 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
17 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
18 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
19 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
20 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
21 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
22 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
23 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (*nxt = ("Subproblem"*)
24 "~~~~~ fun me, args:"; val (_,tac) = nxt;
25 "~~~~~ fun locatetac, args:"; val (tac, ptp as (pt, p)) = (tac, (pt,p));
26 val (mI,m) = mk_tac'_ tac;
27 val Appl m = applicable_in p pt m;
28 member op = specsteps mI; (*false*)
29 (*val Updated (cs' as (_,_,(_,p'))) = loc_solve_ (mI,m) ptp;*)
30 "~~~~~ fun loc_solve_, args:"; val (m, (pt,pos)) = ((mI,m), ptp);
31 (*val (msg, cs') = solve m (pt, pos);*)
32 "~~~~~ fun solve, args:"; val ((mI,m), (pt, po as (p,p_))) = (m, (pt, pos));
33 e_metID = get_obj g_metID pt (par_pblobj pt p) (*false*);
34 val thy' = get_obj g_domID pt (par_pblobj pt p);
35 val (srls, is, sc) = from_pblobj_or_detail' thy' (p,p_) pt;
36 val d = e_rls; (*FIXME.WN0108: canon.simplifier for domain is missing: generate from domID?*)
37 (*val Steps (is', ss as (m',f',pt',p',c')::_) = locate_gen (thy',srls) m (pt,(p,p_)) (sc,d) is;*)
38 "~~~~~ fun locate_gen, args:"; val ((ts as (thy',srls)), (m:tac_), ((pt,p):ptree * pos'),
39 (scr as Prog (h $ body),d), (ScrState (E,l,a,v,S,b), ctxt)) =
40 ((thy',srls), m, (pt,(p,p_)), (sc,d), is);
41 val thy = assoc_thy thy';
42 l = [] orelse ((*init.in solve..Apply_Method...*)
43 (last_elem o fst) p = 0 andalso snd p = Res) (*false*);
44 (*val Assoc (iss as (is as (_,_,_,_,_,bb), ss as ((m',f',pt',p',c')::_))) =
45 (astep_up (thy',srls,scr,d) ((E,l,a,v,S,b), [(m,EmptyMout,pt,p,[])]) );*)
46 "~~~~~ fun astep_up, args:"; val ((ys as (_,_,Prog sc,_)), ((E,l,a,v,S,b),ss)) =
47 ((thy',srls,scr,d), ((E,l,a,v,S,b), [(m,EmptyMout,pt,p,[])]) );
48 1 < length l (*true*);
50 (*ass_up ys ((E,up,a,v,S,b),ss) (go up sc);*)
51 "~~~~~ fun ass_up, args:"; val (ysa, iss, (Const ("Script.Try",_) $ e)) =
52 (ys, ((E,up,a,v,S,b),ss), (go up sc));
53 (* STOPPED stepping into HERE due to type problem: Can't unify _a to pos * pos_
56 at bottom of | assy we see:
58 case assod pt d m stac of
59 "~~~~~ fun assod, args:"; val (...Subproblem'...) = ();
60 val ctxt = dI |> Thy_Info.get_theory |> Proof_Context.init_global
61 |> declare_constraints' vals
64 val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
65 case nxt of ("Model_Problem", _) => ()
66 | _ => error "minisubpbl: CalcTreeTEST has no nxt = Model_Problem";