src/HOL/Tools/SMT/smt_translate.ML
changeset 41196 d23af676f9f8
parent 41195 f59491d56327
child 41197 edab1efe0a70
equal deleted inserted replaced
41195:f59491d56327 41196:d23af676f9f8
   359         (u as Const (_, T), ts) => apply terms T u (map (traverse env) ts)
   359         (u as Const (_, T), ts) => apply terms T u (map (traverse env) ts)
   360       | (u as Free (_, T), ts) => apply terms T u (map (traverse env) ts)
   360       | (u as Free (_, T), ts) => apply terms T u (map (traverse env) ts)
   361       | (u as Bound i, ts) =>
   361       | (u as Bound i, ts) =>
   362           appl0 (nth arities i) (map (traverse env) ts) (u, nth Ts i)
   362           appl0 (nth arities i) (map (traverse env) ts) (u, nth Ts i)
   363       | (Abs (n, T, u), ts) =>
   363       | (Abs (n, T, u), ts) =>
   364           let val env' = (get_arities 0 u [] :: arities, T :: Ts)
   364           let val env' = (get_arities 0 u [0] :: arities, T :: Ts)
   365           in traverses env (Abs (n, T, traverse env' u)) ts end
   365           in traverses env (Abs (n, T, traverse env' u)) ts end
   366       | (u, ts) => traverses env u ts)
   366       | (u, ts) => traverses env u ts)
   367     and traverses env t ts = Term.list_comb (t, map (traverse env) ts)
   367     and traverses env t ts = Term.list_comb (t, map (traverse env) ts)
   368   in map (traverse ([], [])) ts end
   368   in map (traverse ([], [])) ts end
   369 
   369