src/Pure/thm.ML
changeset 59787 6e2a20486897
parent 59621 291934bac95e
child 59884 bbf49d7dfd6f
equal deleted inserted replaced
59786:0c73c5eb45f7 59787:6e2a20486897
   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;