equal
deleted
inserted
replaced
276 Cterm {maxidx = Int.max (maxidx_of_term t, i), thy = thy, t = t, T = T, sorts = sorts}; |
276 Cterm {maxidx = Int.max (maxidx_of_term t, i), thy = thy, t = t, T = T, sorts = sorts}; |
277 |
277 |
278 fun incr_indexes_cterm i (ct as Cterm {thy, t, T, maxidx, sorts}) = |
278 fun incr_indexes_cterm i (ct as Cterm {thy, t, T, maxidx, sorts}) = |
279 if i < 0 then raise CTERM ("negative increment", [ct]) |
279 if i < 0 then raise CTERM ("negative increment", [ct]) |
280 else if i = 0 then ct |
280 else if i = 0 then ct |
281 else Cterm {thy = thy, t = Logic.incr_indexes ([], i) t, |
281 else Cterm {thy = thy, t = Logic.incr_indexes ([], [], i) t, |
282 T = Logic.incr_tvar i T, maxidx = maxidx + i, sorts = sorts}; |
282 T = Logic.incr_tvar i T, maxidx = maxidx + i, sorts = sorts}; |
283 |
283 |
284 |
284 |
285 (* matching *) |
285 (* matching *) |
286 |
286 |
1304 {thy = thy, |
1304 {thy = thy, |
1305 tags = [], |
1305 tags = [], |
1306 maxidx = maxidx + i, |
1306 maxidx = maxidx + i, |
1307 shyps = shyps, |
1307 shyps = shyps, |
1308 hyps = hyps, |
1308 hyps = hyps, |
1309 tpairs = map (apply2 (Logic.incr_indexes ([], i))) tpairs, |
1309 tpairs = map (apply2 (Logic.incr_indexes ([], [], i))) tpairs, |
1310 prop = Logic.incr_indexes ([], i) prop}); |
1310 prop = Logic.incr_indexes ([], [], i) prop}); |
1311 |
1311 |
1312 (*Solve subgoal Bi of proof state B1...Bn/C by assumption. *) |
1312 (*Solve subgoal Bi of proof state B1...Bn/C by assumption. *) |
1313 fun assumption opt_ctxt i state = |
1313 fun assumption opt_ctxt i state = |
1314 let |
1314 let |
1315 val Thm (der, {thy, maxidx, shyps, hyps, ...}) = state; |
1315 val Thm (der, {thy, maxidx, shyps, hyps, ...}) = state; |