summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2016-12-07 15:26:12 -0600
committerajreynol <andrew.j.reynolds@gmail.com>2016-12-07 15:26:12 -0600
commit314db5e1c4fdbfca001b1f3a679831d086b25e5c (patch)
tree48de5f8eca5ea5b6d36d7f3bd0f3e847c4d03c44 /src
parente43b45b42ee786f4dd103aa68d67915504c1f59c (diff)
Add sets regression, fixes bug 754. Minor fix to regexp in strings.
Diffstat (limited to 'src')
-rw-r--r--src/theory/quantifiers/bounded_integers.cpp2
-rw-r--r--src/theory/strings/theory_strings.cpp11
2 files changed, 8 insertions, 5 deletions
diff --git a/src/theory/quantifiers/bounded_integers.cpp b/src/theory/quantifiers/bounded_integers.cpp
index 1112c2ef2..e9ac9b484 100644
--- a/src/theory/quantifiers/bounded_integers.cpp
+++ b/src/theory/quantifiers/bounded_integers.cpp
@@ -605,7 +605,7 @@ Node BoundedIntegers::getSetRangeValue( Node q, Node v, RepSetIterator * rsi ) {
Trace("bound-int-rsi") << "Get value in model for..." << sr << std::endl;
sr = d_quantEngine->getModel()->getCurrentModelValue( sr );
Trace("bound-int-rsi") << "Value is " << sr << std::endl;
- //map to term model
+ //as heuristic, map to term model
if( sr.getKind()!=EMPTYSET ){
std::map< Node, Node > val_to_term;
while( sr.getKind()==UNION ){
diff --git a/src/theory/strings/theory_strings.cpp b/src/theory/strings/theory_strings.cpp
index db07a0b51..6c4a00541 100644
--- a/src/theory/strings/theory_strings.cpp
+++ b/src/theory/strings/theory_strings.cpp
@@ -4273,10 +4273,13 @@ void TheoryStrings::checkMemberships() {
for( unsigned i=0; i<mems.size(); i++ ){
Node n = mems[i];
Assert( d_extf_info_tmp.find( n )!=d_extf_info_tmp.end() );
- Assert( d_extf_info_tmp[n].d_pol==1 || d_extf_info_tmp[n].d_pol==-1 );
- bool pol = d_extf_info_tmp[n].d_pol==1;
- Trace("strings-process-debug") << " add membership : " << n << ", pol = " << pol << std::endl;
- addMembership( pol ? n : n.negate() );
+ if( d_extf_info_tmp[n].d_pol==1 || d_extf_info_tmp[n].d_pol==-1 ){
+ bool pol = d_extf_info_tmp[n].d_pol==1;
+ Trace("strings-process-debug") << " add membership : " << n << ", pol = " << pol << std::endl;
+ addMembership( pol ? n : n.negate() );
+ }else{
+ Trace("strings-process-debug") << " irrelevant (non-asserted) membership : " << n << std::endl;
+ }
}
bool addedLemma = false;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback