neuper@52065
|
1 |
(* Title: All tests on isac (some outcommented since Isabelle2002-->2009-2)
|
neuper@41943
|
2 |
Author: Walther Neuper 101001
|
wneuper@59258
|
3 |
(c) copyright due to license terms.
|
neuper@41943
|
4 |
|
neuper@52101
|
5 |
Isac's tests are organised parallel to sources:
|
neuper@52101
|
6 |
"~~/test/Tools/isac" has same directory structure as "~~/src/Tools/isac"
|
neuper@52101
|
7 |
plus
|
neuper@52065
|
8 |
~~/test/Tools/isac/ADDTESTS
|
neuper@52101
|
9 |
~~/test/Tools/isac/Minisubpbl: the Lucas-Interpreter's core functionality
|
wneuper@59323
|
10 |
-------------------------------------------------------------------------------
|
neuper@52065
|
11 |
|
wneuper@59323
|
12 |
Prepare running tests: see below
|
wneuper@59323
|
13 |
Run tests:
|
neuper@52065
|
14 |
$ cd /usr/local/isabisac/
|
wneuper@59323
|
15 |
$ export ISABELLE_VERSION=2015 # for libisabelle
|
neuper@52065
|
16 |
$ ./bin/isabelle jedit -l Isac test/Tools/isac/Test_Isac.thy &
|
neuper@41943
|
17 |
*)
|
neuper@41943
|
18 |
|
wneuper@59258
|
19 |
section \<open>Prepare running tests\<close>
|
wneuper@59258
|
20 |
text \<open>
|
wneuper@59323
|
21 |
Isac encapsulates code as much as possible in structures without open. TODO ProgLang.
|
wneuper@59258
|
22 |
This policy conflicts with those tests, which go into functions to details
|
wneuper@59258
|
23 |
not declared in the signatures.
|
wneuper@59258
|
24 |
|
wneuper@59258
|
25 |
In order to maintain these tests without changes, this has to be done before running tests:
|
wneuper@59323
|
26 |
(1) Extend signatures for tests by
|
wneuper@59323
|
27 |
~~$ ./xcoding-to-test.sh
|
wneuper@59323
|
28 |
~~$ ./zcoding-to-test.sh # -"- + go back to Test_Isac.thy
|
wneuper@59323
|
29 |
Running Test_Isac.thy opens all structures, see code after "begin" below.
|
wneuper@59323
|
30 |
(2) Clean signatures for coding
|
wneuper@59323
|
31 |
~~$ ./xtest-to-coding.sh
|
wneuper@59323
|
32 |
~~$ ./xtest-to-coding.sh # -"- + go back to coding (!update thy!)
|
wneuper@59323
|
33 |
|
wneuper@59323
|
34 |
********************* don't forget (2) BEFORE pushing to repository *********************
|
wneuper@59323
|
35 |
|
wneuper@59323
|
36 |
The above bash files accomplish query replace in src/Tools/isac:
|
wneuper@59261
|
37 |
\<clubsuit>--- ! aktivate for Test_Isac BEGIN ---\* )\<clubsuit> \<longrightarrow> \<clubsuit>--- ! aktivate for Test_Isac BEGIN ---\*)\<clubsuit>
|
wneuper@59261
|
38 |
\<clubsuit>( *\--- ! aktivate for Test_Isac END ---\<clubsuit> \<longrightarrow> \<clubsuit>(*\--- ! aktivate for Test_Isac END ---\<clubsuit>
|
wneuper@59261
|
39 |
^^^ in signature outcommented, ^^^ NOT outcommented,
|
wneuper@59261
|
40 |
this is status for coding this is status for tests
|
wneuper@59258
|
41 |
\<close>
|
wneuper@59258
|
42 |
|
wneuper@59366
|
43 |
section \<open>code for copy & paste\<close>
|
wneuper@59366
|
44 |
text \<open>
|
wneuper@59366
|
45 |
"~~~~~ fun , args:"; val () = ();
|
wneuper@59366
|
46 |
"~~~~~ and , args:"; val () = ();
|
wneuper@59366
|
47 |
|
wneuper@59366
|
48 |
"~~~~~ to return val:"; val () = ();
|
wneuper@59366
|
49 |
|
wneuper@59366
|
50 |
\<close>
|
wneuper@59258
|
51 |
section \<open>Run the tests\<close>
|
wneuper@59258
|
52 |
text \<open>
|
wneuper@59258
|
53 |
* say "OK" to the popup asking for theories to be loaded
|
wneuper@59258
|
54 |
* watch the <Theories> window for errors in the "imports" below
|
wneuper@59258
|
55 |
\<close>
|
neuper@52073
|
56 |
|
s1210629013@55378
|
57 |
theory Test_Isac imports Build_Thydata
|
wneuper@59364
|
58 |
(*/---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------\*)
|
neuper@52116
|
59 |
"ADDTESTS/accumulate-val/Thy_All"
|
neuper@41980
|
60 |
"ADDTESTS/Ctxt"
|
neuper@42048
|
61 |
"ADDTESTS/test-depend/Build_Test"
|
neuper@42023
|
62 |
"ADDTESTS/All_Ctxt"
|
wneuper@59202
|
63 |
"ADDTESTS/Test_Units"
|
neuper@42179
|
64 |
"ADDTESTS/course/phst11/T1_Basics"
|
neuper@42092
|
65 |
"ADDTESTS/course/phst11/T2_Rewriting"
|
neuper@42179
|
66 |
"ADDTESTS/course/phst11/T3_MathEngine"
|
neuper@52065
|
67 |
"ADDTESTS/file-depend/BuildC_Test"
|
neuper@52102
|
68 |
"ADDTESTS/session-get_theory/Foo"
|
wneuper@59144
|
69 |
(*"ADDTESTS/course/SignalProcess/Build_Inverse_Z_Transform"
|
wneuper@59144
|
70 |
ADDTESTS/------------------------------------------- see end of tests *)
|
wneuper@59194
|
71 |
(*"~~/test/Pure/Isar/Test_Parsers" dropped Isabelle2014-->2015 *)
|
neuper@52089
|
72 |
(*"~~/test/Pure/Isar/Pure/Isar/Struct_Deriv" lost at update 2009-2-->2011*)
|
neuper@52073
|
73 |
"~~/test/Pure/Isar/Test_Parse_Term"
|
wneuper@59364
|
74 |
(*/---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------\*)
|
neuper@55364
|
75 |
"~~/test/Tools/isac/Interpret/ptyps" (* setup for ptyps.sml *)
|
neuper@55366
|
76 |
"~~/test/Tools/isac/ProgLang/calculate" (* setup for calculate.sml*)
|
wneuper@59388
|
77 |
|
wneuper@59388
|
78 |
|
wneuper@59388
|
79 |
|
wneuper@59362
|
80 |
"~~/test/Tools/isac/ProgLang/scrtools" (* setup for scrtools.sml *)
|
s1210629013@55377
|
81 |
"~~/test/Tools/isac/Knowledge/integrate" (* setup for integrate.sml*)
|
wneuper@59364
|
82 |
(*\---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------/*)
|
neuper@52168
|
83 |
"~~/src/Tools/isac/Knowledge/GCD_Poly_OLD" (*not imported by Isac.thy*)
|
neuper@52168
|
84 |
"~~/src/Tools/isac/Knowledge/GCD_Poly_FP" (*not imported by Isac.thy*)
|
wneuper@59364
|
85 |
(*\---------------------- do Minisubpbl before ADDTESTS/All_Ctxt ------------------------------/*)
|
neuper@52168
|
86 |
|
neuper@41943
|
87 |
begin
|
s1210629013@55442
|
88 |
|
s1210629013@55446
|
89 |
ML {*
|
wneuper@59258
|
90 |
(*/-------------------------------------------------------- ! aktivate for Test_Isac BEGIN ---\*)
|
wneuper@59318
|
91 |
(* these vvv test, if funs are intermediately opened in structure
|
wneuper@59318
|
92 |
in case of errors here consider ~~/./xtest-to-coding.sh *)
|
wneuper@59261
|
93 |
open Kernel;
|
wneuper@59262
|
94 |
open Math_Engine; CalcTreeTEST;
|
wneuper@59262
|
95 |
open Lucin; appy;
|
wneuper@59262
|
96 |
open Inform; cas_input;
|
wneuper@59263
|
97 |
open Rtools; trtas2str;
|
wneuper@59265
|
98 |
open Chead; pt_extract;
|
wneuper@59316
|
99 |
open Generate; (* NONE *)
|
wneuper@59276
|
100 |
open Ctree; append_problem;
|
wneuper@59269
|
101 |
open Specify; show_ptyps;
|
wneuper@59316
|
102 |
open Applicable; mk_set;
|
wneuper@59316
|
103 |
open Solve; (* NONE *)
|
wneuper@59299
|
104 |
open Selem; e_fmz;
|
wneuper@59308
|
105 |
open Stool; transfer_asms_from_to;
|
wneuper@59316
|
106 |
open Tac; (* NONE *)
|
wneuper@59316
|
107 |
open Model; (* NONE *)
|
wneuper@59384
|
108 |
open LTool; rule2stac;
|
wneuper@59384
|
109 |
open Rewrite; mk_thm;
|
wneuper@59388
|
110 |
open Calc; get_pair;
|
wneuper@59395
|
111 |
open TermC; ;
|
wneuper@59258
|
112 |
(*\--- ! aktivate for Test_Isac END ----------------------------------------------------------/*)
|
wneuper@59258
|
113 |
*}
|
wneuper@59366
|
114 |
|
wneuper@59258
|
115 |
ML {*
|
wneuper@59366
|
116 |
"~~~~~ fun xxx, args:"; val () = ();
|
wneuper@59356
|
117 |
*} ML {*
|
wneuper@59356
|
118 |
*} ML {*
|
wneuper@59356
|
119 |
*}
|
wneuper@59356
|
120 |
|
wneuper@59356
|
121 |
ML {*
|
s1210629013@55446
|
122 |
KEStore_Elems.set_ref_thy @{theory};
|
wneuper@59248
|
123 |
(*fun autoCalculate' cI auto = autoCalculate cI auto (*|> Future.join*)*);
|
s1210629013@55446
|
124 |
*}
|
s1210629013@55442
|
125 |
|
wneuper@59372
|
126 |
(*---------------------- check test file by testfile -------------------------------------------
|
wneuper@59372
|
127 |
---------------------- check test file by testfile -------------------------------------------*)
|
neuper@52119
|
128 |
section {* trials with Isabelle's functions *}
|
neuper@52119
|
129 |
ML {*"%%%%%%%%%%%%%%%%% start Isabelle %%%%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@52119
|
130 |
ML_file "~~/test/Pure/General/alist.ML"
|
neuper@52119
|
131 |
ML_file "~~/test/Pure/General/basics.ML"
|
neuper@52119
|
132 |
ML_file "~~/test/Pure/General/scan.ML"
|
wneuper@59115
|
133 |
ML_file "~~/test/Pure/PIDE/xml.ML"
|
neuper@52119
|
134 |
ML {*"%%%%%%%%%%%%%%%%% end Isabelle %%%%%%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@52119
|
135 |
|
neuper@48895
|
136 |
section {* test ML Code of isac *}
|
neuper@48895
|
137 |
ML {*"%%%%%%%%%%%%%%%%% start ProgLang.thy %%%%%%%%%%%%%%%%%%%";*}
|
neuper@52065
|
138 |
ML_file "library.sml"
|
neuper@52065
|
139 |
ML_file "calcelems.sml"
|
wneuper@59356
|
140 |
(*---------------------- do Minisubpbl before ADDTESTS/All_Ctxt --------------------------------
|
wneuper@59388
|
141 |
---------------------- do Minisubpbl before ADDTESTS/All_Ctxt --------------------------------*)
|
wneuper@59356
|
142 |
ML_file "kestore.sml" (* setup in ADDTEST/accumulate-val/lucas_interpreter.sml*)
|
wneuper@59357
|
143 |
ML_file "ProgLang/termC.sml"
|
wneuper@59359
|
144 |
ML_file "ProgLang/calculate.sml" (* requires setup from calculate.thy *)
|
wneuper@59358
|
145 |
ML_file "ProgLang/rewrite.sml"
|
neuper@52148
|
146 |
ML_file "ProgLang/listC.sml"
|
neuper@52065
|
147 |
ML_file "ProgLang/scrtools.sml"
|
neuper@52065
|
148 |
ML_file "ProgLang/tools.sml"
|
wneuper@59362
|
149 |
(*---------------------- do Minisubpbl before ADDTESTS/All_Ctxt --------------------------------
|
wneuper@59366
|
150 |
---------------------- do Minisubpbl before ADDTESTS/All_Ctxt --------------------------------*)
|
neuper@41943
|
151 |
ML {*"%%%%%%%%%%%%%%%%% end ProgLang.thy %%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41986
|
152 |
ML {*"%%%%%%%%%%%%%%%%% start Minisubpbl %%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@52065
|
153 |
ML_file "Minisubpbl/000-comments.sml"
|
neuper@52065
|
154 |
ML_file "Minisubpbl/100-init-rootpbl.sml"
|
neuper@52065
|
155 |
ML_file "Minisubpbl/150-add-given.sml"
|
neuper@52065
|
156 |
ML_file "Minisubpbl/200-start-method.sml"
|
neuper@52065
|
157 |
ML_file "Minisubpbl/300-init-subpbl.sml"
|
neuper@52065
|
158 |
ML_file "Minisubpbl/400-start-meth-subpbl.sml"
|
neuper@52065
|
159 |
ML_file "Minisubpbl/490-nxt-Check_Postcond.sml"
|
neuper@52065
|
160 |
ML_file "Minisubpbl/500-met-sub-to-root.sml"
|
neuper@52065
|
161 |
ML_file "Minisubpbl/530-error-Check_Elementwise.sml"
|
neuper@52065
|
162 |
ML_file "Minisubpbl/600-postcond.sml"
|
akargl@42188
|
163 |
ML {*"%%%%%%%%%%%%%%%%% end Minisubpbl.thy %%%%%%%%%%%%%%%%%%%%%%%";*}
|
wneuper@59364
|
164 |
ML {*"%%%%%%%%%%%%%%%%% start Interpret.thy %%%%%%%%%%%%%%%%%%";*}
|
neuper@52065
|
165 |
ML_file "Interpret/mstools.sml"
|
neuper@52065
|
166 |
ML_file "Interpret/ctree.sml" (*!...!see(25)*)
|
neuper@55364
|
167 |
ML_file "Interpret/ptyps.sml" (* requires setup from ptyps.thy *)
|
neuper@48891
|
168 |
ML {* (*check_unsynchronized_ref (); ==== trick on error: CUT AND PASTE THIS LINE =========*) *}
|
neuper@48895
|
169 |
(*TRICK DOESN'T WORK: get_pbt not found: ["IsacKnowledge","Diff","Theorems","diff_sin_chain"]*)
|
neuper@52065
|
170 |
ML_file "Interpret/generate.sml"
|
neuper@48895
|
171 |
(*WITHOUT inhibit exn WN1130621 Isabelle2012-->13 !thehier! THIS ERROR OCCURS:
|
neuper@48895
|
172 |
... SAME ERROR HERE ON ISABELLE2012 AS IN ISAC ON ISABELLE2011*)
|
neuper@52065
|
173 |
ML_file "Interpret/calchead.sml"
|
wneuper@59252
|
174 |
ML_file "Interpret/appl.sml" (*complete "WEGEN INTERMED TESTCODE" *)
|
wneuper@55498
|
175 |
ML_file "Interpret/rewtools.sml"
|
neuper@52065
|
176 |
ML_file "Interpret/script.sml"
|
neuper@52065
|
177 |
ML_file "Interpret/solve.sml"
|
neuper@52065
|
178 |
ML_file "Interpret/inform.sml"
|
neuper@48895
|
179 |
(*WITHOUT inhibit exn WN1130621 Isabelle2012-->13 !thehier! THIS ERROR OCCURS:
|
neuper@48895
|
180 |
... SAME ERROR HERE ON ISABELLE2012 AS IN ISAC ON ISABELLE2011*)
|
neuper@52105
|
181 |
ML_file "Interpret/mathengine.sml" (*!part. WN130804: +check Interpret/me.sml*)
|
wneuper@59395
|
182 |
ML {*
|
wneuper@59395
|
183 |
"----------- fun autoCalculate -----------------------------------";
|
wneuper@59395
|
184 |
reset_states ();
|
wneuper@59395
|
185 |
CalcTree (*ATTENTION: encode_fmz ... unlike CalcTreeTEST*)
|
wneuper@59395
|
186 |
[(["functionTerm (x^2 + 1)", "integrateBy x", "antiDerivative FF"],
|
wneuper@59395
|
187 |
("Integrate", ["integrate", "function"], ["diff", "integration"]))];
|
wneuper@59395
|
188 |
Iterator 1;
|
wneuper@59395
|
189 |
moveActiveRoot 1;
|
wneuper@59395
|
190 |
(*-----since Model_Problem + complete_mod_ in case cas of SOME-----*
|
wneuper@59395
|
191 |
modeling is skipped FIXME
|
wneuper@59395
|
192 |
see test/../interface -- solve_linear as rootpbl FE -- for OTHER expl:
|
wneuper@59395
|
193 |
setNextTactic 1 (Add_Given "equality (1 + -1 * 2 + x = 0)");
|
wneuper@59395
|
194 |
autoCalculate 1 (Step 1); refFormula 1 (get_pos 1 1); (*equality added*);
|
wneuper@59395
|
195 |
|
wneuper@59395
|
196 |
fetchProposedTactic 1;
|
wneuper@59395
|
197 |
setNextTactic 1 (Add_Given "solveFor x");
|
wneuper@59395
|
198 |
autoCalculate 1 (Step 1); refFormula 1 (get_pos 1 1);
|
wneuper@59395
|
199 |
|
wneuper@59395
|
200 |
fetchProposedTactic 1;
|
wneuper@59395
|
201 |
setNextTactic 1 (Add_Find "solutions L");
|
wneuper@59395
|
202 |
autoCalculate 1 (Step 1); refFormula 1 (get_pos 1 1);
|
wneuper@59395
|
203 |
|
wneuper@59395
|
204 |
fetchProposedTactic 1;
|
wneuper@59395
|
205 |
setNextTactic 1 (Specify_Theory "Test");
|
wneuper@59395
|
206 |
autoCalculate 1 (Step 1); refFormula 1 (get_pos 1 1);
|
wneuper@59395
|
207 |
*-----since Model_Problem + complete_mod_ in case cas of SOME-----*)
|
wneuper@59395
|
208 |
autoCalculate 1 (Step 1);
|
wneuper@59395
|
209 |
"----- step 1 ---";
|
wneuper@59395
|
210 |
autoCalculate 1 (Step 1);
|
wneuper@59395
|
211 |
"----- step 2 ---";
|
wneuper@59395
|
212 |
autoCalculate 1 (Step 1);
|
wneuper@59395
|
213 |
"----- step 3 ---";
|
wneuper@59395
|
214 |
autoCalculate 1 (Step 1);
|
wneuper@59395
|
215 |
*} ML {*
|
wneuper@59395
|
216 |
"----- step 4 ---";
|
wneuper@59395
|
217 |
autoCalculate 1 (Step 1);
|
wneuper@59395
|
218 |
val (ptp as (_, p), _) = get_calc 1; val (Form t,_,_) = pt_extract ptp;
|
wneuper@59395
|
219 |
*} ML {*
|
wneuper@59395
|
220 |
term2str t = "c + x + 1 / (2 + 1) * x ^^^ (2 + 1)";
|
wneuper@59395
|
221 |
*} ML {*
|
wneuper@59395
|
222 |
"----- step 5 ---";
|
wneuper@59395
|
223 |
autoCalculate 1 (Step 1);
|
wneuper@59395
|
224 |
val (ptp as (_, p), _) = get_calc 1; val (Form t,_,_) = pt_extract ptp;
|
wneuper@59395
|
225 |
*} ML {*
|
wneuper@59395
|
226 |
term2str t;
|
wneuper@59395
|
227 |
*} ML {*
|
wneuper@59395
|
228 |
"----- step 6 ---";
|
wneuper@59395
|
229 |
autoCalculate 1 (Step 1);
|
wneuper@59395
|
230 |
val (ptp as (_, p), _) = get_calc 1; val (Form t,_,_) = pt_extract ptp;
|
wneuper@59395
|
231 |
*} ML {*
|
wneuper@59395
|
232 |
term2str t;
|
wneuper@59395
|
233 |
*} ML {*
|
wneuper@59395
|
234 |
"----- step 7 ---";
|
wneuper@59395
|
235 |
autoCalculate 1 (Step 1);
|
wneuper@59395
|
236 |
val (ptp as (_, p), _) = get_calc 1; val (Form t,_,_) = pt_extract ptp;
|
wneuper@59395
|
237 |
*} ML {*
|
wneuper@59395
|
238 |
term2str t;
|
wneuper@59395
|
239 |
*} ML {*
|
wneuper@59395
|
240 |
"----- step 8 ---";
|
wneuper@59395
|
241 |
autoCalculate 1 (Step 1);
|
wneuper@59395
|
242 |
val (ptp as (_, p), _) = get_calc 1;
|
wneuper@59395
|
243 |
val (Form t,_,_) = pt_extract ptp;
|
wneuper@59395
|
244 |
|
wneuper@59395
|
245 |
*} ML {*
|
wneuper@59395
|
246 |
*} ML {*
|
wneuper@59395
|
247 |
term2str t
|
wneuper@59395
|
248 |
*} ML {*
|
wneuper@59395
|
249 |
if term2str t = "c + x + 1 / 3 * x ^^^ 3" andalso p = ([], Res) then ()
|
wneuper@59395
|
250 |
else error "mathengine.sml -- fun autoCalculate -- end";
|
wneuper@59395
|
251 |
*} ML {*
|
wneuper@59395
|
252 |
*} ML {*
|
wneuper@59395
|
253 |
*}
|
neuper@41943
|
254 |
ML {*"%%%%%%%%%%%%%%%%% end Interpret.thy %%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41943
|
255 |
ML {*"%%%%%%%%%%%%%%%%% start xmlsrc.thy %%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@52065
|
256 |
ML_file "xmlsrc/mathml.sml" (*part.*)
|
neuper@52065
|
257 |
ML_file "xmlsrc/datatypes.sml" (*TODO/part.*)
|
neuper@52065
|
258 |
ML_file "xmlsrc/pbl-met-hierarchy.sml"(*TODO after 2009-2/part.*)
|
neuper@55408
|
259 |
ML_file "xmlsrc/thy-hierarchy.sml"
|
neuper@52065
|
260 |
ML_file "xmlsrc/interface-xml.sml" (*TODO after 2009-2*)
|
neuper@41943
|
261 |
ML {*"%%%%%%%%%%%%%%%%% end xmlsrc.thy %%%%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41943
|
262 |
ML {*"%%%%%%%%%%%%%%%%% start Frontend.thy %%%%%%%%%%%%%%%%%%%";*}
|
neuper@52065
|
263 |
ML_file "Frontend/messages.sml"
|
neuper@52065
|
264 |
ML_file "Frontend/states.sml"
|
neuper@52065
|
265 |
ML_file "Frontend/interface.sml"
|
neuper@52112
|
266 |
ML_file "Frontend/use-cases.sml"
|
neuper@48895
|
267 |
(*WITHOUT inhibit exn WN1130621 Isabelle2012-->13 !thehier! THIS ERROR OCCURS:
|
neuper@48895
|
268 |
... SAME ERROR HERE ON ISABELLE2012 AS IN ISAC ON ISABELLE2011*)
|
neuper@52065
|
269 |
ML_file "print_exn_G.sml"
|
neuper@41943
|
270 |
ML {*"%%%%%%%%%%%%%%%%% end Frontend.thy %%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@48895
|
271 |
ML {*"%%%%%%%%%%%%%%%%% start Knowledge %%%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@52065
|
272 |
ML_file "Knowledge/delete.sml"
|
neuper@52065
|
273 |
ML_file "Knowledge/descript.sml"
|
neuper@52065
|
274 |
ML_file "Knowledge/atools.sml"
|
neuper@52065
|
275 |
ML_file "Knowledge/simplify.sml"
|
neuper@52065
|
276 |
ML_file "Knowledge/poly.sml"
|
wneuper@59370
|
277 |
ML_file "Knowledge/gcd_poly_ml.sml"
|
wneuper@59370
|
278 |
ML_file "Knowledge/gcd_poly_winkler.sml" (*must be after gcd_poly_ml.sml: redefines functions*)
|
wneuper@59370
|
279 |
ML_file "Knowledge/rational.sml"
|
wneuper@59370
|
280 |
ML_file "Knowledge/equation.sml"
|
wneuper@59370
|
281 |
ML_file "Knowledge/root.sml"
|
wneuper@59370
|
282 |
ML_file "Knowledge/lineq.sml"
|
wneuper@59370
|
283 |
(*ML_file "Knowledge/rooteq.sml" some complicated equations not recovered from 2002 *)
|
wneuper@59370
|
284 |
ML_file "Knowledge/rateq.sml" (*some complicated equations not recovered from 2002 *)
|
wneuper@59370
|
285 |
ML_file "Knowledge/rootrat.sml"
|
wneuper@59370
|
286 |
ML_file "Knowledge/rootrateq.sml"(*ome complicated equations not recovered from 2002 *)
|
neuper@52065
|
287 |
ML_file "Knowledge/partial_fractions.sml"
|
neuper@52105
|
288 |
ML_file "Knowledge/polyeq.sml"
|
neuper@52105
|
289 |
(*ML_file "Knowledge/rlang.sml" much to clean up, similar tests in other files *)
|
neuper@52065
|
290 |
ML_file "Knowledge/calculus.sml"
|
neuper@52065
|
291 |
ML_file "Knowledge/trig.sml"
|
neuper@52065
|
292 |
(*ML_file "Knowledge/logexp.sml" not included as stuff for presentation of authoring*)
|
neuper@52065
|
293 |
ML_file "Knowledge/diff.sml"
|
neuper@52065
|
294 |
ML_file "Knowledge/integrate.sml"
|
wneuper@59395
|
295 |
|
wneuper@59395
|
296 |
ML {*
|
wneuper@59395
|
297 |
*} ML {*
|
wneuper@59395
|
298 |
"----------- simplify by ruleset reducing make_ratpoly_in";
|
wneuper@59395
|
299 |
val thy = @{theory "Isac"};
|
wneuper@59395
|
300 |
"===== test 1";
|
wneuper@59395
|
301 |
val t = str2t "1/EI * (L * q_0 * x / 2 + -1 * q_0 * x^^^2 / 2)";
|
wneuper@59395
|
302 |
|
wneuper@59395
|
303 |
"----- stepwise from the rulesets in simplify_Integral and below-----";
|
wneuper@59395
|
304 |
val rls = norm_Rational_noadd_fractions;
|
wneuper@59395
|
305 |
case rewrite_set_inst_ thy true subs rls t of
|
wneuper@59395
|
306 |
SOME _ => error "integrate.sml simplify by ruleset norm_Rational_.#2"
|
wneuper@59395
|
307 |
| NONE => ();
|
wneuper@59395
|
308 |
|
wneuper@59395
|
309 |
"===== test 2";
|
wneuper@59395
|
310 |
val rls = order_add_mult_in;
|
wneuper@59395
|
311 |
val SOME (t,[]) = rewrite_set_ thy true rls t;
|
wneuper@59395
|
312 |
if term2str t = "1 / EI * (L * (q_0 * x) / 2 + -1 * (q_0 * x ^^^ 2) / 2)" then()
|
wneuper@59395
|
313 |
else error "integrate.sml simplify by ruleset order_add_mult_in #2";
|
wneuper@59395
|
314 |
|
wneuper@59395
|
315 |
"===== test 3";
|
wneuper@59395
|
316 |
val rls = discard_parentheses;
|
wneuper@59395
|
317 |
val SOME (t,[]) = rewrite_set_ thy true rls t;
|
wneuper@59395
|
318 |
if term2str t = "1 / EI * (L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2)" then ()
|
wneuper@59395
|
319 |
else error "integrate.sml simplify by ruleset discard_parenth.. #3";
|
wneuper@59395
|
320 |
|
wneuper@59395
|
321 |
"===== test 4";
|
wneuper@59395
|
322 |
val rls =
|
wneuper@59395
|
323 |
(append_rls "separate_bdv" collect_bdv
|
wneuper@59395
|
324 |
[Thm ("separate_bdv", num_str @{thm separate_bdv}),
|
wneuper@59395
|
325 |
(*"?a * ?bdv / ?b = ?a / ?b * ?bdv"*)
|
wneuper@59395
|
326 |
Thm ("separate_bdv_n", num_str @{thm separate_bdv_n}),
|
wneuper@59395
|
327 |
(*"?a * ?bdv ^^^ ?n / ?b = ?a / ?b * ?bdv ^^^ ?n"*)
|
wneuper@59395
|
328 |
Thm ("separate_1_bdv", num_str @{thm separate_1_bdv}),
|
wneuper@59395
|
329 |
(*"?bdv / ?b = (1 / ?b) * ?bdv"*)
|
wneuper@59395
|
330 |
Thm ("separate_1_bdv_n", num_str @{thm separate_1_bdv_n})
|
wneuper@59395
|
331 |
(*"?bdv ^^^ ?n / ?b = 1 / ?b * ?bdv ^^^ ?n"*)
|
wneuper@59395
|
332 |
]);
|
wneuper@59395
|
333 |
(*show_types := true; --- do we need type-constraint in thms? *)
|
wneuper@59395
|
334 |
@{thm separate_bdv}; (*::?'a does NOT rewrite here WITHOUT type constraint*)
|
wneuper@59395
|
335 |
@{thm separate_bdv_n}; (*::real ..because of ^^^, rewrites*)
|
wneuper@59395
|
336 |
@{thm separate_1_bdv}; (*::?'a*)
|
wneuper@59395
|
337 |
val xxx = num_str @{thm separate_1_bdv}; (*::?'a*)
|
wneuper@59395
|
338 |
@{thm separate_1_bdv_n}; (*::real ..because of ^^^*)
|
wneuper@59395
|
339 |
(*show_types := false; --- do we need type-constraint in thms? YES ?!?!?!*)
|
wneuper@59395
|
340 |
|
wneuper@59395
|
341 |
val SOME (t, []) = rewrite_set_inst_ thy true subs rls t;
|
wneuper@59395
|
342 |
if term2str t = "1 / EI * (L * q_0 / 2 * x + -1 * q_0 / 2 * x ^^^ 2)" then ()
|
wneuper@59395
|
343 |
else error "integrate.sml simplify by ruleset separate_bdv.. #4";
|
wneuper@59395
|
344 |
|
wneuper@59395
|
345 |
"===== test 5";
|
wneuper@59395
|
346 |
val t = str2t "1/EI * (L * q_0 * x / 2 + -1 * q_0 * x^^^2 / 2)";
|
wneuper@59395
|
347 |
val rls = simplify_Integral;
|
wneuper@59395
|
348 |
val SOME (t,[]) = rewrite_set_inst_ thy true subs rls t;
|
wneuper@59395
|
349 |
(* given was: "1 / EI * (L * q_0 * x / 2 + -1 * q_0 * x^^^2 / 2)" *)
|
wneuper@59395
|
350 |
if term2str t = "1 / EI * (L * q_0 / 2 * x + -1 * q_0 / 2 * x ^^^ 2)" then ()
|
wneuper@59395
|
351 |
else error "integrate.sml, simplify_Integral #99";
|
wneuper@59395
|
352 |
|
wneuper@59395
|
353 |
"........... 2nd integral ........................................";
|
wneuper@59395
|
354 |
"........... 2nd integral ........................................";
|
wneuper@59395
|
355 |
"........... 2nd integral ........................................";
|
wneuper@59395
|
356 |
val t = str2t
|
wneuper@59395
|
357 |
"Integral 1 / EI * (L * q_0 / 2 * (x ^^^ 2 / 2) + -1 * q_0 / 2 * (x ^^^ 3 / 3)) D x";
|
wneuper@59395
|
358 |
val rls = simplify_Integral;
|
wneuper@59395
|
359 |
val SOME (t,[]) = rewrite_set_inst_ thy true subs rls t;
|
wneuper@59395
|
360 |
if term2str t =
|
wneuper@59395
|
361 |
"Integral 1 / EI * (L * q_0 / 4 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3) D x"
|
wneuper@59395
|
362 |
then () else raise error "integrate.sml, simplify_Integral #198";
|
wneuper@59395
|
363 |
|
wneuper@59395
|
364 |
val rls = integration_rules;
|
wneuper@59395
|
365 |
val SOME (t,[]) = rewrite_set_ thy true rls t;
|
wneuper@59395
|
366 |
term2str t;
|
wneuper@59395
|
367 |
if term2str t =
|
wneuper@59395
|
368 |
"1 / EI * (L * q_0 / 4 * (x ^^^ 3 / 3) + -1 * q_0 / 6 * (x ^^^ 4 / 4))"
|
wneuper@59395
|
369 |
then () else error "integrate.sml, simplify_Integral #199";
|
wneuper@59395
|
370 |
|
wneuper@59395
|
371 |
|
wneuper@59395
|
372 |
"----------- integrate by ruleset -----------------------";*} ML {*
|
wneuper@59395
|
373 |
*}
|
wneuper@59395
|
374 |
|
neuper@52065
|
375 |
ML_file "Knowledge/eqsystem.sml"
|
neuper@52065
|
376 |
ML_file "Knowledge/test.sml"
|
neuper@52065
|
377 |
ML_file "Knowledge/polyminus.sml"
|
neuper@52065
|
378 |
ML_file "Knowledge/vect.sml"
|
neuper@52065
|
379 |
ML_file "Knowledge/diffapp.sml" (* postponed to dev. specification | TP-prog. *)
|
wneuper@59372
|
380 |
ML_file "Knowledge/biegelinie-1.sml"
|
wneuper@59395
|
381 |
|
wneuper@59395
|
382 |
ML {*
|
wneuper@59395
|
383 |
*} ML {*
|
wneuper@59395
|
384 |
(* tests on biegelinie
|
wneuper@59395
|
385 |
author: Walther Neuper 050826
|
wneuper@59395
|
386 |
(c) due to copyright terms
|
wneuper@59395
|
387 |
*)
|
wneuper@59395
|
388 |
*} ML {*
|
wneuper@59395
|
389 |
trace_rewrite := false;
|
wneuper@59395
|
390 |
"-----------------------------------------------------------------";
|
wneuper@59395
|
391 |
"table of contents -----------------------------------------------";
|
wneuper@59395
|
392 |
"-----------------------------------------------------------------";
|
wneuper@59395
|
393 |
"----------- the rules -------------------------------------------";
|
wneuper@59395
|
394 |
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
|
wneuper@59395
|
395 |
"----------- simplify_leaf for this script -----------------------";
|
wneuper@59395
|
396 |
"----------- Bsp 7.27 me -----------------------------------------";
|
wneuper@59395
|
397 |
"----------- Bsp 7.27 autoCalculate ------------------------------";
|
wneuper@59395
|
398 |
"----------- SubProblem (_,[vonBelastungZu,Biegelinien] ----------";
|
wneuper@59395
|
399 |
"----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
|
wneuper@59395
|
400 |
"----------- method [Biegelinien,setzeRandbedingungenEin] + exec -";
|
wneuper@59395
|
401 |
"----------- IntegrierenUndKonstanteBestimmen2: Bsp.7.70. --------";
|
wneuper@59395
|
402 |
"----------- investigate normalforms in biegelinien --------------";
|
wneuper@59395
|
403 |
"-----------------------------------------------------------------";
|
wneuper@59395
|
404 |
"-----------------------------------------------------------------";
|
wneuper@59395
|
405 |
"-----------------------------------------------------------------";
|
wneuper@59395
|
406 |
|
wneuper@59395
|
407 |
val thy = @{theory "Biegelinie"};
|
wneuper@59395
|
408 |
val ctxt = thy2ctxt' "Biegelinie";
|
wneuper@59395
|
409 |
fun str2term str = (Thm.term_of o the o (parse thy)) str;
|
wneuper@59395
|
410 |
fun term2s t = term_to_string'' "Biegelinie" t;
|
wneuper@59395
|
411 |
fun rewrit thm str =
|
wneuper@59395
|
412 |
fst (the (rewrite_ thy tless_true e_rls true thm str));
|
wneuper@59395
|
413 |
*} ML {*
|
wneuper@59395
|
414 |
|
wneuper@59395
|
415 |
"----------- the rules -------------------------------------------";
|
wneuper@59395
|
416 |
"----------- the rules -------------------------------------------";
|
wneuper@59395
|
417 |
"----------- the rules -------------------------------------------";
|
wneuper@59395
|
418 |
val t = rewrit @{thm Belastung_Querkraft} (str2term "- qq x = - q_0"); term2s t;
|
wneuper@59395
|
419 |
if term2s t = "Q' x = - q_0" then ()
|
wneuper@59395
|
420 |
else error "/biegelinie.sml: Belastung_Querkraft";
|
wneuper@59395
|
421 |
|
wneuper@59395
|
422 |
val t = rewrit @{thm Querkraft_Moment} (str2term "Q x = - q_0 * x + c"); term2s t;
|
wneuper@59395
|
423 |
if term2s t = "M_b' x = - q_0 * x + c" then ()
|
wneuper@59395
|
424 |
else error "/biegelinie.sml: Querkraft_Moment";
|
wneuper@59395
|
425 |
|
wneuper@59395
|
426 |
val t = rewrit @{thm Moment_Neigung} (str2term "M_b x = -q_0 * x^^^2/2 + q_0/2 *L*x");
|
wneuper@59395
|
427 |
term2s t;
|
wneuper@59395
|
428 |
if term2s t = "- EI * y'' x = - q_0 * x ^^^ 2 / 2 + q_0 / 2 * L * x" then ()
|
wneuper@59395
|
429 |
else error "biegelinie.sml: Moment_Neigung";
|
wneuper@59395
|
430 |
*} ML {*
|
wneuper@59395
|
431 |
|
wneuper@59395
|
432 |
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
|
wneuper@59395
|
433 |
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
|
wneuper@59395
|
434 |
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
|
wneuper@59395
|
435 |
"----------- IntegrierenUndKonstanteBestimmen by rewriting -------";
|
wneuper@59395
|
436 |
val t = str2term "M_b x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2";
|
wneuper@59395
|
437 |
val t = rewrit @{thm Moment_Neigung} t;
|
wneuper@59395
|
438 |
if term2s t = "- EI * y'' x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2" then ()
|
wneuper@59395
|
439 |
else error "Moment_Neigung broken";
|
wneuper@59395
|
440 |
(* was I * ?y'' x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2"
|
wneuper@59395
|
441 |
before declaring "y''" as a constant *)
|
wneuper@59395
|
442 |
|
wneuper@59395
|
443 |
val t = rewrit @{thm make_fun_explicit} t;
|
wneuper@59395
|
444 |
if term2s t = "y'' x = 1 / - EI * (L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2)" then ()
|
wneuper@59395
|
445 |
else error "make_fun_explicit broken";
|
wneuper@59395
|
446 |
*} ML {*
|
wneuper@59395
|
447 |
|
wneuper@59395
|
448 |
"----------- simplify_leaf for this script -----------------------";
|
wneuper@59395
|
449 |
"----------- simplify_leaf for this script -----------------------";
|
wneuper@59395
|
450 |
"----------- simplify_leaf for this script -----------------------";
|
wneuper@59395
|
451 |
val srls = Rls {id="srls_IntegrierenUnd..",
|
wneuper@59395
|
452 |
preconds = [],
|
wneuper@59395
|
453 |
rew_ord = ("termlessI",termlessI),
|
wneuper@59395
|
454 |
erls = append_rls "erls_in_srls_IntegrierenUnd.." e_rls
|
wneuper@59395
|
455 |
[(*for asm in NTH_CONS ...*)
|
wneuper@59395
|
456 |
Calc ("Orderings.ord_class.less",eval_equ "#less_"),
|
wneuper@59395
|
457 |
(*2nd NTH_CONS pushes n+-1 into asms*)
|
wneuper@59395
|
458 |
Calc("Groups.plus_class.plus", eval_binop "#add_")
|
wneuper@59395
|
459 |
],
|
wneuper@59395
|
460 |
srls = Erls, calc = [], errpatts = [],
|
wneuper@59395
|
461 |
rules = [Thm ("NTH_CONS",num_str @{thm NTH_CONS}),
|
wneuper@59395
|
462 |
Calc("Groups.plus_class.plus", eval_binop "#add_"),
|
wneuper@59395
|
463 |
Thm ("NTH_NIL",num_str @{thm NTH_NIL}),
|
wneuper@59395
|
464 |
Calc("Tools.lhs", eval_lhs "eval_lhs_"),
|
wneuper@59395
|
465 |
Calc("Tools.rhs", eval_rhs "eval_rhs_"),
|
wneuper@59395
|
466 |
Calc("Atools.argument'_in", eval_argument_in "Atools.argument'_in")
|
wneuper@59395
|
467 |
],
|
wneuper@59395
|
468 |
scr = EmptyScr};
|
wneuper@59395
|
469 |
val rm_ = str2term"[M_b 0 = 0, M_b L = 0]";
|
wneuper@59395
|
470 |
val M__ = str2term"M_b x = -1 * x ^^^ 2 / 2 + x * c + c_2";
|
wneuper@59395
|
471 |
val SOME (e1__,_) = rewrite_set_ thy false srls
|
wneuper@59395
|
472 |
(str2term "(NTH::[real,bool list]=>bool) 1 " $ rm_);
|
wneuper@59395
|
473 |
if term2str e1__ = "M_b 0 = 0" then () else error "biegelinie.sml simplify NTH 1 rm_";
|
wneuper@59395
|
474 |
|
wneuper@59395
|
475 |
val SOME (x1__,_) =
|
wneuper@59395
|
476 |
rewrite_set_ thy false srls
|
wneuper@59395
|
477 |
(str2term"argument_in (lhs (M_b 0 = 0))");
|
wneuper@59395
|
478 |
if term2str x1__ = "0" then ()
|
wneuper@59395
|
479 |
else error "biegelinie.sml simplify argument_in (lhs (M_b 0 = 0)";
|
wneuper@59395
|
480 |
|
wneuper@59395
|
481 |
(*trace_rewrite := true; ..stopped Test_Isac.thy*)
|
wneuper@59395
|
482 |
trace_rewrite:=false;
|
wneuper@59395
|
483 |
*} ML {*
|
wneuper@59395
|
484 |
|
wneuper@59395
|
485 |
"----------- Bsp 7.27 me -----------------------------------------";
|
wneuper@59395
|
486 |
"----------- Bsp 7.27 me -----------------------------------------";
|
wneuper@59395
|
487 |
"----------- Bsp 7.27 me -----------------------------------------";
|
wneuper@59395
|
488 |
val fmz = ["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
|
wneuper@59395
|
489 |
"RandbedingungenBiegung [y 0 = 0, y L = 0]",
|
wneuper@59395
|
490 |
"RandbedingungenMoment [M_b 0 = 0, M_b L = 0]",
|
wneuper@59395
|
491 |
"FunktionsVariable x"];
|
wneuper@59395
|
492 |
val (dI',pI',mI') =
|
wneuper@59395
|
493 |
("Biegelinie",["MomentBestimmte","Biegelinien"],
|
wneuper@59395
|
494 |
["IntegrierenUndKonstanteBestimmen"]);
|
wneuper@59395
|
495 |
val p = e_pos'; val c = [];
|
wneuper@59395
|
496 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@59395
|
497 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
498 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
499 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
500 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
501 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
502 |
|
wneuper@59395
|
503 |
*} ML {*
|
wneuper@59395
|
504 |
val pits = get_obj g_pbl pt (fst p);writeln (itms2str_ ctxt pits);
|
wneuper@59395
|
505 |
(*if itms2str_ ctxt pits = ... all 5 model-items*)
|
wneuper@59395
|
506 |
val mits = get_obj g_met pt (fst p); writeln (itms2str_ ctxt mits);
|
wneuper@59395
|
507 |
if itms2str_ ctxt mits = "[]" then ()
|
wneuper@59395
|
508 |
else error "biegelinie.sml: Bsp 7.27 #2";
|
wneuper@59395
|
509 |
|
wneuper@59395
|
510 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
511 |
case nxt of (_,Add_Given "FunktionsVariable x") => ()
|
wneuper@59395
|
512 |
| _ => error "biegelinie.sml: Bsp 7.27 #4a";
|
wneuper@59395
|
513 |
|
wneuper@59395
|
514 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
515 |
val mits = get_obj g_met pt (fst p);writeln (itms2str_ ctxt mits);
|
wneuper@59395
|
516 |
(*if itms2str_ ctxt mits = ... all 6 guard-items*)
|
wneuper@59395
|
517 |
case nxt of (_, Apply_Method ["IntegrierenUndKonstanteBestimmen"]) => ()
|
wneuper@59395
|
518 |
| _ => error "biegelinie.sml: Bsp 7.27 #4b";
|
wneuper@59395
|
519 |
|
wneuper@59395
|
520 |
"===== Apply_Method IntegrierenUndKonstanteBestimmen ============================";
|
wneuper@59395
|
521 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
522 |
case pt of Nd (PblObj _, [Nd _]) => ((*Apply_Method + Take*))
|
wneuper@59395
|
523 |
| _ => error "biegelinie.sml: Bsp 7.27 #4c";
|
wneuper@59395
|
524 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
525 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
526 |
|
wneuper@59395
|
527 |
*} ML {*
|
wneuper@59395
|
528 |
case nxt of
|
wneuper@59395
|
529 |
(_,Subproblem ("Biegelinie", ["named", "integrate", "function"])) => ()
|
wneuper@59395
|
530 |
| _ => error "biegelinie.sml: Bsp 7.27 #4c";
|
wneuper@59395
|
531 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
532 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
533 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
534 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
535 |
case nxt of (_, Apply_Method ["diff", "integration", "named"]) => ()
|
wneuper@59395
|
536 |
| _ => error "biegelinie.sml: Bsp 7.27 #5";
|
wneuper@59395
|
537 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
538 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
539 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
540 |
case nxt of
|
wneuper@59395
|
541 |
("Check_Postcond", Check_Postcond ["named", "integrate", "function"]) => ()
|
wneuper@59395
|
542 |
| _ => error "biegelinie.sml: Bsp 7.27 #5a";
|
wneuper@59395
|
543 |
|
wneuper@59395
|
544 |
*} ML {*
|
wneuper@59395
|
545 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
546 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
547 |
case nxt of
|
wneuper@59395
|
548 |
(_, Subproblem ("Biegelinie", ["named", "integrate", "function"]))=>()
|
wneuper@59395
|
549 |
| _ => error "biegelinie.sml: Bsp 7.27 #5b";
|
wneuper@59395
|
550 |
|
wneuper@59395
|
551 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
552 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
553 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
554 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
555 |
case nxt of (_, Apply_Method ["diff", "integration","named"]) => ()
|
wneuper@59395
|
556 |
| _ => error "biegelinie.sml: Bsp 7.27 #6";
|
wneuper@59395
|
557 |
|
wneuper@59395
|
558 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
559 |
val (p,_,f,nxt,_,pt) = me nxt p c pt(*nxt = Check_Postcond ["named", "int..*);
|
wneuper@59395
|
560 |
f2str f;
|
wneuper@59395
|
561 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
562 |
case nxt of (_, Substitute ["x = 0"]) => ()
|
wneuper@59395
|
563 |
| _ => error "biegelinie.sml: Bsp 7.27 #7";
|
wneuper@59395
|
564 |
|
wneuper@59395
|
565 |
*} ML {*
|
wneuper@59395
|
566 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
567 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
568 |
if f2str f = "0 = c_2 + c * 0 + -1 * q_0 / 2 * 0 ^^^ 2" then ()
|
wneuper@59395
|
569 |
else error "biegelinie.sml: Bsp 7.27 #8";
|
wneuper@59395
|
570 |
|
wneuper@59395
|
571 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
572 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
573 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
574 |
*} ML {*
|
wneuper@59395
|
575 |
if f2str f = "0 = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2" then ()
|
wneuper@59395
|
576 |
else error "biegelinie.sml: Bsp 7.27 #9";
|
wneuper@59395
|
577 |
|
wneuper@59395
|
578 |
*} ML {*
|
wneuper@59395
|
579 |
(*val nxt = (+, Subproblem ("Biegelinie", ["normalise", ..lin..sys]))*)
|
wneuper@59395
|
580 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
581 |
*} ML {*
|
wneuper@59395
|
582 |
nxt;
|
wneuper@59395
|
583 |
*} ML {*
|
wneuper@59395
|
584 |
"~~~~~ fun xxx, args:"; val () = ();
|
wneuper@59395
|
585 |
"~~~~~ fun me, args:"; val ((_, tac), p, _(*NEW remove*), pt) = (nxt, p, c, pt);
|
wneuper@59395
|
586 |
val ("ok", (_, _, ptp)) = locatetac tac (pt,p)
|
wneuper@59395
|
587 |
val (pt, p) = ptp;
|
wneuper@59395
|
588 |
(*step p ((pt, Ctree.e_pos'),[]) Theory loader: undefined entry for theory "Isac.Pure"*)
|
wneuper@59395
|
589 |
"~~~~~ fun step, args:"; val ((ip as (_, p_)), (ptp as (pt,p), tacis)) = (p, ((pt, Ctree.e_pos'),[]));
|
wneuper@59395
|
590 |
val pIopt = get_pblID (pt,ip);
|
wneuper@59395
|
591 |
ip = ([], Ctree.Res) = false;
|
wneuper@59395
|
592 |
tacis = [];
|
wneuper@59395
|
593 |
pIopt (*SOME*);
|
wneuper@59395
|
594 |
member op = [Ctree.Pbl, Ctree.Met] p_
|
wneuper@59395
|
595 |
andalso is_none (Ctree.get_obj Ctree.g_env pt (fst p)) = true;
|
wneuper@59395
|
596 |
(*nxt_specify_ (pt, ip) Theory loader: undefined entry for theory "Isac.Pure"*)
|
wneuper@59395
|
597 |
"~~~~~ fun nxt_specify_, args:"; val (ptp as (pt, (p, p_))) = ((pt, ip));
|
wneuper@59395
|
598 |
val pblobj as (Ctree.PblObj {meth, origin = origin as (oris, (dI', pI', mI'), _),
|
wneuper@59395
|
599 |
probl, spec = (dI, pI, mI), ...}) = Ctree.get_obj I pt p;
|
wneuper@59395
|
600 |
Ctree.just_created_ pblobj (*by Subproblem*) andalso origin <> Ctree.e_origin = false;
|
wneuper@59395
|
601 |
val cpI = if pI = e_pblID then pI' else pI;
|
wneuper@59395
|
602 |
val cmI = if mI = e_metID then mI' else mI;
|
wneuper@59395
|
603 |
val {ppc, prls, where_, ...} = Specify.get_pbt cpI;
|
wneuper@59395
|
604 |
val pre = Stool.check_preconds "thy 100820" prls where_ probl;
|
wneuper@59395
|
605 |
val pb = foldl and_ (true, map fst pre);
|
wneuper@59395
|
606 |
val (_, tac) =
|
wneuper@59395
|
607 |
Chead.nxt_spec p_ pb oris (dI', pI', mI') (probl, meth) (ppc, (#ppc o Specify.get_met) cmI) (dI, pI, mI);
|
wneuper@59395
|
608 |
tac (*Add_Given "equalities\n [0 = c_2 +..*);
|
wneuper@59395
|
609 |
*} ML {*
|
wneuper@59395
|
610 |
(*Chead.nxt_specif tac ptp Theory loader: undefined entry for theory "Isac.Pure"*)
|
wneuper@59395
|
611 |
"~~~~~ fun nxt_specif, args:"; val ((Tac.Add_Given ct), ptp) = (tac, ptp);
|
wneuper@59395
|
612 |
"~~~~~ fun nxt_specif_additem, args:"; val (sel, ct, (ptp as (pt, (p, Pbl)))) = ( "#Given", ct, ptp);
|
wneuper@59395
|
613 |
val PblObj {origin = (oris, (dI', pI', _), _), spec = (dI, pI, _), probl = pbl, ctxt, ...} = get_obj I pt p;
|
wneuper@59395
|
614 |
val thy = if dI = e_domID then assoc_thy dI' else assoc_thy dI;
|
wneuper@59395
|
615 |
val cpI = if pI = e_pblID then pI' else pI;
|
wneuper@59395
|
616 |
*} ML {*
|
wneuper@59395
|
617 |
val Err msg = appl_add ctxt sel oris pbl ((#ppc o Specify.get_pbt) cpI) ct
|
wneuper@59395
|
618 |
*} ML {*
|
wneuper@59395
|
619 |
([(Tac.Tac msg, Tac.Tac_ (Thy_Info_get_theory "Isac", msg,msg,msg),
|
wneuper@59395
|
620 |
(e_pos', (Selem.e_istate, Selem.e_ctxt)))], [], ptp)
|
wneuper@59395
|
621 |
*} ML {*
|
wneuper@59395
|
622 |
*} ML {*
|
wneuper@59395
|
623 |
*} ML {*
|
wneuper@59395
|
624 |
*} ML {*
|
wneuper@59395
|
625 |
*} ML {*
|
wneuper@59395
|
626 |
*} ML {*
|
wneuper@59395
|
627 |
*} ML {*
|
wneuper@59395
|
628 |
*} ML {*
|
wneuper@59395
|
629 |
*} ML {*
|
wneuper@59395
|
630 |
*} ML {*
|
wneuper@59395
|
631 |
*} ML {*
|
wneuper@59395
|
632 |
*} ML {*
|
wneuper@59395
|
633 |
*} ML {*
|
wneuper@59395
|
634 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
635 |
*} ML {*
|
wneuper@59395
|
636 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
637 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
638 |
*} ML {*
|
wneuper@59395
|
639 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
640 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
641 |
case nxt of (_, Apply_Method ["EqSystem", "normalise", "2x2"]) => ()
|
wneuper@59395
|
642 |
| _ => error "biegelinie.sml: Bsp 7.27 #10";
|
wneuper@59395
|
643 |
|
wneuper@59395
|
644 |
*} ML {*
|
wneuper@59395
|
645 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
646 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
647 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
648 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
649 |
(*val nxt = Subproblem ["triangular", "2x2", "LINEAR", "system"]*)
|
wneuper@59395
|
650 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
651 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
652 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
653 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
654 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
655 |
case nxt of (_, Apply_Method["EqSystem", "top_down_substitution", "2x2"]) => ()
|
wneuper@59395
|
656 |
| _ => error "biegelinie.sml: Bsp 7.27 #11";
|
wneuper@59395
|
657 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
658 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
659 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
660 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
661 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
662 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
663 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
664 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
665 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
666 |
case nxt of (_, Check_Postcond ["normalise", "2x2", "LINEAR", "system"]) => ()
|
wneuper@59395
|
667 |
| _ => error "biegelinie.sml: Bsp 7.27 #12";
|
wneuper@59395
|
668 |
|
wneuper@59395
|
669 |
*} ML {*
|
wneuper@59395
|
670 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
671 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
672 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
673 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
674 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
675 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
676 |
case nxt of
|
wneuper@59395
|
677 |
(_, Subproblem ("Biegelinie", ["named", "integrate", "function"]))=>()
|
wneuper@59395
|
678 |
| _ => error "biegelinie.sml: Bsp 7.27 #13";
|
wneuper@59395
|
679 |
|
wneuper@59395
|
680 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
681 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
682 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
683 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
684 |
case nxt of (_, Apply_Method ["diff", "integration", "named"]) => ()
|
wneuper@59395
|
685 |
| _ => error "biegelinie.sml: Bsp 7.27 #14";
|
wneuper@59395
|
686 |
|
wneuper@59395
|
687 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
688 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
689 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
690 |
case nxt of
|
wneuper@59395
|
691 |
(_, Check_Postcond ["named", "integrate", "function"]) => ()
|
wneuper@59395
|
692 |
| _ => error "biegelinie.sml: Bsp 7.27 #15";
|
wneuper@59395
|
693 |
|
wneuper@59395
|
694 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
695 |
if f2str f =
|
wneuper@59395
|
696 |
"y' x = c + 1 / (-1 * EI) * (L * q_0 / 4 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)"
|
wneuper@59395
|
697 |
then () else error "biegelinie.sml: Bsp 7.27 #16 f";
|
wneuper@59395
|
698 |
case nxt of
|
wneuper@59395
|
699 |
(_, Subproblem ("Biegelinie", ["named", "integrate", "function"]))=>()
|
wneuper@59395
|
700 |
| _ => error "biegelinie.sml: Bsp 7.27 #16";
|
wneuper@59395
|
701 |
|
wneuper@59395
|
702 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
703 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
704 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
705 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
706 |
case nxt of (_, Apply_Method ["diff", "integration", "named"]) => ()
|
wneuper@59395
|
707 |
| _ => error "biegelinie.sml: Bsp 7.27 #17";
|
wneuper@59395
|
708 |
|
wneuper@59395
|
709 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
710 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
711 |
if f2str f =
|
wneuper@59395
|
712 |
"y x =\nc_2 + c * x +\n\
|
wneuper@59395
|
713 |
\1 / (-1 * EI) * (L * q_0 / 12 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)"
|
wneuper@59395
|
714 |
then () else error "biegelinie.sml: Bsp 7.27 #18 f";
|
wneuper@59395
|
715 |
case nxt of
|
wneuper@59395
|
716 |
(_, Check_Postcond ["named", "integrate", "function"]) => ()
|
wneuper@59395
|
717 |
| _ => error "biegelinie.sml: Bsp 7.27 #18";
|
wneuper@59395
|
718 |
|
wneuper@59395
|
719 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
720 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
721 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
722 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
723 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
724 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
725 |
case nxt of
|
wneuper@59395
|
726 |
(_, Subproblem
|
wneuper@59395
|
727 |
("Biegelinie", ["normalise", "2x2", "LINEAR", "system"])) => ()
|
wneuper@59395
|
728 |
| _ => error "biegelinie.sml: Bsp 7.27 #19";
|
wneuper@59395
|
729 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
730 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
731 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
732 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
733 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
734 |
case nxt of (_, Apply_Method ["EqSystem", "normalise", "2x2"]) => ()
|
wneuper@59395
|
735 |
| _ => error "biegelinie.sml: Bsp 7.27 #20";
|
wneuper@59395
|
736 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
737 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
738 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
739 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
740 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
741 |
if f2str f = "[c_2 = 0 / (-1 * EI), L * c + c_2 = -1 * q_0 * L ^^^ 4 / (-24 * EI)]" then ()
|
wneuper@59395
|
742 |
else error "biegelinie.sml: Bsp 7.27 #21 f";
|
wneuper@59395
|
743 |
case nxt of
|
wneuper@59395
|
744 |
(_, Subproblem
|
wneuper@59395
|
745 |
("Biegelinie", ["triangular", "2x2", "LINEAR", "system"])) =>()
|
wneuper@59395
|
746 |
| _ => error "biegelinie.sml: Bsp 7.27 #21";
|
wneuper@59395
|
747 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
748 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
749 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
750 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
751 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
752 |
case nxt of (_, Apply_Method["EqSystem", "top_down_substitution", "2x2"]) => ()
|
wneuper@59395
|
753 |
| _ => error "biegelinie.sml: Bsp 7.27 #22";
|
wneuper@59395
|
754 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
755 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
756 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
757 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
758 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
759 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
760 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
761 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
762 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
763 |
case nxt of (_, Check_Postcond ["normalise", "2x2", "LINEAR", "system"]) => ()
|
wneuper@59395
|
764 |
| _ => error "biegelinie.sml: Bsp 7.27 #23";
|
wneuper@59395
|
765 |
|
wneuper@59395
|
766 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
767 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
768 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
769 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
770 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
771 |
if f2str f =
|
wneuper@59395
|
772 |
"y x =\n0 / (-1 * EI) +\n(0 / (-1 * EI) / L + -1 * q_0 * L ^^^ 4 / (-24 * EI) / L * x) +\n" ^
|
wneuper@59395
|
773 |
"(2 * L * q_0 / (-1 * 24 * EI) * x ^^^ 3 +\n -1 * q_0 / (-1 * 24 * EI) * x ^^^ 4)"
|
wneuper@59395
|
774 |
then () else error "biegelinie.sml: Bsp 7.27 #24 f";
|
wneuper@59395
|
775 |
case nxt of ("End_Proof'", End_Proof') => ()
|
wneuper@59395
|
776 |
| _ => error "biegelinie.sml: Bsp 7.27 #24";
|
wneuper@59395
|
777 |
|
wneuper@59395
|
778 |
show_pt pt;
|
wneuper@59395
|
779 |
(*(([], Frm), Problem (Biegelinie.thy, [MomentBestimmte, Biegelinien])),
|
wneuper@59395
|
780 |
(([1], Frm), q_ x = q_0),
|
wneuper@59395
|
781 |
(([1], Res), - q_ x = - q_0),
|
wneuper@59395
|
782 |
(([2], Res), Q' x = - q_0),
|
wneuper@59395
|
783 |
(([3], Pbl), Integrate (- q_0, x)),
|
wneuper@59395
|
784 |
(([3,1], Frm), Q x = Integral - q_0 D x),
|
wneuper@59395
|
785 |
(([3,1], Res), Q x = -1 * q_0 * x + c),
|
wneuper@59395
|
786 |
(([3], Res), Q x = -1 * q_0 * x + c),
|
wneuper@59395
|
787 |
(([4], Res), M_b' x = -1 * q_0 * x + c),
|
wneuper@59395
|
788 |
(([5], Pbl), Integrate (-1 * q_0 * x + c, x)),
|
wneuper@59395
|
789 |
(([5,1], Frm), M_b x = Integral -1 * q_0 * x + c D x),
|
wneuper@59395
|
790 |
(([5,1], Res), M_b x = -1 * q_0 * x ^^^ 2 / 2 + x * c + c_2),
|
wneuper@59395
|
791 |
(([5], Res), M_b x = -1 * q_0 * x ^^^ 2 / 2 + x * c + c_2),
|
wneuper@59395
|
792 |
(([6], Res), M_b 0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2),
|
wneuper@59395
|
793 |
(([7], Res), 0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2),
|
wneuper@59395
|
794 |
(([8], Res), M_b L = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2),
|
wneuper@59395
|
795 |
(([9], Res), 0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2),
|
wneuper@59395
|
796 |
(([10], Pbl), solveSystem [0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2] [c_2]),
|
wneuper@59395
|
797 |
(([10,1], Frm), [0 = -1 * q_0 * 0 ^^^ 2 / 2 + 0 * c + c_2,
|
wneuper@59395
|
798 |
0 = -1 * q_0 * L ^^^ 2 / 2 + L * c + c_2]),
|
wneuper@59395
|
799 |
(([10,1], Res), [0 = c_2, 0 = -1 * (q_0 * L ^^^ 2) / 2 + (L * c + c_2)]),
|
wneuper@59395
|
800 |
(([10,2], Res), [c_2 = 0, L * c + c_2 = 0 + -1 * (-1 * (q_0 * L ^^^ 2) / 2)]),
|
wneuper@59395
|
801 |
(([10,3], Res), [c_2 = 0, L * c + c_2 = q_0 * L ^^^ 2 / 2]),
|
wneuper@59395
|
802 |
(([10,4], Pbl), solveSystem [L * c + c_2 = q_0 * L ^^^ 2 / 2] [c_2]),
|
wneuper@59395
|
803 |
(([10,4,1], Frm), L * c + c_2 = q_0 * L ^^^ 2 / 2),
|
wneuper@59395
|
804 |
(([10,4,1], Res), L * c + 0 = q_0 * L ^^^ 2 / 2),
|
wneuper@59395
|
805 |
(([10,4,2], Res), L * c = q_0 * L ^^^ 2 / 2),
|
wneuper@59395
|
806 |
(([10,4,3], Res), c = q_0 * L ^^^ 2 / 2 / L),
|
wneuper@59395
|
807 |
(([10,4,4], Res), c = L * q_0 / 2),
|
wneuper@59395
|
808 |
(([10,4,5], Res), [c = L * q_0 / 2, c_2 = 0]),
|
wneuper@59395
|
809 |
(([10,4], Res), [c = L * q_0 / 2, c_2 = 0]),
|
wneuper@59395
|
810 |
(([10], Res), [c = L * q_0 / 2, c_2 = 0]),
|
wneuper@59395
|
811 |
(([11], Res), M_b x = -1 * q_0 * x ^^^ 2 / 2 + x * (L * q_0 / 2) + 0),
|
wneuper@59395
|
812 |
(([12], Res), M_b x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2),
|
wneuper@59395
|
813 |
(([13], Res), EI * y'' x = L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2),
|
wneuper@59395
|
814 |
(([14], Res), y'' x = 1 / EI * (L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2)),
|
wneuper@59395
|
815 |
(([15], Pbl), Integrate (1 / EI * (L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2), x)),
|
wneuper@59395
|
816 |
(([15,1], Frm), y' x = Integral 1 / EI * (L * q_0 * x / 2 + -1 * q_0 * x ^^^ 2 / 2) D x),
|
wneuper@59395
|
817 |
(([15,1], Res), y' x =
|
wneuper@59395
|
818 |
(Integral L * q_0 * x / 2 D x + Integral -1 * q_0 * x ^^^ 2 / 2 D x) / EI +
|
wneuper@59395
|
819 |
c)]*)
|
wneuper@59395
|
820 |
|
wneuper@59395
|
821 |
"----------- Bsp 7.27 autoCalculate ------------------------------";
|
wneuper@59395
|
822 |
"----------- Bsp 7.27 autoCalculate ------------------------------";
|
wneuper@59395
|
823 |
"----------- Bsp 7.27 autoCalculate ------------------------------";
|
wneuper@59395
|
824 |
reset_states ();
|
wneuper@59395
|
825 |
CalcTree [(["Traegerlaenge L","Streckenlast q_0","Biegelinie y",
|
wneuper@59395
|
826 |
"RandbedingungenBiegung [y 0 = 0, y L = 0]",
|
wneuper@59395
|
827 |
"RandbedingungenMoment [M_b 0 = 0, M_b L = 0]",
|
wneuper@59395
|
828 |
"FunktionsVariable x"],
|
wneuper@59395
|
829 |
("Biegelinie",
|
wneuper@59395
|
830 |
["MomentBestimmte","Biegelinien"],
|
wneuper@59395
|
831 |
["IntegrierenUndKonstanteBestimmen"]))];
|
wneuper@59395
|
832 |
moveActiveRoot 1;
|
wneuper@59395
|
833 |
autoCalculate 1 CompleteCalcHead;
|
wneuper@59395
|
834 |
|
wneuper@59395
|
835 |
fetchProposedTactic 1 (*->"Apply_Method" IntegrierenUndKonstanteBestimmen*);
|
wneuper@59395
|
836 |
(*
|
wneuper@59395
|
837 |
> val (_,Apply_Method' (_, NONE, ScrState is), _)::_ = tacis;
|
wneuper@59395
|
838 |
val it = true : bool
|
wneuper@59395
|
839 |
*)
|
wneuper@59395
|
840 |
autoCalculate 1 (Step 1) (*->GENERATED ([1], Frm)*);
|
wneuper@59395
|
841 |
val ((pt,_),_) = get_calc 1;
|
wneuper@59395
|
842 |
case pt of Nd (PblObj _, [Nd _]) => ((*Apply_Method + Take*))
|
wneuper@59395
|
843 |
| _ => error "biegelinie.sml: Bsp 7.27 autoCalculate#4c";
|
wneuper@59395
|
844 |
|
wneuper@59395
|
845 |
autoCalculate 1 CompleteCalc;
|
wneuper@59395
|
846 |
val ((pt,p),_) = get_calc 1;
|
wneuper@59395
|
847 |
if p = ([], Res) andalso length (children pt) = 23 andalso
|
wneuper@59395
|
848 |
term2str (get_obj g_res pt (fst p)) =
|
wneuper@59395
|
849 |
"y x =\n0 / (-1 * EI) +\n(0 / (-1 * EI) / L + -1 * q_0 * L ^^^ 4 / (-24 * EI) / L * x) +\n(2 * L * q_0 / (-1 * 24 * EI) * x ^^^ 3 +\n -1 * q_0 / (-1 * 24 * EI) * x ^^^ 4)"
|
wneuper@59395
|
850 |
then () else error "biegelinie.sml: 1st biegelin.7.27 changed";
|
wneuper@59395
|
851 |
|
wneuper@59395
|
852 |
val (unc, del, gen) = (([],Pbl), ([],Pbl), ([],Res));
|
wneuper@59395
|
853 |
getFormulaeFromTo 1 unc gen 1 (*only level 1*) false;
|
wneuper@59395
|
854 |
show_pt pt;
|
wneuper@59395
|
855 |
|
wneuper@59395
|
856 |
(*check all formulae for getTactic*)
|
wneuper@59395
|
857 |
getTactic 1 ([1],Frm) (*see smltest/../reverse-rew.sml*);
|
wneuper@59395
|
858 |
getTactic 1 ([5],Res) (*tac2xml: not impl. for Substitute ["x = 0"]*);
|
wneuper@59395
|
859 |
getTactic 1 ([6],Res) (* ---"--- ["M_b 0 = 0"]*);
|
wneuper@59395
|
860 |
getTactic 1 ([7],Res) (*!!!!!Take!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*);
|
wneuper@59395
|
861 |
getTactic 1 ([8],Frm) (*tac2xml: not impl. for Substitute ["x = L"]*);
|
wneuper@59395
|
862 |
getTactic 1 ([8],Res) (* ---"--- ["M_b L = 0"]*);
|
wneuper@59395
|
863 |
|
wneuper@59395
|
864 |
"----------- SubProblem (_,[vonBelastungZu,Biegelinien] ----------";
|
wneuper@59395
|
865 |
"----------- SubProblem (_,[vonBelastungZu,Biegelinien] ----------";
|
wneuper@59395
|
866 |
"----------- SubProblem (_,[vonBelastungZu,Biegelinien] ----------";
|
wneuper@59395
|
867 |
val fmz =
|
wneuper@59395
|
868 |
["Streckenlast q_0","FunktionsVariable x",
|
wneuper@59395
|
869 |
"Funktionen [Q x = c + -1 * q_0 * x, \
|
wneuper@59395
|
870 |
\M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2,\
|
wneuper@59395
|
871 |
\ y' x = c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\
|
wneuper@59395
|
872 |
\ y x = c_4 + c_3 * x + 1 / (-1 * EI) * (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)]"];
|
wneuper@59395
|
873 |
val (dI',pI',mI') = ("Biegelinie", ["vonBelastungZu","Biegelinien"],
|
wneuper@59395
|
874 |
["Biegelinien","ausBelastung"]);
|
wneuper@59395
|
875 |
val p = e_pos'; val c = [];
|
wneuper@59395
|
876 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@59395
|
877 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
878 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
879 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
880 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
881 |
case nxt of ("Apply_Method", Apply_Method ["Biegelinien", "ausBelastung"]) => ()
|
wneuper@59395
|
882 |
| _ => error "biegelinie.sml met2 b";
|
wneuper@59395
|
883 |
|
wneuper@59395
|
884 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "q_ x = q_0";
|
wneuper@59395
|
885 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "- q_ x = - q_0";
|
wneuper@59395
|
886 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "Q' x = - q_0";
|
wneuper@59395
|
887 |
case nxt of (_, Subproblem (_, ["named", "integrate", "function"])) => ()
|
wneuper@59395
|
888 |
| _ => error "biegelinie.sml met2 c";
|
wneuper@59395
|
889 |
|
wneuper@59395
|
890 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
891 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
892 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
893 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
894 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
895 |
|
wneuper@59395
|
896 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "Q x = c + -1 * q_0 * x";
|
wneuper@59395
|
897 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "Q x = c + -1 * q_0 * x";
|
wneuper@59395
|
898 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f = "M_b' x = c + -1 * q_0 * x";
|
wneuper@59395
|
899 |
case nxt of (_,Subproblem (_, ["named", "integrate", "function"])) => ()
|
wneuper@59395
|
900 |
| _ => error "biegelinie.sml met2 d";
|
wneuper@59395
|
901 |
|
wneuper@59395
|
902 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
903 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
904 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
905 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
906 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
907 |
"M_b x = Integral c + -1 * q_0 * x D x";
|
wneuper@59395
|
908 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
909 |
"M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
|
wneuper@59395
|
910 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
911 |
"M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
|
wneuper@59395
|
912 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
913 |
"- EI * y'' x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
|
wneuper@59395
|
914 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
915 |
"y'' x = 1 / - EI * (c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2)";
|
wneuper@59395
|
916 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
917 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
918 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
919 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
920 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
921 |
"y' x = Integral 1 / - EI * (c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2) D x";
|
wneuper@59395
|
922 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
923 |
"y' x = Integral 1 / (-1 * EI) * (c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2) D x";
|
wneuper@59395
|
924 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
925 |
"y' x =\nc_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)";
|
wneuper@59395
|
926 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
927 |
"y' x =\nc_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3)";
|
wneuper@59395
|
928 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
929 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
930 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
931 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
932 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
933 |
"y x =\nIntegral c_3 +\n 1 / (-1 * EI) *\n (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3) D x";
|
wneuper@59395
|
934 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
935 |
"y x =\nc_4 + c_3 * x +\n1 / (-1 * EI) *\n(c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)";
|
wneuper@59395
|
936 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
937 |
"y x =\nc_4 + c_3 * x +\n1 / (-1 * EI) *\n(c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)";
|
wneuper@59395
|
938 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
939 |
if f2str f =
|
wneuper@59395
|
940 |
"[Q x = c + -1 * q_0 * x, M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2,\n y' x =\n c_3 + 1 / (-1 * EI) * (c_2 * x + c / 2 * x ^^^ 2 + -1 * q_0 / 6 * x ^^^ 3),\n y x =\n c_4 + c_3 * x +\n 1 / (-1 * EI) *\n (c_2 / 2 * x ^^^ 2 + c / 6 * x ^^^ 3 + -1 * q_0 / 24 * x ^^^ 4)]"
|
wneuper@59395
|
941 |
then case nxt of ("End_Proof'", End_Proof') => ()
|
wneuper@59395
|
942 |
| _ => error "biegelinie.sml met2 e 1"
|
wneuper@59395
|
943 |
else error "biegelinie.sml met2 e 2";
|
wneuper@59395
|
944 |
|
wneuper@59395
|
945 |
"----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
|
wneuper@59395
|
946 |
"----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
|
wneuper@59395
|
947 |
"----------- SubProblem (_,[setzeRandbedingungen,Biegelinien] ----";
|
wneuper@59395
|
948 |
val fmz = ["functionEq (M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2)",
|
wneuper@59395
|
949 |
"substitution (M_b L = 0)",
|
wneuper@59395
|
950 |
"equality equ_equ"];
|
wneuper@59395
|
951 |
val (dI',pI',mI') = ("Biegelinie", ["makeFunctionTo","equation"],
|
wneuper@59395
|
952 |
["Equation","fromFunction"]);
|
wneuper@59395
|
953 |
val p = e_pos'; val c = [];
|
wneuper@59395
|
954 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@59395
|
955 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
956 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
957 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
958 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
wneuper@59395
|
959 |
|
wneuper@59395
|
960 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
961 |
"M_b x = c_2 + c * x + -1 * q_0 / 2 * x ^^^ 2";
|
wneuper@59395
|
962 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
963 |
"M_b L = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2";
|
wneuper@59395
|
964 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f =
|
wneuper@59395
|
965 |
"0 = c_2 + c * L + -1 * q_0 / 2 * L ^^^ 2";
|
wneuper@59395
|
966 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
967 |
val (p,_,f,nxt,_,pt) = me nxt p c pt; f2str f;
|
wneuper@59395
|
968 |
if (* f2str f = "0 = c_2 + L * c + -1 * q_0 / 2 * L ^^^ 2" CHANGE NOT considered, already on leave*)
|
wneuper@59395
|
969 |
f2str f = "0 = (2 * c_2 + 2 * L * c + -1 * L ^^^ 2 * q_0) / 2"
|
wneuper@59395
|
970 |
then case nxt of ("End_Proof'", End_Proof') => ()
|
wneuper@59395
|
971 |
| _ => error "biegelinie.sml: SubProblem (_,[setzeRandbed 1"
|
wneuper@59395
|
972 |
else error "biegelinie.sml: SubProblem (_,[setzeRandbed 2";
|
wneuper@59395
|
973 |
*} ML {*
|
wneuper@59395
|
974 |
*}
|
wneuper@59395
|
975 |
|
wneuper@59372
|
976 |
(*ML_file "Knowledge/biegelinie-2.sml" since Isabelle2017: exception Size raised *)
|
neuper@52065
|
977 |
ML_file "Knowledge/algein.sml"
|
neuper@52065
|
978 |
ML_file "Knowledge/diophanteq.sml"
|
neuper@52065
|
979 |
ML_file "Knowledge/Inverse_Z_Transform/inverse_z_transform.sml"
|
wneuper@59232
|
980 |
ML_file "Knowledge/inssort.sml"
|
neuper@52065
|
981 |
ML_file "Knowledge/isac.sml"
|
neuper@52065
|
982 |
ML_file "Knowledge/build_thydata.sml"
|
neuper@48895
|
983 |
ML {*"%%%%%%%%%%%%%%%%% end Knowledge %%%%%%%%%%%%%%%%%%%%%%%%";*}
|
wneuper@59144
|
984 |
ML {*"%%%%%%%%%%%%%%%%% start ADDTESTS %%%%%%%%%%%%%%%%%%%%%%%";*}
|
wneuper@59144
|
985 |
ML_file "~~/test/Tools/isac/ADDTESTS/libisabelle/mini-test.sml"
|
wneuper@59175
|
986 |
ML_file "~~/test/Tools/isac/ADDTESTS/libisabelle/protocol.sml"
|
wneuper@59144
|
987 |
ML {*"%%%%%%%%%%%%%%%%% end ADDTESTS %%%%%%%%%%%%%%%%%%%%%%%%%";*}
|
wneuper@59144
|
988 |
|
wneuper@59144
|
989 |
ML {*"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";*}
|
wneuper@59144
|
990 |
ML {*"%%%%%%%%%%%%%%%%% end Test_Isac %%%%%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41945
|
991 |
ML {*"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";*}
|
neuper@41943
|
992 |
|
neuper@48895
|
993 |
section {* history of tests *}
|
neuper@48895
|
994 |
text {*
|
neuper@48895
|
995 |
Systematic regression tests have been introduced to isac development in 2003.
|
neuper@52139
|
996 |
Sanity of the regression tests suffers from updates following Isabelle development,
|
neuper@48895
|
997 |
which mostly exceeded the resources available in isac's development.
|
neuper@48895
|
998 |
|
neuper@48895
|
999 |
The survey below shall support to efficiently use the tests for isac
|
neuper@48895
|
1000 |
on different Isabelle versions. Conclusion in most cases will be:
|
neuper@48895
|
1001 |
|
neuper@48895
|
1002 |
!!! Use most recent tests or go back to the old notebook
|
neuper@48895
|
1003 |
with isac on Isabelle2002. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
neuper@48895
|
1004 |
*}
|
neuper@48895
|
1005 |
|
wneuper@59323
|
1006 |
|
wneuper@59323
|
1007 |
subsection {* isac on Isabelle2015 *}
|
wneuper@59323
|
1008 |
subsubsection {* Summary of development *}
|
wneuper@59323
|
1009 |
text {*
|
wneuper@59373
|
1010 |
* Add signatures from top of thy-hierarchy down to Interpret (not ProgLang).
|
wneuper@59323
|
1011 |
This complicates Test_Isac, see "Prepare running tests" above.
|
wneuper@59323
|
1012 |
* Remove TTY interface.
|
wneuper@59323
|
1013 |
* Re-activate insertion sort.
|
wneuper@59323
|
1014 |
*}
|
wneuper@59323
|
1015 |
subsubsection {* State of tests: unchanged *}
|
wneuper@59323
|
1016 |
subsubsection {* Changesets of begin and end *}
|
wneuper@59323
|
1017 |
text {*
|
wneuper@59323
|
1018 |
last changeset with Test_Isac 2f1b2854927a
|
wneuper@59323
|
1019 |
first changeset with Test_Isac ???
|
wneuper@59323
|
1020 |
*}
|
wneuper@59323
|
1021 |
|
wneuper@59120
|
1022 |
subsection {* isac on Isabelle2014 *}
|
wneuper@59120
|
1023 |
subsubsection {* Summary of development *}
|
wneuper@59120
|
1024 |
text {*
|
wneuper@59120
|
1025 |
migration from "isabelle tty" --> libisabelle
|
wneuper@59120
|
1026 |
*}
|
wneuper@59120
|
1027 |
|
neuper@55319
|
1028 |
subsection {* isac on Isabelle2013-2 *}
|
neuper@55319
|
1029 |
subsubsection {* Summary of development *}
|
neuper@55319
|
1030 |
text {*
|
wneuper@55500
|
1031 |
reactivated context_thy
|
neuper@55319
|
1032 |
*}
|
neuper@55319
|
1033 |
subsubsection {* State of tests *}
|
neuper@55319
|
1034 |
text {*
|
neuper@55319
|
1035 |
TODO
|
neuper@55319
|
1036 |
*}
|
neuper@55319
|
1037 |
subsubsection {* Changesets of begin and end *}
|
neuper@55319
|
1038 |
text {*
|
neuper@55319
|
1039 |
TODO
|
neuper@55319
|
1040 |
:
|
neuper@55319
|
1041 |
: isac on Isablle2013-2
|
neuper@55319
|
1042 |
:
|
neuper@55319
|
1043 |
Changeset: 55318 (03826ceb24da) merged
|
neuper@55319
|
1044 |
User: Walther Neuper <neuper@ist.tugraz.at>
|
neuper@55319
|
1045 |
Date: 2013-12-12 14:27:37 +0100 (7 minutes)
|
neuper@55319
|
1046 |
*}
|
neuper@55319
|
1047 |
|
neuper@55284
|
1048 |
subsection {* isac on Isabelle2013-1 *}
|
neuper@55284
|
1049 |
subsubsection {* Summary of development *}
|
neuper@55284
|
1050 |
text {*
|
neuper@55284
|
1051 |
Isabelle2013-1 was replaced within a few weeks due to problems with the document model;
|
neuper@55284
|
1052 |
no significant development steps for ISAC.
|
neuper@55284
|
1053 |
*}
|
neuper@55284
|
1054 |
subsubsection {* State of tests *}
|
neuper@55284
|
1055 |
text {*
|
neuper@55284
|
1056 |
See points in subsection "isac on Isabelle2011", "State of tests".
|
neuper@55284
|
1057 |
*}
|
neuper@55284
|
1058 |
subsubsection {* Changesets of begin and end *}
|
neuper@55284
|
1059 |
text {*
|
neuper@55284
|
1060 |
Changeset: 55283 (d6e9a34e7142) notes for resuming work on Polynomial.thy
|
neuper@55284
|
1061 |
User: Walther Neuper <neuper@ist.tugraz.at>
|
neuper@55284
|
1062 |
Date: 2013-12-03 18:13:31 +0100 (8 days)
|
neuper@55284
|
1063 |
:
|
neuper@55284
|
1064 |
: isac on Isablle2013-1
|
neuper@55284
|
1065 |
:
|
neuper@55284
|
1066 |
Changeset: 55279 (130688f277ba) Isabelle2013 --> 2013-1: Test_Isac perfect
|
neuper@55284
|
1067 |
User: Walther Neuper <neuper@ist.tugraz.at>
|
neuper@55284
|
1068 |
Date: 2013-11-21 18:12:17 +0100 (2 weeks)
|
neuper@55284
|
1069 |
|
neuper@55284
|
1070 |
*}
|
neuper@55284
|
1071 |
|
neuper@48895
|
1072 |
subsection {* isac on Isabelle2013 *}
|
neuper@48895
|
1073 |
subsubsection {* Summary of development *}
|
neuper@48895
|
1074 |
text {*
|
neuper@52150
|
1075 |
# Oct.13: replaced "axioms" by "axiomatization"
|
neuper@52150
|
1076 |
# Oct.13: Mathias Lehnfeld started removing Unsynchornized.ref
|
neuper@52106
|
1077 |
# Sep.13: integrated gcd_poly (functional, without Unsychronized.ref) into
|
neuper@52106
|
1078 |
simplification of multivariate rationals (without improving the rulesets involved).
|
neuper@48895
|
1079 |
*}
|
neuper@48895
|
1080 |
subsubsection {* Run tests *}
|
neuper@48895
|
1081 |
text {*
|
neuper@52150
|
1082 |
Is standard now; this subsection will be discontinued under Isabelle2013-1
|
neuper@48895
|
1083 |
*}
|
neuper@48895
|
1084 |
subsubsection {* State of tests *}
|
neuper@48895
|
1085 |
text {*
|
neuper@52150
|
1086 |
See points in subsection "isac on Isabelle2011", "State of tests".
|
neuper@52150
|
1087 |
# re-activated listC.sml
|
neuper@48895
|
1088 |
*}
|
neuper@48895
|
1089 |
subsubsection {* Changesets of begin and end *}
|
neuper@48895
|
1090 |
text {*
|
neuper@52175
|
1091 |
changeset 52174:8b055b17bd84 --- removed all code concerned with "castab = Unsynchronized.ref"
|
neuper@52175
|
1092 |
User: Mathias Lehnfeld <s1210629013@students.fh-hagenberg.at>
|
neuper@52175
|
1093 |
Date: Tue Nov 19 22:23:30 2013 +0000
|
neuper@52079
|
1094 |
:
|
neuper@52079
|
1095 |
: isac on Isablle2013
|
neuper@52079
|
1096 |
:
|
neuper@52079
|
1097 |
Changeset: 52061 (4ecea2fcdc2c) --- Build_Isac.thy runs on Isabelle2013
|
neuper@52079
|
1098 |
User: Walther Neuper <neuper@ist.tugraz.at>
|
neuper@52079
|
1099 |
Date: 2013-07-15 08:28:50 +0200 (4 weeks)
|
neuper@48895
|
1100 |
*}
|
neuper@48895
|
1101 |
|
neuper@48895
|
1102 |
subsection {* isac on Isabelle2012 *}
|
neuper@48895
|
1103 |
subsubsection {* Summary of development *}
|
neuper@48895
|
1104 |
text {*
|
neuper@48895
|
1105 |
isac on Isabelle2012 is considered just a transitional stage
|
neuper@48895
|
1106 |
within the update from Isabelle2011 to Isabelle2013; thus no further development of isac;
|
neuper@48895
|
1107 |
For considerations on the transition see
|
neuper@48895
|
1108 |
~~/src/Tools/isac/Knowledge/Build_Thydata/thy, section "updating isac..".
|
neuper@48895
|
1109 |
*}
|
neuper@48895
|
1110 |
subsubsection {* Run tests *}
|
neuper@48895
|
1111 |
text {*
|
neuper@48895
|
1112 |
$ cd /usr/local/isabisac12/
|
neuper@48895
|
1113 |
$ ./bin/isabelle jedit -l HOL src/Tools/isac/Build_Isac.thy
|
neuper@48895
|
1114 |
$ ./bin/isabelle jedit -l Isac test/Tools/isac/Test_Isac.thy
|
neuper@48895
|
1115 |
*}
|
neuper@48895
|
1116 |
subsubsection {* State of tests *}
|
neuper@48895
|
1117 |
text {*
|
neuper@48895
|
1118 |
At least the tests from isac on Isabelle2011 run again.
|
neuper@48895
|
1119 |
However, Test_Isac.thy shows erratic behaviour; no errors are obtained when scrolling
|
neuper@48895
|
1120 |
in parallel with evaluation.
|
neuper@48895
|
1121 |
|
neuper@48895
|
1122 |
Counting "error in kernel" for Frontend/interface.sml (the tests considered most significant)
|
neuper@48895
|
1123 |
yields 69 hits, some of which were already present before Isabelle2002-->2009-2
|
neuper@48895
|
1124 |
(i.e. on the old notebook from 2002).
|
neuper@48895
|
1125 |
|
neuper@48895
|
1126 |
Now many tests with (*...=== inhibit exn ...*) give a reason or at least the origin:
|
neuper@48895
|
1127 |
# === inhibit exn WN1130621 Isabelle2012-->13 !thehier! === ...see Build_Thydata.thy
|
neuper@48895
|
1128 |
# === inhibit exn AK110726 === ...reliable work by Alexander Kargl, most likely go back to 2002
|
neuper@48895
|
1129 |
# === inhibit exn WN1130701 broken at Isabelle2002 --> 2009-2 === , most likely go back to 2002
|
neuper@48895
|
1130 |
Reasons for outcommented tests are also found in Test_Isac.thy near the respective file.sml.
|
neuper@48895
|
1131 |
|
neuper@48895
|
1132 |
Some tests have been re-activated (e.g. error patterns, fill patterns).
|
neuper@48895
|
1133 |
*}
|
neuper@48895
|
1134 |
subsubsection {* Changesets of begin and end *}
|
neuper@52079
|
1135 |
text {*
|
neuper@52079
|
1136 |
Changeset: 52051 (35751d90365e) end of improving tests for isac on Isabelle2012
|
neuper@52079
|
1137 |
User: Walther Neuper <neuper@ist.tugraz.at>
|
neuper@52079
|
1138 |
Date: 2013-07-11 16:58:31 +0200 (4 weeks)
|
neuper@48895
|
1139 |
:
|
neuper@48895
|
1140 |
: isac on Isablle2012
|
neuper@48895
|
1141 |
:
|
neuper@48895
|
1142 |
Changeset: 48757 (74eb3dfc33cc) updated src from Isabelle2011 to Isabelle2012
|
neuper@48895
|
1143 |
User: Walther Neuper <neuper@ist.tugraz.at>
|
neuper@48895
|
1144 |
Date: 2012-09-24 18:35:13 +0200 (8 months)
|
neuper@48895
|
1145 |
------------------------------------------------------------------------------
|
neuper@48895
|
1146 |
Changeset: 48756 (7443906996a8) merged
|
neuper@48895
|
1147 |
User: Walther Neuper <neuper@ist.tugraz.at>
|
neuper@48895
|
1148 |
Date: 2012-09-24 18:15:49 +0200 (8 months)
|
neuper@48895
|
1149 |
*}
|
neuper@48895
|
1150 |
|
neuper@48895
|
1151 |
subsection {* isac on Isabelle2011 *}
|
neuper@48895
|
1152 |
subsubsection {* Summary of development *}
|
neuper@48895
|
1153 |
text {*
|
neuper@48895
|
1154 |
isac's mathematics engine has been extended by two developments:
|
neuper@48895
|
1155 |
(1) Isabelle's contexts were introduced by Mathias Lehnfeld
|
neuper@52150
|
1156 |
(2) Z_Transform was introduced by Jan Rocnik, which revealed
|
neuper@52150
|
1157 |
further errors introduced by (1).
|
neuper@52150
|
1158 |
(3) "error patterns" were introduced by Gabriella Daroczy
|
neuper@52150
|
1159 |
Regressions tests have been added for all of these.
|
neuper@48895
|
1160 |
*}
|
neuper@48895
|
1161 |
subsubsection {* Run tests *}
|
neuper@48895
|
1162 |
text {*
|
neuper@48895
|
1163 |
$ cd /usr/local/isabisac11/
|
neuper@48895
|
1164 |
$ ./bin/isabelle jedit -l HOL src/Tools/isac/Build_Isac.thy
|
neuper@48895
|
1165 |
$ ./bin/isabelle jedit -l Isac test/Tools/isac/Test_Isac.thy
|
neuper@48895
|
1166 |
*}
|
neuper@48895
|
1167 |
subsubsection {* State of tests *}
|
neuper@48895
|
1168 |
text {*
|
neuper@48895
|
1169 |
Systematic efforts outcommented less significant tests by (*...=== inhibit exn ...*)
|
neuper@48895
|
1170 |
and sometimes give reasons for failing tests.
|
neuper@48895
|
1171 |
(*...=== inhibit exn AK...*) was done by Alexander Kargl; this is reliable
|
neuper@48895
|
1172 |
work, some of which couldn't be revised (and renamed) by WN and thus survived some time.
|
neuper@48895
|
1173 |
|
neuper@48895
|
1174 |
The most signification tests (in particular Frontend/interface.sml) run,
|
neuper@48895
|
1175 |
however, many "error in kernel" are not caught by an exception.
|
neuper@48895
|
1176 |
------------------------------------------------------------------------------
|
neuper@48895
|
1177 |
After the changeset below Test_Isac worked with check_unsynchronized_ref ():
|
neuper@48895
|
1178 |
------------------------------------------------------------------------------
|
neuper@48895
|
1179 |
Changeset: 42457 (ca691a84b81a) PROVISIONALLY MADE TESTS RUN with Unsynchronized.ref
|
neuper@48895
|
1180 |
User: Walther Neuper <neuper@ist.tugraz.at>
|
neuper@48895
|
1181 |
Date: 2012-08-06 10:38:11 +0200 (11 months)
|
neuper@52150
|
1182 |
|
neuper@52150
|
1183 |
|
neuper@52150
|
1184 |
The list below records TODOs while producing an ISAC kernel for
|
neuper@52150
|
1185 |
gdaroczy and jrocnik, wich could NOT be done before all tests are RUNNING
|
neuper@52150
|
1186 |
(so to be resumed with Isabelle2013-1):
|
neuper@52150
|
1187 |
############## WNxxxxxx.TODO can be found in sources ##############
|
neuper@52150
|
1188 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1189 |
WN111013.TODO: lots of cleanup/removal in test/../Test.thy
|
neuper@52150
|
1190 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1191 |
WN111013.TODO: remove concept around "fun init_form", lots of troubles with
|
neuper@52150
|
1192 |
this special case (see) --- why not nxt = Model_Problem here ? ---
|
neuper@52150
|
1193 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1194 |
WN111014.TODO calculate_Poly < calculate_Rational < calculate_RootRat, see test/
|
neuper@52150
|
1195 |
... FIRST redesign
|
neuper@52150
|
1196 |
# simplify_* , *_simp_*
|
neuper@52150
|
1197 |
# norm_*
|
neuper@52150
|
1198 |
# calc_* , calculate_* ... require iteration over all rls ...
|
neuper@52150
|
1199 |
... see --- val rls = calculate_RootRat > calculate_Rational --- CONTINUE !
|
neuper@52150
|
1200 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1201 |
WN111014.TODO fun prep_rls | !!!use this function in ruleset' := !!!
|
neuper@52150
|
1202 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1203 |
WN120314 changeset a393bb9f5e9f drops root equations.
|
neuper@52150
|
1204 |
see test/Tools/isac/Knowledge/rootrateq.sml
|
neuper@52150
|
1205 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1206 |
WN120317.TODO changeset 977788dfed26 dropped rateq:
|
neuper@52150
|
1207 |
# test --- repair NO asms from rls RatEq_eliminate --- shows error from 2002
|
neuper@52150
|
1208 |
# test --- solve (1/x = 5, x) by me --- and --- x / (x ^ 2 - 6 * x + 9) - ...:
|
neuper@52150
|
1209 |
investigation Check_elementwise stopped due to too much effort finding out,
|
neuper@52150
|
1210 |
why Check_elementwise worked in 2002 in spite of the error.
|
neuper@52150
|
1211 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1212 |
WN120317.TODO postponed test/../ratinal,ratinal2.sml to joint work with dmeindl
|
neuper@52150
|
1213 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1214 |
WN120317.TODO found by test --- interSteps for Schalk 299a --- that
|
neuper@52150
|
1215 |
NO test with 'interSteps' is checked properly (with exn on changed behaviour)
|
neuper@52150
|
1216 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1217 |
WN120317.TODO test --- Matthias Goldgruber 2003 rewrite orders --- has
|
neuper@52150
|
1218 |
a newly outcommented test where rewrite_set_ make_polynomial --> NONE
|
neuper@52150
|
1219 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1220 |
WN120320.TODO check-improve rlsthmsNOTisac:
|
neuper@52150
|
1221 |
DONE make test --- old compute rlsthmsNOTisac by eq_thmI'
|
neuper@52150
|
1222 |
DONE compare rlsthmsNOTisac in thms-survey-Isa02-Isa09-2.sml .. Isac.thy
|
neuper@52150
|
1223 |
FOUND 120321: Theory.axioms_of doesnt find LENGTH_CONS etc, thus are in Isab
|
neuper@52150
|
1224 |
# mark twice thms (in isac + (later) in Isabelle) in Isac.thy
|
neuper@52150
|
1225 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1226 |
WN120320.TODO rlsthmsNOTisac: replace twice thms ^
|
neuper@52150
|
1227 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1228 |
WN120320.TODO rlsthmsNOTisac: reconsider design of sym_* thms, see test
|
neuper@52150
|
1229 |
--- OLD compute rlsthmsNOTisac by eq_thmID ---: some are in isab, some in isac.
|
neuper@52150
|
1230 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1231 |
WN120321.TODO rearrange theories:
|
neuper@52150
|
1232 |
Knowledge
|
neuper@52150
|
1233 |
:
|
neuper@52150
|
1234 |
Atools.thy
|
neuper@52150
|
1235 |
///Descript.thy --> ProgLang
|
neuper@52150
|
1236 |
Delete.thy <--- first_Knowledge_thy (*mv to Atools.thy*)
|
neuper@52150
|
1237 |
ProgLang: restructure Build_Isac.thy such that no xmlsrc.thy, ProgLang.thy
|
neuper@52150
|
1238 |
Interpret.thy are generated (simplifies xml structure for theories)
|
neuper@52150
|
1239 |
Script.thy
|
neuper@52150
|
1240 |
Tools.thy
|
neuper@52150
|
1241 |
ListC.thy <--- first_Proglang_thy
|
neuper@52150
|
1242 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1243 |
WN120321.TODO reanimate test/../simplify.sml: CAS-command Simplify
|
neuper@52150
|
1244 |
EXN "simplify.sml: diff.behav. CAScmd: Simplify (2*a + 3*a)"
|
neuper@52150
|
1245 |
broken during work on thy-hierarchy
|
neuper@52150
|
1246 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1247 |
WN120321.TODO LAST in IsacScripts + in IsacKnowledge, see
|
neuper@55421
|
1248 |
test --- the_hier (get_thes ()) (collect_thydata ())---
|
neuper@52150
|
1249 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1250 |
WN120405a.TODO src/../pbl-met-hierarchy.sml: fun pbl2term--> Isac' instead Isac_
|
neuper@52150
|
1251 |
!!add mutual crossreferences to ?fun headline??? where the same has to be done:
|
neuper@52150
|
1252 |
!!OR BETTER: use only 2 functions for adding/removing "'" to/from thy!!
|
neuper@52150
|
1253 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1254 |
WN120409.TODO replace "op mem" (2002) with member (2011) ...
|
neuper@52150
|
1255 |
... an exercise interesting for beginners !
|
neuper@52150
|
1256 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1257 |
WN120411 scanning html representation of newly generated knowledge:
|
neuper@52150
|
1258 |
* thy:
|
neuper@52150
|
1259 |
** Theorems: only "Proof of the theorem" (correct!)
|
neuper@52150
|
1260 |
and "(c) isac-team (math-autor)"
|
neuper@52150
|
1261 |
** Rulesets: only "Identifier:///"
|
neuper@52150
|
1262 |
and "(c) isac-team (math-autor)"
|
neuper@52150
|
1263 |
** IsacKnowledge: link to dependency graph (which needs to be created first)
|
neuper@52150
|
1264 |
** IsacScripts --> ProgramLanguage
|
neuper@52150
|
1265 |
*** Tools: Theorems: arity_type_cp, arity_type_nam, ... wegnehmen
|
neuper@52150
|
1266 |
|
neuper@52150
|
1267 |
* pbl: OK !?!
|
neuper@52150
|
1268 |
* met: OK !?!
|
neuper@52150
|
1269 |
* exp:
|
neuper@52150
|
1270 |
** Z-Transform is missing !!!
|
neuper@52150
|
1271 |
** type-constraints !!!
|
neuper@52150
|
1272 |
--------------------------------------------------------------------------------
|
neuper@52150
|
1273 |
WN120417: merging xmldata revealed:
|
neuper@52150
|
1274 |
..............NEWLY generated:........................................
|
neuper@52150
|
1275 |
<THEOREMDATA>
|
neuper@52150
|
1276 |
<GUH> thy_isab_Fun-thm-o_apply </GUH>
|
neuper@52150
|
1277 |
<STRINGLIST>
|
neuper@52150
|
1278 |
<STRING> Isabelle </STRING>
|
neuper@52150
|
1279 |
<STRING> Fun </STRING>
|
neuper@52150
|
1280 |
<STRING> Theorems </STRING>
|
neuper@52150
|
1281 |
<STRING> o_apply </STRING>
|
neuper@52150
|
1282 |
</STRINGLIST>
|
neuper@52150
|
1283 |
<MATHML>
|
neuper@52150
|
1284 |
<ISA> (?f o ?g) ?x = ?f (?g ?x) </ISA>
|
neuper@52150
|
1285 |
</MATHML> <PROOF>
|
neuper@52150
|
1286 |
<EXTREF>
|
neuper@52150
|
1287 |
<TEXT> Proof of the theorem </TEXT>
|
neuper@52150
|
1288 |
<URL> http://www.ist.tugraz.at/projects/isac/www/kbase/thy/browser_info/HOL/HOL-Real/Isac/Fun.html </URL>
|
neuper@52150
|
1289 |
</EXTREF>
|
neuper@52150
|
1290 |
</PROOF>
|
neuper@52150
|
1291 |
<EXPLANATIONS> </EXPLANATIONS>
|
neuper@52150
|
1292 |
<MATHAUTHORS>
|
neuper@52150
|
1293 |
<STRING> Isabelle team, TU Munich </STRING>
|
neuper@52150
|
1294 |
</MATHAUTHORS>
|
neuper@52150
|
1295 |
<COURSEDESIGNS>
|
neuper@52150
|
1296 |
</COURSEDESIGNS>
|
neuper@52150
|
1297 |
</THEOREMDATA>
|
neuper@52150
|
1298 |
..............OLD FORMAT:.............................................
|
neuper@52150
|
1299 |
<THEOREMDATA>
|
neuper@52150
|
1300 |
<GUH> thy_isab_Fun-thm-o_apply </GUH>
|
neuper@52150
|
1301 |
<STRINGLIST>
|
neuper@52150
|
1302 |
<STRING> Isabelle </STRING>
|
neuper@52150
|
1303 |
<STRING> Fun </STRING>
|
neuper@52150
|
1304 |
<STRING> Theorems </STRING>
|
neuper@52150
|
1305 |
<STRING> o_apply </STRING>
|
neuper@52150
|
1306 |
</STRINGLIST>
|
neuper@52150
|
1307 |
<THEOREM>
|
neuper@52150
|
1308 |
<ID> o_apply </ID>
|
neuper@52150
|
1309 |
<MATHML>
|
neuper@52150
|
1310 |
<ISA> (?f o ?g) ?x = ?f (?g ?x) </ISA>
|
neuper@52150
|
1311 |
</MATHML>
|
neuper@52150
|
1312 |
</THEOREM>
|
neuper@52150
|
1313 |
<PROOF>
|
neuper@52150
|
1314 |
<EXTREF>
|
neuper@52150
|
1315 |
<TEXT> Proof of the theorem </TEXT>
|
neuper@52150
|
1316 |
<URL> http://www.ist.tugraz.at/projects/isac/www/kbase/thy/browser_info/HOL/HOL-Real/Isac/Fun.html </URL>
|
neuper@52150
|
1317 |
</EXTREF>
|
neuper@52150
|
1318 |
</PROOF>
|
neuper@52150
|
1319 |
<EXPLANATIONS> </EXPLANATIONS>
|
neuper@52150
|
1320 |
<MATHAUTHORS>
|
neuper@52150
|
1321 |
<STRING> Isabelle team, TU Munich </STRING>
|
neuper@52150
|
1322 |
</MATHAUTHORS>
|
neuper@52150
|
1323 |
<COURSEDESIGNS>
|
neuper@52150
|
1324 |
</COURSEDESIGNS>
|
neuper@52150
|
1325 |
</THEOREMDATA>
|
neuper@52150
|
1326 |
--------------------------------------------------------------------------------
|
neuper@48895
|
1327 |
*}
|
neuper@48895
|
1328 |
subsubsection {* Changesets of begin and end *}
|
neuper@48895
|
1329 |
text {*
|
neuper@48895
|
1330 |
isac development was done between these changesets:
|
neuper@48895
|
1331 |
------------------------------------------------------------------------------
|
neuper@48895
|
1332 |
Changeset: 42519 (1f3b4270363e) meeting dmeindl: added missing files
|
neuper@48895
|
1333 |
User: Walther Neuper <neuper@ist.tugraz.at>
|
neuper@48895
|
1334 |
Date: 2012-09-24 16:39:30 +0200 (8 months)
|
neuper@48895
|
1335 |
:
|
neuper@48895
|
1336 |
: isac on Isablle2011
|
neuper@48895
|
1337 |
:
|
neuper@48895
|
1338 |
Changeset:41897 (355be7f60389) merged isabisac with Isabelle2011
|
neuper@48895
|
1339 |
Branch: decompose-isar
|
neuper@48895
|
1340 |
User: Walther Neuper <neuper@ist.tugraz.at>
|
neuper@48895
|
1341 |
Date: 2011-02-25 13:04:56 +0100 (2011-02-25)
|
neuper@48895
|
1342 |
------------------------------------------------------------------------------
|
neuper@48895
|
1343 |
*}
|
neuper@48895
|
1344 |
|
neuper@48895
|
1345 |
subsection {* isac on Isabelle2009-2 *}
|
neuper@48895
|
1346 |
subsubsection {* Summary of development *}
|
neuper@48895
|
1347 |
text {*
|
neuper@48895
|
1348 |
In 2009 the update of isac from Isabelle2002 started with switching from CVS to hg.
|
neuper@48895
|
1349 |
The update was painful (bridging 7 years of Isabelle development) and cut short
|
neuper@48895
|
1350 |
due to the start of introducing Isabelle's contexts (Mathias Lehnfeld) and
|
neuper@48895
|
1351 |
going on to Isabelle2011 although most of the tests did not run.
|
neuper@48895
|
1352 |
*}
|
neuper@48895
|
1353 |
subsubsection {* Run tests *}
|
neuper@48895
|
1354 |
text {*
|
neuper@52150
|
1355 |
WN131021 this is broken by installation of Isabelle2011/12/13,
|
neuper@52150
|
1356 |
because all these write their binaries to ~/.isabelle/heaps/..
|
neuper@52150
|
1357 |
|
neuper@48895
|
1358 |
$ cd /usr/local/isabisac09-2/
|
neuper@48895
|
1359 |
$ ./bin/isabelle emacs -l HOL src/Tools/isac/Build_Isac.thy
|
neuper@48895
|
1360 |
$ ./bin/isabelle emacs -l Isac src/Tools/isac/Test_Isac.thy
|
neuper@48895
|
1361 |
NOT THE RIGHT VERSION..... test/Tools/isac/Test_Isac.thy !!!
|
neuper@48895
|
1362 |
*}
|
neuper@48895
|
1363 |
subsubsection {* State of tests *}
|
neuper@48895
|
1364 |
text {*
|
neuper@48895
|
1365 |
Most tests are broken by the update from Isabelle2002 to Isabelle2009-2.
|
neuper@48895
|
1366 |
*}
|
neuper@48895
|
1367 |
subsubsection {* Changesets of begin and end *}
|
neuper@48895
|
1368 |
text {*
|
neuper@48895
|
1369 |
isac development was done between these changesets:
|
neuper@48895
|
1370 |
------------------------------------------------------------------------------
|
neuper@48895
|
1371 |
Changeset: 38115 (940a5feea094) Little improvements of isac-plugin
|
neuper@48895
|
1372 |
Branch: decompose-isar
|
neuper@48895
|
1373 |
User: Marco Steger <m.steger@student.tugraz.at>
|
neuper@48895
|
1374 |
Date: 2011-02-06 18:30:28 +0100 (2011-02-06)
|
neuper@48895
|
1375 |
:
|
neuper@48895
|
1376 |
: isac on Isablle2009-2
|
neuper@48895
|
1377 |
:
|
neuper@48895
|
1378 |
Changeset: 37870 (5100a9c3abf8) created branch isac-from-Isabelle2009-2
|
neuper@48895
|
1379 |
Branch: isac-from-Isabelle2009-2
|
neuper@48895
|
1380 |
User: Walther Neuper <neuper@ist.tugraz.at>
|
neuper@48895
|
1381 |
Date: 2010-07-21 09:59:35 +0200 (2010-07-21)
|
neuper@48895
|
1382 |
------------------------------------------------------------------------------
|
neuper@48895
|
1383 |
*}
|
neuper@48895
|
1384 |
|
neuper@48895
|
1385 |
subsection {* isac on Isabelle2002 *}
|
neuper@48895
|
1386 |
subsubsection {* Summary of development *}
|
neuper@48895
|
1387 |
text {*
|
neuper@48895
|
1388 |
From 1999 to 2010 all the basic functionality (except "ctxt" and "error pattern")
|
neuper@48895
|
1389 |
of isac's mathematics engine has been implemented.
|
neuper@48895
|
1390 |
*}
|
neuper@48895
|
1391 |
subsubsection {* Run tests *}
|
neuper@48895
|
1392 |
subsubsection {* State of tests *}
|
neuper@48895
|
1393 |
text {*
|
neuper@48895
|
1394 |
All tests work on an old notebook (the right PolyML coudn't be upgraded to more
|
neuper@48895
|
1395 |
recent Linux versions)
|
neuper@48895
|
1396 |
*}
|
neuper@48895
|
1397 |
subsubsection {* Changesets of begin and end *}
|
neuper@48895
|
1398 |
text {*
|
neuper@48895
|
1399 |
Up to the above Mercurial changeset 5100a9c3abf8 isac used CVS;
|
neuper@48895
|
1400 |
see https://intra.ist.tugraz.at/hg/isac containing a conversion to Mercurial.
|
neuper@48895
|
1401 |
*}
|
neuper@48895
|
1402 |
|
neuper@41943
|
1403 |
end
|
neuper@52065
|
1404 |
(*========== inhibit exn 130719 Isabelle2013 ===================================
|
neuper@52065
|
1405 |
============ inhibit exn 130719 Isabelle2013 =================================*)
|
neuper@41943
|
1406 |
|
neuper@41943
|
1407 |
(*-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
|
neuper@48895
|
1408 |
-.-.-.-.-.-.-isolate response.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.*)
|
neuper@41975
|
1409 |
|