let do_compute
(goals : Wpo.t Bag.t ref)
(computer : CfgProof.computer)
fun_iter assigns behaviors property
=
let do_kf kf =
let cfg, _ = build_cfg kf in
let annots =
match behaviors, property with
| None, None ->
WpAnnot.get_function_strategies ~assigns cfg
| Some bhvs, None ->
WpAnnot.get_behavior_strategies ~assigns cfg bhvs
| _, Some (IdProp p) ->
WpAnnot.get_id_prop_strategies ~assigns cfg p
| _, Some (NamedProp p) ->
WpAnnot.get_prop_strategies ~assigns cfg (behaviors, p)
in
if Wp_parameters.Dot.get () then dot_lannots cfg annots;
computer#add cfg annots
in
begin
fun_iter do_kf ;
goals := Bag.concat !goals (Bag.list computer#compute) ;
end