neuper@38036
|
1 |
(* Title: tests for Interpret/mstools.sml
|
e0726734@41957
|
2 |
Author: Walther Neuper 100930, Mathias Lehnfeld
|
neuper@38036
|
3 |
(c) copyright due to lincense terms.
|
neuper@37906
|
4 |
|
neuper@38036
|
5 |
12345678901234567890123456789012345678901234567890123456789012345678901234567890
|
neuper@38036
|
6 |
10 20 30 40 50 60 70 80
|
neuper@38036
|
7 |
*)
|
neuper@38036
|
8 |
"--------------------------------------------------------";
|
neuper@38036
|
9 |
"table of contents --------------------------------------";
|
neuper@38036
|
10 |
"--------------------------------------------------------";
|
neuper@41990
|
11 |
"----------- fun declare_constraints' -------------------";
|
bonzai@41941
|
12 |
"----------- fun declare_constraints --------------------";
|
e0726734@41957
|
13 |
"----------- fun get_assumptions, fun get_environments --";
|
neuper@42019
|
14 |
"----------- fun transfer_asms_from_to ------------------";
|
neuper@42023
|
15 |
"----------- fun from_subpbl_to_caller ------------------";
|
neuper@42019
|
16 |
"----------- all ctxt changes in minimsubpbl x+1=2 ------";
|
neuper@41982
|
17 |
"----------- go through Model_Problem until nxt_tac -----";
|
neuper@38036
|
18 |
"--------------------------------------------------------";
|
neuper@38036
|
19 |
"--------------------------------------------------------";
|
neuper@38036
|
20 |
"--------------------------------------------------------";
|
bonzai@41941
|
21 |
"--------------------------------------------------------";
|
neuper@37906
|
22 |
|
neuper@37906
|
23 |
|
neuper@41990
|
24 |
"----------- fun declare_constraints' -------------------";
|
neuper@41990
|
25 |
"----------- fun declare_constraints' -------------------";
|
neuper@41990
|
26 |
"----------- fun declare_constraints' -------------------";
|
neuper@41990
|
27 |
val ctxt = ProofContext.init_global @{theory "Isac"};
|
neuper@41990
|
28 |
val SOME ta = parseNEW ctxt "x";
|
neuper@41990
|
29 |
if type_of ta = TFree ("'a",[]) then () else error "TODO";
|
neuper@41990
|
30 |
|
neuper@41990
|
31 |
(*----- add a type constraint to ctxt *)
|
neuper@41990
|
32 |
val SOME ti = parseNEW ctxt "x::int";
|
neuper@41990
|
33 |
val ctxt = declare_constraints' [ti] ctxt;
|
neuper@41990
|
34 |
|
neuper@41990
|
35 |
(*----- now parsing infers the type *)
|
neuper@41990
|
36 |
val SOME t = parseNEW ctxt "x";
|
neuper@41990
|
37 |
if type_of t = Type ("Int.int",[]) then () else error "TODO";
|
neuper@41990
|
38 |
|
bonzai@41941
|
39 |
"----------- fun declare_constraints --------------------";
|
bonzai@41941
|
40 |
"----------- fun declare_constraints --------------------";
|
bonzai@41941
|
41 |
"----------- fun declare_constraints --------------------";
|
neuper@41973
|
42 |
val ctxt = ProofContext.init_global @{theory "Isac"}
|
bonzai@41941
|
43 |
|> declare_constraints "xxx + yyy = (111::int)";
|
bonzai@41949
|
44 |
val t = case parseNEW ctxt "xxx = 123" of
|
bonzai@41949
|
45 |
NONE => error "mstools: syntax error"
|
bonzai@41949
|
46 |
| SOME t' => t';
|
neuper@41942
|
47 |
if ((lhs t) |> type_of) = @{typ int} then ()
|
bonzai@41941
|
48 |
else error "mstools: incorrect type inference from parseNEW ctxt";
|
neuper@37906
|
49 |
|
neuper@42272
|
50 |
val t_bit = Syntax.read_term ctxt "11::int";
|
neuper@42272
|
51 |
val t_free = numbers_to_string t_bit;
|
neuper@42272
|
52 |
val ctxt = ProofContext.init_global @{theory "Isac"};
|
neuper@42272
|
53 |
val SOME t = parseNEW ctxt "11";
|
neuper@42272
|
54 |
if (t |> type_of) = TFree ("'a", ["Int.number"]) then ()
|
neuper@42272
|
55 |
else error "parsed numeral correct";
|
neuper@42272
|
56 |
val ctxt' = Variable.declare_constraints t_free ctxt;
|
neuper@42272
|
57 |
val SOME t' = parseNEW ctxt' "11";
|
neuper@42272
|
58 |
if (t' |> type_of) = TFree ("'a", ["Int.number"]) then ()
|
neuper@42272
|
59 |
else error "Variable.declare_constraints did not recognize numeral";
|
neuper@38036
|
60 |
|
e0726734@41957
|
61 |
"----------- fun get_assumptions, fun get_environments --";
|
e0726734@41957
|
62 |
"----------- fun get_assumptions, fun get_environments --";
|
e0726734@41957
|
63 |
"----------- fun get_assumptions, fun get_environments --";
|
e0726734@41957
|
64 |
val ctxt = insert_assumptions
|
e0726734@41957
|
65 |
[@{term "x * v"}, @{term "2 * u"}, @{term "2 * u"}] ctxt;
|
neuper@41961
|
66 |
val ctxt = insert_assumptions
|
neuper@41961
|
67 |
[@{term "x * v"}, @{term "2 * u"}] ctxt;
|
e0726734@41957
|
68 |
val asms = get_assumptions ctxt;
|
e0726734@41957
|
69 |
if asms = [@{term "x * v"}, @{term "2 * u"}] then ()
|
neuper@41975
|
70 |
else error "mstools.sml insert_/get_assumptions changed 1.";
|
e0726734@41957
|
71 |
|
neuper@41961
|
72 |
val ctxt = insert_environments
|
neuper@41961
|
73 |
[(@{term "y"}, @{term "17"}), (@{term "z"}, @{term "y"})] ctxt;
|
e0726734@41957
|
74 |
val envs = get_environments ctxt;
|
e0726734@41957
|
75 |
if envs = [(@{term "y"}, @{term "17"}), (@{term "z"}, @{term "y"})] then ()
|
neuper@41975
|
76 |
else error "mstools.sml insert_/get_environments changed 2.";
|
neuper@41975
|
77 |
|
neuper@42019
|
78 |
"----------- fun transfer_asms_from_to ------------------";
|
neuper@42019
|
79 |
"----------- fun transfer_asms_from_to ------------------";
|
neuper@42019
|
80 |
"----------- fun transfer_asms_from_to ------------------";
|
neuper@42019
|
81 |
val ctxt = ProofContext.init_global @{theory "Isac"}
|
neuper@42019
|
82 |
val from_ctxt = insert_assumptions
|
neuper@42019
|
83 |
[str2term "a < (fro::int)", str2term "b < (fro::int)"] ctxt
|
neuper@42019
|
84 |
val to_ctxt = insert_assumptions
|
neuper@42019
|
85 |
[str2term "b < (to::int)", str2term "c < (to::int)"] ctxt
|
neuper@42019
|
86 |
val new_ctxt = transfer_asms_from_to from_ctxt to_ctxt;
|
neuper@42019
|
87 |
if terms2strs (get_assumptions new_ctxt) = ["b < fro", "b < to", "c < to"]
|
neuper@42019
|
88 |
then () else error "fun transfer_asms_from_to changed"
|
e0726734@41957
|
89 |
|
neuper@42023
|
90 |
"----------- fun from_subpbl_to_caller ------------------";
|
neuper@42023
|
91 |
"----------- fun from_subpbl_to_caller ------------------";
|
neuper@42023
|
92 |
"----------- fun from_subpbl_to_caller ------------------";
|
neuper@42023
|
93 |
val ctxt = ProofContext.init_global @{theory "Isac"}
|
neuper@42023
|
94 |
val sub_ctxt = insert_assumptions
|
neuper@42023
|
95 |
[str2term "a < (fro::int)", str2term "b < (fro::int)"] ctxt
|
neuper@42023
|
96 |
val caller_ctxt = insert_assumptions
|
neuper@42023
|
97 |
[str2term "b < (to::int)", str2term "c < (to::int)"] ctxt
|
neuper@42023
|
98 |
val scrval = str2term "[x_1 = 1, x_2 = 2, x_3 = 3]";
|
neuper@42023
|
99 |
val new_ctxt = from_subpbl_to_caller sub_ctxt scrval caller_ctxt;
|
neuper@42023
|
100 |
if terms2strs (get_assumptions new_ctxt) =
|
neuper@42023
|
101 |
["b < fro", "x_1 = 1", "x_2 = 2", "x_3 = 3", "b < to", "c < to"]
|
neuper@42023
|
102 |
then () else error "fun from_subpbl_to_caller changed"
|
neuper@41976
|
103 |
|
neuper@42019
|
104 |
"----------- all ctxt changes in minimsubpbl x+1=2 ------";
|
neuper@42019
|
105 |
"----------- all ctxt changes in minimsubpbl x+1=2 ------";
|
neuper@42019
|
106 |
"----------- all ctxt changes in minimsubpbl x+1=2 ------";
|
neuper@41977
|
107 |
val fmz = ["equality (x+1=(2::real))", "solveFor x","solutions L"];
|
neuper@41977
|
108 |
val (dI',pI',mI') =
|
neuper@41977
|
109 |
("Test", ["sqroot-test","univariate","equation","test"],
|
neuper@41977
|
110 |
["Test","squ-equ-test-subpbl1"]);
|
akargl@42188
|
111 |
|
akargl@42188
|
112 |
(*========== inhibit exn AK110725 ================================================
|
akargl@42188
|
113 |
(* ERROR: get_pbt not found: ["sqroot-test","univariate","equation","test"] *)
|
neuper@41977
|
114 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
akargl@42188
|
115 |
========== inhibit exn AK110725 ================================================*)
|
neuper@42010
|
116 |
|
akargl@42188
|
117 |
(*========== inhibit exn AK110725 ================================================
|
akargl@42188
|
118 |
(* ERROR: pt and p are not declared due to above error *)
|
neuper@42020
|
119 |
"=(1)= variables known from formalisation provide type-inference for further input";
|
neuper@42010
|
120 |
val ctxt = get_ctxt pt p;
|
akargl@42188
|
121 |
|
neuper@42020
|
122 |
val SOME known_x = parseNEW ctxt "x+y+z";
|
neuper@42010
|
123 |
val SOME unknown = parseNEW ctxt "xa+b+c";
|
akargl@42188
|
124 |
|
neuper@42010
|
125 |
if type_of known_x = Type ("RealDef.real",[]) then ()
|
neuper@42020
|
126 |
else error "x+1=2 after start root-pbl wrong type-inference from known x";
|
neuper@42010
|
127 |
if type_of unknown = TFree ("'a", ["Groups.plus"]) then ()
|
neuper@42020
|
128 |
else error "x+1=2 after start root-pbl wrong type-inference for unknowns a,b,c";
|
neuper@42008
|
129 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42008
|
130 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42008
|
131 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42008
|
132 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42008
|
133 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42008
|
134 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42010
|
135 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt; (*nxt = Apply_Method ["Test", "squ-equ-test-subpbl1"]*)
|
neuper@42010
|
136 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42008
|
137 |
|
neuper@42020
|
138 |
"=(2)= preconditions are known at start of interpretation of (root-)method";
|
neuper@42020
|
139 |
if get_assumptions_ pt p = [str2term "precond_rootmet x"] then ()
|
neuper@42010
|
140 |
else error "x+1=2 after start root-met no precondition";
|
neuper@42016
|
141 |
|
neuper@42010
|
142 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42010
|
143 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt; (*nxt = Subp ["linear", "univariate", "equation", "test"]*)
|
neuper@42010
|
144 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42008
|
145 |
|
neuper@42020
|
146 |
"=(3)= variables known from arguments of (sub-)method provide type-inference for further input";
|
neuper@42010
|
147 |
val ctxt = get_ctxt pt p;
|
neuper@42020
|
148 |
val SOME known_x = parseNEW ctxt "x+y+z";
|
neuper@42010
|
149 |
val SOME unknown = parseNEW ctxt "a+b+c";
|
neuper@42010
|
150 |
if type_of known_x = Type ("RealDef.real",[]) then ()
|
neuper@42020
|
151 |
else error "x+1=2 after start root-pbl wrong type-inference for known x";
|
neuper@42010
|
152 |
if type_of unknown = TFree ("'a", ["Groups.plus"]) then ()
|
neuper@42020
|
153 |
else error "x+1=2 after start root-pbl wrong type-inference for unknowns a,b,c";
|
neuper@42008
|
154 |
|
neuper@42010
|
155 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42010
|
156 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42010
|
157 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42010
|
158 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42010
|
159 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42010
|
160 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42010
|
161 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt; (*nxt = Apply_Method ["Test", "solve_linear"]*)
|
neuper@42010
|
162 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@41976
|
163 |
|
neuper@42020
|
164 |
"=(4)= preconds are known at start of interpretation of (sub-)method";
|
neuper@42010
|
165 |
if get_assumptions_ pt p =
|
neuper@42020
|
166 |
[parse_patt @{theory} "matches (?a = ?b) (-1 + x = 0)"] then ()
|
neuper@42010
|
167 |
else error "x+1=2 after start sub-met no precondition";
|
neuper@42010
|
168 |
|
neuper@42010
|
169 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42010
|
170 |
|
neuper@42010
|
171 |
"prep =(5)=: inject assumptions into sub-met: sub_asm_out, sub_asm_local";
|
neuper@42010
|
172 |
val (SOME (iform, cform), SOME (ires, cres)) = get_obj g_loc pt (fst p);
|
neuper@42010
|
173 |
val ctxt = insert_assumptions [str2term "x < sub_asm_out", str2term "a < sub_asm_local"] cres;
|
neuper@42010
|
174 |
val pt = update_loc' pt (fst p) (SOME (iform, cform), SOME (ires, ctxt));
|
neuper@42010
|
175 |
|
neuper@42010
|
176 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt; (*nxt = Check_Postcond ["linear","univariate", ...]) *);
|
neuper@42010
|
177 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42010
|
178 |
|
neuper@42020
|
179 |
"=(5)= transfer non-local assumptions and result from sub-method to root-method." ^
|
neuper@42020
|
180 |
" non-local assumptions are those contaning a variable known in root-method";
|
neuper@42023
|
181 |
if terms2strs (get_assumptions_ pt p) =
|
neuper@42023
|
182 |
["matches (?a = ?b) (-1 + x = 0)", "x < sub_asm_out", "x = 1", "precond_rootmet x"]
|
neuper@42023
|
183 |
then () else error "x+1=2 transfer from sub-met to root-met changed";
|
neuper@42010
|
184 |
|
neuper@42010
|
185 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt; (*nxt=Check_P["sqroot-test","univariate","equation","test"*)
|
neuper@42010
|
186 |
val (p,_,f,nxt,_,pt) = me nxt p [] pt;
|
neuper@42010
|
187 |
|
neuper@42020
|
188 |
"=(6)= assumptions collected during lucas-interpretation for proof of postcondition";
|
neuper@42023
|
189 |
if terms2strs (get_assumptions_ pt p) = (*weak check: sub-result = root-result = [x = 1]*)
|
neuper@42023
|
190 |
["matches (?a = ?b) (-1 + x = 0)", "x < sub_asm_out", "x = 1", "precond_rootmet x"]
|
neuper@42023
|
191 |
then () else error "x+1=2 transfer from sub-met to root-met changed";
|
akargl@42188
|
192 |
========== inhibit exn AK110725 ================================================*)
|
neuper@42016
|
193 |
|
neuper@42016
|
194 |
|
neuper@41982
|
195 |
"----------- go through Model_Problem until nxt_tac -----";
|
neuper@41982
|
196 |
"----------- go through Model_Problem until nxt_tac -----";
|
neuper@41982
|
197 |
"----------- go through Model_Problem until nxt_tac -----";
|
neuper@41982
|
198 |
(*FIXME.WN110511 delete this test? (goes through "Model_Problem until nxt_tac)*)
|
neuper@41982
|
199 |
val fmz = ["equality (x+1=(2::real))", "solveFor x","solutions L"];
|
neuper@41982
|
200 |
val (dI',pI',mI') =
|
neuper@41982
|
201 |
("Test", ["sqroot-test","univariate","equation","test"],
|
neuper@41982
|
202 |
["Test","squ-equ-test-subpbl1"]);
|
akargl@42188
|
203 |
(*========== inhibit exn AK110725 ================================================
|
akargl@42188
|
204 |
(* ERROR: same as above, see lines 120- 123 *)
|
neuper@41982
|
205 |
val (p,_,f,nxt,_,pt) = CalcTreeTEST [(fmz, (dI',pI',mI'))];
|
akargl@42188
|
206 |
========== inhibit exn AK110725 ================================================*)
|
akargl@42188
|
207 |
|
akargl@42188
|
208 |
(*========== inhibit exn AK110725 ================================================
|
akargl@42188
|
209 |
(* ERROR: p, nxt, pt not declared due to above error *)
|
neuper@41982
|
210 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41982
|
211 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41982
|
212 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41982
|
213 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41982
|
214 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41982
|
215 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41982
|
216 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41982
|
217 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41982
|
218 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt;
|
neuper@41982
|
219 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt; (*nxt = ("Subproblem",*)
|
neuper@41982
|
220 |
val (p,_,f,nxt,_,pt) = me nxt p [1] pt; (*nxt = ("Model_Problem",*)
|
neuper@41982
|
221 |
"~~~~~ fun me, args:"; val (_,tac) = nxt;
|
neuper@41982
|
222 |
val (pt, p) = case locatetac tac (pt,p) of
|
neuper@41982
|
223 |
("ok", (_, _, ptp)) => ptp | _ => error "script.sml locatetac";
|
neuper@41982
|
224 |
"~~~~~ fun step, args:"; val (ip as (_,p_), (ptp as (pt,p), tacis)) = (p, ((pt, e_pos'), []))
|
neuper@41982
|
225 |
val pIopt = get_pblID (pt,ip);
|
neuper@41982
|
226 |
tacis; (*= []*)
|
neuper@41982
|
227 |
pIopt; (*= SOME ["sqroot-test", "univariate", ...]*)
|
neuper@41982
|
228 |
member op = [Pbl,Met] p_ andalso is_none (get_obj g_env pt (fst p)); (*= true*)
|
neuper@41982
|
229 |
"~~~~~ fun nxt_specify_, args:"; val (ptp as (pt, pos as (p,p_))) = (pt, ip);
|
neuper@41982
|
230 |
val pblobj as (PblObj{meth,origin=origin as (oris,(dI',pI',mI'),_),
|
neuper@41982
|
231 |
probl,spec=(dI,pI,mI),...}) = get_obj I pt p;
|
neuper@41982
|
232 |
just_created_ pblobj (*by Subproblem*) andalso origin <> e_origin; (*false=oldNB*)
|
neuper@41982
|
233 |
val cpI = if pI = e_pblID then pI' else pI;
|
neuper@41982
|
234 |
val cmI = if mI = e_metID then mI' else mI;
|
neuper@41982
|
235 |
val {ppc, prls, where_, ...} = get_pbt cpI;
|
neuper@41982
|
236 |
val pre = check_preconds "thy 100820" prls where_ probl;
|
neuper@41982
|
237 |
val pb = foldl and_ (true, map fst pre);
|
neuper@41982
|
238 |
val (_,tac) = nxt_spec p_ pb oris (dI',pI',mI') (probl, meth)
|
neuper@41982
|
239 |
(ppc, (#ppc o get_met) cmI) (dI, pI, mI); (*tac = Add_Given "equality (-1 + x = 0)"*)
|
neuper@41982
|
240 |
"~~~~~ fun nxt_specif, args:"; val (Add_Given ct, ptp) = (tac, ptp);
|
neuper@41982
|
241 |
"~~~~~ fun nxt_specif_additem, args:"; val (sel, ct, ptp as (pt, (p, Pbl))) = ("#Given", ct, ptp);
|
neuper@41982
|
242 |
val (PblObj{meth=met,origin=(oris,(dI',pI',_),_),
|
neuper@41982
|
243 |
probl=pbl,spec=(dI,pI,_),...}) = get_obj I pt p;
|
neuper@41982
|
244 |
val thy = if dI = e_domID then assoc_thy dI' else assoc_thy dI;
|
neuper@41982
|
245 |
val cpI = if pI = e_pblID then pI' else pI;
|
neuper@41982
|
246 |
val ctxt = get_ctxt pt (p, Pbl);
|
neuper@41982
|
247 |
"~~~~~ fun appl_add, args:"; val (ctxt, sel, oris, ppc, pbt, str) = (ctxt, sel, oris, pbl, ((#ppc o get_pbt) cpI), ct);
|
neuper@41982
|
248 |
val SOME t = parseNEW ctxt str;
|
neuper@41982
|
249 |
is_known ctxt sel oris t;
|
neuper@41982
|
250 |
"~~~~~ fun is_known, args:"; val (ctxt, sel, ori, t) = (ctxt, sel, oris, t);
|
neuper@41982
|
251 |
val _ = tracing ("RM is_known: t=" ^ term2str t);
|
neuper@41982
|
252 |
val ots = (distinct o flat o (map #5)) (ori:ori list);
|
neuper@41982
|
253 |
val oids = ((map (fst o dest_Free)) o distinct o flat o (map vars)) ots;
|
neuper@41982
|
254 |
val (d, ts) = split_dts t;
|
neuper@41982
|
255 |
"~~~~~ fun split_dts, args:"; val (t as d $ arg) = t;
|
neuper@41982
|
256 |
(*if is_dsc d then () else error "TODO";*)
|
neuper@41990
|
257 |
if is_dsc d then () else error "TODO";
|
neuper@41982
|
258 |
"----- these were the errors (call hierarchy from bottom up)";
|
neuper@41982
|
259 |
appl_add ctxt sel oris pbl ((#ppc o get_pbt) cpI) ct;(*WAS
|
neuper@41982
|
260 |
Err "[error] appl_add: is_known: identifiers [equality] not in example"*)
|
neuper@41982
|
261 |
nxt_specif_additem "#Given" ct ptp;(*WAS
|
neuper@41982
|
262 |
Tac "[error] appl_add: is_known: identifiers [equality] not in example"*)
|
neuper@41982
|
263 |
nxt_specif tac ptp;(*WAS
|
neuper@41982
|
264 |
Tac "[error] appl_add: is_known: identifiers [equality] not in example"*)
|
neuper@41982
|
265 |
nxt_specify_ (pt,ip); (*WAS
|
neuper@41982
|
266 |
Tac "[error] appl_add: is_known: identifiers [equality] not in example"*)
|
neuper@41982
|
267 |
(*val (p,_,f,nxt,_,pt) = me nxt p [1] pt; WAS
|
neuper@41982
|
268 |
Tac "[error] appl_add: is_known: identifiers [equality] not in example"*)
|
akargl@42188
|
269 |
========== inhibit exn AK110725 ================================================*)
|