wneuper@344
|
1 |
(* tests on systems of equations
|
wneuper@344
|
2 |
author: Walther Neuper
|
wneuper@344
|
3 |
050826,
|
wneuper@344
|
4 |
(c) due to copyright terms
|
wneuper@344
|
5 |
|
wneuper@408
|
6 |
use"../smltest/IsacKnowledge/eqsystem.sml";
|
wneuper@408
|
7 |
use"eqsystem.sml";
|
wneuper@344
|
8 |
*)
|
wneuper@403
|
9 |
val thy = EqSystem.thy;
|
wneuper@403
|
10 |
|
wneuper@403
|
11 |
"-----------------------------------------------------------------";
|
wneuper@403
|
12 |
"table of contents -----------------------------------------------";
|
wneuper@403
|
13 |
"-----------------------------------------------------------------";
|
wneuper@403
|
14 |
"----------- occur_exactly_in ------------------------------------";
|
wneuper@408
|
15 |
"----------- problems --------------------------------------------";
|
wneuper@454
|
16 |
"----------- rewrite-order ord_simplify_System -------------------";
|
wneuper@414
|
17 |
"----------- rewrite in [EqSystem,normalize,2x2] -----------------";
|
wneuper@457
|
18 |
"----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
|
wneuper@447
|
19 |
"----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
|
wneuper@418
|
20 |
"----------- rewrite in [EqSystem,normalize,4x4] -----------------";
|
wneuper@412
|
21 |
"----------- script [EqSystem,normalize,2x2] ---------------------";
|
wneuper@446
|
22 |
"----------- script [EqSystem,top_down_substitution,2x2] Vers.1 --";
|
wneuper@446
|
23 |
"----------- script [EqSystem,top_down_substitution,2x2] Vers.2 --";
|
wneuper@445
|
24 |
"----------- refine [linear,system]-------------------------------";
|
wneuper@445
|
25 |
"----------- refine [2x2,linear,system] search error--------------";
|
wneuper@411
|
26 |
"----------- me [EqSystem,normalize,2x2] -------------------------";
|
wneuper@453
|
27 |
"----------- me [linear,system] ..normalize..top_down_sub..-------";
|
wneuper@657
|
28 |
"----------- all systems from Biegelinie -------------------------";
|
wneuper@658
|
29 |
"----------- 4x4 systems from Biegelinie -------------------------";
|
wneuper@403
|
30 |
"-----------------------------------------------------------------";
|
wneuper@403
|
31 |
"-----------------------------------------------------------------";
|
wneuper@403
|
32 |
"-----------------------------------------------------------------";
|
wneuper@403
|
33 |
|
wneuper@403
|
34 |
|
wneuper@403
|
35 |
"----------- occur_exactly_in ------------------------------------";
|
wneuper@403
|
36 |
"----------- occur_exactly_in ------------------------------------";
|
wneuper@403
|
37 |
"----------- occur_exactly_in ------------------------------------";
|
wneuper@403
|
38 |
val all = [str2term"c", str2term"c_2", str2term"c_3"];
|
wneuper@403
|
39 |
val t = str2term"0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
|
wneuper@403
|
40 |
|
wneuper@404
|
41 |
if occur_exactly_in [str2term"c", str2term"c_2"] all t
|
wneuper@403
|
42 |
then () else raise error "eqsystem.sml occur_exactly_in 1";
|
wneuper@403
|
43 |
|
wneuper@404
|
44 |
if not (occur_exactly_in [str2term"c", str2term"c_2", str2term"c_3"] all t)
|
wneuper@403
|
45 |
then () else raise error "eqsystem.sml occur_exactly_in 2";
|
wneuper@403
|
46 |
|
wneuper@404
|
47 |
if not (occur_exactly_in [str2term"c_2"] all t)
|
wneuper@403
|
48 |
then () else raise error "eqsystem.sml occur_exactly_in 3";
|
wneuper@403
|
49 |
|
wneuper@403
|
50 |
|
wneuper@404
|
51 |
val t = str2term"[c,c_2] from_ [c,c_2,c_3] occur_exactly_in \
|
wneuper@404
|
52 |
\-1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
|
wneuper@404
|
53 |
val Some (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
|
wneuper@404
|
54 |
if str = "[c, c_2] from_ [c, c_2,\n c_3] occur_exactly_in -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2 = True" then ()
|
wneuper@404
|
55 |
else raise error "eval_occur_exactly_in [c, c_2]";
|
wneuper@404
|
56 |
|
wneuper@404
|
57 |
val t = str2term"[c,c_2,c_3] from_ [c,c_2,c_3] occur_exactly_in \
|
wneuper@404
|
58 |
\-1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
|
wneuper@404
|
59 |
val Some (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
|
wneuper@404
|
60 |
if str = "[c, c_2,\n c_3] from_ [c, c_2,\n c_3] occur_exactly_in -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2 = False" then ()
|
wneuper@404
|
61 |
else raise error "eval_occur_exactly_in [c, c_2, c_3]";
|
wneuper@404
|
62 |
|
wneuper@404
|
63 |
val t = str2term"[c_2] from_ [c,c_2,c_3] occur_exactly_in \
|
wneuper@404
|
64 |
\-1 * q_0 * L ^^^ 2 / 2 + L * c + c_2";
|
wneuper@404
|
65 |
val Some (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
|
wneuper@404
|
66 |
if str = "[c_2] from_ [c, c_2,\n c_3] occur_exactly_in -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2 = False" then ()
|
wneuper@404
|
67 |
else raise error "eval_occur_exactly_in [c, c_2, c_3]";
|
wneuper@404
|
68 |
|
wneuper@408
|
69 |
val t = str2term"[] from_ [c,c_2,c_3] occur_exactly_in 0";
|
wneuper@408
|
70 |
val Some (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
|
wneuper@408
|
71 |
if str = "[] from_ [c, c_2, c_3] occur_exactly_in 0 = True" then ()
|
wneuper@408
|
72 |
else raise error "eval_occur_exactly_in [c, c_2, c_3]";
|
wneuper@408
|
73 |
|
wneuper@418
|
74 |
val t =
|
wneuper@418
|
75 |
str2term
|
wneuper@418
|
76 |
"[] from_ [c, c_2, c_3, c_4] occur_exactly_in -1 * (q_0 * L ^^^ 2) /2";
|
wneuper@418
|
77 |
val Some (str, t') = eval_occur_exactly_in 0 "EqSystem.occur'_exactly'_in" t 0;
|
wneuper@418
|
78 |
if str = "[] from_ [c, c_2, c_3, c_4] occur_exactly_in \
|
wneuper@418
|
79 |
\-1 * (q_0 * L ^^^ 2) / 2 = True" then ()
|
wneuper@418
|
80 |
else raise error "eval_occur_exactly_in [c, c_2, c_3, c_4]";
|
wneuper@418
|
81 |
|
wneuper@408
|
82 |
|
wneuper@408
|
83 |
"----------- problems --------------------------------------------";
|
wneuper@408
|
84 |
"----------- problems --------------------------------------------";
|
wneuper@408
|
85 |
"----------- problems --------------------------------------------";
|
wneuper@408
|
86 |
val t = str2term "length_ [x+y=1,y=2] = 2";
|
wneuper@408
|
87 |
atomty t;
|
wneuper@408
|
88 |
val testrls = append_rls "testrls" e_rls
|
wneuper@408
|
89 |
[(Thm ("length_Nil_",num_str length_Nil_)),
|
wneuper@408
|
90 |
(Thm ("length_Cons_",num_str length_Cons_)),
|
wneuper@408
|
91 |
Calc ("op +", eval_binop "#add_"),
|
wneuper@408
|
92 |
Calc ("op =",eval_equal "#equal_")
|
wneuper@408
|
93 |
];
|
wneuper@408
|
94 |
val Some (t',_) = rewrite_set_ thy false testrls t;
|
wneuper@408
|
95 |
if term2str t' = "True" then ()
|
wneuper@408
|
96 |
else raise error "eqsystem.sml: length_ [x+y=1,y=2] = 2";
|
wneuper@408
|
97 |
|
wneuper@411
|
98 |
val Some t = parse EqSystem.thy "solution L";
|
wneuper@411
|
99 |
atomty (term_of t);
|
wneuper@411
|
100 |
val Some t = parse Biegelinie.thy "solution L";
|
wneuper@411
|
101 |
atomty (term_of t);
|
wneuper@408
|
102 |
|
wneuper@425
|
103 |
val t = str2term
|
wneuper@425
|
104 |
"(tl (tl (tl vs_))) from_ vs_ occur_exactly_in (nth_ 1 (es_::bool list))";
|
wneuper@425
|
105 |
atomty t;
|
wneuper@426
|
106 |
val t = str2term
|
wneuper@426
|
107 |
"(tl (tl (tl [c,c_2,c_3,c_4]))) from_ [c,c_2,c_3,c_4] occur_exactly_in \
|
wneuper@426
|
108 |
\(nth_ 1 [c_4 = 1, 2=2,3=3,4=4])";
|
wneuper@426
|
109 |
val Some (t,_) =
|
wneuper@426
|
110 |
rewrite_set_ thy true
|
wneuper@426
|
111 |
(append_rls "prls_" e_rls
|
wneuper@426
|
112 |
[Thm ("nth_Cons_",num_str nth_Cons_),
|
wneuper@426
|
113 |
Thm ("nth_Nil_",num_str nth_Nil_),
|
wneuper@426
|
114 |
Thm ("tl_Cons",num_str tl_Cons),
|
wneuper@426
|
115 |
Thm ("tl_Nil",num_str tl_Nil),
|
wneuper@426
|
116 |
Calc ("EqSystem.occur'_exactly'_in",
|
wneuper@426
|
117 |
eval_occur_exactly_in
|
wneuper@426
|
118 |
"#eval_occur_exactly_in_")
|
wneuper@426
|
119 |
]) t;
|
wneuper@426
|
120 |
if t = HOLogic.true_const then ()
|
wneuper@426
|
121 |
else raise error "eqsystem.sml ..occur_exactly_in (nth_ 1 [c_4..";
|
wneuper@425
|
122 |
|
wneuper@411
|
123 |
|
wneuper@454
|
124 |
"----------- rewrite-order ord_simplify_System -------------------";
|
wneuper@454
|
125 |
"----------- rewrite-order ord_simplify_System -------------------";
|
wneuper@454
|
126 |
"----------- rewrite-order ord_simplify_System -------------------";
|
wneuper@454
|
127 |
"M_b x = c * x + -1 * q_0 * (x ^^^ 2 / 2) + c_2";
|
wneuper@454
|
128 |
"--- add_commute ---";
|
wneuper@454
|
129 |
if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2)",
|
wneuper@454
|
130 |
str2term"c * x") then ()
|
wneuper@454
|
131 |
else raise error "integrate.sml, (-1 * q_0 * (x ^^^ 2 / 2)) < (c * x) not#1";
|
wneuper@454
|
132 |
|
wneuper@454
|
133 |
if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2)",
|
wneuper@454
|
134 |
str2term"c_2") then ()
|
wneuper@454
|
135 |
else raise error "integrate.sml, (-1 * q_0 * (x ^^^ 2 / 2)) < (c_2) not#2";
|
wneuper@454
|
136 |
|
wneuper@454
|
137 |
if ord_simplify_System false thy [] (str2term"c * x",
|
wneuper@454
|
138 |
str2term"c_2") then ()
|
wneuper@454
|
139 |
else raise error "integrate.sml, (c * x) < (c_2) not#3";
|
wneuper@454
|
140 |
|
wneuper@454
|
141 |
"--- mult_commute ---";
|
wneuper@454
|
142 |
if ord_simplify_System false thy [] (str2term"x * c",
|
wneuper@454
|
143 |
str2term"c * x") then ()
|
wneuper@454
|
144 |
else raise error "integrate.sml, (x * c) < (c * x) not#4";
|
wneuper@454
|
145 |
|
wneuper@454
|
146 |
if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2) * c",
|
wneuper@454
|
147 |
str2term"-1 * q_0 * c * (x ^^^ 2 / 2)")
|
wneuper@454
|
148 |
then () else raise error "integrate.sml, (. * .) < (. * .) not#5";
|
wneuper@454
|
149 |
|
wneuper@454
|
150 |
if ord_simplify_System false thy [] (str2term"-1 * q_0 * (x ^^^ 2 / 2) * c",
|
wneuper@454
|
151 |
str2term"c * -1 * q_0 * (x ^^^ 2 / 2)")
|
wneuper@454
|
152 |
then () else raise error "integrate.sml, (. * .) < (. * .) not#6";
|
wneuper@454
|
153 |
|
wneuper@454
|
154 |
|
wneuper@414
|
155 |
"----------- rewrite in [EqSystem,normalize,2x2] -----------------";
|
wneuper@414
|
156 |
"----------- rewrite in [EqSystem,normalize,2x2] -----------------";
|
wneuper@414
|
157 |
"----------- rewrite in [EqSystem,normalize,2x2] -----------------";
|
wneuper@424
|
158 |
val t = str2term"[0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2,\
|
wneuper@424
|
159 |
\0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2]";
|
wneuper@422
|
160 |
val bdvs = [(str2term"bdv_1",str2term"c"),
|
wneuper@422
|
161 |
(str2term"bdv_2",str2term"c_2")];
|
wneuper@454
|
162 |
val Some(t,_)= rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
|
wneuper@454
|
163 |
if term2str t = "[0 = -1 * q_0 * L ^^^ 2 / 2 + (L * c + c_2), 0 = c_2]"
|
wneuper@450
|
164 |
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.1";
|
wneuper@416
|
165 |
|
wneuper@422
|
166 |
val Some (t,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs t;
|
wneuper@454
|
167 |
if term2str t = "[L * c + c_2 = 0 + -1 * (-1 * q_0 * L ^^^ 2 / 2), c_2 = 0]"
|
wneuper@424
|
168 |
then () else raise error "eqsystem.sml rewrite in 2x2 isolate_bdvs";
|
wneuper@422
|
169 |
|
wneuper@457
|
170 |
val Some(t,_)= rewrite_set_inst_ thy true bdvs simplify_System t;
|
wneuper@424
|
171 |
if term2str t = "[L * c + c_2 = q_0 * L ^^^ 2 / 2, c_2 = 0]"
|
wneuper@450
|
172 |
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.2";
|
wneuper@416
|
173 |
|
wneuper@424
|
174 |
val Some (t,_) = rewrite_set_ thy true order_system t;
|
wneuper@424
|
175 |
if term2str t = "[c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]"
|
wneuper@457
|
176 |
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.3";
|
wneuper@457
|
177 |
|
wneuper@457
|
178 |
|
wneuper@457
|
179 |
"----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
|
wneuper@457
|
180 |
"----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
|
wneuper@457
|
181 |
"----------- rewrite example from 2nd [EqSystem,normalize,2x2] ---";
|
wneuper@457
|
182 |
val thy = Isac.thy (*because of Undeclared constant "Biegelinie.EI*);
|
wneuper@457
|
183 |
val t =
|
wneuper@457
|
184 |
str2term"[0 = c_2 + c * 0 + 1 / EI * (L * q_0 / 12 * 0 ^^^ 3 + \
|
wneuper@457
|
185 |
\ -1 * q_0 / 24 * 0 ^^^ 4),\
|
wneuper@457
|
186 |
\ 0 = c_2 + c * L + 1 / EI * (L * q_0 / 12 * L ^^^ 3 + \
|
wneuper@457
|
187 |
\ -1 * q_0 / 24 * L ^^^ 4)]";
|
wneuper@457
|
188 |
val Some (t,_) = rewrite_set_ thy true norm_Rational t;
|
wneuper@660
|
189 |
if term2str t="[0 = c_2, 0 = c_2 + L * c + L ^^^ 4 * q_0 / (24 * EI)]"
|
wneuper@457
|
190 |
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.0b";
|
wneuper@457
|
191 |
|
wneuper@457
|
192 |
val Some(t,_)= rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
|
wneuper@457
|
193 |
if term2str t = "[0 = c_2, 0 = q_0 * L ^^^ 4 / (24 * EI) + (L * c + c_2)]"
|
wneuper@457
|
194 |
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System_par.1b";
|
wneuper@457
|
195 |
|
wneuper@457
|
196 |
val Some (t,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs t;
|
wneuper@457
|
197 |
if term2str t = "[c_2 = 0, L * c + c_2 = 0 + -1 * (q_0 * L ^^^ 4 / (24 * EI))]"
|
wneuper@457
|
198 |
then () else raise error "eqsystem.sml rewrite in 2x2 isolate_bdvs b";
|
wneuper@457
|
199 |
|
wneuper@457
|
200 |
val Some(t,_)= rewrite_set_inst_ thy true bdvs simplify_System t;
|
wneuper@457
|
201 |
if term2str t = "[c_2 = 0, L * c + c_2 = -1 * q_0 * L ^^^ 4 / (24 * EI)]"
|
wneuper@457
|
202 |
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System.2b";
|
wneuper@457
|
203 |
|
wneuper@457
|
204 |
val xxx = rewrite_set_ thy true order_system t;
|
wneuper@457
|
205 |
if is_none xxx
|
wneuper@457
|
206 |
then () else raise error "eqsystem.sml rewrite in 2x2 simplify_System.3b";
|
wneuper@415
|
207 |
|
wneuper@414
|
208 |
|
wneuper@447
|
209 |
"----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
|
wneuper@447
|
210 |
"----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
|
wneuper@447
|
211 |
"----------- rewrite in [EqSystem,top_down_substitution,2x2] -----";
|
wneuper@447
|
212 |
val e1__ = str2term "c_2 = 77";
|
wneuper@447
|
213 |
val e2__ = str2term "L * c + c_2 = q_0 * L ^^^ 2 / 2";
|
wneuper@447
|
214 |
val bdvs = [(str2term"bdv_1",str2term"c"),
|
wneuper@447
|
215 |
(str2term"bdv_2",str2term"c_2")];
|
wneuper@447
|
216 |
val Some (e2__,_) = rewrite_terms_ thy dummy_ord Erls [e1__] e2__;
|
wneuper@447
|
217 |
if term2str e2__ = "L * c + 77 = q_0 * L ^^^ 2 / 2" then ()
|
wneuper@447
|
218 |
else raise error "eqsystem.sml top_down_substitution,2x2] subst";
|
wneuper@447
|
219 |
|
wneuper@454
|
220 |
val Some (e2__,_) =
|
wneuper@454
|
221 |
rewrite_set_inst_ thy true bdvs simplify_System_parenthesized e2__;
|
wneuper@447
|
222 |
if term2str e2__ = "77 + L * c = q_0 * L ^^^ 2 / 2" then ()
|
wneuper@447
|
223 |
else raise error "eqsystem.sml top_down_substitution,2x2] simpl_par";
|
wneuper@447
|
224 |
|
wneuper@447
|
225 |
val Some (e2__,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs e2__;
|
wneuper@447
|
226 |
if term2str e2__ = "c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L" then ()
|
wneuper@447
|
227 |
else raise error "eqsystem.sml top_down_substitution,2x2] isolate";
|
wneuper@447
|
228 |
|
wneuper@447
|
229 |
val t = str2term "[c_2 = 77, c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L]";
|
wneuper@447
|
230 |
val Some (t,_) = rewrite_set_ thy true order_system t;
|
wneuper@447
|
231 |
if term2str t = "[c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L, c_2 = 77]" then ()
|
wneuper@447
|
232 |
else raise error "eqsystem.sml top_down_substitution,2x2] order_system";
|
wneuper@447
|
233 |
|
wneuper@450
|
234 |
if not (ord_simplify_System
|
wneuper@447
|
235 |
false thy []
|
wneuper@447
|
236 |
(str2term"[c_2 = 77, c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L]",
|
wneuper@447
|
237 |
str2term"[c = (q_0 * L ^^^ 2 / 2 + -1 * 77) / L, c_2 = 77]"))
|
wneuper@447
|
238 |
then () else raise error "eqsystem.sml, order_result rew_ord";
|
wneuper@447
|
239 |
|
wneuper@447
|
240 |
trace_rewrite:=true;
|
wneuper@447
|
241 |
trace_rewrite:=false;
|
wneuper@447
|
242 |
|
wneuper@447
|
243 |
|
wneuper@418
|
244 |
"----------- rewrite in [EqSystem,normalize,4x4] -----------------";
|
wneuper@418
|
245 |
"----------- rewrite in [EqSystem,normalize,4x4] -----------------";
|
wneuper@418
|
246 |
"----------- rewrite in [EqSystem,normalize,4x4] -----------------";
|
wneuper@663
|
247 |
(*GOON??: revise rewrite in [EqSystem,normalize,4x4] from before 0609*)
|
wneuper@418
|
248 |
val t = str2term"[0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c_3 + c_4,\
|
wneuper@418
|
249 |
\0 = -1 * q_0 * L ^^^ 2 / 2 + L * c_3 + c_4,\
|
wneuper@418
|
250 |
\c + c_2 + c_3 + c_4 = 0,\
|
wneuper@418
|
251 |
\c_2 + c_3 + c_4 = 0]";
|
wneuper@422
|
252 |
val bdvs = [(str2term"bdv_1",str2term"c"),
|
wneuper@422
|
253 |
(str2term"bdv_2",str2term"c_2"),
|
wneuper@422
|
254 |
(str2term"bdv_3",str2term"c_3"),
|
wneuper@422
|
255 |
(str2term"bdv_4",str2term"c_4")];
|
wneuper@454
|
256 |
val Some (t,_) =
|
wneuper@454
|
257 |
rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
|
wneuper@454
|
258 |
if term2str t = "[0 = c_4, 0 = -1 * q_0 * L ^^^ 2 / 2 + (L * c_3 + c_4),\n\
|
wneuper@454
|
259 |
\ c + (c_2 + (c_3 + c_4)) = 0, c_2 + (c_3 + c_4) = 0]"
|
wneuper@450
|
260 |
then () else raise error "eqsystem.sml rewrite in 4x4 simplify_System_paren";
|
wneuper@418
|
261 |
|
wneuper@422
|
262 |
val Some (t,_) = rewrite_set_inst_ thy true bdvs isolate_bdvs t;
|
wneuper@454
|
263 |
if term2str t = "[c_4 = 0, \
|
wneuper@454
|
264 |
\L * c_3 + c_4 = 0 + -1 * (-1 * q_0 * L ^^^ 2 / 2),\n \
|
wneuper@454
|
265 |
\c + (c_2 + (c_3 + c_4)) = 0, c_2 + (c_3 + c_4) = 0]"
|
wneuper@422
|
266 |
then () else raise error "eqsystem.sml rewrite in 4x4 isolate_bdvs";
|
wneuper@422
|
267 |
|
wneuper@454
|
268 |
val Some(t,_)= rewrite_set_inst_ thy true bdvs simplify_System_parenthesized t;
|
wneuper@422
|
269 |
if term2str t = "[c_4 = 0,\
|
wneuper@422
|
270 |
\ L * c_3 + c_4 = q_0 * L ^^^ 2 / 2,\
|
wneuper@422
|
271 |
\ c + (c_2 + (c_3 + c_4)) = 0,\n\
|
wneuper@422
|
272 |
\ c_2 + (c_3 + c_4) = 0]"
|
wneuper@450
|
273 |
then () else raise error "eqsystem.sml rewrite in 4x4 simplify_System_p..2";
|
wneuper@422
|
274 |
|
wneuper@422
|
275 |
val Some (t,_) = rewrite_set_ thy true order_system t;
|
wneuper@424
|
276 |
if term2str t = "[c_4 = 0,\
|
wneuper@424
|
277 |
\ L * c_3 + c_4 = q_0 * L ^^^ 2 / 2,\
|
wneuper@424
|
278 |
\ c_2 + (c_3 + c_4) = 0,\n\
|
wneuper@424
|
279 |
\ c + (c_2 + (c_3 + c_4)) = 0]"
|
wneuper@424
|
280 |
then () else raise error "eqsystem.sml rewrite in 4x4 order_system";
|
wneuper@414
|
281 |
|
wneuper@447
|
282 |
|
wneuper@412
|
283 |
"----------- script [EqSystem,normalize,2x2] ---------------------";
|
wneuper@412
|
284 |
"----------- script [EqSystem,normalize,2x2] ---------------------";
|
wneuper@412
|
285 |
"----------- script [EqSystem,normalize,2x2] ---------------------";
|
wneuper@412
|
286 |
val str =
|
wneuper@445
|
287 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@454
|
288 |
\ (let es__ = (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
289 |
\ simplify_System_parenthesized False) es_ \
|
wneuper@412
|
290 |
\ in ([]))";
|
wneuper@412
|
291 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@412
|
292 |
val str =
|
wneuper@445
|
293 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@454
|
294 |
\ (let es__ = (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
295 |
\ simplify_System_parenthesized False) es_ \
|
wneuper@412
|
296 |
\ in (SubProblem (Biegelinie_,[linear,system],[no_met])\
|
wneuper@412
|
297 |
\ []))";
|
wneuper@412
|
298 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@412
|
299 |
val str =
|
wneuper@445
|
300 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@454
|
301 |
\ (let es__ = (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
302 |
\ simplify_System_parenthesized False) es_ \
|
wneuper@412
|
303 |
\ in (SubProblem (Biegelinie_,[linear,system],[no_met])\
|
wneuper@412
|
304 |
\ [bool_list_ es__, real_list_ vs_]))"
|
wneuper@412
|
305 |
;
|
wneuper@412
|
306 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@416
|
307 |
val str =
|
wneuper@445
|
308 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@454
|
309 |
\ (let es__ = Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
310 |
\ simplify_System_parenthesized False) es_ \
|
wneuper@416
|
311 |
\ in (SubProblem (Biegelinie_,[linear,system],[no_met])\
|
wneuper@416
|
312 |
\ [bool_list_ es__, real_list_ vs_]))"
|
wneuper@416
|
313 |
;
|
wneuper@416
|
314 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@416
|
315 |
val str =
|
wneuper@445
|
316 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@454
|
317 |
\ (let es__ = (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
318 |
\ simplify_System_parenthesized False)) es_ \
|
wneuper@425
|
319 |
\ in (SubProblem (Biegelinie_,[linear,system],[no_met])\
|
wneuper@416
|
320 |
\ [bool_list_ es__, real_list_ vs_]))"
|
wneuper@416
|
321 |
;
|
wneuper@416
|
322 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@417
|
323 |
val str =
|
wneuper@445
|
324 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@454
|
325 |
\ (let es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
326 |
\ simplify_System_parenthesized False)) @@\
|
wneuper@454
|
327 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
328 |
\ simplify_System_parenthesized False))) es_\
|
wneuper@425
|
329 |
\ in (SubProblem (Biegelinie_,[linear,system],[no_met])\
|
wneuper@417
|
330 |
\ [bool_list_ es__, real_list_ vs_]))"
|
wneuper@417
|
331 |
;
|
wneuper@417
|
332 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@417
|
333 |
val str =
|
wneuper@445
|
334 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@454
|
335 |
\ (let es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
336 |
\ simplify_System_parenthesized False)) @@\
|
wneuper@454
|
337 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
338 |
\ simplify_System_parenthesized False)) @@\
|
wneuper@454
|
339 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
340 |
\ simplify_System_parenthesized False))) es_\
|
wneuper@425
|
341 |
\ in (SubProblem (Biegelinie_,[linear,system],[no_met])\
|
wneuper@417
|
342 |
\ [bool_list_ es__, real_list_ vs_]))"
|
wneuper@417
|
343 |
;
|
wneuper@417
|
344 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@425
|
345 |
val str =
|
wneuper@445
|
346 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@454
|
347 |
\ (let es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
348 |
\ simplify_System_parenthesized False)) @@\
|
wneuper@425
|
349 |
\ (Try (Rewrite_Set_Inst [] isolate_bdvs False)) @@\
|
wneuper@454
|
350 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
351 |
\ simplify_System_parenthesized False)) @@\
|
wneuper@425
|
352 |
\ (Try (Rewrite_Set order_system False))) es_\
|
wneuper@425
|
353 |
\ in (SubProblem (Biegelinie_,[linear,system],[no_met])\
|
wneuper@425
|
354 |
\ [bool_list_ es__, real_list_ vs_]))"
|
wneuper@425
|
355 |
;
|
wneuper@425
|
356 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@425
|
357 |
val str =
|
wneuper@445
|
358 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@454
|
359 |
\ (let es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
360 |
\ simplify_System_parenthesized False)) @@\
|
wneuper@425
|
361 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_)]\
|
wneuper@425
|
362 |
\ isolate_bdvs False)) @@\
|
wneuper@454
|
363 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
364 |
\ simplify_System_parenthesized False)) @@\
|
wneuper@425
|
365 |
\ (Try (Rewrite_Set order_system False))) es_\
|
wneuper@425
|
366 |
\ in (SubProblem (Biegelinie_,[linear,system],[no_met])\
|
wneuper@425
|
367 |
\ [bool_list_ es__, real_list_ vs_]))"
|
wneuper@425
|
368 |
;
|
wneuper@425
|
369 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@425
|
370 |
val str =
|
wneuper@445
|
371 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@450
|
372 |
\ (let es__ = ((Try (Rewrite_Set simplify_System_parenthesized False)) @@\
|
wneuper@425
|
373 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@425
|
374 |
\ isolate_bdvs False)) @@\
|
wneuper@454
|
375 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
376 |
\ simplify_System_parenthesized False)) @@\
|
wneuper@425
|
377 |
\ (Try (Rewrite_Set order_system False))) es_\
|
wneuper@425
|
378 |
\ in (SubProblem (Biegelinie_,[linear,system],[no_met])\
|
wneuper@425
|
379 |
\ [bool_list_ es__, real_list_ vs_]))"
|
wneuper@425
|
380 |
;
|
wneuper@425
|
381 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@425
|
382 |
(*---^^^-OK-----------------------------------------------------------------*)
|
wneuper@425
|
383 |
(*---vvv-NOT ok-------------------------------------------------------------*)
|
wneuper@412
|
384 |
|
wneuper@412
|
385 |
|
wneuper@446
|
386 |
"----------- script [EqSystem,top_down_substitution,2x2] Vers.1 --";
|
wneuper@446
|
387 |
"----------- script [EqSystem,top_down_substitution,2x2] Vers.1 --";
|
wneuper@446
|
388 |
"----------- script [EqSystem,top_down_substitution,2x2] Vers.1 --";
|
wneuper@445
|
389 |
val str =
|
wneuper@445
|
390 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@454
|
391 |
\ (let es__ = (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
392 |
\ simplify_System_parenthesized False) es_ \
|
wneuper@445
|
393 |
\ in ([]))";
|
wneuper@445
|
394 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
395 |
val str =
|
wneuper@445
|
396 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@445
|
397 |
\ (let e1__ = Take (hd es_) \
|
wneuper@445
|
398 |
\ in ([]))";
|
wneuper@445
|
399 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
400 |
val str =
|
wneuper@445
|
401 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@445
|
402 |
\ (let e1__ = Take (hd es_); \
|
wneuper@445
|
403 |
\ e1__ = Take (hd es_) \
|
wneuper@445
|
404 |
\ in ([]))";
|
wneuper@445
|
405 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
406 |
val str =
|
wneuper@445
|
407 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@445
|
408 |
\ (let e1__ = Take (hd es_); \
|
wneuper@445
|
409 |
\ e1__ = (Take (hd es_))\
|
wneuper@445
|
410 |
\ in ([]))";
|
wneuper@445
|
411 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
412 |
val str =
|
wneuper@445
|
413 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@445
|
414 |
\ (let e1__ = Take (hd es_); \
|
wneuper@445
|
415 |
\ e1__ = ((Rewrite_Set order_system False)) e1__\
|
wneuper@445
|
416 |
\ in ([]))";
|
wneuper@445
|
417 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
418 |
(*--------------------------------------------------------------------------*)
|
wneuper@445
|
419 |
val str =
|
wneuper@445
|
420 |
"(Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@445
|
421 |
\ isolate_bdvs False) (e1__::bool)";
|
wneuper@445
|
422 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
423 |
(*--------------------------------------------------------------------------*)
|
wneuper@445
|
424 |
val str =
|
wneuper@445
|
425 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@445
|
426 |
\ (let e1__ = Take (hd es_); \
|
wneuper@445
|
427 |
\ e1__ = ((Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@445
|
428 |
\ isolate_bdvs False)) e1__\
|
wneuper@445
|
429 |
\ in ([]))";
|
wneuper@445
|
430 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
431 |
val str =
|
wneuper@445
|
432 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@445
|
433 |
\ (let e1__ = Take (hd es_); \
|
wneuper@445
|
434 |
\ e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@445
|
435 |
\ isolate_bdvs False)) @@\
|
wneuper@454
|
436 |
\ (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
437 |
\ simplify_System False)) e1__\
|
wneuper@445
|
438 |
\ in ([]))";
|
wneuper@445
|
439 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
440 |
val str =
|
wneuper@445
|
441 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@445
|
442 |
\ (let e1__ = Take (hd es_); \
|
wneuper@445
|
443 |
\ e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@445
|
444 |
\ isolate_bdvs False)) @@\
|
wneuper@454
|
445 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
446 |
\ simplify_System False))) e1__\
|
wneuper@445
|
447 |
\ in ([]))";
|
wneuper@445
|
448 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
449 |
val str =
|
wneuper@445
|
450 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@445
|
451 |
\ (let e1__ = Take (hd es_); \
|
wneuper@445
|
452 |
\ e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@445
|
453 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
454 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
455 |
\ simplify_System False))) e1__; \
|
wneuper@445
|
456 |
\ e2__ = Take (hd (tl es_)) \
|
wneuper@445
|
457 |
\ in ([]))";
|
wneuper@445
|
458 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
459 |
val str =
|
wneuper@445
|
460 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@445
|
461 |
\ (let e1__ = Take (hd es_); \
|
wneuper@445
|
462 |
\ e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@445
|
463 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
464 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
465 |
\ simplify_System False))) e1__; \
|
wneuper@445
|
466 |
\ e2__ = Take (hd (tl es_)); \
|
wneuper@445
|
467 |
\ e2__ = Substitute [e1__] e2__ \
|
wneuper@445
|
468 |
\ in ([]))";
|
wneuper@445
|
469 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
470 |
val str =
|
wneuper@445
|
471 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@445
|
472 |
\ (let e1__ = Take (hd es_); \
|
wneuper@445
|
473 |
\ e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@445
|
474 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
475 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
476 |
\ simplify_System False))) e1__; \
|
wneuper@445
|
477 |
\ e2__ = Take (hd (tl es_)); \
|
wneuper@445
|
478 |
\ e2__ = ((Substitute [e1__])) e2__ \
|
wneuper@445
|
479 |
\ in ([]))";
|
wneuper@445
|
480 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
481 |
val str =
|
wneuper@445
|
482 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@445
|
483 |
\ (let e1__ = Take (hd es_); \
|
wneuper@445
|
484 |
\ e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@445
|
485 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
486 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
487 |
\ simplify_System False))) e1__; \
|
wneuper@445
|
488 |
\ e2__ = Take (hd (tl es_)); \
|
wneuper@445
|
489 |
\ e2__ = ((Substitute [e1__]) @@ \
|
wneuper@445
|
490 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@445
|
491 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
492 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
493 |
\ simplify_System False))) e2__ \
|
wneuper@445
|
494 |
\ in [e1__, e2__])"
|
wneuper@445
|
495 |
;
|
wneuper@445
|
496 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@447
|
497 |
val str =
|
wneuper@447
|
498 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@447
|
499 |
\ (let e1__ = Take (hd es_); \
|
wneuper@447
|
500 |
\ e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@447
|
501 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
502 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
503 |
\ simplify_System False))) e1__; \
|
wneuper@447
|
504 |
\ e2__ = Take (hd (tl es_)); \
|
wneuper@447
|
505 |
\ e2__ = ((Substitute [e1__]) @@ \
|
wneuper@454
|
506 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
507 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@447
|
508 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@447
|
509 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
510 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
511 |
\ simplify_System False)) @@ \
|
wneuper@447
|
512 |
\ (Try (Rewrite_Set order_system False))) e2__ \
|
wneuper@447
|
513 |
\ in [e1__, e2__])"
|
wneuper@447
|
514 |
;
|
wneuper@447
|
515 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@447
|
516 |
(*---^^^-OK-----------------------------------------------------------------*)
|
wneuper@447
|
517 |
val str =
|
wneuper@447
|
518 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@447
|
519 |
\ (let e1__ = Take (hd es_); \
|
wneuper@447
|
520 |
\ e1__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@447
|
521 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
522 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
523 |
\ simplify_System False))) e1__; \
|
wneuper@447
|
524 |
\ e2__ = Take (hd (tl es_)); \
|
wneuper@447
|
525 |
\ e2__ = ((Substitute [e1__]) @@ \
|
wneuper@454
|
526 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
527 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@447
|
528 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@447
|
529 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
530 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
531 |
\ simplify_System False))) e2__; \
|
wneuper@447
|
532 |
\ es__ = Take [e1__, e2__]\
|
wneuper@447
|
533 |
\ in (Try (Rewrite_Set order_system False)) es__)"
|
wneuper@447
|
534 |
;
|
wneuper@447
|
535 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@445
|
536 |
(*---vvv-NOT ok-------------------------------------------------------------*)
|
wneuper@445
|
537 |
atomty sc;
|
wneuper@403
|
538 |
|
wneuper@446
|
539 |
"----------- script [EqSystem,top_down_substitution,2x2] Vers.2 --";
|
wneuper@446
|
540 |
"----------- script [EqSystem,top_down_substitution,2x2] Vers.2 --";
|
wneuper@446
|
541 |
"----------- script [EqSystem,top_down_substitution,2x2] Vers.2 --";
|
wneuper@446
|
542 |
val str =
|
wneuper@446
|
543 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@446
|
544 |
\ (let es__ = Take es_; \
|
wneuper@446
|
545 |
\ e1__ = hd es__\
|
wneuper@446
|
546 |
\ in ([]))"
|
wneuper@446
|
547 |
;
|
wneuper@446
|
548 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@446
|
549 |
val str =
|
wneuper@446
|
550 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@446
|
551 |
\ (let es__ = Take es_; \
|
wneuper@446
|
552 |
\ e1__ = hd es__; \
|
wneuper@446
|
553 |
\ e2__ = hd (tl es__)\
|
wneuper@446
|
554 |
\ in ([]))"
|
wneuper@446
|
555 |
;
|
wneuper@446
|
556 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@446
|
557 |
val str =
|
wneuper@446
|
558 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@446
|
559 |
\ (let es__ = Take es_; \
|
wneuper@446
|
560 |
\ e1__ = hd es__; \
|
wneuper@446
|
561 |
\ e2__ = hd (tl es__);\
|
wneuper@446
|
562 |
\ es__ = [1=2,3=4]\
|
wneuper@446
|
563 |
\ in ([]))"
|
wneuper@446
|
564 |
;
|
wneuper@446
|
565 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@446
|
566 |
val str =
|
wneuper@446
|
567 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@446
|
568 |
\ (let es__ = Take es_; \
|
wneuper@446
|
569 |
\ e1__ = hd es__; \
|
wneuper@446
|
570 |
\ e2__ = hd (tl es__);\
|
wneuper@446
|
571 |
\ es__ = [e1__,e2__]\
|
wneuper@446
|
572 |
\ in ([]))"
|
wneuper@446
|
573 |
;
|
wneuper@446
|
574 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@446
|
575 |
val str =
|
wneuper@446
|
576 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@446
|
577 |
\ (let es__ = Take es_; \
|
wneuper@446
|
578 |
\ e1__ = hd es__; \
|
wneuper@446
|
579 |
\ e2__ = hd (tl es__);\
|
wneuper@446
|
580 |
\ es__ = [e1__, Substitute [e1__] e2__];\
|
wneuper@454
|
581 |
\ es__ = (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
582 |
\ simplify_System False)) es__ \
|
wneuper@446
|
583 |
\ in ([]))"
|
wneuper@446
|
584 |
;
|
wneuper@446
|
585 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@446
|
586 |
val str =
|
wneuper@446
|
587 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@446
|
588 |
\ (let es__ = Take es_; \
|
wneuper@446
|
589 |
\ e1__ = hd es__; \
|
wneuper@446
|
590 |
\ e2__ = hd (tl es__);\
|
wneuper@446
|
591 |
\ es__ = [e1__, Substitute [e1__] e2__];\
|
wneuper@446
|
592 |
\ es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@446
|
593 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
594 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
595 |
\ simplify_System False))) es__ \
|
wneuper@446
|
596 |
\ in ([]))"
|
wneuper@446
|
597 |
;
|
wneuper@446
|
598 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@446
|
599 |
val str =
|
wneuper@446
|
600 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@446
|
601 |
\ (let es__ = Take es_; \
|
wneuper@446
|
602 |
\ e1__ = hd es__; \
|
wneuper@446
|
603 |
\ e2__ = hd (tl es__);\
|
wneuper@446
|
604 |
\ es__ = [e1__, Substitute [e1__] e2__];\
|
wneuper@454
|
605 |
\ es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
606 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@446
|
607 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@446
|
608 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
609 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
610 |
\ simplify_System False))) es__ \
|
wneuper@446
|
611 |
\ in ([]))"
|
wneuper@446
|
612 |
;
|
wneuper@446
|
613 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@446
|
614 |
val str =
|
wneuper@446
|
615 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@446
|
616 |
\ (let es__ = Take es_; \
|
wneuper@446
|
617 |
\ e1__ = hd es__; \
|
wneuper@446
|
618 |
\ e2__ = hd (tl es__); \
|
wneuper@446
|
619 |
\ es__ = [e1__, Substitute [e1__] e2__]; \
|
wneuper@454
|
620 |
\ es__ = ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
621 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@446
|
622 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@446
|
623 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
624 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
625 |
\ simplify_System False))) es__ \
|
wneuper@446
|
626 |
\ in es__)"
|
wneuper@446
|
627 |
;
|
wneuper@446
|
628 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@446
|
629 |
val str =
|
wneuper@446
|
630 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@446
|
631 |
\ (let es__ = Take es_; \
|
wneuper@446
|
632 |
\ e1__ = hd es__; \
|
wneuper@446
|
633 |
\ e2__ = hd (tl es__); \
|
wneuper@446
|
634 |
\ es__ = [e1__, Substitute [e1__] e2__] \
|
wneuper@454
|
635 |
\ in ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
636 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@446
|
637 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))] \
|
wneuper@446
|
638 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
639 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
640 |
\ simplify_System False))) es__)"
|
wneuper@446
|
641 |
;
|
wneuper@446
|
642 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@446
|
643 |
(*---^^^-OK-----------------------------------------------------------------*)
|
wneuper@447
|
644 |
val str =
|
wneuper@447
|
645 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@447
|
646 |
\ (let es__ = Take es_; \
|
wneuper@447
|
647 |
\ e1__ = hd es__; \
|
wneuper@447
|
648 |
\ e2__ = hd (tl es__); \
|
wneuper@447
|
649 |
\ es__ = [e1__, Substitute [e1__] e2__] "^
|
wneuper@447
|
650 |
(* this ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ is a script-'Expr'
|
wneuper@447
|
651 |
which is not yet searched for 'STac's; thus this script does not yet work*)
|
wneuper@454
|
652 |
" in ((Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
653 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@447
|
654 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))] \
|
wneuper@447
|
655 |
\ isolate_bdvs False)) @@ \
|
wneuper@454
|
656 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@454
|
657 |
\ simplify_System False))) es__)"
|
wneuper@447
|
658 |
;
|
wneuper@447
|
659 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@446
|
660 |
(*---vvv-NOT ok-------------------------------------------------------------*)
|
wneuper@446
|
661 |
atomty sc;
|
wneuper@446
|
662 |
|
wneuper@403
|
663 |
|
wneuper@430
|
664 |
"----------- refine [linear,system]-------------------------------";
|
wneuper@430
|
665 |
"----------- refine [linear,system]-------------------------------";
|
wneuper@430
|
666 |
"----------- refine [linear,system]-------------------------------";
|
wneuper@430
|
667 |
val fmz = ["equalities [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,\
|
wneuper@430
|
668 |
\0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]",
|
wneuper@430
|
669 |
"solveForVars [c, c_2]", "solution L"];
|
wneuper@430
|
670 |
val matches = refine fmz ["linear","system"];
|
wneuper@430
|
671 |
case matches of [_,_,_,
|
wneuper@430
|
672 |
Matches (["normalize", "2x2", "linear", "system"],
|
wneuper@430
|
673 |
{Find = [Correct "solution L"],
|
wneuper@430
|
674 |
With = [],
|
wneuper@430
|
675 |
Given =
|
wneuper@430
|
676 |
[Correct
|
wneuper@430
|
677 |
"equalities\n [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,\n 0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]",
|
wneuper@430
|
678 |
Correct "solveForVars [c, c_2]"],
|
wneuper@430
|
679 |
Where = [],
|
wneuper@430
|
680 |
Relate = []})] => ()
|
wneuper@430
|
681 |
| _ => raise error "eqsystem.sml refine ['normalize','2x2'...]";
|
wneuper@430
|
682 |
|
wneuper@430
|
683 |
|
wneuper@430
|
684 |
val fmz = ["equalities [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]",
|
wneuper@430
|
685 |
"solveForVars [c, c_2]", "solution L"];
|
wneuper@430
|
686 |
val matches = refine fmz ["linear","system"];
|
wneuper@430
|
687 |
case matches of [_,_,
|
wneuper@430
|
688 |
Matches
|
wneuper@430
|
689 |
(["triangular", "2x2", "linear", "system"],
|
wneuper@430
|
690 |
{Find = [Correct "solution L"],
|
wneuper@430
|
691 |
With = [],
|
wneuper@430
|
692 |
Given =
|
wneuper@430
|
693 |
[Correct
|
wneuper@430
|
694 |
"equalities [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]",
|
wneuper@430
|
695 |
Correct "solveForVars [c, c_2]"],
|
wneuper@430
|
696 |
Where =
|
wneuper@430
|
697 |
[Correct
|
wneuper@430
|
698 |
"tl [c, c_2] from_ [c, c_2] occur_exactly_in nth_ 1\n [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]",
|
wneuper@430
|
699 |
Correct
|
wneuper@430
|
700 |
"[c, c_2] from_ [c, c_2] occur_exactly_in nth_ 2\n [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]"],
|
wneuper@430
|
701 |
Relate = []})] => ()
|
wneuper@430
|
702 |
| _ => raise error "eqsystem.sml refine ['triangular','2x2'...]";
|
wneuper@445
|
703 |
|
wneuper@438
|
704 |
|
wneuper@438
|
705 |
(*WN051014----------------------------------------------------------------
|
wneuper@438
|
706 |
the above 'val matches = refine fmz ["linear","system"]'
|
wneuper@438
|
707 |
didn't work anymore; we investigated in these steps:*)
|
wneuper@438
|
708 |
val fmz = ["equalities [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]",
|
wneuper@438
|
709 |
"solveForVars [c, c_2]", "solution L"];
|
wneuper@438
|
710 |
val matches = refine fmz ["triangular", "2x2", "linear","system"];
|
wneuper@438
|
711 |
(*... resulted in
|
wneuper@438
|
712 |
False "[c, c_2] from_ [c, c_2] occur_exactly_in nth_ 2\n
|
wneuper@438
|
713 |
[c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]"]*)
|
wneuper@438
|
714 |
|
wneuper@438
|
715 |
val t = str2term"[c, c_2] from_ [c, c_2] occur_exactly_in nth_ 2\
|
wneuper@438
|
716 |
\[c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]";
|
wneuper@438
|
717 |
trace_rewrite:=true;
|
wneuper@438
|
718 |
val Some (t',_) = rewrite_set_ thy false prls_triangular t;
|
wneuper@438
|
719 |
(*found:...
|
wneuper@438
|
720 |
## try thm: nth_Cons_
|
wneuper@438
|
721 |
### eval asms: 1 < 2 + - 1
|
wneuper@438
|
722 |
==> nth_ (2 + - 1) [L * c + c_2 = q_0 * L ^^^ 2 / 2] =
|
wneuper@438
|
723 |
nth_ (2 + - 1 + - 1) []
|
wneuper@438
|
724 |
#### rls: erls_prls_triangular on: 1 < 2 + - 1
|
wneuper@438
|
725 |
##### try calc: op <'
|
wneuper@438
|
726 |
### asms accepted: ["1 < 2 + - 1"] stored: ["1 < 2 + -1"]
|
wneuper@438
|
727 |
|
wneuper@438
|
728 |
... i.e Calc ("op +", eval_binop "#add_") was missing in erls_prls_triangular*)
|
wneuper@438
|
729 |
trace_rewrite:=false;
|
wneuper@438
|
730 |
(*WN051014------------------------------------------------------------------*)
|
wneuper@445
|
731 |
|
wneuper@661
|
732 |
"----- relaxed preconditions for triangular system";
|
wneuper@661
|
733 |
val fmz = ["equalities [L * q_0 = c, \
|
wneuper@661
|
734 |
\ 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2,\
|
wneuper@663
|
735 |
\ 0 = c_4, \
|
wneuper@663
|
736 |
\ 0 = c_3]",
|
wneuper@661
|
737 |
"solveForVars [c, c_2, c_3, c_4]", "solution L"];
|
wneuper@661
|
738 |
val matches = refine fmz ["linear","system"];
|
wneuper@663
|
739 |
(* trace_rewrite := true;
|
wneuper@663
|
740 |
trace_rewrite := false;
|
wneuper@663
|
741 |
*)
|
wneuper@663
|
742 |
(*print_depth 6; matches; print_depth 3;*)
|
wneuper@663
|
743 |
case matches of
|
wneuper@663
|
744 |
[Matches (["linear", "system"], _),
|
wneuper@663
|
745 |
NoMatch (["2x2", "linear", "system"], _),
|
wneuper@663
|
746 |
NoMatch (["3x3", "linear", "system"], _),
|
wneuper@663
|
747 |
Matches (["4x4", "linear", "system"], _),
|
wneuper@663
|
748 |
NoMatch (["triangular", "4x4", "linear", "system"], _),
|
wneuper@663
|
749 |
Matches (["normalize", "4x4", "linear", "system"], _)] => ()
|
wneuper@663
|
750 |
| _ => raise error "eqsystem.sml: refine relaxed triangular sys NoMatch";
|
wneuper@663
|
751 |
(*WN060914 does NOT match, because 3rd and 4th equ are not ordered*)
|
wneuper@661
|
752 |
|
wneuper@663
|
753 |
val fmz = ["equalities [L * q_0 = c, \
|
wneuper@663
|
754 |
\ 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2,\
|
wneuper@663
|
755 |
\ 0 = c_3, \
|
wneuper@663
|
756 |
\ 0 = c_4]",
|
wneuper@663
|
757 |
"solveForVars [c, c_2, c_3, c_4]", "solution L"];
|
wneuper@663
|
758 |
val matches = refine fmz ["triangular", "4x4", "linear","system"];
|
wneuper@663
|
759 |
(* print_depth 11; matches; print_depth 3;
|
wneuper@663
|
760 |
*)
|
wneuper@663
|
761 |
case matches of
|
wneuper@663
|
762 |
[Matches (["triangular", "4x4", "linear", "system"], _)] => ()
|
wneuper@663
|
763 |
| _ => raise error "eqsystem.sml: refine relaxed triangular sys Matches";
|
wneuper@663
|
764 |
val matches = refine fmz ["linear","system"];
|
wneuper@661
|
765 |
|
wneuper@445
|
766 |
|
wneuper@445
|
767 |
"----------- refine [2x2,linear,system] search error--------------";
|
wneuper@445
|
768 |
"----------- refine [2x2,linear,system] search error--------------";
|
wneuper@445
|
769 |
"----------- refine [2x2,linear,system] search error--------------";
|
wneuper@445
|
770 |
(*didn't go into ["2x2", "linear", "system"];
|
wneuper@445
|
771 |
we investigated in these steps:*)
|
wneuper@445
|
772 |
val fmz = ["equalities [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,\
|
wneuper@445
|
773 |
\0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]",
|
wneuper@445
|
774 |
"solveForVars [c, c_2]", "solution L"];
|
wneuper@445
|
775 |
trace_rewrite:=true;
|
wneuper@445
|
776 |
val matches = refine fmz ["2x2", "linear","system"];
|
wneuper@445
|
777 |
trace_rewrite:=false;
|
wneuper@445
|
778 |
print_depth 11; matches; print_depth 3;
|
wneuper@445
|
779 |
(*brought: 'False "length_ es_ = 2"'*)
|
wneuper@445
|
780 |
|
wneuper@445
|
781 |
(*-----fun refin' (pblRD:pblRD) fmz pbls ((Ptyp (pI,[py],[])):pbt ptyp) =
|
wneuper@445
|
782 |
(* val ((pblRD:pblRD), fmz, pbls, ((Ptyp (pI,[py],[])):pbt ptyp)) =
|
wneuper@445
|
783 |
(rev ["linear","system"], fmz, [(*match list*)],
|
wneuper@445
|
784 |
((Ptyp ("2x2",[get_pbt ["2x2","linear","system"]],[])):pbt ptyp));
|
wneuper@445
|
785 |
*)
|
wneuper@445
|
786 |
> show_types:=true; term2str (hd where_); show_types:=false;
|
wneuper@445
|
787 |
val it = "length_ (es_::real list) = (2::real)" : string
|
wneuper@445
|
788 |
|
wneuper@445
|
789 |
=========================================================================\
|
wneuper@445
|
790 |
-------fun prep_pbt
|
wneuper@445
|
791 |
(* val (thy, (pblID, dsc_dats: (string * (string list)) list,
|
wneuper@445
|
792 |
ev:rls, ca: string option, metIDs:metID list)) =
|
wneuper@445
|
793 |
(EqSystem.thy, (["system"],
|
wneuper@445
|
794 |
[("#Given" ,["equalities es_", "solveForVars vs_"]),
|
wneuper@445
|
795 |
("#Find" ,["solution ss___"](*___ is copy-named*))
|
wneuper@445
|
796 |
],
|
wneuper@445
|
797 |
append_rls "e_rls" e_rls [(*for preds in where_*)],
|
wneuper@445
|
798 |
Some "solveSystem es_ vs_",
|
wneuper@445
|
799 |
[]));
|
wneuper@445
|
800 |
*)
|
wneuper@445
|
801 |
> val [("#Given", [equalities_es_, "solveForVars vs_"])] = gi;
|
wneuper@445
|
802 |
val equalities_es_ = "equalities es_" : string
|
wneuper@445
|
803 |
> val (dd, ii) = (split_did o term_of o the o (parse thy)) equalities_es_;
|
wneuper@445
|
804 |
> show_types:=true; term2str ii; show_types:=false;
|
wneuper@445
|
805 |
val it = "es_::bool list" : string
|
wneuper@445
|
806 |
~~~~~~~~~~~~~~~^^^^^^^^^ OK~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
wneuper@445
|
807 |
|
wneuper@445
|
808 |
> val {where_,...} = get_pbt ["2x2", "linear","system"];
|
wneuper@445
|
809 |
> show_types:=true; term2str (hd where_); show_types:=false;
|
wneuper@445
|
810 |
|
wneuper@445
|
811 |
=========================================================================/
|
wneuper@445
|
812 |
|
wneuper@445
|
813 |
|
wneuper@445
|
814 |
|
wneuper@445
|
815 |
-----fun refin' ff:
|
wneuper@445
|
816 |
> (writeln o (itms2str Isac.thy)) itms;
|
wneuper@445
|
817 |
[
|
wneuper@445
|
818 |
(1 ,[1] ,true ,#Given ,Cor equalities
|
wneuper@445
|
819 |
[0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,
|
wneuper@445
|
820 |
0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2] ,(es_, [[0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,
|
wneuper@445
|
821 |
0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]])),
|
wneuper@445
|
822 |
(2 ,[1] ,true ,#Given ,Cor solveForVars [c, c_2] ,(vs_, [[c, c_2]])),
|
wneuper@445
|
823 |
(3 ,[1] ,true ,#Find ,Cor solution L ,(ss___, [L]))]
|
wneuper@445
|
824 |
|
wneuper@445
|
825 |
> (writeln o pres2str) pre';
|
wneuper@445
|
826 |
[
|
wneuper@445
|
827 |
(false, length_ es_ = 2),
|
wneuper@445
|
828 |
(true, length_ [c, c_2] = 2)]
|
wneuper@445
|
829 |
|
wneuper@445
|
830 |
----- fun match_oris':
|
wneuper@445
|
831 |
> (writeln o (itms2str Isac.thy)) itms;
|
wneuper@445
|
832 |
> (writeln o pres2str) pre';
|
wneuper@445
|
833 |
..as in refin'
|
wneuper@445
|
834 |
|
wneuper@445
|
835 |
----- fun check_preconds'
|
wneuper@445
|
836 |
> (writeln o env2str) env;
|
wneuper@445
|
837 |
["
|
wneuper@445
|
838 |
(es_, [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,
|
wneuper@445
|
839 |
0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2])","
|
wneuper@445
|
840 |
(vs_, [c, c_2])","
|
wneuper@445
|
841 |
(ss___, L)"]
|
wneuper@445
|
842 |
|
wneuper@445
|
843 |
> val es_ = (fst o hd) env;
|
wneuper@445
|
844 |
val es_ = Free ("es_", "bool List.list") : Term.term
|
wneuper@445
|
845 |
|
wneuper@445
|
846 |
> val pre1 = hd pres;
|
wneuper@445
|
847 |
atomty pre1;
|
wneuper@445
|
848 |
***
|
wneuper@445
|
849 |
*** Const (op =, [real, real] => bool)
|
wneuper@445
|
850 |
*** . Const (ListG.length_, real list => real)
|
wneuper@445
|
851 |
*** . . Free (es_, real list)
|
wneuper@445
|
852 |
~~~~~~~~~~~~~~~~~~~^^^^^^^^^ should be bool list~~~~~~~~~~~~~~~~~~~
|
wneuper@445
|
853 |
*** . Free (2, real)
|
wneuper@445
|
854 |
***
|
wneuper@445
|
855 |
|
wneuper@445
|
856 |
THE REASON WAS A non-type-constrained variable IN #WHERE OF PROBLEM
|
wneuper@445
|
857 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
wneuper@445
|
858 |
*)
|
wneuper@445
|
859 |
|
wneuper@445
|
860 |
|
wneuper@445
|
861 |
"----------- me [EqSystem,normalize,2x2] -------------------------";
|
wneuper@445
|
862 |
"----------- me [EqSystem,normalize,2x2] -------------------------";
|
wneuper@445
|
863 |
"----------- me [EqSystem,normalize,2x2] -------------------------";
|
wneuper@445
|
864 |
val fmz = ["equalities [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,\
|
wneuper@445
|
865 |
\0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]",
|
wneuper@445
|
866 |
"solveForVars [c, c_2]", "solution L"];
|
wneuper@445
|
867 |
val (dI',pI',mI') =
|
wneuper@453
|
868 |
("Biegelinie.thy",["normalize", "2x2", "linear", "system"],
|
wneuper@453
|
869 |
["EqSystem","normalize","2x2"]);
|
wneuper@445
|
870 |
val p = e_pos'; val c = [];
|
wneuper@445
|
871 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@445
|
872 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@445
|
873 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@445
|
874 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@445
|
875 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@445
|
876 |
case nxt of ("Specify_Method",_) => ()
|
wneuper@445
|
877 |
| _ => raise error "eqsystem.sml [EqSystem,normalize,2x2] specify";
|
wneuper@445
|
878 |
|
wneuper@445
|
879 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@445
|
880 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@445
|
881 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f(*["(bdv_1, c)", "(bdv_2, hd (tl [c, c_2] ... corrected srls; ran only AFTER use"RCODE-root.sml", store_met was NOT SUFFICIENT*);
|
wneuper@445
|
882 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@445
|
883 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@457
|
884 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@445
|
885 |
case nxt of
|
wneuper@445
|
886 |
(_, Subproblem ("Biegelinie.thy", ["triangular", "2x2", "linear",_])) => ()
|
wneuper@445
|
887 |
| _ => raise error "eqsystem.sml me [EqSystem,normalize,2x2] SubProblem";
|
wneuper@445
|
888 |
|
wneuper@445
|
889 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@445
|
890 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@445
|
891 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@445
|
892 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@445
|
893 |
case nxt of
|
wneuper@445
|
894 |
(_, Specify_Method ["EqSystem", "top_down_substitution", "2x2"]) => ()
|
wneuper@445
|
895 |
| _ => raise error "eqsystem.sml me [EqSys...2x2] top_down_substitution";
|
wneuper@445
|
896 |
|
wneuper@445
|
897 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
898 |
val PblObj {probl,...} = get_obj I pt [5];(writeln o(itms2str Isac.thy)) probl;
|
wneuper@445
|
899 |
(*[
|
wneuper@445
|
900 |
(1 ,[1] ,true ,#Given ,Cor equalities [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2] ,(es_, [[c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]])),
|
wneuper@445
|
901 |
(2 ,[1] ,true ,#Given ,Cor solveForVars [c, c_2] ,(vs_, [[c, c_2]])),
|
wneuper@445
|
902 |
(3 ,[1] ,true ,#Find ,Cor solution ss___ ,(ss___, [ss___]))]
|
wneuper@445
|
903 |
*)
|
wneuper@445
|
904 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@445
|
905 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@447
|
906 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@447
|
907 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@447
|
908 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@447
|
909 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@447
|
910 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@447
|
911 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@447
|
912 |
case nxt of
|
wneuper@447
|
913 |
(_, Check_Postcond ["triangular", "2x2", "linear", "system"]) => ()
|
wneuper@447
|
914 |
| _ => raise error "eqsystem.sml me Subpbl .[EqSys...2x2] finished";
|
wneuper@447
|
915 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@447
|
916 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@447
|
917 |
if f2str f = "[c = L * q_0 / 2, c_2 = 0]" then ()
|
wneuper@447
|
918 |
else raise error "eqsystem.sml me [EqSys...2x2] finished f2str f";
|
wneuper@447
|
919 |
case nxt of
|
wneuper@447
|
920 |
(_, End_Proof') => ()
|
wneuper@447
|
921 |
| _ => raise error "eqsystem.sml me [EqSys...2x2] finished End_Proof'";
|
wneuper@445
|
922 |
|
wneuper@445
|
923 |
|
wneuper@453
|
924 |
"----------- me [linear,system] ..normalize..top_down_sub..-------";
|
wneuper@453
|
925 |
"----------- me [linear,system] ..normalize..top_down_sub..-------";
|
wneuper@453
|
926 |
"----------- me [linear,system] ..normalize..top_down_sub..-------";
|
wneuper@453
|
927 |
val fmz =
|
wneuper@453
|
928 |
["equalities\
|
wneuper@453
|
929 |
\[0 = c_2 + c * 0 + 1 / EI * (L * q_0 / 12 * 0 ^^^ 3 + \
|
wneuper@453
|
930 |
\ -1 * q_0 / 24 * 0 ^^^ 4),\
|
wneuper@453
|
931 |
\ 0 = c_2 + c * L + 1 / EI * (L * q_0 / 12 * L ^^^ 3 + \
|
wneuper@453
|
932 |
\ -1 * q_0 / 24 * L ^^^ 4)]",
|
wneuper@453
|
933 |
"solveForVars [c, c_2]", "solution L"];
|
wneuper@453
|
934 |
val (dI',pI',mI') =
|
wneuper@453
|
935 |
("Biegelinie.thy",["linear", "system"], ["no_met"]);
|
wneuper@453
|
936 |
val p = e_pos'; val c = [];
|
wneuper@453
|
937 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@453
|
938 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@453
|
939 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@453
|
940 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@453
|
941 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
942 |
case nxt of (_,Specify_Method ["EqSystem", "normalize", "2x2"]) => ()
|
wneuper@457
|
943 |
| _ => raise error "eqsystem.sml [linear,system] specify b";
|
wneuper@453
|
944 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@453
|
945 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
946 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
947 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
948 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@457
|
949 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
950 |
if f2str f =
|
wneuper@457
|
951 |
"[c_2 = 0, L * c + c_2 = -1 * q_0 * L ^^^ 4 / (24 * EI)]"
|
wneuper@457
|
952 |
then () else raise error "eqsystem.sml me simpl. before SubProblem b";
|
wneuper@453
|
953 |
case nxt of
|
wneuper@453
|
954 |
(_, Subproblem ("Biegelinie.thy", ["triangular", "2x2", "linear",_])) => ()
|
wneuper@457
|
955 |
| _ => raise error "eqsystem.sml me [linear,system] SubProblem b";
|
wneuper@453
|
956 |
|
wneuper@453
|
957 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@453
|
958 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@453
|
959 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@453
|
960 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@453
|
961 |
case nxt of
|
wneuper@453
|
962 |
(_, Specify_Method ["EqSystem", "top_down_substitution", "2x2"]) => ()
|
wneuper@457
|
963 |
| _ => raise error "eqsystem.sml me [EqSys...2x2] top_down_substitution b";
|
wneuper@453
|
964 |
|
wneuper@453
|
965 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@457
|
966 |
val PblObj {probl,...} = get_obj I pt [5];(writeln o(itms2str Isac.thy)) probl;
|
wneuper@453
|
967 |
(*[
|
wneuper@453
|
968 |
(1 ,[1] ,true ,#Given ,Cor equalities [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2] ,(es_, [[c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]])),
|
wneuper@453
|
969 |
(2 ,[1] ,true ,#Given ,Cor solveForVars [c, c_2] ,(vs_, [[c, c_2]])),
|
wneuper@453
|
970 |
(3 ,[1] ,true ,#Find ,Cor solution ss___ ,(ss___, [ss___]))]
|
wneuper@453
|
971 |
*)
|
wneuper@453
|
972 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
973 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
974 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
975 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
976 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
977 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
978 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
979 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
980 |
case nxt of
|
wneuper@453
|
981 |
(_, Check_Postcond ["triangular", "2x2", "linear", "system"]) => ()
|
wneuper@457
|
982 |
| _ => raise error "eqsystem.sml me Subpbl .[EqSys...2x2] finished b";
|
wneuper@453
|
983 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@453
|
984 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
wneuper@456
|
985 |
if f2str f =
|
wneuper@457
|
986 |
"[c = -1 * q_0 * L ^^^ 4 / (24 * EI * L), c_2 = 0]"
|
wneuper@457
|
987 |
then () else raise error "eqsystem.sml me [EqSys...2x2] finished f2str f b";
|
wneuper@453
|
988 |
case nxt of
|
wneuper@453
|
989 |
(_, End_Proof') => ()
|
wneuper@457
|
990 |
| _ => raise error "eqsystem.sml me [EqSys...2x2] finished End_Proof'" b;
|
wneuper@453
|
991 |
|
wneuper@453
|
992 |
|
wneuper@657
|
993 |
"----------- all systems from Biegelinie -------------------------";
|
wneuper@657
|
994 |
"----------- all systems from Biegelinie -------------------------";
|
wneuper@657
|
995 |
"----------- all systems from Biegelinie -------------------------";
|
wneuper@659
|
996 |
val subst = [(str2term "bdv_1", str2term "c"),
|
wneuper@659
|
997 |
(str2term "bdv_2", str2term "c_2"),
|
wneuper@659
|
998 |
(str2term "bdv_3", str2term "c_3"),
|
wneuper@659
|
999 |
(str2term "bdv_4", str2term "c_4")];
|
wneuper@660
|
1000 |
"------- Bsp 7.27";
|
wneuper@657
|
1001 |
states:=[];
|
wneuper@657
|
1002 |
CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
|
wneuper@657
|
1003 |
"Randbedingungen [y 0 = 0, y L = 0, M_b 0 = 0, M_b L = 0]",
|
wneuper@657
|
1004 |
"FunktionsVariable x"],
|
wneuper@657
|
1005 |
("Biegelinie.thy", ["Biegelinien"],
|
wneuper@657
|
1006 |
["IntegrierenUndKonstanteBestimmen2"]))];
|
wneuper@657
|
1007 |
moveActiveRoot 1;
|
wneuper@657
|
1008 |
(*
|
wneuper@658
|
1009 |
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
|
wneuper@660
|
1010 |
##7.27## ordered substs
|
wneuper@660
|
1011 |
c_4 c_2
|
wneuper@660
|
1012 |
c c_2 c_3 c_4 c c_2 1->2: c
|
wneuper@660
|
1013 |
c_2 c_4
|
wneuper@660
|
1014 |
c c_2 c c_2 c_3 c_4 [2':c, 1:c_2, 3:c_4] -> 4:c_3*)
|
wneuper@659
|
1015 |
val t = str2term"[0 = c_4, \
|
wneuper@658
|
1016 |
\ 0 = c_4 + L * c_3 +(12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI), \
|
wneuper@658
|
1017 |
\ 0 = c_2, \
|
wneuper@658
|
1018 |
\ 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2]";
|
wneuper@659
|
1019 |
val Some (t',_) = rewrite_set_ thy false isolate_bdvs_4x4 t;
|
wneuper@659
|
1020 |
term2str t';
|
wneuper@659
|
1021 |
"[c_4 = 0,\n (12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI) =\n 0 + -1 * (c_4 + L * c_3),\n c_2 = 0, (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2 = 0]";
|
wneuper@659
|
1022 |
|
wneuper@659
|
1023 |
|
wneuper@664
|
1024 |
"----- 7.27 go through the rewrites in met_eqsys_norm_4x4";
|
wneuper@659
|
1025 |
val t = str2term "0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2";
|
wneuper@659
|
1026 |
val None = rewrite_set_ thy false norm_Rational t;
|
wneuper@659
|
1027 |
val Some (t,_) =
|
wneuper@659
|
1028 |
rewrite_set_inst_ thy false subst simplify_System_parenthesized t;
|
wneuper@660
|
1029 |
term2str t = "0 = -1 * q_0 * L ^^^ 2 / 2 + (L * c + c_2)";
|
wneuper@660
|
1030 |
"--- isolate_bdvs_4x4";
|
wneuper@661
|
1031 |
(*
|
wneuper@659
|
1032 |
val Some (t,_) = rewrite_set_inst_ thy false subst isolate_bdvs_4x4 t;
|
wneuper@659
|
1033 |
term2str t;
|
wneuper@659
|
1034 |
val Some (t,_) = rewrite_set_inst_ thy false subst simplify_System t;
|
wneuper@659
|
1035 |
term2str t;
|
wneuper@659
|
1036 |
val Some (t,_) = rewrite_set_ thy false order_system t;
|
wneuper@659
|
1037 |
term2str t;
|
wneuper@659
|
1038 |
*)
|
wneuper@658
|
1039 |
|
wneuper@660
|
1040 |
"------- Bsp 7.28 ---------------vvvvvvvvvvvvv Momentenlinie postponed";
|
wneuper@658
|
1041 |
states:=[];
|
wneuper@658
|
1042 |
CalcTree [(["Traegerlaenge L","Momentenlinie (-q_0 / L * x^3 / 6)",
|
wneuper@658
|
1043 |
"Biegelinie y",
|
wneuper@658
|
1044 |
"Randbedingungen [y L = 0, y' L = 0]",
|
wneuper@658
|
1045 |
"FunktionsVariable x"],
|
wneuper@658
|
1046 |
("Biegelinie.thy", ["vonMomentenlinieZu","Biegelinien"],
|
wneuper@658
|
1047 |
["Biegelinien", "AusMomentenlinie"]))];
|
wneuper@658
|
1048 |
moveActiveRoot 1;
|
wneuper@658
|
1049 |
(*
|
wneuper@658
|
1050 |
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
|
wneuper@657
|
1051 |
*)
|
wneuper@657
|
1052 |
|
wneuper@660
|
1053 |
"------- Bsp 7.69";
|
wneuper@658
|
1054 |
states:=[];
|
wneuper@658
|
1055 |
CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
|
wneuper@658
|
1056 |
"Randbedingungen [y 0 = 0, y L = 0, y' 0 = 0, y' L = 0]",
|
wneuper@658
|
1057 |
"FunktionsVariable x"],
|
wneuper@658
|
1058 |
("Biegelinie.thy", ["Biegelinien"],
|
wneuper@658
|
1059 |
["IntegrierenUndKonstanteBestimmen2"] ))];
|
wneuper@658
|
1060 |
moveActiveRoot 1;
|
wneuper@658
|
1061 |
(*
|
wneuper@658
|
1062 |
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
|
wneuper@660
|
1063 |
##7.69## ordered subst 2x2
|
wneuper@660
|
1064 |
c_4 c_3
|
wneuper@660
|
1065 |
c c_2 c_3 c_4 c c_2 c_3 1:c_3 -> 2:c c_2 2: c c_2
|
wneuper@660
|
1066 |
c_3 c_4
|
wneuper@660
|
1067 |
c c_2 c_3 c c_2 c_3 c_4 3:c_4 -> 4:c c_2 c_3 1:c_3 -> 4:c c_2*)
|
wneuper@660
|
1068 |
val t = str2term"[0 = c_4 + 0 / (-1 * EI), \
|
wneuper@658
|
1069 |
\ 0 = c_4 + L * c_3 + (12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI), \
|
wneuper@658
|
1070 |
\ 0 = c_3 + 0 / (-1 * EI), \
|
wneuper@658
|
1071 |
\ 0 = c_3 + (6 * L * c_2 + 3 * L ^^^ 2 * c + -1 * L ^^^ 3 * q_0) / (-6 * EI)]";
|
wneuper@657
|
1072 |
|
wneuper@660
|
1073 |
"------- Bsp 7.70";
|
wneuper@658
|
1074 |
states:=[];
|
wneuper@658
|
1075 |
CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
|
wneuper@658
|
1076 |
"Randbedingungen [Q 0 = q_0 * L, M_b L = 0, y 0 = 0, y' 0 = 0]",
|
wneuper@658
|
1077 |
"FunktionsVariable x"],
|
wneuper@658
|
1078 |
("Biegelinie.thy", ["Biegelinien"],
|
wneuper@658
|
1079 |
["IntegrierenUndKonstanteBestimmen2"] ))];
|
wneuper@658
|
1080 |
moveActiveRoot 1;
|
wneuper@658
|
1081 |
(*
|
wneuper@658
|
1082 |
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
|
wneuper@660
|
1083 |
##7.70## |subst
|
wneuper@660
|
1084 |
c |
|
wneuper@660
|
1085 |
c c_2 |1:c -> 2:c_2
|
wneuper@660
|
1086 |
c_3 |
|
wneuper@663
|
1087 |
c_4 | GOON test methods @@@@@@@@@@@@@@@@@@@@@@@@@@@*)
|
wneuper@660
|
1088 |
|
wneuper@664
|
1089 |
"----- 7.70 go through the rewrites in met_eqsys_norm_4x4";
|
wneuper@660
|
1090 |
val t = str2term"[L * q_0 = c, \
|
wneuper@664
|
1091 |
\ 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2,\
|
wneuper@664
|
1092 |
\ 0 = c_4, \
|
wneuper@664
|
1093 |
\ 0 = c_3]";
|
wneuper@660
|
1094 |
val Some (t,_) =
|
wneuper@660
|
1095 |
rewrite_ thy e_rew_ord e_rls false (num_str commute_0_equality) t;
|
wneuper@660
|
1096 |
val Some (t,_) =
|
wneuper@660
|
1097 |
rewrite_ thy e_rew_ord e_rls false (num_str commute_0_equality) t;
|
wneuper@660
|
1098 |
val Some (t,_) =
|
wneuper@660
|
1099 |
rewrite_ thy e_rew_ord e_rls false (num_str commute_0_equality) t;
|
wneuper@664
|
1100 |
term2str t =
|
wneuper@664
|
1101 |
"[L * q_0 = c, (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2 = 0, c_4 = 0,\n c_3 = 0]";
|
wneuper@660
|
1102 |
val Some (t,_) =
|
wneuper@660
|
1103 |
rewrite_set_inst_ thy false subst simplify_System_parenthesized t;
|
wneuper@664
|
1104 |
term2str t =
|
wneuper@664
|
1105 |
"[L * q_0 = c, -1 * q_0 * L ^^^ 2 / 2 + (L * c + c_2) = 0, c_4 = 0, c_3 = 0]";
|
wneuper@660
|
1106 |
val Some (t,_) = rewrite_set_inst_ thy false subst isolate_bdvs_4x4 t;
|
wneuper@664
|
1107 |
term2str t =
|
wneuper@664
|
1108 |
"[c = (-1 * (L * q_0) + 0) / -1,\n L * c + c_2 = -1 * (-1 * q_0 * L ^^^ 2 / 2) + 0, c_4 = 0, c_3 = 0]";
|
wneuper@664
|
1109 |
val Some (t,_) =
|
wneuper@664
|
1110 |
rewrite_set_inst_ thy false subst simplify_System_parenthesized t;
|
wneuper@664
|
1111 |
term2str t ="[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_4 = 0, c_3 = 0]";
|
wneuper@664
|
1112 |
val Some (t,_) = rewrite_set_ thy false order_system t;
|
wneuper@664
|
1113 |
if term2str t ="[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_3 = 0, c_4 = 0]" then ()
|
wneuper@664
|
1114 |
else raise error "eqsystem.sml: exp 7.70 normalize 4x4 by rewrite changed";
|
wneuper@660
|
1115 |
|
wneuper@660
|
1116 |
|
wneuper@664
|
1117 |
"----- 7.70 with met normalize: ";
|
wneuper@663
|
1118 |
val fmz = ["equalities \
|
wneuper@664
|
1119 |
\[L * q_0 = c, \
|
wneuper@664
|
1120 |
\ 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2,\
|
wneuper@664
|
1121 |
\ 0 = c_4, \
|
wneuper@664
|
1122 |
\ 0 = c_3]",
|
wneuper@663
|
1123 |
"solveForVars [c, c_2, c_3, c_4]", "solution L"];
|
wneuper@663
|
1124 |
val (dI',pI',mI') =
|
wneuper@663
|
1125 |
("Biegelinie.thy",["linear", "system"],["no_met"]);
|
wneuper@663
|
1126 |
val p = e_pos'; val c = [];
|
wneuper@663
|
1127 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@664
|
1128 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@664
|
1129 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@664
|
1130 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@664
|
1131 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@664
|
1132 |
case nxt of (_,Apply_Method ["EqSystem", "normalize", "4x4"]) => ()
|
wneuper@664
|
1133 |
| _ => raise error "eqsystem.sml [EqSystem,normalize,4x4] specify";
|
wneuper@664
|
1134 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@664
|
1135 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@664
|
1136 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@664
|
1137 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@664
|
1138 |
|
wneuper@664
|
1139 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@664
|
1140 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@664
|
1141 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@664
|
1142 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@664
|
1143 |
if f2str f ="[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_3 = 0, c_4 = 0]"
|
wneuper@664
|
1144 |
then () else raise error "eqsystem.sml: exp 7.70 normalize 4x4 by met changed";
|
wneuper@664
|
1145 |
|
wneuper@664
|
1146 |
"----- 7.70 with met top_down_: ";
|
wneuper@665
|
1147 |
"--- scr [EqSystem,top_down_substitution,4x4] -- a saved trial";
|
wneuper@665
|
1148 |
(*---vvv-this script failed with if ?!?-------------------------------------*)
|
wneuper@665
|
1149 |
val str =
|
wneuper@665
|
1150 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@665
|
1151 |
\ (let e1_ = hd es_; \
|
wneuper@665
|
1152 |
\ v1_ = hd vs_; \
|
wneuper@665
|
1153 |
\ xxx = if lhs e1_ =!= v1_ \
|
wneuper@665
|
1154 |
\ then 0=0 \
|
wneuper@665
|
1155 |
\ else let e1_ = Take e1_; \
|
wneuper@665
|
1156 |
\ e1_ = (Rewrite_Set_Inst [(bdv_1, hd vs_), \
|
wneuper@665
|
1157 |
\ (bdv_2, hd (tl vs_))] \
|
wneuper@665
|
1158 |
\ isolate_bdvs False) e1_; \
|
wneuper@665
|
1159 |
\ e2_ = Take (hd (tl es_)); \
|
wneuper@665
|
1160 |
\ e2_ = (Substitute [e1__]) e2_ \
|
wneuper@665
|
1161 |
\ in [e1_, e2_])";
|
wneuper@665
|
1162 |
(*val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;*)
|
wneuper@665
|
1163 |
val str =
|
wneuper@665
|
1164 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@665
|
1165 |
\ (let e1_ = hd es_; \
|
wneuper@665
|
1166 |
\ v1_ = hd vs_; \
|
wneuper@665
|
1167 |
\ e2_ = Take (hd (tl es_)); \
|
wneuper@665
|
1168 |
\ e2_ = (Substitute [e1__]) e2_ \
|
wneuper@665
|
1169 |
\ in [e1_, e2_])";
|
wneuper@665
|
1170 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@665
|
1171 |
(*---^^^-OK-----------------------------------------------------------------*)
|
wneuper@665
|
1172 |
(*---vvv-NOT ok-------------------------------------------------------------*)
|
wneuper@665
|
1173 |
val str =
|
wneuper@665
|
1174 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@665
|
1175 |
\ (let e1_ = hd es_; \
|
wneuper@665
|
1176 |
\ v1_ = hd vs_; \
|
wneuper@665
|
1177 |
\ xxx = if ((lhs e1_) =!= v1_) then 1 else 2; \
|
wneuper@665
|
1178 |
\ e2_ = Take (hd (tl es_)); \
|
wneuper@665
|
1179 |
\ e2_ = (Substitute [e1__]) e2_ \
|
wneuper@665
|
1180 |
\ in [e1_, e2_])";
|
wneuper@665
|
1181 |
(*val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;*)
|
wneuper@665
|
1182 |
val str = "if lhs e1_ =!= v1_ then 1 else 2";
|
wneuper@665
|
1183 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@665
|
1184 |
|
wneuper@665
|
1185 |
val str = "let xxx = (if lhs e1_ =!= v1_ then 1 else 2) in xxx";
|
wneuper@665
|
1186 |
(*val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;*)
|
wneuper@665
|
1187 |
atomty sc; term2str sc;
|
wneuper@665
|
1188 |
|
wneuper@665
|
1189 |
"--- scr [EqSystem,top_down_substitution,4x4] -- adapted only to 7.70";
|
wneuper@665
|
1190 |
val str =
|
wneuper@665
|
1191 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@665
|
1192 |
\ (let e2__ = Take (hd (tl es_)); \
|
wneuper@665
|
1193 |
\ e2__ = ((Substitute [e1__]) @@ \
|
wneuper@665
|
1194 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@665
|
1195 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@665
|
1196 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@665
|
1197 |
\ isolate_bdvs False)) @@ \
|
wneuper@665
|
1198 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@665
|
1199 |
\ simplify_System False))) e2__;\
|
wneuper@665
|
1200 |
\ es__ = Take [e1__, e2__] \
|
wneuper@665
|
1201 |
\ in (Try (Rewrite_Set order_system False)) es__)"
|
wneuper@665
|
1202 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@665
|
1203 |
val str =
|
wneuper@665
|
1204 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@665
|
1205 |
\ (let e2__ = Take (nth_ 2 es_); \
|
wneuper@665
|
1206 |
\ e2__ = ((Substitute [e1__]) @@ \
|
wneuper@665
|
1207 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@665
|
1208 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@665
|
1209 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@665
|
1210 |
\ isolate_bdvs False)) @@ \
|
wneuper@665
|
1211 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, hd (tl vs_))]\
|
wneuper@665
|
1212 |
\ simplify_System False))) e2__;\
|
wneuper@665
|
1213 |
\ es__ = Take [e1__, e2__] \
|
wneuper@665
|
1214 |
\ in (Try (Rewrite_Set order_system False)) es__)"
|
wneuper@665
|
1215 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@665
|
1216 |
val str =
|
wneuper@665
|
1217 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@665
|
1218 |
\ (let e2__ = Take (nth_ 2 es_); \
|
wneuper@665
|
1219 |
\ e2__ = ((Substitute [e1__]) @@ \
|
wneuper@665
|
1220 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)] \
|
wneuper@665
|
1221 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@665
|
1222 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)]\
|
wneuper@665
|
1223 |
\ isolate_bdvs False)) @@ \
|
wneuper@665
|
1224 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)]\
|
wneuper@665
|
1225 |
\ simplify_System False))) e2__;\
|
wneuper@665
|
1226 |
\ es__ = Take [e1__, e2__] \
|
wneuper@665
|
1227 |
\ in (Try (Rewrite_Set order_system False)) es__)"
|
wneuper@665
|
1228 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@665
|
1229 |
val str =
|
wneuper@665
|
1230 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@665
|
1231 |
\ (let e2__ = Take (nth_ 2 es_); \
|
wneuper@665
|
1232 |
\ e2__ = ((Substitute [e1__]) @@ \
|
wneuper@665
|
1233 |
\ (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
|
wneuper@665
|
1234 |
\ (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
|
wneuper@665
|
1235 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@665
|
1236 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)] \
|
wneuper@665
|
1237 |
\ isolate_bdvs False)) @@ \
|
wneuper@665
|
1238 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)] \
|
wneuper@665
|
1239 |
\ norm_Rational False))) e2__; \
|
wneuper@665
|
1240 |
\ es__ = Take [e1__, e2__] \
|
wneuper@665
|
1241 |
\ in [])"
|
wneuper@665
|
1242 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@665
|
1243 |
val str =
|
wneuper@665
|
1244 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@665
|
1245 |
\ (let e2_ = Take (nth_ 2 es_); \
|
wneuper@665
|
1246 |
\ e2_ = ((Substitute [e1_]) @@ \
|
wneuper@665
|
1247 |
\ (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
|
wneuper@665
|
1248 |
\ (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
|
wneuper@665
|
1249 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@665
|
1250 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)] \
|
wneuper@665
|
1251 |
\ isolate_bdvs False)) @@ \
|
wneuper@665
|
1252 |
\ (Try (Rewrite_Set_Inst [(bdv_1, hd vs_),(bdv_2, nth_ 2 vs_)] \
|
wneuper@665
|
1253 |
\ norm_Rational False))) e2_; \
|
wneuper@665
|
1254 |
\ es_ = Take [e1_, e2_] \
|
wneuper@665
|
1255 |
\ in [e1_, e2_,e3_, e4_])"
|
wneuper@665
|
1256 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@665
|
1257 |
val str =
|
wneuper@665
|
1258 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@665
|
1259 |
\ (let e2_ = Take (nth_ 2 es_); \
|
wneuper@665
|
1260 |
\ e2_ = ((Substitute [e1_]) @@ \
|
wneuper@665
|
1261 |
\ (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
|
wneuper@665
|
1262 |
\ (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
|
wneuper@665
|
1263 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@665
|
1264 |
\ (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
|
wneuper@665
|
1265 |
\ (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
|
wneuper@665
|
1266 |
\ isolate_bdvs False)) @@ \
|
wneuper@665
|
1267 |
\ (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
|
wneuper@665
|
1268 |
\ (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
|
wneuper@665
|
1269 |
\ norm_Rational False))) e2_; \
|
wneuper@665
|
1270 |
\ es_ = Take [e1_, e2_] \
|
wneuper@665
|
1271 |
\ in [e1_, e2_,e3_, e4_])"
|
wneuper@665
|
1272 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@665
|
1273 |
(*---^^^-OK-----------------------------------------------------------------*)
|
wneuper@665
|
1274 |
val str =
|
wneuper@665
|
1275 |
"Script SolveSystemScript (es_::bool list) (vs_::real list) = \
|
wneuper@665
|
1276 |
\ (let e2_ = Take (nth_ 2 es_); \
|
wneuper@665
|
1277 |
\ e2_ = ((Substitute [e1_]) @@ \
|
wneuper@665
|
1278 |
\ (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
|
wneuper@665
|
1279 |
\ (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
|
wneuper@665
|
1280 |
\ simplify_System_parenthesized False)) @@ \
|
wneuper@665
|
1281 |
\ (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
|
wneuper@665
|
1282 |
\ (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
|
wneuper@665
|
1283 |
\ isolate_bdvs False)) @@ \
|
wneuper@665
|
1284 |
\ (Try (Rewrite_Set_Inst [(bdv_1,nth_ 1 vs_),(bdv_2,nth_ 2 vs_),\
|
wneuper@665
|
1285 |
\ (bdv_3,nth_ 3 vs_),(bdv_4,nth_ 4 vs_)]\
|
wneuper@665
|
1286 |
\ norm_Rational False))) e2_ \
|
wneuper@665
|
1287 |
\ in [e1_, e2_, nth_ 3 es_, nth_ 4 es_])"
|
wneuper@665
|
1288 |
val sc = ((inst_abs thy) o term_of o the o (parse thy)) str;
|
wneuper@665
|
1289 |
(*---vvv-NOT ok-------------------------------------------------------------*)
|
wneuper@665
|
1290 |
atomty sc; term2str sc;
|
wneuper@665
|
1291 |
|
wneuper@665
|
1292 |
|
wneuper@665
|
1293 |
"----- 7.70 with met top_down_: me";
|
wneuper@664
|
1294 |
val fmz = ["equalities \
|
wneuper@664
|
1295 |
\[c = L * q_0, L * c + c_2 = q_0 * L ^^^ 2 / 2, c_3 = 0, c_4 = 0]",
|
wneuper@664
|
1296 |
"solveForVars [c, c_2, c_3, c_4]", "solution L"];
|
wneuper@664
|
1297 |
val (dI',pI',mI') =
|
wneuper@664
|
1298 |
("Biegelinie.thy",["linear", "system"],["no_met"]);
|
wneuper@664
|
1299 |
val p = e_pos'; val c = [];
|
wneuper@664
|
1300 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@664
|
1301 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@664
|
1302 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@664
|
1303 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@664
|
1304 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@664
|
1305 |
case nxt of (_,Apply_Method ["EqSystem", "top_down_substitution", "4x4"]) => ()
|
wneuper@664
|
1306 |
| _ => raise error "eqsystem.sml [EqSystem,top_down_,4x4] specify";
|
wneuper@664
|
1307 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@665
|
1308 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@665
|
1309 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@665
|
1310 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@665
|
1311 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@665
|
1312 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@665
|
1313 |
if nxt = ("End_Proof'", End_Proof') andalso
|
wneuper@665
|
1314 |
f2str f = "[c = L * q_0, c_2 = -1 * L ^^^ 2 * q_0 / 2, c_3 = 0, c_4 = 0]"
|
wneuper@665
|
1315 |
then () else raise error "eqsystem.sml: 7.70 with met top_down_: me";
|
wneuper@660
|
1316 |
|
wneuper@660
|
1317 |
|
wneuper@660
|
1318 |
"------- Bsp 7.71";
|
wneuper@658
|
1319 |
states:=[];
|
wneuper@658
|
1320 |
CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
|
wneuper@658
|
1321 |
"Randbedingungen [M_b L = 0, y 0 = 0, y L = 0, y' 0 = 0]",
|
wneuper@658
|
1322 |
"FunktionsVariable x"],
|
wneuper@658
|
1323 |
("Biegelinie.thy", ["Biegelinien"],
|
wneuper@658
|
1324 |
["IntegrierenUndKonstanteBestimmen2"] ))];
|
wneuper@658
|
1325 |
moveActiveRoot 1;
|
wneuper@658
|
1326 |
(*
|
wneuper@658
|
1327 |
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
|
wneuper@660
|
1328 |
##7.71## |ordered |subst.singles (recurs) |2x2 |diagonal
|
wneuper@660
|
1329 |
c c_2 |c c_2 |1' |1': c c_2 |
|
wneuper@660
|
1330 |
c_4 | c_3 |2:c_3 -> 4' :c c_2 c_4 | |
|
wneuper@660
|
1331 |
c c_2 c_3 c_4 | c_4 |3' | |
|
wneuper@660
|
1332 |
c_3 |c c_2 c_3 c_4 |3:c_4 -> 4'':c c_2 |4'':c c_2 | *)
|
wneuper@659
|
1333 |
val t = str2term"[0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2, \
|
wneuper@658
|
1334 |
\ 0 = c_4 + 0 / (-1 * EI), \
|
wneuper@658
|
1335 |
\ 0 = c_4 + L * c_3 +(12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) /(-24 * EI),\
|
wneuper@658
|
1336 |
\ 0 = c_3 + 0 / (-1 * EI)]";
|
wneuper@658
|
1337 |
|
wneuper@660
|
1338 |
"------- Bsp 7.72a ---------------vvvvvvvvvvvvv Momentenlinie postponed";
|
wneuper@658
|
1339 |
states:=[];
|
wneuper@658
|
1340 |
CalcTree [(["Traegerlaenge L",
|
wneuper@658
|
1341 |
"Momentenlinie ((q_0 * L)/ 6 * x - q_0 /(6 * L) * x^3)",
|
wneuper@658
|
1342 |
"Biegelinie y",
|
wneuper@658
|
1343 |
"Randbedingungen [y 0 = 0, y L = 0]",
|
wneuper@658
|
1344 |
"FunktionsVariable x"],
|
wneuper@658
|
1345 |
("Biegelinie.thy", ["vonMomentenlinieZu","Biegelinien"],
|
wneuper@658
|
1346 |
["Biegelinien", "AusMomentenlinie"]))];
|
wneuper@658
|
1347 |
moveActiveRoot 1;
|
wneuper@658
|
1348 |
(*
|
wneuper@658
|
1349 |
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
|
wneuper@658
|
1350 |
*)
|
wneuper@658
|
1351 |
|
wneuper@660
|
1352 |
"------- Bsp 7.72b";
|
wneuper@658
|
1353 |
states:=[];
|
wneuper@658
|
1354 |
CalcTree [(["Traegerlaenge L","Streckenlast (q_0 / L * x)","Biegelinie y",
|
wneuper@658
|
1355 |
"Randbedingungen [M_b 0 = 0, M_b L = 0, y 0 = 0, y L = 0]",
|
wneuper@658
|
1356 |
"FunktionsVariable x"],
|
wneuper@658
|
1357 |
("Biegelinie.thy", ["Biegelinien"],
|
wneuper@658
|
1358 |
["IntegrierenUndKonstanteBestimmen2"] ))];
|
wneuper@658
|
1359 |
moveActiveRoot 1;
|
wneuper@658
|
1360 |
(*
|
wneuper@658
|
1361 |
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
|
wneuper@660
|
1362 |
##7.72b## |ord. |subst.singles |ord.triang.
|
wneuper@660
|
1363 |
c_2 | | |c_2
|
wneuper@660
|
1364 |
c c_2 | |1:c_2 -> 2':c |c_2 c
|
wneuper@660
|
1365 |
c_4 | | |
|
wneuper@660
|
1366 |
c c_2 c_3 c_4 | |3:c_4 -> 4':c c_2 c_3 |c_2 c c_3*)
|
wneuper@659
|
1367 |
val t = str2term"[0 = c_2, \
|
wneuper@658
|
1368 |
\ 0 = (6 * c_2 + 6 * L * c + -1 * L ^^^ 2 * q_0) / 6, \
|
wneuper@658
|
1369 |
\ 0 = c_4 + 0 / (-1 * EI), \
|
wneuper@658
|
1370 |
\ 0 = c_4 + L * c_3 + (60 * L ^^^ 2 * c_2 + 20 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-120 * EI)]";
|
wneuper@658
|
1371 |
|
wneuper@660
|
1372 |
"------- Bsp 7.73 ---------------vvvvvvvvvvvvv Momentenlinie postponed";
|
wneuper@658
|
1373 |
states:=[];
|
wneuper@658
|
1374 |
CalcTree [(["Traegerlaenge L","Momentenlinie ???",(*description unclear*)
|
wneuper@658
|
1375 |
"Biegelinie y",
|
wneuper@658
|
1376 |
"Randbedingungen [y L = 0, y' L = 0]",
|
wneuper@658
|
1377 |
"FunktionsVariable x"],
|
wneuper@658
|
1378 |
("Biegelinie.thy", ["vonMomentenlinieZu","Biegelinien"],
|
wneuper@658
|
1379 |
["Biegelinien", "AusMomentenlinie"]))];
|
wneuper@658
|
1380 |
moveActiveRoot 1;
|
wneuper@658
|
1381 |
(*
|
wneuper@658
|
1382 |
trace_script := true; autoCalculate 1 CompleteCalc; trace_script := false;
|
wneuper@658
|
1383 |
*)
|
wneuper@658
|
1384 |
|
wneuper@658
|
1385 |
|
wneuper@658
|
1386 |
"----------- 4x4 systems from Biegelinie -------------------------";
|
wneuper@658
|
1387 |
"----------- 4x4 systems from Biegelinie -------------------------";
|
wneuper@658
|
1388 |
"----------- 4x4 systems from Biegelinie -------------------------";
|
wneuper@663
|
1389 |
(*GOON replace this test with 7.70 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2*)
|
wneuper@658
|
1390 |
"----- Bsp 7.27";
|
wneuper@658
|
1391 |
val fmz = ["equalities \
|
wneuper@658
|
1392 |
\[0 = c_4, \
|
wneuper@658
|
1393 |
\ 0 = c_4 + L * c_3 +(12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI), \
|
wneuper@658
|
1394 |
\ 0 = c_2, \
|
wneuper@658
|
1395 |
\ 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2]",
|
wneuper@658
|
1396 |
"solveForVars [c, c_2, c_3, c_4]", "solution L"];
|
wneuper@658
|
1397 |
val (dI',pI',mI') =
|
wneuper@658
|
1398 |
("Biegelinie.thy",["normalize", "4x4", "linear", "system"],
|
wneuper@658
|
1399 |
["EqSystem","normalize","4x4"]);
|
wneuper@658
|
1400 |
val p = e_pos'; val c = [];
|
wneuper@658
|
1401 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@658
|
1402 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@658
|
1403 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@658
|
1404 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@658
|
1405 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@658
|
1406 |
"------------------------------------------- Apply_Method...";
|
wneuper@658
|
1407 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@658
|
1408 |
"[0 = c_4, \
|
wneuper@658
|
1409 |
\ 0 = c_4 + L * c_3 +\n (12 * L ^^^ 2 * c_2 + 4 * L ^^^ 3 * c + -1 * L ^^^ 4 * q_0) / (-24 * EI), \
|
wneuper@658
|
1410 |
\ 0 = c_2, \
|
wneuper@658
|
1411 |
\ 0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2]";
|
wneuper@658
|
1412 |
"------------------------------------------- simplify_System_parenthesized...";
|
wneuper@658
|
1413 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@658
|
1414 |
"[0 = c_4, \
|
wneuper@658
|
1415 |
\ 0 = -1 * q_0 * L ^^^ 4 / (-24 * EI) + \
|
wneuper@658
|
1416 |
\ (4 * L ^^^ 3 * c / (-24 * EI) + \
|
wneuper@658
|
1417 |
\ (12 * L ^^^ 2 * c_2 / (-24 * EI) + \
|
wneuper@658
|
1418 |
\ (L * c_3 + c_4))), \
|
wneuper@658
|
1419 |
\ 0 = c_2, \
|
wneuper@658
|
1420 |
\ 0 = -1 * q_0 * L ^^^ 2 / 2 + (L * c + c_2)]";
|
wneuper@658
|
1421 |
(*? "(4 * L ^^^ 3 / (-24 * EI) * c" statt "(4 * L ^^^ 3 * c / (-24 * EI)" ?*)
|
wneuper@658
|
1422 |
"------------------------------------------- isolate_bdvs...";
|
wneuper@658
|
1423 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@658
|
1424 |
"[c_4 = 0,\
|
wneuper@658
|
1425 |
\ c_4 = 0 + -1 * (-1 * q_0 * L ^^^ 4 / (-24 * EI)) + -1 * (4 * L ^^^ 3 * c / (-24 * EI)) + -1 * (12 * L ^^^ 2 * c_2 / (-24 * EI)) + -1 * (L * c_3),\
|
wneuper@658
|
1426 |
\ c_2 = 0, \
|
wneuper@658
|
1427 |
\ c_2 = 0 + -1 * (-1 * q_0 * L ^^^ 2 / 2) + -1 * (L * c)]";
|
wneuper@658
|
1428 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@657
|
1429 |
|
wneuper@657
|
1430 |
|
wneuper@657
|
1431 |
|
wneuper@445
|
1432 |
(*
|
wneuper@445
|
1433 |
use"../smltest/IsacKnowledge/eqsystem.sml";
|
wneuper@445
|
1434 |
use"eqsystem.sml";
|
wneuper@445
|
1435 |
*)
|