src/Pure/zterm.ML
changeset 79150 1cdc685fe852
parent 79149 810679c5ed3c
child 79152 4189e10f1524
equal deleted inserted replaced
79149:810679c5ed3c 79150:1cdc685fe852
   182     zproof -> zproof -> zproof
   182     zproof -> zproof -> zproof
   183   val generalize_proof: Names.set * Names.set -> int -> zproof -> zproof
   183   val generalize_proof: Names.set * Names.set -> int -> zproof -> zproof
   184   val instantiate_proof: theory ->
   184   val instantiate_proof: theory ->
   185     ((indexname * sort) * typ) list * ((indexname * typ) * term) list -> zproof -> zproof
   185     ((indexname * sort) * typ) list * ((indexname * typ) * term) list -> zproof -> zproof
   186   val varifyT_proof: ((string * sort) * (indexname * sort)) list -> zproof -> zproof
   186   val varifyT_proof: ((string * sort) * (indexname * sort)) list -> zproof -> zproof
       
   187   val incr_indexes_proof: int -> zproof -> zproof
   187 end;
   188 end;
   188 
   189 
   189 structure ZTerm: ZTERM =
   190 structure ZTerm: ZTERM =
   190 struct
   191 struct
   191 
   192 
   550           (case ZTVars.lookup tab v of
   551           (case ZTVars.lookup tab v of
   551             NONE => raise Same.SAME
   552             NONE => raise Same.SAME
   552           | SOME w => ZTVar w));
   553           | SOME w => ZTVar w));
   553     in Same.commit (map_proof_types_same typ) prf end;
   554     in Same.commit (map_proof_types_same typ) prf end;
   554 
   555 
   555 end;
   556 fun incr_indexes_proof inc prf =
       
   557   let
       
   558     fun tvar ((a, i), S) = if i >= 0 then ZTVar ((a, i + inc), S) else raise Same.SAME;
       
   559     fun var ((x, i), T) = if i >= 0 then ZVar ((x, i + inc), T) else raise Same.SAME;
       
   560     val typ = subst_type_same tvar;
       
   561     val term = subst_term_same typ var;
       
   562   in Same.commit (map_proof_same typ term) prf end;
       
   563 
       
   564 end;