cleanup, naming: 'KEStore_Elems' in Tests now 'Test_KEStore_Elems', 'store_pbts' now 'add_pbts'
1 (* Algebra Einf"uhrung, Unterrichtsversuch IMST-Projekt
2 author: Walther Neuper 2007
3 (c) due to copyright terms
6 theory AlgEin imports Rational begin
7 (*Poly + ..shouldbe sufficient, but norm_Poly required*)
11 (*new Descriptions in the related problems*)
12 KantenUnten :: "bool list => una"
13 KantenSenkrecht :: "bool list => una"
14 KantenOben :: "bool list => una"
15 KantenLaenge :: "bool => una"
16 Querschnitt :: "bool => una"
17 GesamtLaenge :: "real => una"
20 RechnenSymbolScript :: "[bool,bool,bool list,bool list,bool list,real,
22 ("((Script RechnenSymbolScript (_ _ _ _ _ _ =))// (_))" 9)
30 (prep_pbt thy "pbl_algein" [] e_pblID
31 (["Berechnung"], [], e_rls, NONE,
35 (prep_pbt thy "pbl_algein_num" [] e_pblID
36 (["numerische", "Berechnung"],
37 [("#Given" ,["KantenUnten u_u", "KantenSenkrecht s_s", "KantenOben o_o"]),
38 ("#Find" ,["GesamtLaenge l_l"])
40 append_rls "e_rls" e_rls [],
45 (prep_pbt thy "pbl_algein_numsym" [] e_pblID
46 (["numerischSymbolische", "Berechnung"],
47 [("#Given" ,["KantenLaenge k_k","Querschnitt q__q"(*q_ in Biegelinie.thy*),
48 "KantenUnten u_u", "KantenSenkrecht s_s", "KantenOben o_o"]),
49 ("#Find" ,["GesamtLaenge l_l"])
53 [["Berechnung","erstNumerisch"],["Berechnung","erstSymbolisch"]]));
58 setup {* KEStore_Elems.add_pbts
59 [(prep_pbt thy "pbl_algein" [] e_pblID (["Berechnung"], [], e_rls, NONE, [])),
60 (prep_pbt thy "pbl_algein_numsym" [] e_pblID
61 (["numerischSymbolische", "Berechnung"],
63 ["KantenLaenge k_k","Querschnitt q__q"(*q_ in Biegelinie.thy*), "KantenUnten u_u",
64 "KantenSenkrecht s_s", "KantenOben o_o"]),
65 ("#Find", ["GesamtLaenge l_l"])],
66 e_rls, NONE, [["Berechnung","erstNumerisch"], ["Berechnung","erstSymbolisch"]]))]; *}
72 (prep_met thy "met_algein" [] e_metID
75 {rew_ord'="tless_true", rls'= Erls, calc = [],
76 srls = Erls, prls = Erls,
77 crls =Erls , errpats = [], nrls = Erls},
82 (prep_met thy "met_algein_numsym" [] e_metID
83 (["Berechnung","erstNumerisch"],
85 {rew_ord'="tless_true", rls'= Erls, calc = [],
86 srls = Erls, prls = Erls,
87 crls =Erls , errpats = [], nrls = Erls},
94 (prep_met thy "met_algein_numsym" [] e_metID
95 (["Berechnung","erstNumerisch"],
96 [("#Given" ,["KantenLaenge k_k","Querschnitt q__q",
97 "KantenUnten u_u", "KantenSenkrecht s_s",
99 ("#Find" ,["GesamtLaenge l_l"])
101 {rew_ord'="tless_true", rls'= e_rls, calc = [],
102 srls = append_rls "srls_..Berechnung-erstSymbolisch" e_rls
103 [Calc ("Atools.boollist2sum",
104 eval_boollist2sum "")],
105 prls = e_rls, crls =e_rls , errpats = [], nrls = norm_Rational},
106 "Script RechnenSymbolScript (k_k::bool) (q__q::bool) " ^
107 "(u_u::bool list) (s_s::bool list) (o_o::bool list) (l_l::real) =" ^
108 " (let t_t = Take (l_l = oben + senkrecht + unten); " ^
109 " su_m = boollist2sum o_o; " ^
110 " t_t = Substitute [oben = su_m] t_t; " ^
111 " t_t = Substitute o_o t_t; " ^
112 " t_t = Substitute [k_k, q__q] t_t; " ^
113 " t_t = (Repeat (Try (Rewrite_Set norm_Poly False))) t_t; " ^
114 " su_m = boollist2sum s_s; " ^
115 " t_t = Substitute [senkrecht = su_m] t_t; " ^
116 " t_t = Substitute s_s t_t; " ^
117 " t_t = Substitute [k_k, q__q] t_t; " ^
118 " t_t = (Repeat (Try (Rewrite_Set norm_Poly False))) t_t; " ^
119 " su_m = boollist2sum u_u; " ^
120 " t_t = Substitute [unten = su_m] t_t; " ^
121 " t_t = Substitute u_u t_t; " ^
122 " t_t = Substitute [k_k, q__q] t_t; " ^
123 " t_t = (Repeat (Try (Rewrite_Set norm_Poly False))) t_t " ^
124 " in (Try (Rewrite_Set norm_Poly False)) t_t) "
130 (prep_met thy "met_algein_symnum" [] e_metID
131 (["Berechnung","erstSymbolisch"],
132 [("#Given" ,["KantenLaenge k_k","Querschnitt q__q",
133 "KantenUnten u_u", "KantenSenkrecht s_s",
135 ("#Find" ,["GesamtLaenge l_l"])
137 {rew_ord'="tless_true", rls'= e_rls, calc = [],
138 srls = append_rls "srls_..Berechnung-erstSymbolisch" e_rls
139 [Calc ("Atools.boollist2sum",
140 eval_boollist2sum "")],
142 crls =e_rls , errpats = [], nrls = norm_Rational},
143 "Script RechnenSymbolScript (k_k::bool) (q__q::bool) " ^
144 "(u_u::bool list) (s_s::bool list) (o_o::bool list) (l_l::real) =" ^
145 " (let t_t = Take (l_l = oben + senkrecht + unten); " ^
146 " su_m = boollist2sum o_o; " ^
147 " t_t = Substitute [oben = su_m] t_t; " ^
148 " t_t = Substitute o_o t_t; " ^
149 " t_t = (Repeat (Try (Rewrite_Set norm_Poly False))) t_t; " ^
150 " su_m = boollist2sum s_s; " ^
151 " t_t = Substitute [senkrecht = su_m] t_t; " ^
152 " t_t = Substitute s_s t_t; " ^
153 " t_t = (Repeat (Try (Rewrite_Set norm_Poly False))) t_t; " ^
154 " su_m = boollist2sum u_u; " ^
155 " t_t = Substitute [unten = su_m] t_t; " ^
156 " t_t = Substitute u_u t_t; " ^
157 " t_t = (Repeat (Try (Rewrite_Set norm_Poly False))) t_t; " ^
158 " t_t = Substitute [k_k, q__q] t_t " ^
159 " in (Try (Rewrite_Set norm_Poly False)) t_t) "