Walther@60556
|
1 |
(* Title: Knowledge/eqsystem-1a.sml
|
Walther@60556
|
2 |
author: Walther Neuper 050826,
|
Walther@60556
|
3 |
*)
|
Walther@60556
|
4 |
|
Walther@60567
|
5 |
"-----------------------------------------------------------------------------------------------";
|
Walther@60567
|
6 |
"table of contents -----------------------------------------------------------------------------";
|
Walther@60567
|
7 |
"-----------------------------------------------------------------------------------------------";
|
Walther@60567
|
8 |
"----------- occur_exactly_in ---------------------------------------------------equsystem-1.sml";
|
Walther@60567
|
9 |
"----------- problems -----------------------------------------------------------equsystem-1.sml";
|
Walther@60567
|
10 |
"----------- rewrite-order ord_simplify_System ----------------------------------equsystem-1.sml";
|
Walther@60567
|
11 |
"----------- rewrite in [EqSystem,normalise,2x2] --------------------------------equsystem-1.sml";
|
Walther@60567
|
12 |
"----------- rewrite example from 2nd [EqSystem,normalise,2x2] ------------------equsystem-1.sml";
|
Walther@60567
|
13 |
"----------- rewrite in [EqSystem,top_down_substitution,2x2] --------------------equsystem-1.sml";
|
Walther@60567
|
14 |
"----------- rewrite in [EqSystem,normalise,4x4] --------------------------------equsystem-1.sml";
|
Walther@60567
|
15 |
"----------- script [EqSystem,top_down_substitution,2x2] Vers.1 -----------------equsystem-1.sml";
|
Walther@60567
|
16 |
"----------- refine [linear,system]----------------------------------------------equsystem-1.sml";
|
Walther@60567
|
17 |
"----------- refine [2x2,linear,system] search error-----------------------------equsystem-1.sml";
|
Walther@60567
|
18 |
"----------- me [EqSystem,normalise,2x2], refine Subproblem ---------------------equsystem-1.sml";
|
Walther@60567
|
19 |
"----------- me [EqSystem,normalise,2x2], refine Subproblem, step into istate---equsystem-1a.sml";
|
Walther@60567
|
20 |
"----------- me [linear,system] ..normalise..top_down_sub..----------------------equsystem-2.sml";
|
Walther@60567
|
21 |
"----------- all systems from Biegelinie ----------------------------------------equsystem-2.sml";
|
Walther@60567
|
22 |
"----------- 4x4 systems from Biegelinie ----------------------------------------equsystem-2.sml";
|
Walther@60567
|
23 |
"-----------------------------------------------------------------------------------------------";
|
Walther@60567
|
24 |
"-----------------------------------------------------------------------------------------------";
|
Walther@60567
|
25 |
"-----------------------------------------------------------------------------------------------";
|
Walther@60556
|
26 |
|
Walther@60556
|
27 |
|
Walther@60567
|
28 |
"----------- me [EqSystem,normalise,2x2], refine Subproblem, step into istate---equsystem-1a.sml";
|
Walther@60567
|
29 |
"----------- me [EqSystem,normalise,2x2], refine Subproblem, step into istate---equsystem-1a.sml";
|
Walther@60567
|
30 |
"----------- me [EqSystem,normalise,2x2], refine Subproblem, step into istate---equsystem-1a.sml";
|
Walther@60556
|
31 |
val fmz = ["equalities [0 = - 1 * q_0 * 0 \<up> 2 / 2 + 0 * c + c_2,\
|
Walther@60556
|
32 |
\0 = - 1 * q_0 * L \<up> 2 / 2 + L * c + c_2]",
|
Walther@60556
|
33 |
"solveForVars [c, c_2]", "solution LL"];
|
Walther@60556
|
34 |
val (dI',pI',mI') =
|
Walther@60556
|
35 |
("Biegelinie",["normalise", "2x2", "LINEAR", "system"],
|
Walther@60556
|
36 |
["EqSystem", "normalise", "2x2"]);
|
Walther@60556
|
37 |
val p = e_pos'; val c = [];
|
Walther@60556
|
38 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
Walther@60556
|
39 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
Walther@60556
|
40 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
Walther@60556
|
41 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
Walther@60556
|
42 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
Walther@60556
|
43 |
case nxt of Specify_Method ["EqSystem", "normalise", "2x2"] => ()
|
Walther@60556
|
44 |
| _ => error "eqsystem.sml [EqSystem,normalise,2x2] specify";
|
Walther@60556
|
45 |
|
Walther@60556
|
46 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
Walther@60556
|
47 |
(*nxt = Apply_Method ["EqSystem", "normalise", "2x2"]*)
|
Walther@60556
|
48 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f = "[0 = - 1 * q_0 * 0 \<up> 2 / 2 + 0 * c + c_2,\n 0 = - 1 * q_0 * L \<up> 2 / 2 + L * c + c_2]";
|
Walther@60556
|
49 |
(*nxt = Rewrite_Set "norm_Rational" *)
|
Walther@60556
|
50 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f = "[0 = c_2," ^ " 0 = (2 * c_2 + 2 * L * c + - 1 * L \<up> 2 * q_0) / 2]";
|
Walther@60556
|
51 |
(*nxt = Rewrite_Set_Inst (["(''bdv_1'', c)", "(''bdv_2'', c_2)"], "simplify_System_parenthesized")*)
|
Walther@60556
|
52 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f = "[0 = c_2," ^ " 0 = - 1 * q_0 * L \<up> 2 / 2 + (L * c + c_2)]";
|
Walther@60556
|
53 |
(*nxt = Rewrite_Set_Inst (["(''bdv_1'', c)", "(''bdv_2'', c_2)"], "isolate_bdvs")*)
|
Walther@60556
|
54 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f = "[c_2 = 0," ^ " L * c + c_2 = 0 + - 1 * (- 1 * q_0 * L \<up> 2 / 2)]";
|
Walther@60556
|
55 |
(*nxt = Rewrite_Set_Inst (["(''bdv_1'', c)", "(''bdv_2'', c_2)"], "simplify_System_parenthesized")*);
|
Walther@60556
|
56 |
(*next in solve_EqSystem:solve_system2: Try (Rewrite_Set ''order_system'') ..is skipped*)
|
Walther@60556
|
57 |
val (p''''',_,f''''',nxt''''',_,pt''''') = me nxt p c pt;f2str f = "[c_2 = 0," ^ " L * c + c_2 = q_0 * L \<up> 2 / 2]";
|
Walther@60556
|
58 |
(*nxt = Subproblem ("Biegelinie", ["triangular", "2x2", "LINEAR", "system"])*)
|
Walther@60556
|
59 |
|
Walther@60556
|
60 |
(*/------------------- step into me -----------------------------------------------------\*)
|
Walther@60556
|
61 |
(*+*)val (NONE, SOME (ist, ctxt)) = Ctree.get_obj g_loc pt (fst p);
|
Walther@60556
|
62 |
|
Walther@60556
|
63 |
"~~~~~ fun me , args:"; val (tac, p, _, pt) = (nxt, p, c, pt);
|
Walther@60556
|
64 |
val (pt, p) =
|
Walther@60556
|
65 |
(*Step.by_tactic is here for testing by me; do_next would suffice in me*)
|
Walther@60556
|
66 |
case Step.by_tactic tac (pt, p) of
|
Walther@60556
|
67 |
("ok", (_, _, ptp)) => ptp;
|
Walther@60556
|
68 |
(*case*)
|
Walther@60556
|
69 |
Step.do_next p ((pt, Pos.e_pos'), []) (*of*);
|
Walther@60556
|
70 |
"~~~~~ fun do_next , args:"; val ((ip as (_, p_)), (ptp as (pt, p), tacis) ) =
|
Walther@60556
|
71 |
(p, ((pt, Pos.e_pos'), []));
|
Walther@60556
|
72 |
(*if*) Pos.on_calc_end ip (*else*);
|
Walther@60556
|
73 |
val (_, probl_id, _) = Calc.references (pt, p);
|
Walther@60556
|
74 |
val _ = (*case*) tacis (*of*);
|
Walther@60556
|
75 |
(*if*) probl_id = Problem.id_empty (*else*);
|
Walther@60556
|
76 |
|
Walther@60556
|
77 |
switch_specify_solve p_ (pt, ip);
|
Walther@60556
|
78 |
"~~~~~ fun switch_specify_solve , args:"; val (state_pos, (pt, input_pos)) = (p_, (pt, ip));
|
Walther@60556
|
79 |
(*if*) Pos.on_specification ([], state_pos) (*else*);
|
Walther@60556
|
80 |
|
Walther@60556
|
81 |
LI.do_next (pt, input_pos);
|
Walther@60556
|
82 |
"~~~~~ and do_next , args:"; val (ptp as (pt, pos as (p, p_))) = (pt, input_pos);
|
Walther@60556
|
83 |
(*if*) MethodC.id_empty = get_obj g_metID pt (par_pblobj pt p) (*else*);
|
Walther@60556
|
84 |
val thy' = get_obj g_domID pt (par_pblobj pt p);
|
Walther@60559
|
85 |
val ((ist, ctxt), sc) = LItool.resume_prog (p,p_) pt;
|
Walther@60556
|
86 |
|
Walther@60556
|
87 |
val Next_Step (Pstate {act_arg = t, ...}, _, _) = (*case*)
|
Walther@60556
|
88 |
LI.find_next_step sc (pt, pos) ist ctxt (*of*);
|
Walther@60556
|
89 |
"~~~~~ fun find_next_step , args:"; val ((Rule.Prog prog), (ptp as (pt, pos as (p, _))), (Pstate ist), ctxt) =
|
Walther@60556
|
90 |
(sc, (pt, pos), ist, ctxt);
|
Walther@60556
|
91 |
|
Walther@60556
|
92 |
val Accept_Tac ((*tac*)Subproblem' _, _(*ist*), _(*ctxt*)) =
|
Walther@60556
|
93 |
(*case*) scan_to_tactic (prog, (ptp, ctxt)) (Pstate ist) (*of*);
|
Walther@60556
|
94 |
"~~~~~ fun scan_to_tactic , args:"; val ((prog, cc), (Pstate (ist as {path, ...}))) =
|
Walther@60556
|
95 |
((prog, (ptp, ctxt)), (Pstate ist));
|
Walther@60556
|
96 |
(*if*) path = [] (*else*);
|
Walther@60556
|
97 |
(*+*)path = [R, L, R, L, R, R, R, L, R, R];
|
Walther@60556
|
98 |
|
Walther@60556
|
99 |
val Accept_Tac (Subproblem' _, _(*ist*), _(*ctxt*)) =
|
Walther@60556
|
100 |
go_scan_up (prog, cc) (trans_scan_up ist);
|
Walther@60556
|
101 |
"~~~~~ fun go_scan_up , args:"; val ((pcc as (sc, _)), (ist as {path, act_arg, found_accept, ...})) =
|
Walther@60556
|
102 |
((prog, cc), (trans_scan_up ist));
|
Walther@60556
|
103 |
(*if*) path = [R] (*else*);
|
Walther@60556
|
104 |
(*+*)val [R, L, R, L, R, R, R, L, R, R] = path;
|
Walther@60556
|
105 |
val Accept_Tac (Subproblem'
|
Walther@60556
|
106 |
(("Biegelinie", ["triangular", "2x2", "LINEAR", "system"], ["EqSystem", "top_down_substitution", "2x2"]), _, _, _, _, _),
|
Walther@60556
|
107 |
istist, _) =
|
Walther@60556
|
108 |
scan_up pcc (ist |> path_up) (go_up path sc);
|
Walther@60556
|
109 |
"~~~~~ and scan_up , args:"; val (pcc, ist, (Const (\<^const_name>\<open>Tactical.Try\<close>(*2*), _) $ _ )) =
|
Walther@60556
|
110 |
(pcc, (ist |> path_up), (go_up path sc));
|
Walther@60556
|
111 |
go_scan_up pcc ist;
|
Walther@60556
|
112 |
"~~~~~ fun go_scan_up , args:"; val ((pcc as (sc, _)), (ist as {path, act_arg, found_accept, ...})) =
|
Walther@60556
|
113 |
(pcc, ist);
|
Walther@60556
|
114 |
(*if*) path = [R] (*else*);
|
Walther@60556
|
115 |
(*+*)val [R, L, R, L, R, R, R, L, R] = path;
|
Walther@60556
|
116 |
scan_up pcc (ist |> path_up) (go_up path sc);
|
Walther@60556
|
117 |
"~~~~~ and scan_up , args:"; val ((pcc as (sc, cc)), ist, (Const (\<^const_name>\<open>Tactical.Chain\<close>(*3*), _) $ _)) =
|
Walther@60556
|
118 |
(pcc, (ist |> path_up), (go_up path sc));
|
Walther@60556
|
119 |
val e2 = check_Seq_up ist sc
|
Walther@60556
|
120 |
val Term_Val v =
|
Walther@60556
|
121 |
(*case*) scan_dn cc (ist |> path_up_down [R]) e2 (*of*);
|
Walther@60556
|
122 |
go_scan_up pcc (ist |> path_up |> set_act v |> set_found);
|
Walther@60556
|
123 |
"~~~~~ fun go_scan_up , args:"; val ((pcc as (sc, _)), (ist as {path, act_arg, found_accept, ...})) =
|
Walther@60556
|
124 |
(pcc, (ist |> path_up |> set_act v |> set_found));
|
Walther@60556
|
125 |
(*if*) path = [R] (*else*);
|
Walther@60556
|
126 |
(*+*)path = [R, L, R, L, R, R, R];
|
Walther@60556
|
127 |
scan_up pcc (ist |> path_up) (go_up path sc);
|
Walther@60556
|
128 |
"~~~~~ and scan_up , args:"; val (pcc, ist, (Const (\<^const_name>\<open>Tactical.Chain\<close>(*2*), _) $ _ $ _ )) =
|
Walther@60556
|
129 |
(pcc, (ist |> path_up), (go_up path sc));
|
Walther@60556
|
130 |
go_scan_up pcc ist;
|
Walther@60556
|
131 |
"~~~~~ fun go_scan_up , args:"; val ((pcc as (sc, _)), (ist as {path, act_arg, found_accept, ...})) =
|
Walther@60556
|
132 |
(pcc, ist);
|
Walther@60556
|
133 |
(*if*) path = [R] (*else*);
|
Walther@60556
|
134 |
(*+*)path = [R, L, R, L, R, R];
|
Walther@60556
|
135 |
scan_up pcc (ist |> path_up) (go_up path sc);
|
Walther@60556
|
136 |
"~~~~~ and scan_up , args:"; val (pcc, ist, (Const (\<^const_name>\<open>Tactical.Chain\<close>(*2*), _) $ _ $ _ )) =
|
Walther@60556
|
137 |
(pcc, (ist |> path_up), (go_up path sc));
|
Walther@60556
|
138 |
go_scan_up pcc ist;
|
Walther@60556
|
139 |
"~~~~~ fun go_scan_up , args:"; val ((pcc as (sc, _)), (ist as {path, act_arg, found_accept, ...})) =
|
Walther@60556
|
140 |
(pcc, ist);
|
Walther@60556
|
141 |
(*if*) path = [R] (*else*);
|
Walther@60556
|
142 |
(*+*)path = [R, L, R, L, R];
|
Walther@60556
|
143 |
scan_up pcc (ist |> path_up) (go_up path sc);
|
Walther@60556
|
144 |
"~~~~~ and scan_up , args:"; val (pcc, ist, (Const (\<^const_name>\<open>Tactical.Chain\<close>(*2*), _) $ _ $ _ )) =
|
Walther@60556
|
145 |
(pcc, (ist |> path_up), (go_up path sc));
|
Walther@60556
|
146 |
go_scan_up pcc ist;
|
Walther@60556
|
147 |
"~~~~~ fun go_scan_up , args:"; val ((pcc as (sc, _)), (ist as {path, act_arg, found_accept, ...})) =
|
Walther@60556
|
148 |
(pcc, ist);
|
Walther@60556
|
149 |
(*if*) path = [R] (*else*);
|
Walther@60556
|
150 |
(*+*)path = [R, L, R, L];
|
Walther@60556
|
151 |
scan_up pcc (ist |> path_up) (go_up path sc);
|
Walther@60556
|
152 |
"~~~~~ and scan_up , args:"; val (pcc, ist, (Const (\<^const_name>\<open>Tactical.Chain\<close>(*1*), _) $ _ $ _ $ _)) =
|
Walther@60556
|
153 |
(pcc, (ist |> path_up), (go_up path sc));
|
Walther@60556
|
154 |
go_scan_up pcc ist;
|
Walther@60556
|
155 |
"~~~~~ fun go_scan_up , args:"; val ((pcc as (sc, _)), (ist as {path, act_arg, found_accept, ...})) =
|
Walther@60556
|
156 |
(pcc, ist);
|
Walther@60556
|
157 |
(*if*) path = [R] (*else*);
|
Walther@60556
|
158 |
(*+*)path = [R, L, R];
|
Walther@60556
|
159 |
scan_up pcc (ist |> path_up) (go_up path sc);
|
Walther@60556
|
160 |
"~~~~~ and scan_up , args:"; val ((pcc as (sc, cc)), ist, (Const (\<^const_name>\<open>Let\<close>(*1*), _) $ _)) =
|
Walther@60556
|
161 |
(pcc, (ist |> path_up), (go_up path sc));
|
Walther@60556
|
162 |
val (i, body) = check_Let_up ist sc
|
Walther@60556
|
163 |
|
Walther@60556
|
164 |
val Accept_Tac _ = (*case*)
|
Walther@60556
|
165 |
scan_dn cc (ist |> path_up_down [R, D] |> upd_env i) body (*of*);
|
Walther@60556
|
166 |
"~~~~~ fun scan_dn , args:"; val ((cc as (_, ctxt)), (ist as {eval, ...}), t) =
|
Walther@60556
|
167 |
(cc, (ist |> path_up_down [R, D] |> upd_env i), body);
|
Walther@60556
|
168 |
(*if*) Tactical.contained_in t (*else*);
|
Walther@60556
|
169 |
val (Program.Tac prog_tac, form_arg) =
|
Walther@60556
|
170 |
(*case*) LItool.check_leaf "next " ctxt eval (get_subst ist) t (*of*);
|
Walther@60556
|
171 |
|
Walther@60556
|
172 |
check_tac cc ist (prog_tac, form_arg);
|
Walther@60556
|
173 |
"~~~~~ fun check_tac , args:"; val (((pt, p), ctxt), ist, (prog_tac, form_arg)) =
|
Walther@60556
|
174 |
(cc, ist, (prog_tac, form_arg));
|
Walther@60556
|
175 |
|
Walther@60556
|
176 |
val m =
|
Walther@60556
|
177 |
LItool.tac_from_prog pt (Proof_Context.theory_of ctxt) prog_tac;
|
Walther@60556
|
178 |
"~~~~~ fun tac_from_prog , args:"; val (pt, _, (ptac as Const (\<^const_name>\<open>Prog_Tac.SubProblem\<close>, _) $ _ $ _)) =
|
Walther@60556
|
179 |
(pt, (Proof_Context.theory_of ctxt), prog_tac);
|
Walther@60556
|
180 |
"~~~~~ from fun tac_from_prog \<longrightarrow>fun check_tac , return:"; val (m) =
|
Walther@60556
|
181 |
(fst (
|
Walther@60556
|
182 |
Sub_Problem.tac_from_prog pt ptac));
|
Walther@60556
|
183 |
"~~~~~ fun tac_from_prog , args:"; val (pt, (stac as Const (\<^const_name>\<open>Prog_Tac.SubProblem\<close>, _) $ spec' $ ags')) =
|
Walther@60556
|
184 |
(pt, ptac);
|
Walther@60556
|
185 |
val (dI, pI, mI) = Prog_Tac.dest_spec spec'
|
Walther@60556
|
186 |
val thy = ThyC.sub_common (ThyC.get_theory dI, Ctree.rootthy pt);;
|
Walther@60556
|
187 |
val ctxt = Proof_Context.init_global thy (*BETTER USE user_ctxt ?*)
|
Walther@60556
|
188 |
val ags = TermC.isalist2list ags';
|
Walther@60556
|
189 |
(*if*) mI = ["no_met"] (*then*);
|
Walther@60559
|
190 |
val pors = (M_Match.arguments thy ((#ppc o (Problem.from_store ctxt)) pI) ags): O_Model.T
|
Walther@60556
|
191 |
val pI' =
|
Walther@60559
|
192 |
Refine.refine_ori' ctxt pors pI;
|
Walther@60556
|
193 |
val return = (pI', pors (* refinement over models with diff.prec only *),
|
Walther@60559
|
194 |
(hd o #met o Problem.from_store ctxt) pI');
|
Walther@60556
|
195 |
(*-------------^^ THIS CAUSED THE ERROR Empty*)
|
Walther@60556
|
196 |
|
Walther@60556
|
197 |
(*+*)val ["LINEAR", "system"] = pI;
|
Walther@60556
|
198 |
(*+*)fun app_ptyp x = Store.apply (get_pbls ()) x; (*redefine locally hidden*)
|
Walther@60556
|
199 |
|
Walther@60559
|
200 |
"~~~~~ fun refine_ori' , args:"; val (oris, pblID) = (pors, pI);
|
Walther@60556
|
201 |
val SOME ["system", "LINEAR", "2x2", "triangular"] =
|
Walther@60559
|
202 |
app_ptyp (Refine.refin ctxt ((rev o tl) pblID) oris) pblID (rev pblID);
|
Walther@60556
|
203 |
|
Walther@60556
|
204 |
"~~~~~ fun app_ptyp , args:"; val () = (); (*considered too expensive for testing*)
|
Walther@60556
|
205 |
(*+*)val fmz = ["equalities [c_2 = (0::real), L * c + c_2 = q_0 * L \<up> 2 / 2]",
|
Walther@60556
|
206 |
"solveForVars [c, c_2]", "solution LL"];
|
Walther@60556
|
207 |
(*+isa<>isa2*)Refine.refine_PIDE @{context} fmz ["LINEAR", "system"];(*
|
Walther@60556
|
208 |
*** pass ["system", "LINEAR"]
|
Walther@60556
|
209 |
*** pass ["system", "LINEAR", "2x2"]
|
Walther@60556
|
210 |
*** pass ["system", "LINEAR", "3x3"]
|
Walther@60556
|
211 |
*** pass ["system", "LINEAR", "4x4"]
|
Walther@60556
|
212 |
val it =
|
Walther@60556
|
213 |
[Matches (["LINEAR", "system"], {Find = [Correct "solution LL"], Given = [Correct "equalities [c_2 = 0, L * c + c_2 = q_0 * L \<up> 2 / 2]", Correct "solveForVars [c, c_2]"], Relate = [], Where = [], With = []}),
|
Walther@60556
|
214 |
NoMatch
|
Walther@60556
|
215 |
(["2x2", "LINEAR", "system"],
|
Walther@60556
|
216 |
{Find = [Correct "solution LL"], Given = [Correct "equalities [c_2 = 0, L * c + c_2 = q_0 * L \<up> 2 / 2]", Correct "solveForVars [c, c_2]"], Relate = [], Where =
|
Walther@60556
|
217 |
[Correct "Length [c_2 = 0, L * c + c_2 = q_0 * L \<up> 2 / 2] = 2", False "Length v_s = 2"], With = []}),
|
Walther@60556
|
218 |
-------------------------------------------------------- [c, c_2] NOT SUBSTUTED -----^^^
|
Walther@60556
|
219 |
NoMatch
|
Walther@60556
|
220 |
(["3x3", "LINEAR", "system"],
|
Walther@60556
|
221 |
{Find = [Correct "solution LL"], Given = [Correct "equalities [c_2 = 0, L * c + c_2 = q_0 * L \<up> 2 / 2]", Correct "solveForVars [c, c_2]"], Relate = [], Where =
|
Walther@60556
|
222 |
[False "Length [c_2 = 0, L * c + c_2 = q_0 * L \<up> 2 / 2] = 3", False "Length v_s = 3"], With = []}),
|
Walther@60556
|
223 |
------------------------------------------------------ [c, c_2] NOT SUBSTUTED -----^^^
|
Walther@60556
|
224 |
NoMatch
|
Walther@60556
|
225 |
(["4x4", "LINEAR", "system"],
|
Walther@60556
|
226 |
{Find = [Correct "solution LL"], Given = [Correct "equalities [c_2 = 0, L * c + c_2 = q_0 * L \<up> 2 / 2]", Correct "solveForVars [c, c_2]"], Relate = [], Where =
|
Walther@60556
|
227 |
[False "Length [c_2 = 0, L * c + c_2 = q_0 * L \<up> 2 / 2] = 4", False "Length v_s = 4"], With = []})]:
|
Walther@60556
|
228 |
------------------------------------------------------ [c, c_2] NOT SUBSTUTED -----^^^
|
Walther@60556
|
229 |
M_Match.T list*)
|
Walther@60556
|
230 |
(*-------------------- stop step into me -------------------------------------------------*)
|
Walther@60556
|
231 |
(*\------------------- step into me -----------------------------------------------------/*)
|
Walther@60556
|
232 |
case nxt''''' of
|
Walther@60556
|
233 |
(Subproblem ("Biegelinie", ["triangular", "2x2", "LINEAR",_])) => ()
|
Walther@60556
|
234 |
| _ => error "eqsystem.sml me [EqSystem,normalise,2x2] SubProblem";
|
Walther@60556
|
235 |
val (p,f,nxt,pt) = (p''''',f''''',nxt''''',pt''''');
|
Walther@60556
|
236 |
|
Walther@60556
|
237 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
Walther@60556
|
238 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
Walther@60556
|
239 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
Walther@60556
|
240 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
Walther@60556
|
241 |
case nxt of
|
Walther@60556
|
242 |
(Specify_Method ["EqSystem", "top_down_substitution", "2x2"]) => ()
|
Walther@60556
|
243 |
| _ => error "eqsystem.sml me [EqSys...2x2] top_down_substitution";
|
Walther@60556
|
244 |
|
Walther@60556
|
245 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;
|
Walther@60556
|
246 |
val PblObj {probl,...} = get_obj I pt [5];
|
Walther@60556
|
247 |
(writeln o (I_Model.to_string (Proof_Context.init_global @{theory Isac_Knowledge}))) probl;
|
Walther@60556
|
248 |
(*[
|
Walther@60556
|
249 |
(1 ,[1] ,true ,#Given ,Cor equalities [c_2 = 0, L * c + c_2 = q_0 * L \<up> 2 / 2] ,(es_, [[c_2 = 0, L * c + c_2 = q_0 * L \<up> 2 / 2]])),
|
Walther@60556
|
250 |
(2 ,[1] ,true ,#Given ,Cor solveForVars [c, c_2] ,(v_s, [[c, c_2]])),
|
Walther@60556
|
251 |
(3 ,[1] ,true ,#Find ,Cor solution ss___ ,(ss___, [ss___]))]
|
Walther@60556
|
252 |
*)
|
Walther@60556
|
253 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
Walther@60556
|
254 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
Walther@60556
|
255 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
Walther@60556
|
256 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
Walther@60556
|
257 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
Walther@60556
|
258 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
Walther@60556
|
259 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
Walther@60556
|
260 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
Walther@60556
|
261 |
|
Walther@60556
|
262 |
case nxt of
|
Walther@60556
|
263 |
(Check_Postcond ["triangular", "2x2", "LINEAR", "system"]) => ()
|
Walther@60556
|
264 |
| _ => error "eqsystem.sml me Subpbl .[EqSys...2x2] finished";
|
Walther@60556
|
265 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
Walther@60556
|
266 |
val (p,_,f,nxt,_,pt) = me nxt p c pt;f2str f;
|
Walther@60556
|
267 |
if f2str f = "[c = L * q_0 / 2, c_2 = 0]" then ()
|
Walther@60556
|
268 |
else error "eqsystem.sml me [EqSys...2x2] finished f2str f";
|
Walther@60556
|
269 |
case nxt of
|
Walther@60556
|
270 |
(End_Proof') => ()
|
Walther@60556
|
271 |
| _ => error "eqsystem.sml me [EqSys...2x2] finished End_Proof'";
|