src/Pure/thm.ML
changeset 17184 3d80209e9a53
parent 16991 39f5760f72d7
child 17203 29b2563f5c11
equal deleted inserted replaced
17183:a788a05fb81b 17184:3d80209e9a53
  1310     let val vars = foldr add_term_vars []
  1310     let val vars = foldr add_term_vars []
  1311                         (map fst dpairs @ map fst tpairs @ map snd tpairs)
  1311                         (map fst dpairs @ map fst tpairs @ map snd tpairs)
  1312         (*unknowns appearing elsewhere be preserved!*)
  1312         (*unknowns appearing elsewhere be preserved!*)
  1313         val vids = map (#1 o #1 o dest_Var) vars;
  1313         val vids = map (#1 o #1 o dest_Var) vars;
  1314         fun rename(t as Var((x,i),T)) =
  1314         fun rename(t as Var((x,i),T)) =
  1315                 (case assoc_string (al,x) of
  1315                 (case AList.lookup (op =) al x of
  1316                    SOME(y) => if x mem_string vids orelse y mem_string vids then t
  1316                    SOME(y) => if x mem_string vids orelse y mem_string vids then t
  1317                               else Var((y,i),T)
  1317                               else Var((y,i),T)
  1318                  | NONE=> t)
  1318                  | NONE=> t)
  1319           | rename(Abs(x,T,t)) =
  1319           | rename(Abs(x,T,t)) =
  1320               Abs (if_none (assoc_string (al, x)) x, T, rename t)
  1320               Abs (if_none (AList.lookup (op =) al x) x, T, rename t)
  1321           | rename(f$t) = rename f $ rename t
  1321           | rename(f$t) = rename f $ rename t
  1322           | rename(t) = t;
  1322           | rename(t) = t;
  1323         fun strip_ren Ai = strip_apply rename (Ai,B)
  1323         fun strip_ren Ai = strip_apply rename (Ai,B)
  1324     in strip_ren end;
  1324     in strip_ren end;
  1325 
  1325