Skip to content

Commit 2e63d1e

Browse files
authored
Merge pull request #188 from VeriFIT/final_check_stat
Add noodler final_check statistic
2 parents 820029f + 306b290 commit 2e63d1e

File tree

3 files changed

+4
-0
lines changed

3 files changed

+4
-0
lines changed

src/smt/theory_str_noodler/theory_str_noodler.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ namespace smt::noodler {
126126

127127
void theory_str_noodler::collect_statistics(::statistics & st) const {
128128
STRACE("str", tout << "collecting statistics" << std::endl;);
129+
st.update("noodler-final_checks", num_of_solving_final_checks);
129130
for (const auto& [heur_name, heur_stats] : this->statistics) {
130131
st.update(statistics_bullshit_names.at(heur_name)[0], heur_stats.num_start);
131132
st.update(statistics_bullshit_names.at(heur_name)[1], heur_stats.num_finish);

src/smt/theory_str_noodler/theory_str_noodler.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ namespace smt::noodler {
131131
// the length formula from the last run that was sat
132132
expr_ref sat_length_formula;
133133

134+
unsigned num_of_solving_final_checks = 0; // number of final checks that lead to solving string formula (i.e. not solved by loop protection nor by language (dis)equalities)
134135
std::map<std::string, DecProcStats> statistics {
135136
{"underapprox", {0, 0, 0}}, // underapprox of the stabilization-based procedure
136137
{"stabilization", {0, 0, 0}}, // stabilization-based procedure

src/smt/theory_str_noodler/theory_str_noodler_final_check.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ namespace smt::noodler {
8585
}
8686
}
8787

88+
++num_of_solving_final_checks;
89+
8890
bool contains_word_equations = !this->m_word_eq_todo_rel.empty();
8991
bool contains_word_disequations = !this->m_word_diseq_todo_rel.empty();
9092
bool contains_conversions = !this->m_conversion_todo.empty();

0 commit comments

Comments
 (0)