let add_normal_assigns env pid label kind assigned wp =
on_context env "add_assigns" wp Keep_opened Clear_assigns
(fun env _noassigns prop ->
if assigned = [] then prop
else
try
let frame = L.get_frame env in
let from = Clabels.c_label label in
let asgned = assigned_for_assigns_goal kind from env assigned in
let goal = WpModel.assigns_goal
frame
from
asgned
Clabels.Here
in
F.p_and goal prop
with e ->
let (source,reason) = Wp_error.protect e in
Datalib.Collector.add_warning
~severe:true ~source ~reason
"Goal %a can not be translated"
WpAnnot.pp_id pid ;
F.p_false)