let add_stmt_bhv_as_goal config v s b (b_acc, (p_acc, e_acc)) =
let l_post = Cil2cfg.get_post_logic_label config.cfg v in
let assumes = None in
let add_pre_hyp acc p =
WpStrategy.add_prop_stmt_pre acc WpStrategy.Ahyp config.kf s b ~assumes p
in
let add_pre_goal acc p =
let id = WpPropId.mk_pre_id config.kf (Kstmt s) b p in
let goal = goal_to_select config id in
let kind = WpStrategy.Aboth goal in
WpStrategy.add_prop_stmt_pre acc kind config.kf s b ~assumes p
in
let add_post tk acc p =
let id = WpPropId.mk_stmt_post_id config.kf s b (tk, p) in
let goal = goal_to_select config id in
let kind = WpStrategy.Aboth goal in
WpStrategy.add_prop_stmt_post acc kind config.kf s b tk l_post ~assumes p
in
let b_acc = List.fold_left add_pre_goal b_acc b.b_requires in
let b_acc = List.fold_left add_pre_hyp b_acc b.b_assumes in
let p_acc, e_acc = WpStrategy.fold_bhv_post_cond ~warn:true
(add_post Normal) (add_post Exits) (p_acc, e_acc) b
in
let p_acc = add_stmt_assigns_goal config s p_acc b l_post in
b_acc, (p_acc, e_acc)