src/Pure/term.ML
changeset 33063 4d462963a7db
parent 32784 1a5dde5079ac
child 33537 06c87d2c5b5a
equal deleted inserted replaced
33062:542b34b178ec 33063:4d462963a7db
   937         val (u', used'') = free_dummy_patterns u used';
   937         val (u', used'') = free_dummy_patterns u used';
   938       in (t' $ u', used'') end
   938       in (t' $ u', used'') end
   939   | free_dummy_patterns a used = (a, used);
   939   | free_dummy_patterns a used = (a, used);
   940 
   940 
   941 fun replace_dummy Ts (Const ("dummy_pattern", T)) i =
   941 fun replace_dummy Ts (Const ("dummy_pattern", T)) i =
   942       (list_comb (Var (("_dummy_", i), Ts ---> T), map Bound (0 upto length Ts - 1)), i + 1)
   942       (list_comb (Var (("_dummy_", i), Ts ---> T), map_range Bound (length Ts)), i + 1)
   943   | replace_dummy Ts (Abs (x, T, t)) i =
   943   | replace_dummy Ts (Abs (x, T, t)) i =
   944       let val (t', i') = replace_dummy (T :: Ts) t i
   944       let val (t', i') = replace_dummy (T :: Ts) t i
   945       in (Abs (x, T, t'), i') end
   945       in (Abs (x, T, t'), i') end
   946   | replace_dummy Ts (t $ u) i =
   946   | replace_dummy Ts (t $ u) i =
   947       let
   947       let