walther@59627: (* Title: Knowledge/polyeq-1.sml walther@59627: testexamples for PolyEq, poynomial equations and equational systems walther@59627: Author: Richard Lang 2003 walther@59627: (c) due to copyright terms walther@59627: WN030609: some expls dont work due to unfinished handling of 'expanded terms'; walther@59627: others marked with TODO have to be checked, too. walther@59627: *) walther@59627: walther@59627: "-----------------------------------------------------------------"; walther@59627: "table of contents -----------------------------------------------"; walther@59627: "-----------------------------------------------------------------"; walther@59627: "------ polyeq-1.sml ---------------------------------------------"; walther@59627: "----------- tests on predicates in problems ---------------------"; walther@59627: "----------- test matching problems ------------------------------"; walther@59627: "----------- lin.eq degree_0 -------------------------------------"; walther@59627: "----------- test thm's d2_pq_formulsxx[_neg]---------------------"; walther@59627: "----------- equality (2 +(-1)*x + x^^^2 = (0::real)) ----------------------------------------"; walther@59627: "----------- equality (-2 +(-1)*x + 1*x^^^2 = 0) ---------------------------------------------"; walther@59627: "----------- equality (-2 + x + x^^^2 = 0) ---------------------------------------------------"; walther@59627: "----------- equality (2 + x + x^^^2 = 0) ----------------------------------------------------"; walther@59627: "----------- equality (-2 + x + 1*x^^^2 = 0)) ------------------------------------------------"; walther@59627: "----------- equality (1*x + x^^^2 = 0) ----------------------------------------------------"; walther@59627: "----------- equality (1*x + 1*x^^^2 = 0) ----------------------------------------------------"; walther@59627: "----------- equality (x + x^^^2 = 0) ------------------------------------------------------"; walther@59627: "----------- equality (x + 1*x^^^2 = 0) ------------------------------------------------------"; walther@59627: "----------- equality (-4 + x^^^2 = 0) -------------------------------------------------------"; walther@59627: "----------- equality (4 + 1*x^^^2 = 0) -------------------------------------------------------"; walther@59627: "----------- equality (1 +(-1)*x + 2*x^^^2 = 0) ----------------------------------------------"; walther@59627: "----------- equality (-1 + x + 2*x^^^2 = 0) -------------------------------------------------"; walther@59627: "----------- equality (1 + x + 2*x^^^2 = 0) --------------------------------------------------"; walther@59627: "----------- (-8 - 2*x + x^^^2 = 0), (*Schalk 2, S.67 Nr.31.b----"; walther@59627: "----------- (-8 - 2*x + x^^^2 = 0), by rewriting ---------------"; walther@59627: "----------- (-16 + 4*x + 2*x^^^2 = 0), --------------------------"; walther@59627: "-----------------------------------------------------------------"; walther@59627: "------ polyeq-2.sml ---------------------------------------------"; walther@59627: "----------- (a*b - (a+b)*x + x^^^2 = 0), (*Schalk 2,S.68Nr.44.a*)"; walther@59627: "----------- (-64 + x^^^2 = 0), (*Schalk 2, S.66 Nr.1.a~--------*)"; walther@59627: "----------- (-147 + 3*x^^^2 = 0), (*Schalk 2, S.66 Nr.1.b------*)"; walther@59627: "----------- (3*x - 1 - (5*x - (2 - 4*x)) = -11),(*Schalk Is86Bsp5"; walther@59627: "----------- ((x+1)*(x+2) - (3*x - 2)^^^2=.. Schalk II s.68 Bsp 37"; walther@59627: "----------- rls make_polynomial_in ------------------------------"; walther@59627: "----------- interSteps ([1],Res); on Schalk Is86Bsp5-------------"; walther@59627: "----------- rls d2_polyeq_bdv_only_simplify ---------------------"; walther@59627: "-----------------------------------------------------------------"; walther@59627: "-----------------------------------------------------------------"; walther@59627: walther@59627: "----------- tests on predicates in problems ---------------------"; walther@59627: "----------- tests on predicates in problems ---------------------"; walther@59627: "----------- tests on predicates in problems ---------------------"; walther@59627: (* trace_rewrite:=true; walther@59627: trace_rewrite:=false; walther@59627: *) walther@59627: val t1 = (Thm.term_of o the o (parse thy)) "lhs (-8 - 2*x + x^^^2 = 0)"; walther@59627: val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t1; walther@59627: if ((term2str t) = "-8 - 2 * x + x ^^^ 2") then () walther@59627: else error "polyeq.sml: diff.behav. in lhs"; walther@59627: walther@59627: val t2 = (Thm.term_of o the o (parse thy)) "(-8 - 2*x + x^^^2) is_expanded_in x"; walther@59627: val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t2; walther@59627: if (term2str t) = "True" then () walther@59627: else error "polyeq.sml: diff.behav. 1 in is_expended_in"; walther@59627: walther@59627: val t0 = (Thm.term_of o the o (parse thy)) "(sqrt(x)) is_poly_in x"; walther@59627: val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t0; walther@59627: if (term2str t) = "False" then () walther@59627: else error "polyeq.sml: diff.behav. 2 in is_poly_in"; walther@59627: walther@59627: val t3 = (Thm.term_of o the o (parse thy)) "(-8 + (-1)*2*x + x^^^2) is_poly_in x"; walther@59627: val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t3; walther@59627: if (term2str t) = "True" then () walther@59627: else error "polyeq.sml: diff.behav. 3 in is_poly_in"; walther@59627: walther@59627: val t4 = (Thm.term_of o the o (parse thy)) "(lhs (-8 + (-1)*2*x + x^^^2 = 0)) is_expanded_in x"; walther@59627: val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t4; walther@59627: if (term2str t) = "True" then () walther@59627: else error "polyeq.sml: diff.behav. 4 in is_expended_in"; walther@59627: walther@59627: walther@59627: val t6 = (Thm.term_of o the o (parse thy)) "(lhs (-8 - 2*x + x^^^2 = 0)) is_expanded_in x"; walther@59627: val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t6; walther@59627: if (term2str t) = "True" then () walther@59627: else error "polyeq.sml: diff.behav. 5 in is_expended_in"; walther@59627: walther@59627: val t3 = (Thm.term_of o the o (parse thy))"((-8 - 2*x + x^^^2) has_degree_in x) = 2"; walther@59627: val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t3; walther@59627: if (term2str t) = "True" then () walther@59627: else error "polyeq.sml: diff.behav. in has_degree_in_in"; walther@59627: walther@59627: val t3 = (Thm.term_of o the o (parse thy)) "((sqrt(x)) has_degree_in x) = 2"; walther@59627: val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t3; walther@59627: if (term2str t) = "False" then () walther@59627: else error "polyeq.sml: diff.behav. 6 in has_degree_in_in"; walther@59627: walther@59627: val t4 = (Thm.term_of o the o (parse thy)) walther@59627: "((-8 - 2*x + x^^^2) has_degree_in x) = 1"; walther@59627: val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t4; walther@59627: if (term2str t) = "False" then () walther@59627: else error "polyeq.sml: diff.behav. 7 in has_degree_in_in"; walther@59627: walther@59627: val t5 = (Thm.term_of o the o (parse thy)) walther@59627: "((-8 - 2*x + x^^^2) has_degree_in x) = 2"; walther@59627: val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_prls t5; walther@59627: if (term2str t) = "True" then () walther@59627: else error "polyeq.sml: diff.behav. 8 in has_degree_in_in"; walther@59627: walther@59627: "----------- test matching problems --------------------------0---"; walther@59627: "----------- test matching problems --------------------------0---"; walther@59627: "----------- test matching problems --------------------------0---"; walther@59627: val fmz = ["equality (-8 - 2*x + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: if match_pbl fmz (get_pbt ["expanded","univariate","equation"]) = walther@59627: Matches' {Find = [Correct "solutions L"], walther@59627: With = [], walther@59627: Given = [Correct "equality (-8 - 2 * x + x ^^^ 2 = 0)", Correct "solveFor x"], walther@59627: Where = [Correct "matches (?a = 0) (-8 - 2 * x + x ^^^ 2 = 0)", walther@59627: Correct "lhs (-8 - 2 * x + x ^^^ 2 = 0) is_expanded_in x"], walther@59627: Relate = []} walther@59627: then () else error "match_pbl [expanded,univariate,equation]"; walther@59627: walther@59627: if match_pbl fmz (get_pbt ["degree_2","expanded","univariate","equation"]) = walther@59627: Matches' {Find = [Correct "solutions L"], walther@59627: With = [], walther@59627: Given = [Correct "equality (-8 - 2 * x + x ^^^ 2 = 0)", Correct "solveFor x"], walther@59627: Where = [Correct "lhs (-8 - 2 * x + x ^^^ 2 = 0) has_degree_in x = 2"], walther@59627: Relate = []} (*before WN110906 was: has_degree_in x =!= 2"]*) walther@59627: then () else error "match_pbl [degree_2,expanded,univariate,equation]"; walther@59627: walther@59627: "----------- lin.eq degree_0 -------------------------------------"; walther@59627: "----------- lin.eq degree_0 -------------------------------------"; walther@59627: "----------- lin.eq degree_0 -------------------------------------"; walther@59627: "----- d0_false ------"; walther@59627: val fmz = ["equality (1 = (0::real))", "solveFor x", "solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["degree_0","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d0_polyeq_equation"]); walther@59627: (*=== inhibit exn WN110914: declare_constraints doesnt work with num_str ======== walther@59627: TODO: change to "equality (x + -1*x = (0::real))" walther@59627: and search for an appropriate problem and method. walther@59627: walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[]")) => () walther@59627: | _ => error "polyeq.sml: diff.behav. in 1 = 0 -> []"; walther@59627: walther@59627: "----- d0_true ------"; walther@59627: val fmz = ["equality (0 = (0::real))", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["degree_0","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d0_polyeq_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of Form' (FormKF (~1,EdUndef,0,Nundef,"UniversalList")) => () walther@59627: | _ => error "polyeq.sml: diff.behav. in 0 = 0 -> UniversalList"; walther@59627: ============ inhibit exn WN110914 ============================================*) walther@59627: walther@59627: "----------- test thm's d2_pq_formulsxx[_neg]---------------------"; walther@59627: "----------- test thm's d2_pq_formulsxx[_neg]---------------------"; walther@59627: "----------- test thm's d2_pq_formulsxx[_neg]---------------------"; walther@59627: "----- d2_pqformula1 ------!!!!"; walther@59627: val fmz = ["equality (-1/8 + (-1/4)*z + z^^^2 = (0::real))", "solveFor z","solutions L"]; walther@59627: val (dI',pI',mI') = walther@59627: ("Isac_Knowledge", ["pqFormula","degree_2","polynomial","univariate","equation"], ["no_met"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; (*Apply_Method ["PolyEq", "solve_d2_polyeq_pq_equation"]*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: walther@59627: (*[z = 1 / 8 + sqrt (9 / 16) / 2, z = 1 / 8 + -1 * sqrt (9 / 16) / 2] TODO sqrt*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; (*nxt =..,Check_elementwise "Assumptions")*) walther@59627: "~~~~~ fun me, args:"; val ((_,tac), (p:pos'), _, (pt:ctree)) = (nxt, p, [], pt); walther@59627: "~~~~~ fun locatetac, args:"; val (tac, (ptp as (pt, p))) = (tac, (pt, p)); walther@59627: val (mI,m) = mk_tac'_ tac; walther@59627: val Appl m = applicable_in p pt m; walther@59627: val Check_elementwise' (trm1, str, (trm2, trms)) = m; walther@59627: term2str trm1 = "[z = 1 / 8 + sqrt (9 / 16) / 2, z = 1 / 8 + -1 * sqrt (9 / 16) / 2]"; walther@59627: str = "Assumptions"; walther@59627: term2str trm2 = "[z = 1 / 8 + sqrt (9 / 16) / 2, z = 1 / 8 + -1 * sqrt (9 / 16) / 2]"; walther@59627: terms2str trms = "[\"lhs (-1 / 8 + -1 * (1 / 8 + sqrt (9 / 16) / 2) / 4 +\n "^ walther@59627: " (1 / 8 + sqrt (9 / 16) / 2) ^^^ 2 =\n 0) is_poly_in 1 / 8 + sqrt (9 / 16) / 2\","^ walther@59627: "\"lhs (-1 / 8 + -1 * (1 / 8 + sqrt (9 / 16) / 2) / 4 +\n (1 / 8 + sqrt (9 / 16) / 2) ^^^ 2 =\n 0) "^ walther@59627: "has_degree_in 1 / 8 + sqrt (9 / 16) / 2 =\n2\","^ walther@59627: "\"lhs (-1 / 8 + -1 * (1 / 8 + -1 * sqrt (9 / 16) / 2) / 4 +\n (1 / 8 + -1 * sqrt (9 / 16) / 2) ^^^ 2 =\n 0) is_poly_in 1 / 8 + -1 * sqrt (9 / 16) / 2\","^ walther@59627: "\"lhs (-1 / 8 + -1 * (1 / 8 + -1 * sqrt (9 / 16) / 2) / 4 +\n (1 / 8 + -1 * sqrt (9 / 16) / 2) ^^^ 2 =\n 0) has_degree_in 1 / 8 + -1 * sqrt (9 / 16) / 2 =\n2\"]"; walther@59627: (*TODO simplify assumptions (sqrt!) and check ERROR in has_degree_in*); walther@59627: member op = specsteps mI (*false*); walther@59627: (*loc_solve_ (mI,m) ptp; walther@59627: WAS: not-found-in-script: NotLocatable from NasNap (Const ("List...*) walther@59627: "~~~~~ fun loc_solve_, args:"; val (m, (pt,pos)) = ((mI,m), ptp); walther@59627: (*solve m (pt, pos); walther@59627: WAS: not-found-in-script: NotLocatable from NasNap (Const ("List...*) walther@59627: "~~~~~ fun solve, args:"; val ((mI,m), (pt, po as (p,p_))) = (m, (pt, pos)); walther@59627: e_metID = get_obj g_metID pt (par_pblobj pt p) (*false*); walther@59627: val thy' = get_obj g_domID pt (par_pblobj pt p); walther@59627: val (srls, is, sc) = from_pblobj_or_detail' thy' (p,p_) pt; walther@59627: val d = e_rls; walther@59627: (*locate_input_tactic (thy',srls) m (pt,(p,p_)) (sc,d) is; walther@59627: WAS: not-found-in-script: NotLocatable from NasNap (Const ("List...*) walther@59679: "~~~~~ fun locate_input_tactic, args:"; val () = (); walther@59679: (*----- outcommented during cleanup of args in lucas-interpreter.sml ------------------------\\* ) walther@59627: l = [] orelse ((last_elem o fst) p = 0 andalso snd p = Res) (*false*); walther@59691: (*WAS val NasApp _ =(go_scan_up1 (thy',srls,scr,d) ((E,l,a,v,S,b), [(m,EmptyMout,pt,p,[])]) ) walther@59627: ... Assoc ... is correct*) walther@59691: "~~~~~ and go_scan_up1, args:"; val ((ys as (_,_,_,Prog sc,_)), ((E,l,a,v,S,b),ss)) = walther@59627: ((thy',ctxt,srls,scr,d), ((E,l,a,v,S,b), [(m,EmptyMout,pt,p,[])])); walther@59627: 1 < length l (*true*); walther@59627: val up = drop_last l; walther@59627: term2str (go up sc); walther@59627: (go up sc); walther@59691: (*WAS val NasNap _ = scan_up1 ys ((E,up,a,v,S,b),ss) (go up sc) walther@59627: ... ???? ... is correct*) walther@59691: "~~~~~ fun scan_up1, args:"; val ((ys as (y,ctxt,s,Prog sc,d)), (is as (E,l,a,v,S,b),ss), walther@59627: (Const ("HOL.Let",_) $ _)) = (ys, ((E,up,a,v,S,b),ss:step list), (go up sc)); walther@59627: val l = drop_last l; (*comes from e, goes to Abs*) walther@59627: val (Const ("HOL.Let",_) $ e $ (Abs (i,T,body))) = go l sc; walther@59627: val i = mk_Free (i, T); walther@59660: val E = Env.upd_env E (i, v); walther@59627: (*Type error ...: Can't unify _a to pos * pos_ (Incompatible types)*) walther@59627: val [(tac_, mout, ctree, pos', xxx)] = ss; walther@59627: val ss = [(tac_, mout, ctree, pos', []:(pos * pos_) list)]; walther@59691: (*WAS val NasApp iss = scan_dn1 (((y,s),d),Aundef) ((E, l@[R,D], a,v,S,b),ss) body walther@59627: ... Assoc ... is correct*) walther@59691: "~~~~~ fun scan_dn1, args:"; val ((((thy',sr),d),ap), (is as (E,l,a,v,S,b), (m,_,pt,(p,p_),c)::ss), t) = walther@59627: ((((y,s),d),Aundef), ((E, l@[R,D], a,v,S,b),ss), body); walther@59666: val (a', STac stac) = handle_leaf "locate" thy' sr (E, (a, v)) t walther@59627: val ctxt = get_ctxt pt (p,p_) walther@59627: val p' = lev_on p : pos; walther@59627: (* WAS val NotAss = associate pt d (m, stac) walther@59627: ... Ass ... is correct*) walther@59627: "~~~~~ fun associate, args:"; val (pt, _, (m as Check_elementwise' (consts,_,(consts_chkd,_))), walther@59627: (Const ("Prog_Tac.Check'_elementwise",_) $ consts' $ _)) = (pt, d, m, stac); walther@59627: term2str consts; walther@59627: term2str consts'; walther@59627: if consts = consts' (*WAS false*) then () else error "Check_elementwise changed"; walther@59627: (*[z = 1 / 8 + sqrt (9 / 16) / 2, z = 1 / 8 + -1 * sqrt (9 / 16) / 2] TODO sqrt*) walther@59679: ( *----- outcommented during cleanup of args in lucas-interpreter.sml ------------------------//*) walther@59627: walther@59627: "----------- equality (2 +(-1)*x + x^^^2 = (0::real)) ----------------------------------------"; walther@59627: "----------- equality (2 +(-1)*x + x^^^2 = (0::real)) ----------------------------------------"; walther@59627: "----------- equality (2 +(-1)*x + x^^^2 = (0::real)) ----------------------------------------"; walther@59627: "----- d2_pqformula1_neg ------"; walther@59627: val fmz = ["equality (2 +(-1)*x + x^^^2 = (0::real))", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"], ["PolyEq","solve_d2_polyeq_pq_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*### or2list False walther@59627: ([1],Res) False Or_to_List)*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*### or2list False walther@59627: ([2],Res) [] Check_elementwise "Assumptions"*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val asm = get_assumptions_ pt p; walther@59627: if f2str f = "[]" andalso walther@59627: terms2str asm = "[\"lhs (2 + -1 * x + x ^^^ 2 = 0) is_poly_in x\"," ^ walther@59627: "\"lhs (2 + -1 * x + x ^^^ 2 = 0) has_degree_in x = 2\"]" then () walther@59627: else error "polyeq.sml: diff.behav. in 2 +(-1)*x + x^^^2 = 0"; walther@59627: walther@59627: "----------- equality (-2 +(-1)*x + 1*x^^^2 = 0) ---------------------------------------------"; walther@59627: "----------- equality (-2 +(-1)*x + 1*x^^^2 = 0) ---------------------------------------------"; walther@59627: "----------- equality (-2 +(-1)*x + 1*x^^^2 = 0) ---------------------------------------------"; walther@59627: "----- d2_pqformula2 ------"; walther@59627: val fmz = ["equality (-2 +(-1)*x + 1*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_pq_equation"]); walther@59627: (*val p = e_pos'; walther@59627: val (mI,m) = ("Init_Proof",Init_Proof (fmz, (dI',pI',mI'))); walther@59627: val (p,_,f,nxt,_,pt) = me (mI,m) p [] EmptyPtree;*) walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 2, x = -1]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in -2 + (-1)*x + x^2 = 0 -> [x = 2, x = -1]"; walther@59627: walther@59627: walther@59627: "----------- equality (-2 + x + x^^^2 = 0) ---------------------------------------------------"; walther@59627: "----------- equality (-2 + x + x^^^2 = 0) ---------------------------------------------------"; walther@59627: "----------- equality (-2 + x + x^^^2 = 0) ---------------------------------------------------"; walther@59627: "----- d2_pqformula3 ------"; walther@59627: (*EP-9*) walther@59627: val fmz = ["equality (-2 + x + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_pq_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 1, x = -2]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in -2 + x + x^2 = 0-> [x = 1, x = -2]"; walther@59627: walther@59627: walther@59627: "----------- equality (2 + x + x^^^2 = 0) ----------------------------------------------------"; walther@59627: "----------- equality (2 + x + x^^^2 = 0) ----------------------------------------------------"; walther@59627: "----------- equality (2 + x + x^^^2 = 0) ----------------------------------------------------"; walther@59627: "----- d2_pqformula3_neg ------"; walther@59627: val fmz = ["equality (2 + x + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_pq_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: "TODO 2 + x + x^^^2 = 0"; walther@59627: "TODO 2 + x + x^^^2 = 0"; walther@59627: "TODO 2 + x + x^^^2 = 0"; walther@59627: walther@59627: "----------- equality (-2 + x + 1*x^^^2 = 0)) ------------------------------------------------"; walther@59627: "----------- equality (-2 + x + 1*x^^^2 = 0)) ------------------------------------------------"; walther@59627: "----------- equality (-2 + x + 1*x^^^2 = 0)) ------------------------------------------------"; walther@59627: "----- d2_pqformula4 ------"; walther@59627: val fmz = ["equality (-2 + x + 1*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_pq_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 1, x = -2]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in -2 + x + 1*x^^^2 = 0 -> [x = 1, x = -2]"; walther@59627: walther@59627: "----------- equality (1*x + x^^^2 = 0) ----------------------------------------------------"; walther@59627: "----------- equality (1*x + x^^^2 = 0) ----------------------------------------------------"; walther@59627: "----------- equality (1*x + x^^^2 = 0) ----------------------------------------------------"; walther@59627: "----- d2_pqformula5 ------"; walther@59627: val fmz = ["equality (1*x + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_pq_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 0, x = -1]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in 1*x + x^2 = 0 -> [x = 0, x = -1]"; walther@59627: walther@59627: "----------- equality (1*x + 1*x^^^2 = 0) ----------------------------------------------------"; walther@59627: "----------- equality (1*x + 1*x^^^2 = 0) ----------------------------------------------------"; walther@59627: "----------- equality (1*x + 1*x^^^2 = 0) ----------------------------------------------------"; walther@59627: "----- d2_pqformula6 ------"; walther@59627: val fmz = ["equality (1*x + 1*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_pq_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 0, x = -1]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in 1*x + 1*x^2 = 0 -> [x = 0, x = -1]"; walther@59627: walther@59627: "----------- equality (x + x^^^2 = 0) ------------------------------------------------------"; walther@59627: "----------- equality (x + x^^^2 = 0) ------------------------------------------------------"; walther@59627: "----------- equality (x + x^^^2 = 0) ------------------------------------------------------"; walther@59627: "----- d2_pqformula7 ------"; walther@59627: (*EP-10*) walther@59627: val fmz = ["equality ( x + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_pq_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 0, x = -1]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in x + x^2 = 0 -> [x = 0, x = -1]"; walther@59627: walther@59627: "----------- equality (x + 1*x^^^2 = 0) ------------------------------------------------------"; walther@59627: "----------- equality (x + 1*x^^^2 = 0) ------------------------------------------------------"; walther@59627: "----------- equality (x + 1*x^^^2 = 0) ------------------------------------------------------"; walther@59627: "----- d2_pqformula8 ------"; walther@59627: val fmz = ["equality (x + 1*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_pq_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 0, x = -1]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in x + 1*x^2 = 0 -> [x = 0, x = -1]"; walther@59627: walther@59627: "----------- equality (-4 + x^^^2 = 0) -------------------------------------------------------"; walther@59627: "----------- equality (-4 + x^^^2 = 0) -------------------------------------------------------"; walther@59627: "----------- equality (-4 + x^^^2 = 0) -------------------------------------------------------"; walther@59627: "----- d2_pqformula9 ------"; walther@59627: val fmz = ["equality (-4 + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_pq_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 2, x = -2]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in -4 + x^2 = 0 -> [x = 2, x = -2]"; walther@59627: walther@59627: walther@59627: "----------- equality (4 + 1*x^^^2 = 0) -------------------------------------------------------"; walther@59627: "----------- equality (4 + 1*x^^^2 = 0) -------------------------------------------------------"; walther@59627: "----------- equality (4 + 1*x^^^2 = 0) -------------------------------------------------------"; walther@59627: "----- d2_pqformula9_neg ------"; walther@59627: val fmz = ["equality (4 + 1*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["pqFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_pq_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: "TODO 4 + 1*x^^^2 = 0"; walther@59627: "TODO 4 + 1*x^^^2 = 0"; walther@59627: "TODO 4 + 1*x^^^2 = 0"; walther@59627: walther@59627: "-------------------- test thm's d2_abc_formulsxx[_neg]-----"; walther@59627: "-------------------- test thm's d2_abc_formulsxx[_neg]-----"; walther@59627: "-------------------- test thm's d2_abc_formulsxx[_neg]-----"; walther@59627: val fmz = ["equality (-1 +(-1)*x + 2*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 1, x = -1 / 2]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in -1 + (-1)*x + 2*x^2 = 0 -> [x = 1, x = -1/2]"; walther@59627: walther@59627: "----------- equality (1 +(-1)*x + 2*x^^^2 = 0) ----------------------------------------------"; walther@59627: "----------- equality (1 +(-1)*x + 2*x^^^2 = 0) ----------------------------------------------"; walther@59627: "----------- equality (1 +(-1)*x + 2*x^^^2 = 0) ----------------------------------------------"; walther@59627: val fmz = ["equality (1 +(-1)*x + 2*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: "TODO 1 +(-1)*x + 2*x^^^2 = 0"; walther@59627: "TODO 1 +(-1)*x + 2*x^^^2 = 0"; walther@59627: "TODO 1 +(-1)*x + 2*x^^^2 = 0"; walther@59627: walther@59627: walther@59627: "----------- equality (-1 + x + 2*x^^^2 = 0) -------------------------------------------------"; walther@59627: "----------- equality (-1 + x + 2*x^^^2 = 0) -------------------------------------------------"; walther@59627: "----------- equality (-1 + x + 2*x^^^2 = 0) -------------------------------------------------"; walther@59627: (*EP-11*) walther@59627: val fmz = ["equality (-1 + x + 2*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 1 / 2, x = -1]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in -1 + x + 2*x^2 = 0 -> [x = 1/2, x = -1]"; walther@59627: walther@59627: walther@59627: "----------- equality (1 + x + 2*x^^^2 = 0) --------------------------------------------------"; walther@59627: "----------- equality (1 + x + 2*x^^^2 = 0) --------------------------------------------------"; walther@59627: "----------- equality (1 + x + 2*x^^^2 = 0) --------------------------------------------------"; walther@59627: val fmz = ["equality (1 + x + 2*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: "TODO 1 + x + 2*x^^^2 = 0"; walther@59627: "TODO 1 + x + 2*x^^^2 = 0"; walther@59627: "TODO 1 + x + 2*x^^^2 = 0"; walther@59627: walther@59627: walther@59627: val fmz = ["equality (-2 + 1*x + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 1, x = -2]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in -2 + 1*x + x^2 = 0 -> [x = 1, x = -2]"; walther@59627: walther@59627: val fmz = ["equality ( 2 + 1*x + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: "TODO 2 + 1*x + x^^^2 = 0"; walther@59627: "TODO 2 + 1*x + x^^^2 = 0"; walther@59627: "TODO 2 + 1*x + x^^^2 = 0"; walther@59627: walther@59627: (*EP-12*) walther@59627: val fmz = ["equality (-2 + x + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 1, x = -2]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in -2 + x + x^2 = 0 -> [x = 1, x = -2]"; walther@59627: walther@59627: val fmz = ["equality ( 2 + x + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: "TODO 2 + x + x^^^2 = 0"; walther@59627: "TODO 2 + x + x^^^2 = 0"; walther@59627: "TODO 2 + x + x^^^2 = 0"; walther@59627: walther@59627: (*EP-13*) walther@59627: val fmz = ["equality (-8 + 2*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 2, x = -2]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in -8 + 2*x^2 = 0 -> [x = 2, x = -2]"; walther@59627: walther@59627: val fmz = ["equality ( 8+ 2*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: "TODO 8+ 2*x^^^2 = 0"; walther@59627: "TODO 8+ 2*x^^^2 = 0"; walther@59627: "TODO 8+ 2*x^^^2 = 0"; walther@59627: walther@59627: (*EP-14*) walther@59627: val fmz = ["equality (-4 + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 2, x = -2]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in -4 + x^2 = 0 -> [x = 2, x = -2]"; walther@59627: walther@59627: walther@59627: val fmz = ["equality ( 4+ x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: "TODO 4+ x^^^2 = 0"; walther@59627: "TODO 4+ x^^^2 = 0"; walther@59627: "TODO 4+ x^^^2 = 0"; walther@59627: walther@59627: (*EP-15*) walther@59627: val fmz = ["equality (2*x + 2*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 0, x = -1]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in x + x^2 = 0 -> [x = 0, x = -1]"; walther@59627: walther@59627: val fmz = ["equality (1*x + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 0, x = -1]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in x + x^2 = 0 -> [x = 0, x = -1]"; walther@59627: walther@59627: (*EP-16*) walther@59627: val fmz = ["equality (x + 2*x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 0, x = -1 / 2]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in x + x^2 = 0 -> [x = 0, x = -1 / 2]"; walther@59627: walther@59627: (*EP-//*) walther@59627: val fmz = ["equality (x + x^^^2 = 0)", "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = ("PolyEq",["abcFormula","degree_2","polynomial","univariate","equation"], walther@59627: ["PolyEq","solve_d2_polyeq_abc_equation"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: case f of FormKF "[x = 0, x = -1]" => () walther@59627: | _ => error "polyeq.sml: diff.behav. in x + x^2 = 0 -> [x = 0, x = -1]"; walther@59627: walther@59627: walther@59627: "----------- (-8 - 2*x + x^^^2 = 0), (*Schalk 2, S.67 Nr.31.b----"; walther@59627: "----------- (-8 - 2*x + x^^^2 = 0), (*Schalk 2, S.67 Nr.31.b----"; walther@59627: "----------- (-8 - 2*x + x^^^2 = 0), (*Schalk 2, S.67 Nr.31.b----"; walther@59627: (*stopped du to TODO.txt WN111014.TODO calculate_Poly < calculate_Rational < calculate_RootRat walther@59627: see --- val rls = calculate_RootRat > calculate_Rational --- walther@59627: calculate_RootRat was a TODO with 2002, requires re-design. walther@59627: see also --- (-8 - 2*x + x^^^2 = 0), by rewriting --- below walther@59627: *) walther@59627: val fmz = ["equality (-8 - 2*x + x^^^2 = 0)", (*Schalk 2, S.67 Nr.31.b*) walther@59627: "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = walther@59627: ("PolyEq",["degree_2","expanded","univariate","equation"], walther@59627: ["PolyEq","complete_square"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*Apply_Method ("PolyEq","complete_square")*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*"-8 - 2 * x + x ^^^ 2 = 0", nxt = Rewrite_Set_Inst ... "complete_square*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*"-8 + (2 / 2 - x) ^^^ 2 = (2 / 2) ^^^ 2", nxt = Rewrite("square_explicit1"*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*"(2 / 2 - x) ^^^ 2 = (2 / 2) ^^^ 2 - -8" nxt = Rewrite("root_plus_minus*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*"2 / 2 - x = sqrt ((2 / 2) ^^^ 2 - -8) | walther@59627: 2 / 2 - x = - sqrt ((2 / 2) ^^^ 2 - -8)" nxt = Rewr_Inst("bdv_explicit2"*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*"2 / 2 - x = sqrt ((2 / 2) ^^^ 2 - -8) | walther@59627: -1*x = - (2 / 2) + - sqrt ((2 / 2) ^^^ 2 - -8)"nxt = R_Inst("bdv_explt2"*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*"-1 * x = - (2 / 2) + sqrt ((2 / 2) ^^^ 2 - -8) | walther@59627: -1 * x = (- (2 / 2) + - sqrt ((2 / 2) ^^^ 2 - -8))"nxt = bdv_explicit3*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*"-1 * x = - (2 / 2) + sqrt ((2 / 2) ^^^ 2 - -8) | walther@59627: x = -1 * (- (2 / 2) + - sqrt ((2 / 2) ^^^ 2 - -8))" nxt = bdv_explicit3*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*"x = -1 * (- (2 / 2) + sqrt ((2 / 2) ^^^ 2 - -8)) | walther@59627: x = -1 * (- (2 / 2) + - sqrt ((2 / 2) ^^^ 2 - -8))"nxt = calculate_Rational walther@59627: NOT IMPLEMENTED SINCE 2002 ------------------------------^^^^^^^^^^^^^^^^^^*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*"x = -2 | x = 4" nxt = Or_to_List*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*"[x = -2, x = 4]" nxt = Check_Postcond*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; f2str f; walther@59627: (* FIXXXME walther@59627: case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = -2, x = 4]")) => () TODO walther@59627: | _ => error "polyeq.sml: diff.behav. in [x = -2, x = 4]"; walther@59627: *) walther@59627: if f2str f = walther@59627: "[x = -1 * -1 + -1 * sqrt (2 ^^^ 2 / 2 ^^^ 2 - -8),\n x = -1 * -1 + -1 * (-1 * sqrt (2 ^^^ 2 / 2 ^^^ 2 - -8))]" walther@59627: (*"[x = -1 * -1 + -1 * sqrt (1 ^^^ 2 - -8),\n x = -1 * -1 + -1 * (-1 * sqrt (1 ^^^ 2 - -8))]"*) walther@59627: then () else error "polyeq.sml corrected?behav. in [x = -2, x = 4]"; walther@59627: walther@59627: walther@59627: "----------- (-8 - 2*x + x^^^2 = 0), by rewriting ---------------"; walther@59627: "----------- (-8 - 2*x + x^^^2 = 0), by rewriting ---------------"; walther@59627: "----------- (-8 - 2*x + x^^^2 = 0), by rewriting ---------------"; walther@59627: (*stopped du to TODO.txt WN111014.TODO calculate_Poly < calculate_Rational < calculate_RootRat walther@59627: see --- val rls = calculate_RootRat > calculate_Rational ---*) walther@59627: val thy = @{theory PolyEq}; walther@59627: val ctxt = Proof_Context.init_global thy; walther@59627: val inst = [((the o (parseNEW ctxt)) "bdv::real", (the o (parseNEW ctxt)) "x::real")]; walther@59627: val t = (the o (parseNEW ctxt)) "-8 - 2*x + x^^^2 = (0::real)"; walther@59627: walther@59627: val rls = complete_square; walther@59627: val SOME (t,asm) = rewrite_set_inst_ thy true inst rls t; walther@59627: term2str t = "-8 + (2 / 2 - x) ^^^ 2 = (2 / 2) ^^^ 2"; walther@59627: walther@59627: val thm = num_str @{thm square_explicit1}; walther@59627: val SOME (t,asm) = rewrite_ thy dummy_ord Erls true thm t; walther@59627: term2str t = "(2 / 2 - x) ^^^ 2 = (2 / 2) ^^^ 2 - -8"; walther@59627: walther@59627: val thm = num_str @{thm root_plus_minus}; walther@59627: val SOME (t,asm) = rewrite_ thy dummy_ord PolyEq_erls true thm t; walther@59627: term2str t = "2 / 2 - x = sqrt ((2 / 2) ^^^ 2 - -8) |"^ walther@59627: "\n2 / 2 - x = -1 * sqrt ((2 / 2) ^^^ 2 - -8)"; walther@59627: walther@59627: (*the thm bdv_explicit2* here required to be constrained to ::real*) walther@59627: val thm = num_str @{thm bdv_explicit2}; walther@59627: val SOME (t,asm) = rewrite_inst_ thy dummy_ord Erls true inst thm t; walther@59627: term2str t = "2 / 2 - x = sqrt ((2 / 2) ^^^ 2 - -8) |"^ walther@59627: "\n-1 * x = - (2 / 2) + -1 * sqrt ((2 / 2) ^^^ 2 - -8)"; walther@59627: walther@59627: val thm = num_str @{thm bdv_explicit3}; walther@59627: val SOME (t,asm) = rewrite_inst_ thy dummy_ord Erls true inst thm t; walther@59627: term2str t = "2 / 2 - x = sqrt ((2 / 2) ^^^ 2 - -8) |"^ walther@59627: "\nx = -1 * (- (2 / 2) + -1 * sqrt ((2 / 2) ^^^ 2 - -8))"; walther@59627: walther@59627: val thm = num_str @{thm bdv_explicit2}; walther@59627: val SOME (t,asm) = rewrite_inst_ thy dummy_ord Erls true inst thm t; walther@59627: term2str t = "-1 * x = - (2 / 2) + sqrt ((2 / 2) ^^^ 2 - -8) |"^ walther@59627: "\nx = -1 * (- (2 / 2) + -1 * sqrt ((2 / 2) ^^^ 2 - -8))"; walther@59627: walther@59627: val rls = calculate_RootRat; walther@59627: val SOME (t,asm) = rewrite_set_ thy true rls t; walther@59627: if term2str t = walther@59627: "-1 * x = -1 + sqrt (2 ^^^ 2 / 2 ^^^ 2 - -8) \\nx = -1 * -1 + -1 * (-1 * sqrt (2 ^^^ 2 / 2 ^^^ 2 - -8))" walther@59627: (*"-1 * x = -1 + sqrt (2 ^^^ 2 / 2 ^^^ 2 - -8) |\nx = -1 * -1 + -1 * (-1 * sqrt (2 ^^^ 2 / 2 ^^^ 2 - -8))"..isabisac15*) walther@59627: then () else error "(-8 - 2*x + x^^^2 = 0), by rewriting -- ERROR INDICATES IMPROVEMENT"; walther@59627: (*SHOULD BE: term2str = "x = -2 | x = 4;*) walther@59627: walther@59627: walther@59627: "-------------------- (3 - 10*x + 3*x^^^2 = 0), ----------------------"; walther@59627: "-------------------- (3 - 10*x + 3*x^^^2 = 0), ----------------------"; walther@59627: "-------------------- (3 - 10*x + 3*x^^^2 = 0), ----------------------"; walther@59627: "---- test the erls ----"; walther@59627: val t1 = (Thm.term_of o the o (parse thy)) "0 <= (10/3/2)^^^2 - 1"; walther@59627: val SOME (t,_) = rewrite_set_ @{theory PolyEq} false PolyEq_erls t1; walther@59627: val t' = term2str t; walther@59627: (*if t'= "HOL.True" then () walther@59627: else error "polyeq.sml: diff.behav. in 'rewrite_set_.. PolyEq_erls";*) walther@59627: (* *) walther@59627: val fmz = ["equality (3 - 10*x + 3*x^^^2 = 0)", walther@59627: "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = walther@59627: ("PolyEq",["degree_2","expanded","univariate","equation"], walther@59627: ["PolyEq","complete_square"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*Apply_Method ("PolyEq","complete_square")*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; f2str f; walther@59627: walther@59627: "----------- (-16 + 4*x + 2*x^^^2 = 0), --------------------------"; walther@59627: "----------- (-16 + 4*x + 2*x^^^2 = 0), --------------------------"; walther@59627: "----------- (-16 + 4*x + 2*x^^^2 = 0), --------------------------"; walther@59627: val fmz = ["equality (-16 + 4*x + 2*x^^^2 = 0)", walther@59627: "solveFor x","solutions L"]; walther@59627: val (dI',pI',mI') = walther@59627: ("PolyEq",["degree_2","expanded","univariate","equation"], walther@59627: ["PolyEq","complete_square"]); walther@59627: val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))]; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (*Apply_Method ("PolyEq","complete_square")*) walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: val (p,_,f,nxt,_,pt) = me nxt p [] pt; walther@59627: (* FIXXXXME n1., walther@59627: case f of Form' (FormKF (~1,EdUndef,0,Nundef,"[x = 2, x = -4]")) => () TODO walther@59627: | _ => error "polyeq.sml: diff.behav. in [x = 2, x = -4]"; walther@59627: *) walther@59627: