From 1823d6d537a59d85a17f09f53c8128d934c420a3 Mon Sep 17 00:00:00 2001 From: Andrew Reynolds Date: Wed, 17 Oct 2018 11:14:49 -0500 Subject: [PATCH] Fix context-dependent for positive contains reduction (#2644) --- src/theory/strings/theory_strings.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/theory/strings/theory_strings.cpp b/src/theory/strings/theory_strings.cpp index 984b47e72..883683f52 100644 --- a/src/theory/strings/theory_strings.cpp +++ b/src/theory/strings/theory_strings.cpp @@ -493,6 +493,10 @@ bool TheoryStrings::doReduction(int effort, Node n, bool& isCd) Trace("strings-extf-debug") << " resolve extf : " << n << " based on positive contain reduction." << std::endl; + Trace("strings-red-lemma") << "Reduction (positive contains) lemma : " << n + << " => " << eq << std::endl; + // context-dependent because it depends on the polarity of n itself + isCd = true; } else if (k != kind::STRING_CODE) { @@ -513,8 +517,8 @@ bool TheoryStrings::doReduction(int effort, Node n, bool& isCd) sendInference(d_empty_vec, nnlem, "Reduction", true); Trace("strings-extf-debug") << " resolve extf : " << n << " based on reduction." << std::endl; + isCd = false; } - isCd = false; return true; } @@ -1001,6 +1005,7 @@ void TheoryStrings::checkExtfReductions( int effort ) { Trace("strings-process") << " checking " << extf.size() << " active extf" << std::endl; for( unsigned i=0; i