src/Tools/isac/Knowledge/LinEq.thy
changeset 55373 4f3f530f3cf6
parent 55363 d78bc1342183
child 55380 7be2ad0e4acb
     1.1 --- a/src/Tools/isac/Knowledge/LinEq.thy	Fri Jan 31 17:50:50 2014 +0100
     1.2 +++ b/src/Tools/isac/Knowledge/LinEq.thy	Sat Feb 01 16:44:45 2014 +0100
     1.3 @@ -164,9 +164,35 @@
     1.4      "            (Repeat(Try (Rewrite_Set LinPoly_simplify     False)))) e_e " ^
     1.5      " in ((Or_to_List e_e)::bool list))"
     1.6   ));
     1.7 -get_met ["LinEq","solve_lineq_equation"];
     1.8 -
     1.9  *}
    1.10 +(*-------------- methods------------------------------------------------------*)
    1.11 +setup {* KEStore_Elems.add_mets
    1.12 +  [prep_met thy "met_eqlin" [] e_metID
    1.13 +      (["LinEq"], [],
    1.14 +        {rew_ord' = "tless_true",rls' = Atools_erls,calc = [], srls = e_rls, prls = e_rls,
    1.15 +          crls = LinEq_crls, errpats = [], nrls = norm_Poly},
    1.16 +        "empty_script"),
    1.17 +    (* ansprechen mit ["LinEq","solve_univar_equation"] *)
    1.18 +    prep_met thy "met_eq_lin" [] e_metID
    1.19 +      (["LinEq","solve_lineq_equation"],
    1.20 +        [("#Given", ["equality e_e", "solveFor v_v"]),
    1.21 +          ("#Where", ["Not ((lhs e_e) is_polyrat_in v_v)", "((lhs e_e)  has_degree_in v_v) = 1"]),
    1.22 +          ("#Find",  ["solutions v_v'i'"])],
    1.23 +        {rew_ord' = "termlessI", rls' = LinEq_erls, srls = e_rls, prls = LinEq_prls, calc = [],
    1.24 +          crls = LinEq_crls, errpats = [], nrls = norm_Poly},
    1.25 +        "Script Solve_lineq_equation (e_e::bool) (v_v::real) =                 " ^
    1.26 +          "(let e_e =((Try         (Rewrite      all_left           False)) @@   " ^ 
    1.27 +          "           (Try (Repeat (Rewrite     makex1_x            False))) @@  " ^ 
    1.28 +          "           (Try         (Rewrite_Set expand_binoms       False)) @@   " ^ 
    1.29 +          "           (Try (Repeat (Rewrite_Set_Inst [(bdv, v_v::real)]          " ^
    1.30 +          "                                 make_ratpoly_in    False)))    @@    " ^
    1.31 +          "           (Try (Repeat (Rewrite_Set LinPoly_simplify      False))))e_e;" ^
    1.32 +          "     e_e = ((Try (Rewrite_Set_Inst [(bdv, v_v::real)]                  " ^
    1.33 +          "                                     LinEq_simplify True)) @@  " ^
    1.34 +          "            (Repeat(Try (Rewrite_Set LinPoly_simplify     False)))) e_e " ^
    1.35 +          " in ((Or_to_List e_e)::bool list))")]
    1.36 +*}
    1.37 +ML {* get_met ["LinEq","solve_lineq_equation"]; *}
    1.38  
    1.39  end
    1.40