Fix dt.size care graph.
authorajreynol <andrew.j.reynolds@gmail.com>
Sat, 6 Dec 2014 00:26:44 +0000 (01:26 +0100)
committerajreynol <andrew.j.reynolds@gmail.com>
Sat, 6 Dec 2014 00:26:53 +0000 (01:26 +0100)
src/theory/datatypes/theory_datatypes.cpp

index a7034370200df51c8349fde50a29758405833eb1..5436ab632e773043b476e531e34a06ca69556e4c 100644 (file)
@@ -1096,7 +1096,7 @@ void TheoryDatatypes::computeCareGraph(){
       for( unsigned j=i+1; j<functionTerms; j++ ){
         TNode f2 = r==0 ? d_consTerms[j] : d_selTerms[j];
         Trace("dt-cg-debug") << "dt-cg: " << f1 << " and " << f2 << " " << (f1.getOperator()==f2.getOperator()) << " " << areEqual( f1, f2 ) << std::endl;
-        if( f1.getOperator()==f2.getOperator() && !areEqual( f1, f2 ) ){
+        if( f1.getOperator()==f2.getOperator() && ( f1.getKind()!=DT_SIZE || f1[0].getType()==f2[0].getType() ) && !areEqual( f1, f2 ) ){
           Trace("dt-cg") << "Check " << f1 << " and " << f2 << std::endl;
           bool somePairIsDisequal = false;
           currentPairs.clear();