Skip to content

Commit 3bc844d

Browse files
committed
Optimized cleaning
1 parent 3b075dd commit 3bc844d

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

src/termination/ReachabilityNonterm.cc

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -629,12 +629,6 @@ ReachabilityNonterm::analyzeTS(PTRef init, PTRef transition, PTRef sink, Options
629629
logic.mkNot(shiftOnlyNextVars(trInv, vars, logic))}),
630630
vars);
631631

632-
SMTsolver.resetSolver();
633-
SMTsolver.assertProp(logic.mkAnd(init, logic.mkNot(noncoveredStates)));
634-
if (SMTsolver.check() == SMTSolver::Answer::UNSAT) {
635-
sink = logic.mkNot(noncoveredStates);
636-
continue;
637-
}
638632

639633
// We check if the states that are not covered by TrInv are reachable
640634
auto graph = constructHyperGraph(init, transition, logic.mkAnd(noncoveredStates, logic.mkNot(sink)),
@@ -683,6 +677,14 @@ ReachabilityNonterm::analyzeTS(PTRef init, PTRef transition, PTRef sink, Options
683677
-num_non));
684678
}
685679

680+
SMTsolver.resetSolver();
681+
SMTsolver.assertProp(logic.mkAnd(init, logic.mkNot(reached)));
682+
if (SMTsolver.check() == SMTSolver::Answer::UNSAT) {
683+
std::cout<< "Break" << std::endl;
684+
sink = logic.mkNot(noncoveredStates);
685+
continue;
686+
}
687+
686688
assert(reached != logic.getTerm_false());
687689
// Algorithm checks if reachable states are terminating
688690
std::cout << "Deeper\n";

0 commit comments

Comments
 (0)