Prevent semantic propagations at level 0

This commit is contained in:
Guillaume Bury 2018-07-24 23:42:20 +02:00
parent 8cdfe65048
commit 2bba885266

View file

@ -568,6 +568,10 @@ module Make
else match Plugin.eval a.lit with else match Plugin.eval a.lit with
| Plugin_intf.Unknown -> None | Plugin_intf.Unknown -> None
| Plugin_intf.Valued (b, l) -> | Plugin_intf.Valued (b, l) ->
if l = [] then
raise (Invalid_argument (
Format.asprintf "msat:core/internal.ml: %s"
"semantic propagation at level 0 are currently forbidden"));
let atom = if b then a else a.neg in let atom = if b then a else a.neg in
enqueue_semantic atom l; enqueue_semantic atom l;
Some b Some b