let result env = match env.result,env.return with
| Some x, Some t -> x, t
| Some x, None ->
let t = Kernel_function.get_return_type env.kf in
(x, t)
| None,_ ->
let t = Kernel_function.get_return_type env.kf in
let x = D.fresh "result" (Mdata.Vacsl(Ctype t)) in
env.result <- Some x ; (x, t)