let check_assigns m goal region wp =
match goal , region with
| NoAssigns , _ -> wp
| (EffectAssigns _ ) , A_everything ->
Datalib.Collector.add_warning
~severe:true
~reason:"Assigns everything during calculus"
"Can not prove the assign goal" ;
F.p_false
| EffectAssigns a , A_region zones ->
let ze = List.fold_left
(fun zs a ->
let za = WpModel.dzone_assigned m a in
WpModel.dzone_union zs za)
(F.var a.a_effect) zones
in
D.subst a.a_effect ze wp