18
19
size_t lastmarking)
20
21
if(result == Unknown) return Unknown;
21
23
Result retval = result;
25
if(options->cpnOverApprox)
27
if (result == Satisfied)
28
retval = query->isInvariant() ? Unknown : Unknown;
29
else if (result == NotSatisfied)
30
retval = query->isInvariant() ? Satisfied : NotSatisfied;
33
std::cout << "\nUnable to decide if " << querynames[index] << " is satisfied.\n\n";
34
std::cout << "Query is MAYBE satisfied.\n" << std::endl;
22
38
std::cout << std::endl;
24
40
bool showTrace = (result == Satisfied);
48
64
if (result == Satisfied)
49
65
retval = query->isInvariant() ? NotSatisfied : Satisfied;
50
66
else if (result == NotSatisfied)
51
retval = query->isInvariant() ? Satisfied : NotSatisfied;
67
retval = query->isInvariant() ? Satisfied : NotSatisfied;
71
if(auto ef = dynamic_cast<PQL::EFCondition*>(query))
73
bound = (*ef)[0].get();
75
bound = dynamic_cast<PQL::UnfoldedUpperBoundsCondition*>(bound);
54
77
if (retval == Unknown)
56
79
std::cout << "\nUnable to decide if " << querynames[index] << " is satisfied.";
83
std::cout << ((PQL::UnfoldedUpperBoundsCondition*)bound)->bounds() << " " << techniques << printTechniques() << std::endl;
84
std::cout << "Query index " << index << " was solved" << std::endl;
58
86
else if (retval == Satisfied) {
59
87
if(!options->statespaceexploration)
61
std::cout << "TRUE " << techniques << std::endl;
89
std::cout << "TRUE " << techniques << printTechniques() << std::endl;
90
std::cout << "Query index " << index << " was solved" << std::endl;
63
92
} else if (retval == NotSatisfied) {
64
if (!query->placeNameForBound().empty()) {
65
// find index of the place for reporting place bound
67
std::cout << query->getBound() << " " << techniquesStateSpace << std::endl;
70
if(!options->statespaceexploration)
72
std::cout << "FALSE " << techniques << std::endl;
93
if(!options->statespaceexploration)
95
std::cout << "FALSE " << techniques << printTechniques() << std::endl;
96
std::cout << "Query index " << index << " was solved" << std::endl;
116
142
std::string ResultPrinter::printTechniques() {
119
if (options->enablereduction > 0) {
120
out += " STRUCTURAL_REDUCTION STATE_COMPRESSION";
122
if (options->stubbornreduction) {
123
out += " STUBBORN_REDUCTION";
125
if (options->queryReductionTimeout > 0) {
126
out += " QUERY_REDUCTION";
128
if (options->siphontrapTimeout > 0) {
129
out += " SIPHON_TRAP_ANALYSIS";
131
if (options->isctl) {
132
if (options->ctlalgorithm == CTL::CZero) {
145
if(options->queryReductionTimeout > 0)
150
if(options->cpnOverApprox)
152
out += "CPN_APPROX ";
155
if(options->isCPN && !options->cpnOverApprox)
157
out += "UNFOLDING_TO_PT ";
160
if(options->queryReductionTimeout == 0
164
&& options->siphontrapTimeout == 0)
166
out += "EXPLICIT STATE_COMPRESSION ";
167
if(options->stubbornreduction)
169
out += "STUBBORN_SETS ";
175
out += "TRACE_ABSTRACTION_REFINEMENT ";
178
if(options->siphontrapTimeout > 0)
180
out += "TOPOLOGICAL SIPHON_TRAP ";