From e1489b0d68130957559baf0321b34ee6bdf737cb Mon Sep 17 00:00:00 2001
From: Christoph Egger <Christoph.Egger@fau.de>
Date: Wed, 13 Apr 2016 21:54:43 +0200
Subject: [PATCH] Expandable states are always acceptable Finishing states for
 Unsat propagation

---
 src/lib/CoAlgReasoner.ml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/lib/CoAlgReasoner.ml b/src/lib/CoAlgReasoner.ml
index b21350b..9534330 100644
--- a/src/lib/CoAlgReasoner.ml
+++ b/src/lib/CoAlgReasoner.ml
@@ -511,7 +511,7 @@ let propateUnsatMu () =
       let ruleiter (dependencies, corelist) : bool =
         List.for_all (fun (core : core) -> coreGetStatus core == Unsat || setMemCore setPrevUnsatCores core) corelist
       in
-      if not (List.exists ruleiter (stateGetRules state)) then begin
+      if not (List.exists ruleiter (stateGetRules state)) || stateGetStatus state == Expandable then begin
         visitParentCores state
       end
 
@@ -520,7 +520,8 @@ let propateUnsatMu () =
      *)
     and checkFinishingCore (core : core) =
       if not (List.for_all (fun (state : state) -> stateGetStatus state == Unsat || setMemState setPrevUnsatStates state)
-                           (coreGetChildren core))
+                (coreGetChildren core)) ||
+        coreGetStatus core == Expandable
       then begin
         visitParentStates core
       end
-- 
GitLab