diff --git a/.gitignore b/.gitignore index 2d268c988..c616f7425 100644 --- a/.gitignore +++ b/.gitignore @@ -124,3 +124,5 @@ bazel-* .deeptest/ tptp_test/ tptp_benchmarks/ +# Profiling output files +gmon.out diff --git a/gmon.out b/gmon.out deleted file mode 100644 index cba10a19b..000000000 Binary files a/gmon.out and /dev/null differ diff --git a/src/ast/rewriter/seq_subset.cpp b/src/ast/rewriter/seq_subset.cpp index 2fc4d1f71..c624e63b9 100644 --- a/src/ast/rewriter/seq_subset.cpp +++ b/src/ast/rewriter/seq_subset.cpp @@ -19,7 +19,6 @@ Author: bool seq_subset::is_subset_rec(expr* a, expr* b, unsigned depth) const { while (true) { - if (a == b) return true; if (m_re.is_empty(a)) @@ -30,7 +29,7 @@ bool seq_subset::is_subset_rec(expr* a, expr* b, unsigned depth) const { return true; if (depth >= m_max_depth) - return false; + return false; expr* a1 = nullptr, * a2 = nullptr, * b1 = nullptr, * b2 = nullptr; unsigned la, ua, lb, ub; @@ -39,18 +38,10 @@ bool seq_subset::is_subset_rec(expr* a, expr* b, unsigned depth) const { if (m_re.is_dot_plus(b) && m_re.get_info(a).nullable == l_false) return true; - // a ⊆ a* + // a ⊆ a*: if b = b1* and a ⊆ b1, then a ⊆ b1* if (m_re.is_star(b, b1) && is_subset_rec(a, b1, depth)) return true; - // e ⊆ a* - if (m_re.is_epsilon(a) && m_re.is_star(b, b1)) - return true; - - // R ⊆ R* - if (m_re.is_star(b, b1) && is_subset_rec(a, b1, depth + 1)) - return true; - // R1* ⊆ R2* if R1 ⊆ R2 if (m_re.is_star(a, a1) && m_re.is_star(b, b1) && is_subset_rec(a1, b1, depth + 1)) return true;