test/Tools/isac/Minisubpbl/530-error-Check_Elementwise.sml
author Walther Neuper <neuper@ist.tugraz.at>
Sat, 10 Mar 2012 09:41:09 +0100
changeset 42387 767debe8a50c
parent 42021 aab0a175688e
child 42394 977788dfed26
permissions -rw-r--r--
uncomment test/../biegelinie (Isabelle 2002 --> 2011)

+ postponed improvement of Partial_Fractions due to efforts required
     1 (* Title: 530-error-Check_Elementwise.sml
     2 Author: Walther Neuper 1105
     3 (c) copyright due to lincense terms.
     4 *)
     5 
     6 "----------- Minisubplb/530-error-Check_Elementwise.sml ----------";
     7 "----------- Minisubplb/530-error-Check_Elementwise.sml ----------";
     8 "----------- Minisubplb/530-error-Check_Elementwise.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 val (p,_,f,nxt,_,pt) = me nxt p'' [] pt''; (*nxt = Rewrite_Set_Inst isolate_bdv*);
    33 get_ctxt pt p |> is_e_ctxt; (*false*)
    34 val ctxt = get_ctxt pt p;
    35 val SOME t = parseNEW ctxt "Check_elementwise [x = 1] {(v_v::real). Assumptions}";
    36 get_loc pt p |> snd |> is_e_ctxt; (*false*)
    37 
    38 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (*nxt = Rewrite_Set "Test_simplify"*);
    39 get_ctxt pt p |> is_e_ctxt; (*false*)
    40 val ctxt = get_ctxt pt p;
    41 val SOME t = parseNEW ctxt "Check_elementwise [x = 1] {(v_v::real). Assumptions}";
    42 get_loc pt p |> snd |> is_e_ctxt; (*false*)
    43 val (p,_,f,nxt,_,pt) = me nxt p [] pt; (*nxt = Check_Postcond ["linear","univariate", ...]) *);
    44 
    45 val (pt'''', p'''') = (pt, p);
    46 "~~~~~ fun me, args:"; val (_,tac) = nxt;
    47 val (pt, p) = case locatetac tac (pt,p) of
    48 ("ok", (_, _, ptp)) => ptp | _ => error "script.sml locatetac";
    49 show_pt pt; (*...(([3], Res), [x = 1])]... back in root, OK *)
    50 "~~~~~ fun step, args:"; val (ip as (_,p_), (ptp as (pt,p), tacis)) = (p, ((pt, e_pos'), []))
    51 val pIopt = get_pblID (pt,ip); (*= SOME ["sqroot-test", "univariate", ...]*)
    52 tacis; (*= []*)
    53 member op = [Pbl,Met] p_ andalso is_none (get_obj g_env pt (fst p)); (*= false*)
    54 "~~~~~ fun nxt_solve_, args:"; val (ptp as (pt, pos as (p, p_))) = (pt, ip);
    55 val thy' = get_obj g_domID pt (par_pblobj pt p);
    56 val (srls, is, sc) = from_pblobj_or_detail' thy' (p,p_) pt; (*is: which ctxt?*)
    57 "~~~~~ fun next_tac, args:"; val (thy, (ptp as (pt, pos as (p, _)):ptree * pos'), (sc as Script (h $ body)),
    58 (ScrState (E,l,a,v,s,b), ctxt)) = ((thy',srls), (pt,pos), sc, is);
    59 val ctxt = get_ctxt pt pos
    60 val SOME t = parseNEW ctxt "Check_elementwise [x = 1] {(v_v::real). Assumptions}";
    61 l; (*= [R, R, D, L, R]*)
    62 "~~~~~ fun nstep_up, args:"; val (thy, ptp, (Script sc), E, l, ay, a, v) =
    63 (thy, ptp, sc, E, l, Skip_, a, v);
    64 1 < length l; (*true*)
    65 val up = drop_last l;
    66 go up sc; (* = Const ("HOL.Let", *)
    67 "~~~~~ fun nxt_up, args:"; val (thy, ptp, (scr as (Script sc)), E, l, ay,
    68 (t as Const ("HOL.Let",_) $ _), a, v) =
    69 (thy, ptp, (Script sc), E, up, ay, (go up sc), a, v);
    70 ay = Napp_; (*false*)
    71 val up = drop_last l;
    72 val (Const ("HOL.Let",_) $ e $ (Abs (i,T,body))) = go up sc;
    73 val i = mk_Free (i, T);
    74 val E = upd_env E (i, v);
    75 body; (*= Const ("Script.Check'_elementwise"*)
    76 "~~~~~ fun appy, args:"; val ((thy as (th,sr)), (pt, p), E, l, t, a, v)=
    77 (thy, ptp, E, (up@[R,D]), body, a, v);
    78 handle_leaf "next " th sr E a v t; (*= (NONE, STac (Const ("Script.Check'_elementwise"*)
    79 val (a', STac stac) = handle_leaf "next " th sr E a v t;
    80 "~~~~~ fun stac2tac_, args:"; val (pt, thy, (Const("Script.Check'_elementwise",_) $ _ $
    81 (set as Const ("Set.Collect",_) $ Abs (_,_,pred)))) = (pt, (assoc_thy th), stac);
    82 (*2011 changed ^^^^^ *)
    83 val (p,_,f,nxt,_,pt) = me nxt p'''' [] pt''''; (*WAS nxt = ("Empty_Tac", Empty_Tac)*)
    84 if nxt = ("Check_elementwise", Check_elementwise "Assumptions") then ()
    85 else error "Check_elementwise changed; after switch sub-->root-method"