From 3f0733729c7f42338e69ac3905c363ddc48cbc21 Mon Sep 17 00:00:00 2001 From: Christoph Egger <Christoph.Egger@fau.de> Date: Sun, 10 Apr 2016 23:12:14 +0200 Subject: [PATCH] Treat Sat states like finishing states With Sat states only treated like other states in the second fixpoint iteration, the outer fixpoint was not ncessarily monononously decreasing causing wrong results when in the first round the same number of nodes got removed as added due to sat states. --- src/lib/CoAlgReasoner.ml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/lib/CoAlgReasoner.ml b/src/lib/CoAlgReasoner.ml index 1a87848..facbe45 100644 --- a/src/lib/CoAlgReasoner.ml +++ b/src/lib/CoAlgReasoner.ml @@ -118,20 +118,18 @@ let propagateSatMu () = let setFinishingCores = setEmptyCore () in let setStates = setEmptyState () in let setCores = setEmptyCore () in - let setSatStates = setEmptyState () in - let setSatCores = setEmptyCore () in let emptySet = bsetMakeRealEmpty () in let stateCollector state = match stateGetStatus state with | Unsat -> () | Sat -> - setAddState setSatStates state + setAddState setFinishingStates state | Expandable -> () | Open -> if stateGetStatus state == Open && List.length (stateGetRules state) == 0 || bsetCompare (bsetMake ()) (stateGetBs state) == 0 then begin - setAddState setSatStates state; + setAddState setFinishingStates state; stateSetStatus state Sat end else begin setAddState setStates state; @@ -147,7 +145,7 @@ let propagateSatMu () = match coreGetStatus core with | Unsat -> () | Sat -> - setAddCore setSatCores core + setAddCore setFinishingCores core | Expandable | Open -> setAddCore setCores core; @@ -240,8 +238,6 @@ let propagateSatMu () = in setIterState checkFinishingState setFinishingStates; setIterCore checkFinishingCore setFinishingCores; - setIterState visitParentCores setSatStates; - setIterCore visitParentStates setSatCores; if (setLengthState setStates) = (setLengthState allowedStates) && -- GitLab