test/Tools/isac/Minisubpbl/400-start-meth-subpbl.sml
author Walther Neuper <wneuper@ist.tugraz.at>
Wed, 03 Jul 2019 15:09:16 +0200
changeset 59562 d50fe358f04a
parent 59559 f25ce1922b60
child 59578 0c03bd7c33ea
permissions -rw-r--r--
lucin: fix Test_Isac, rename aux-funs in lucas-interpreter.
     1 (* Title:  400-start-meth-subpbl.sml
     2    Author: Walther Neuper 1105
     3    (c) copyright due to lincense terms.
     4 *)
     5 
     6 "----------- Minisubplb/400-start-meth-subpbl.sml ----------------";
     7 "----------- Minisubplb/400-start-meth-subpbl.sml ----------------";
     8 "----------- Minisubplb/400-start-meth-subpbl.sml ----------------";
     9 val fmz = ["equality (x+1=(2::real))", "solveFor x","solutions L"];
    10 val (dI',pI',mI') =
    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; (*nxt = Apply_Method ["Test", "squ-equ-test-subpbl1"]*)
    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 = Subp ["LINEAR", "univariate", "equation", "test"]*)
    24 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    25 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    26 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    27 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    28 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    29 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    30 val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    31 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (*nxt = Apply_Method ["Test", "solve_linear"]*)
    32 get_ctxt pt p |> is_e_ctxt;       (*false... OK: from specify, PblObj{ctxt,...}*)
    33 val ctxt = get_ctxt pt p;
    34 val SOME t = parseNEW ctxt "Check_elementwise [x = 1] {(v_v::real). Assumptions}";
    35 get_loc pt p |> snd |> is_e_ctxt; (*true ... OK: interpreter not yet started*)
    36 
    37 val (pt'',p'') = (pt, p);
    38 "~~~~~ fun me, args:"; val (_,tac) = nxt;
    39 "~~~~~ fun locatetac, args:"; val ptp as (pt, p) = (pt, p);
    40 val (mI,m) = mk_tac'_ tac;
    41 val Appl m = applicable_in p pt m;
    42 member op = specsteps mI; (*false*)
    43 "~~~~~ fun loc_solve_, args:"; val (m, (pt, pos) ) = ((mI, m), ptp);
    44 "~~~~~ fun solve, args:"; val (("Apply_Method", Apply_Method' (mI,_,_,_)), pos as (p,_)) = (m, pos);
    45 val {srls, ...} = get_met mI;
    46 val PblObj {meth=itms, ...} = get_obj I pt p;
    47 val SOME t = parseNEW ctxt "Check_elementwise [x = 1] {(v_v::real). Assumptions}";
    48 val thy' = get_obj g_domID pt p;
    49 val thy = assoc_thy thy';
    50 val (is as ScrState (env,_,_,_,_,_), ctxt, sc) = init_scrstate thy itms mI;
    51 (*dont take ctxt                   ^^^ from   ^^^^^^^^^^^^^*)
    52 (*= the first part vvvvvvvvv works now =======================================*)
    53 val (pt, p) = case locatetac tac (pt'',p'') of
    54 	("ok", (_, _, ptp))  => ptp | _ => error "script.sml locatetac";
    55 val ctxt = get_ctxt pt p;
    56 val SOME t = parseNEW ctxt "Check_elementwise [x = 1] {(v_v::real). Assumptions}";
    57 (*= the first part ^^^^^^^^^^ works now =======================================*)
    58 
    59 val (pt'',p'') = (pt, p);
    60 "~~~~~ fun step, args:"; val (ip as (_,p_), (ptp as (pt,p), tacis)) = (p, ((pt, e_pos'), []))
    61 val pIopt = get_pblID (pt,ip);
    62 tacis; (*= []*)
    63 member op = [Pbl,Met] p_ andalso is_none (get_obj g_env pt (fst p)); (*= false*)
    64 "~~~~~ fun do_solve_step, args:"; val (ptp as (pt, pos as (p, p_))) = (pt, ip);
    65 val thy' = get_obj g_domID pt (par_pblobj pt p);
    66 val (srls, is, sc) = from_pblobj_or_detail' thy' (p,p_) pt;
    67 "~~~~~ fun determine_next_tactic, args:"; val (thy, (ptp as (pt,(p,_)):ctree * pos'), (sc as Prog (h $ body)), 
    68 	                               (ScrState (E,l,a,v,s,b), ctxt)) = ((thy',srls), (pt,pos), sc, is);
    69 val ctxt = get_ctxt pt pos;
    70 val SOME t = parseNEW ctxt "Check_elementwise [x = 1] {(v_v::real). Assumptions}";
    71 (*= the first part ^^^^^^^^^^ works now =======================================*)
    72 l = [];
    73 appy thy ptp E [R] body NONE v;
    74 val (p,_,f,nxt,_,pt) = me nxt p'' [] pt''; (*nxt = Rewrite_Set_Inst isolate_bdv*);
    75