walther@59603
|
1 |
theory Test_Some
|
walther@59603
|
2 |
imports Isac.Build_Thydata
|
walther@59603
|
3 |
"~~/test/Tools/isac/ProgLang/calculate" (* setup for calculate.sml*)
|
wneuper@59265
|
4 |
begin
|
wneuper@59472
|
5 |
ML \<open>
|
wneuper@59265
|
6 |
(*/-------------------------------------------------------- ! aktivate for Test_Isac BEGIN ---\*)
|
wneuper@59417
|
7 |
(* these vvv test, if funs are intermediately opened in structure
|
walther@59659
|
8 |
in case of errors here consider ~~/xtest-to-coding.sh *)
|
wneuper@59265
|
9 |
open Kernel;
|
wneuper@59265
|
10 |
open Math_Engine; CalcTreeTEST;
|
wneuper@59564
|
11 |
open Lucin; itms2args;
|
walther@59659
|
12 |
open Env;
|
walther@59659
|
13 |
open Exec;
|
walther@59691
|
14 |
open LucinNEW; scan_dn2;
|
wneuper@59578
|
15 |
open Istate;
|
wneuper@59265
|
16 |
open Inform; cas_input;
|
wneuper@59265
|
17 |
open Rtools; trtas2str;
|
wneuper@59265
|
18 |
open Chead; pt_extract;
|
wneuper@59316
|
19 |
open Generate; (* NONE *)
|
wneuper@59276
|
20 |
open Ctree; append_problem;
|
walther@59696
|
21 |
open Pos;
|
walther@59618
|
22 |
open Program;
|
wneuper@59601
|
23 |
open Prog_Tac;
|
walther@59603
|
24 |
open Tactical;
|
walther@59603
|
25 |
open Prog_Expr;
|
walther@59618
|
26 |
open Auto_Prog; rule2stac;
|
walther@59618
|
27 |
open Input_Descript;
|
wneuper@59269
|
28 |
open Specify; show_ptyps;
|
wneuper@59316
|
29 |
open Applicable; mk_set;
|
wneuper@59316
|
30 |
open Solve; (* NONE *)
|
wneuper@59308
|
31 |
open Selem; e_fmz;
|
wneuper@59577
|
32 |
open Stool; (* NONE *)
|
wneuper@59577
|
33 |
open ContextC; transfer_asms_from_to;
|
wneuper@59575
|
34 |
open Tactic; (* NONE *)
|
wneuper@59316
|
35 |
open Model; (* NONE *)
|
wneuper@59417
|
36 |
open Rewrite; mk_thm;
|
wneuper@59417
|
37 |
open Calc; get_pair;
|
wneuper@59417
|
38 |
open TermC; atomt;
|
wneuper@59417
|
39 |
open Celem; e_pbt;
|
wneuper@59417
|
40 |
open Rule; string_of_thm;
|
wneuper@59265
|
41 |
(*\--- ! aktivate for Test_Isac END ----------------------------------------------------------/*)
|
wneuper@59472
|
42 |
\<close>
|
walther@59670
|
43 |
ML_file "Interpret/lucas-interpreter.sml"
|
neuper@48765
|
44 |
|
wneuper@59472
|
45 |
section \<open>code for copy & paste ===============================================================\<close>
|
wneuper@59472
|
46 |
ML \<open>
|
wneuper@59535
|
47 |
"~~~~~ fun xxx , args:"; val () = ();
|
walther@59655
|
48 |
"~~~~~ and xxx , args:"; val () = ();
|
walther@59676
|
49 |
"~~~~~ from xxx -> fun yyy -> fun zzz, return val:"; val () = ();
|
wneuper@59582
|
50 |
(*if*) (*then*); (*else*); (*case*) (*of*); (*return value*);
|
wneuper@59579
|
51 |
"xx"
|
walther@59676
|
52 |
^ "xxx" (*+*) (*!for return!*) (*isa*) (*REP*)
|
walther@59635
|
53 |
\<close> ML \<open>
|
wneuper@59472
|
54 |
\<close>
|
wneuper@59472
|
55 |
text \<open>
|
neuper@52101
|
56 |
declare [[show_types]]
|
neuper@55405
|
57 |
declare [[show_sorts]]
|
neuper@52101
|
58 |
find_theorems "?a <= ?a"
|
neuper@52101
|
59 |
|
wneuper@59230
|
60 |
print_theorems
|
neuper@52101
|
61 |
print_facts
|
neuper@52101
|
62 |
print_statement ""
|
neuper@52101
|
63 |
print_theory
|
wneuper@59230
|
64 |
ML_command \<open>Pretty.writeln prt\<close>
|
wneuper@59230
|
65 |
declare [[ML_print_depth = 999]]
|
wneuper@59252
|
66 |
declare [[ML_exception_trace]]
|
wneuper@59472
|
67 |
\<close>
|
wneuper@59472
|
68 |
ML \<open>
|
neuper@52105
|
69 |
(*========== inhibit exn WN130909 TODO =========================================================
|
neuper@52105
|
70 |
============ inhibit exn WN130909 TODO ========================================================*)
|
walther@59655
|
71 |
|
walther@59655
|
72 |
\<close>
|
walther@59655
|
73 |
|
walther@59655
|
74 |
section \<open>===================================================================================\<close>
|
walther@59655
|
75 |
ML \<open>
|
walther@59655
|
76 |
"~~~~~ fun xxx , args:"; val () = ();
|
walther@59655
|
77 |
\<close> ML \<open>
|
walther@59655
|
78 |
\<close> ML \<open>
|
walther@59655
|
79 |
\<close> ML \<open>
|
walther@59655
|
80 |
"~~~~~ fun xxx , args:"; val () = ();
|
walther@59655
|
81 |
\<close>
|
walther@59655
|
82 |
|
walther@59686
|
83 |
section \<open>===================================================================================\<close>
|
walther@59684
|
84 |
ML \<open>
|
walther@59684
|
85 |
"~~~~~ fun xxx , args:"; val () = ();
|
walther@59684
|
86 |
\<close> ML \<open>
|
walther@59684
|
87 |
\<close> ML \<open>
|
walther@59684
|
88 |
\<close> ML \<open>
|
walther@59684
|
89 |
"~~~~~ fun xxx , args:"; val () = ();
|
walther@59684
|
90 |
\<close>
|
walther@59684
|
91 |
|
wneuper@59577
|
92 |
section \<open>===========--- x / (x ^ 2 - 6 * x + 9) - 1 / (x ^ 2 - 3 * x) = 1 /x"===============\<close>
|
wneuper@59517
|
93 |
ML \<open>
|
wneuper@59531
|
94 |
"~~~~~ fun xxx , args:"; val () = ();
|
wneuper@59517
|
95 |
\<close> ML \<open>
|
wneuper@59578
|
96 |
(* waits for finalising ctxt: want result [x = 6 / 5] instead of "[]"*)
|
wneuper@59582
|
97 |
"----------- rat-equ: remove x = 0 from [x = 0, x = 6 / 5] due to contexts ---------------------";
|
wneuper@59582
|
98 |
"----------- rat-equ: remove x = 0 from [x = 0, x = 6 / 5] due to contexts ---------------------";
|
wneuper@59582
|
99 |
"----------- rat-equ: remove x = 0 from [x = 0, x = 6 / 5] due to contexts ---------------------";
|
wneuper@59577
|
100 |
(*ER-7*) (*Schalk I s.87 Bsp 55b*)
|
wneuper@59577
|
101 |
(* peculiarity of this example:
|
wneuper@59577
|
102 |
show_pt_tac pt;
|
wneuper@59577
|
103 |
|
wneuper@59577
|
104 |
. . . . . . . . . . ("RatEq",["univariate","equation"],["no_met"]);
|
wneuper@59577
|
105 |
([], Frm), solve (x / (x ^^^ 2 - 6 * x + 9) - 1 / (x ^^^ 2 - 3 * x) = 1 / x, x)
|
wneuper@59577
|
106 |
asm ^^^^^ "x \<noteq> 0"
|
wneuper@59577
|
107 |
. . . . . . . . . . Subproblem (PolyEq, ["normalise","polynomial","univariate","equation"]),
|
wneuper@59577
|
108 |
([4], Pbl), solve ((3 + -1 * x + x ^^^ 2) * x = 1 * (9 * x + -6 * x ^^^ 2 + x ^^^ 3), x)
|
wneuper@59577
|
109 |
. . . . . . . . . . Subproblem (PolyEq, ["bdv_only","degree_2","polynomial","univariate","equation"]),
|
wneuper@59577
|
110 |
([4,4], Pbl), solve (-6 * x + 5 * x ^^^ 2 = 0, x)
|
wneuper@59577
|
111 |
([4,4,5], Res), [x = 0, x = 6 / 5]
|
wneuper@59577
|
112 |
. . . . . . . . . . Check_Postcond ["bdv_only","degree_2","polynomial","univariate","equation"],
|
wneuper@59577
|
113 |
([4,4], Res), [x = 0, x = 6 / 5]
|
wneuper@59577
|
114 |
. . . . . . . . . . Check_Postcond ["normalise","polynomial","univariate","equation"],
|
wneuper@59577
|
115 |
^^^^^ from_subpbl_to_caller must drop "x = 0" due to asm "x \<noteq> 0"
|
wneuper@59577
|
116 |
([5], Res), [x = 0, x = 6 / 5]
|
wneuper@59577
|
117 |
. . . . . . . . . . Check_Postcond ["rational","univariate","equation"],
|
wneuper@59577
|
118 |
([], Res), [x = 6 / 5]
|
wneuper@59577
|
119 |
*)
|
wneuper@59577
|
120 |
val fmz = ["equality (x/(x^^^2 - 6*x+9) - 1/(x^^^2 - 3*x) =1/x)",
|
wneuper@59577
|
121 |
"solveFor x","solutions L"];
|
wneuper@59577
|
122 |
val (dI',pI',mI') = ("RatEq",["univariate","equation"],["no_met"]);
|
wneuper@59577
|
123 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
wneuper@59577
|
124 |
(*---------solve (x / (x ^^^ 2 - 6 * x + 9) - 1 / (x ^^^ 2 - 3 * x) = 1 / x, x)*)
|
wneuper@59577
|
125 |
(*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt; val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
wneuper@59577
|
126 |
(*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt; val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
wneuper@59577
|
127 |
(*[], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt; val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
wneuper@59582
|
128 |
(*[], Met*)val (p,_,f,nxt,_,pt''''') = me nxt p [1] pt;(*Apply_Method ["RatEq", "solve_rat_equation"]*)
|
wneuper@59577
|
129 |
\<close> ML \<open>
|
wneuper@59578
|
130 |
(*+*)if p = ([], Met) andalso fst nxt = "Apply_Method" andalso
|
wneuper@59578
|
131 |
(*+*)terms2str (get_assumptions_ pt p) = "[]"
|
wneuper@59578
|
132 |
(*+*)then () else error "BEFORE 1 changed";
|
wneuper@59577
|
133 |
\<close> ML \<open>
|
wneuper@59577
|
134 |
(*//--1 begin step into relevant call -------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---\\
|
wneuper@59583
|
135 |
1 relevant for init_pstate in root-pbl*)
|
wneuper@59582
|
136 |
(*[1], Frm*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt''''';
|
wneuper@59577
|
137 |
(*\\--1 end step into relevant call ----------------------------------------------------------//*)
|
wneuper@59577
|
138 |
\<close> ML \<open>
|
wneuper@59578
|
139 |
(*+*)if p = ([1], Frm) andalso fst nxt = "Rewrite_Set" andalso
|
wneuper@59578
|
140 |
(*+*)terms2str (get_assumptions_ pt p) = "[\"x / (x ^^^ 2 - 6 * x + 9) - 1 / (x ^^^ 2 - 3 * x) =\n1 / x is_ratequation_in x\"]"
|
wneuper@59578
|
141 |
(*+*)then () else error "AFTER 1 changed";
|
wneuper@59577
|
142 |
\<close> ML \<open>
|
wneuper@59577
|
143 |
(*[2], Res*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Rewrite_Set "norm_Rational"*)
|
wneuper@59577
|
144 |
(*[2], Res*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Rewrite_Set "RatEq_eliminate"*)
|
wneuper@59577
|
145 |
\<close> ML \<open>
|
wneuper@59578
|
146 |
(*+*)if p = ([2], Res) andalso fst nxt = "Rewrite_Set" andalso
|
wneuper@59578
|
147 |
(*+*)terms2str (get_assumptions_ pt p) = "[\"9 * x + -6 * x ^^^ 2 + x ^^^ 3 \<noteq> 0\",\"x / (x ^^^ 2 - 6 * x + 9) - 1 / (x ^^^ 2 - 3 * x) =\n1 / x is_ratequation_in x\"]"
|
wneuper@59578
|
148 |
(*+*)then () else error "BEFORE 2 changed";
|
wneuper@59577
|
149 |
\<close> ML \<open>
|
wneuper@59577
|
150 |
(*//--2 begin step into relevant call -------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---\\
|
wneuper@59577
|
151 |
2 relevant for preconds like "x \<noteq> 0" *)
|
wneuper@59577
|
152 |
(*[3], Res*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Subproblem ("PolyEq", ["normalise", "polynomial", "univariate", "equation"]*)
|
wneuper@59577
|
153 |
(*---------solve ((3 + -1 * x + x ^^^ 2) * x = 1 * (9 * x + -6 * x ^^^ 2 + x ^^^ 3), x)*)
|
wneuper@59577
|
154 |
(*\\--2 end step into relevant call ----------------------------------------------------------//*)
|
wneuper@59577
|
155 |
\<close> ML \<open>
|
wneuper@59578
|
156 |
(*+*)if p = ([3], Res) andalso fst nxt = "Subproblem" andalso
|
wneuper@59578
|
157 |
(*+*)terms2str (get_assumptions_ pt p) = "[\"9 * x + -6 * x ^^^ 2 + x ^^^ 3 \<noteq> 0\",\"x / (x ^^^ 2 - 6 * x + 9) - 1 / (x ^^^ 2 - 3 * x) =\n1 / x is_ratequation_in x\"]"
|
wneuper@59578
|
158 |
(*+*)then () else error "AFTER 2 changed";
|
wneuper@59577
|
159 |
\<close> ML \<open>
|
wneuper@59577
|
160 |
(*[4], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt; val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
wneuper@59577
|
161 |
(*[4], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt; val (p,_,f,nxt,_,pt) = me nxt p [1] pt; val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(**)
|
wneuper@59577
|
162 |
(*[4], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt; val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(**)
|
wneuper@59578
|
163 |
\<close> ML \<open>
|
wneuper@59577
|
164 |
(*[4], Met*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Apply_Method ["PolyEq", "normalise_poly"]*)
|
wneuper@59577
|
165 |
(*[4, 1], Frm*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Rewrite ("all_left", "\<not> ?b =!= 0 \<Longrightarrow> (?a = ?b) = (?a - ?b = 0)")*)
|
wneuper@59577
|
166 |
(*[4, 1], Res*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt; val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
wneuper@59577
|
167 |
(*[4, 3], Res*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Subproblem ("PolyEq", ["bdv_only", "degree_2", "polynomial", "univariate", "equation"]*)
|
wneuper@59577
|
168 |
(*---------solve (-6 * x + 5 * x ^^^ 2 = 0, x)*)
|
wneuper@59578
|
169 |
\<close> ML \<open>
|
wneuper@59577
|
170 |
(*4, 4], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt; val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(**)
|
wneuper@59577
|
171 |
(*4, 4], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt; val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(**)
|
wneuper@59577
|
172 |
(*4, 4], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt; val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(**)
|
wneuper@59577
|
173 |
(*4, 4], Pbl*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
wneuper@59577
|
174 |
(*4, 4], Met*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Apply_Method ["PolyEq", "solve_d2_polyeq_bdvonly_equation"]*)
|
wneuper@59577
|
175 |
(*[4, 4, 1], Frm*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Rewrite_Set_Inst (["(''bdv'', x)"], "d2_polyeq_bdv_only_simplify")*)
|
wneuper@59577
|
176 |
(*[4, 4, 1], Res*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Rewrite_Set_Inst (["(''bdv'', x)"], "d1_polyeq_simplify")*)
|
wneuper@59577
|
177 |
(*[4, 4, 2], Res*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Rewrite_Set "polyeq_simplify"*)
|
wneuper@59577
|
178 |
(*[4, 4, 3], Res*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Or_to_List*)
|
wneuper@59577
|
179 |
(*[4, 4, 4], Res*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Check_elementwise "Assumptions"*)
|
wneuper@59577
|
180 |
(*[4, 4, 5], Res*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Check_Postcond ["bdv_only", "degree_2", "polynomial", "univariate", "equation"]*)
|
wneuper@59577
|
181 |
\<close> ML \<open>
|
wneuper@59578
|
182 |
(*+*)if p = ([4, 4, 5], Res) andalso fst nxt = "Check_Postcond" andalso
|
wneuper@59578
|
183 |
(*+*)terms2str (get_assumptions_ pt p) = "[\"lhs (-6 * x + 5 * x ^^^ 2 = 0) is_poly_in x\",\"lhs (-6 * x + 5 * x ^^^ 2 = 0) has_degree_in x = 2\"]"
|
wneuper@59578
|
184 |
(*+*)then () else error "BEFORE 8 changed";
|
wneuper@59577
|
185 |
\<close> ML \<open>
|
wneuper@59577
|
186 |
(*//--9 begin step into relevant call ----------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---\\
|
wneuper@59577
|
187 |
9 relevant for dropping "x = 0" due to asm "x \<noteq> 0"*)
|
wneuper@59582
|
188 |
(*[4, 4], Res*)val (p''''',_,f,nxt''''',_,pt''''') = me nxt p [1] pt;(*Check_Postcond ["normalise", "polynomial", "univariate", "equation"]*)
|
wneuper@59582
|
189 |
\<close> ML \<open>
|
wneuper@59582
|
190 |
val ctxt = get_ctxt pt p;
|
wneuper@59582
|
191 |
terms2str (get_assumptions ctxt)
|
wneuper@59582
|
192 |
= "[\"lhs (-6 * x + 5 * x ^^^ 2 = 0) is_poly_in x\",\"lhs (-6 * x + 5 * x ^^^ 2 = 0) has_degree_in x = 2\"]";
|
wneuper@59582
|
193 |
(* ^^^ NOT evaluated ^^^ *)
|
wneuper@59582
|
194 |
\<close> ML \<open>
|
wneuper@59582
|
195 |
val ctxt = get_ctxt pt''''' p''''';
|
wneuper@59582
|
196 |
terms2str (get_assumptions ctxt)
|
wneuper@59582
|
197 |
= "[\"lhs (-6 * x + 5 * x ^^^ 2 = 0) has_degree_in x = 2\",\"lhs (-6 * x + 5 * x ^^^ 2 = 0) is_poly_in x\",\"x = 0\",\"x = 6 / 5\"]"
|
wneuper@59582
|
198 |
(* should formulas from calculation really go into ctxt ? ^^^^^ ^^^^^^^^^*)
|
wneuper@59582
|
199 |
\<close> ML \<open>
|
wneuper@59582
|
200 |
"~~~~~ fun me , args:"; val ((_, tac), p, _(*NEW remove*), pt) = (nxt, p, [1], pt);
|
wneuper@59582
|
201 |
\<close> ML \<open>
|
wneuper@59582
|
202 |
val ("ok", (_, _, ptp''''')) = (*case*) locatetac tac (pt, p) (*of*);
|
wneuper@59582
|
203 |
\<close> ML \<open>
|
wneuper@59582
|
204 |
val ctxt = get_ctxt (fst ptp''''') (snd ptp''''');
|
wneuper@59582
|
205 |
terms2str (get_assumptions ctxt)
|
wneuper@59582
|
206 |
= "[\"lhs (-6 * x + 5 * x ^^^ 2 = 0) has_degree_in x = 2\",\"lhs (-6 * x + 5 * x ^^^ 2 = 0) is_poly_in x\",\"x = 0\",\"x = 6 / 5\"]"
|
wneuper@59582
|
207 |
\<close> ML \<open>
|
wneuper@59582
|
208 |
"~~~~~ fun locatetac , args:"; val (tac, (ptp as (pt, p))) = (tac, (pt, p));
|
wneuper@59582
|
209 |
\<close> ML \<open>
|
wneuper@59582
|
210 |
val (mI, m) = Solve.mk_tac'_ tac;
|
wneuper@59582
|
211 |
\<close> ML \<open>
|
wneuper@59582
|
212 |
val Chead.Appl m = (*case*) Applicable.applicable_in p pt m (*of*);
|
wneuper@59582
|
213 |
\<close> ML \<open>
|
wneuper@59582
|
214 |
(*if*) member op = Solve.specsteps mI (*else*);
|
wneuper@59582
|
215 |
\<close> ML \<open>
|
wneuper@59582
|
216 |
val Updated (tacis''''', pos's''''', ptp''''') = loc_solve_ (mI, m) ptp
|
wneuper@59582
|
217 |
\<close> ML \<open>
|
wneuper@59582
|
218 |
"~~~~~ fun loc_solve_ , args:"; val (m, (pt, pos)) = ((mI, m), ptp);
|
wneuper@59582
|
219 |
\<close> ML \<open>
|
wneuper@59582
|
220 |
Solve.solve m (pt, pos);
|
wneuper@59582
|
221 |
\<close> ML \<open>
|
wneuper@59582
|
222 |
"~~~~~ fun solve , args:"; val (("Check_Postcond", Tactic.Check_Postcond' (pI, _)), (pt, (p, p_)))
|
wneuper@59582
|
223 |
= (m, (pt, pos));
|
wneuper@59582
|
224 |
\<close> ML \<open>
|
wneuper@59582
|
225 |
\<close> ML \<open>
|
wneuper@59582
|
226 |
val pp = par_pblobj pt p
|
wneuper@59582
|
227 |
\<close> ML \<open>
|
wneuper@59582
|
228 |
(*+*)(p, p_) = ([4, 4, 5], Res);
|
wneuper@59582
|
229 |
\<close> ML \<open>
|
wneuper@59582
|
230 |
(*+*)pp = [4, 4];
|
wneuper@59582
|
231 |
\<close> ML \<open>
|
wneuper@59582
|
232 |
(*+*)get_obj I pt (fst pos);
|
wneuper@59582
|
233 |
\<close> ML \<open>
|
wneuper@59582
|
234 |
PrfObj;
|
wneuper@59582
|
235 |
\<close> ML \<open>
|
wneuper@59582
|
236 |
val Check_elementwise "Assumptions" = (*case*) get_obj g_tac pt p (*of*);
|
wneuper@59582
|
237 |
(* this ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ should be dropped asap *)
|
wneuper@59582
|
238 |
\<close> ML \<open>
|
wneuper@59582
|
239 |
show_pt_tac pt
|
wneuper@59582
|
240 |
\<close> ML \<open>
|
wneuper@59582
|
241 |
\<close> ML \<open>
|
wneuper@59582
|
242 |
\<close> ML \<open>
|
wneuper@59582
|
243 |
\<close> ML \<open>
|
wneuper@59582
|
244 |
\<close> ML \<open>
|
wneuper@59582
|
245 |
\<close> ML \<open>
|
wneuper@59582
|
246 |
\<close> ML \<open>
|
wneuper@59577
|
247 |
(*\\--9 end step into relevant call ----------------------------------------------------------//*)
|
wneuper@59577
|
248 |
\<close> ML \<open>
|
wneuper@59582
|
249 |
(*+*)if p''''' = ([4, 4], Res) andalso fst nxt''''' = "Check_Postcond" andalso
|
wneuper@59582
|
250 |
(*+*)terms2str (get_assumptions_ pt''''' p''''') = "[\"lhs (-6 * x + 5 * x ^^^ 2 = 0) has_degree_in x = 2\",\"lhs (-6 * x + 5 * x ^^^ 2 = 0) is_poly_in x\",\"x = 0\",\"x = 6 / 5\"]"
|
wneuper@59578
|
251 |
(*+*)then () else error "AFTER 8 changed";
|
wneuper@59577
|
252 |
\<close> ML \<open>
|
wneuper@59582
|
253 |
(*[4], Res*)val (p,_,f,nxt,_,pt) = me nxt''''' p''''' [1] pt''''';(*Check_elementwise "Assumptions"*)
|
wneuper@59577
|
254 |
(*[5], Res*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*Check_Postcond ["rational", "univariate", "equation"]*)
|
wneuper@59577
|
255 |
(*[], Res*)val (p,_,f,nxt,_,pt) = me nxt p [1] pt;(*End_Proof'*)
|
wneuper@59577
|
256 |
\<close> ML \<open>
|
wneuper@59578
|
257 |
(*+*)if p = ([], Res) andalso f2str f = "[]" (*..must change*)andalso fst nxt = "End_Proof'" andalso
|
wneuper@59578
|
258 |
(*+*)terms2str (get_assumptions_ pt p) = "[\"x = 6 / 5\",\"x = 0\",\"lhs (-6 * x + 5 * x ^^^ 2 = 0) is_poly_in x\",\"lhs (-6 * x + 5 * x ^^^ 2 = 0) has_degree_in x = 2\"]"
|
wneuper@59578
|
259 |
(*+*)then () else error "ERROR CHANGED: rateq.sml: diff.behav. in I s.87 Bsp 55b [x = 6 / 5], End_Proof'";
|
wneuper@59578
|
260 |
\<close> ML \<open>
|
wneuper@59578
|
261 |
\<close> ML \<open>
|
wneuper@59578
|
262 |
"~~~~~ fun xxx , args:"; val () = ();
|
wneuper@59578
|
263 |
\<close>
|
wneuper@59578
|
264 |
|
walther@59671
|
265 |
section \<open>===================================================================================\<close>
|
walther@59657
|
266 |
ML \<open>
|
walther@59657
|
267 |
\<close> ML \<open>
|
walther@59657
|
268 |
\<close> ML \<open>
|
walther@59657
|
269 |
\<close>
|
walther@59657
|
270 |
|
wneuper@59535
|
271 |
section \<open>code for copy & paste ===============================================================\<close>
|
wneuper@59535
|
272 |
ML \<open>
|
wneuper@59531
|
273 |
"~~~~~ fun xxx , args:"; val () = ();
|
wneuper@59582
|
274 |
"~~~~~ and xxx , args:"; val () = ();
|
wneuper@59582
|
275 |
"~~~~~ from xxx to yyy return val:"; val ((*yyy*)) = ((*xxx*));
|
wneuper@59582
|
276 |
(*if*) (*then*); (*else*); (*case*) (*of*); (*return value*);
|
wneuper@59582
|
277 |
"xx"
|
wneuper@59582
|
278 |
^ "xxx" (*+*)
|
wneuper@59535
|
279 |
\<close>
|
neuper@41943
|
280 |
end
|