let add_spec_pre stmt_opt asked_bh acc spec =
let add_pred acc p =
match stmt_opt with
| None -> add_fct_pre p acc
| Some s -> add_stmt_spec_pre s p acc
in
let acc = List.fold_left (add_pred) acc spec.spec_requires in
let acc = match asked_bh with None -> acc (* pre as post hyp *)
| Some bhv -> match get_behav bhv spec.spec_behavior with None -> acc
| Some b -> List.fold_left add_pred acc b.b_assumes
in acc