src/HOL/Tools/SMT/smt_translate.ML
changeset 42321 ce83c1654b86
parent 42319 9a8ba59aed06
child 43154 72e4753a6677
equal deleted inserted replaced
42320:1f09e4c680fc 42321:ce83c1654b86
   182 
   182 
   183   fun expf k i T t =
   183   fun expf k i T t =
   184     let val Ts = drop i (fst (SMT_Utils.dest_funT k T))
   184     let val Ts = drop i (fst (SMT_Utils.dest_funT k T))
   185     in
   185     in
   186       Term.incr_boundvars (length Ts) t
   186       Term.incr_boundvars (length Ts) t
   187       |> fold_index (fn (i, _) => fn u => u $ Bound i) Ts
   187       |> fold_rev (fn i => fn u => u $ Bound i) (0 upto length Ts - 1)
   188       |> fold_rev (fn T => fn u => Abs (Name.uu, T, u)) Ts
   188       |> fold_rev (fn T => fn u => Abs (Name.uu, T, u)) Ts
   189     end
   189     end
   190 in
   190 in
   191 
   191 
   192 fun eta_expand ctxt is_fol funcs =
   192 fun eta_expand ctxt is_fol funcs =