let call wenv stmt lv kf args ~pre ~post ~pexit ~assigns ~p_post ~p_exit =
let wp ~post ~pexit p_post p_exit () =
W.call wenv stmt lv kf args
~pre ~post ~pexit ~assigns ~p_post ~p_exit
in
let g_post =
List.map
(fun g ->
make_goal g.g_id (wp ~post ~pexit:[] g.g_prop W.empty)
[g.g_descr])
p_post
in
let g_exit =
List.map
(fun g ->
make_goal g.g_id (wp ~post:[] ~pexit W.empty g.g_prop)
[g.g_descr])
p_exit
in
merge g_post g_exit