| 2179 | } |
| 2180 | |
| 2181 | bool Engine::applyValidConstraintCaseSplit( PiecewiseLinearConstraint *constraint ) |
| 2182 | { |
| 2183 | if ( constraint->isActive() && constraint->phaseFixed() ) |
| 2184 | { |
| 2185 | String constraintString; |
| 2186 | constraint->dump( constraintString ); |
| 2187 | ENGINE_LOG( Stringf( "A constraint has become valid. Dumping constraint: %s", |
| 2188 | constraintString.ascii() ) |
| 2189 | .ascii() ); |
| 2190 | |
| 2191 | constraint->setActiveConstraint( false ); |
| 2192 | PiecewiseLinearCaseSplit validSplit = constraint->getValidCaseSplit(); |
| 2193 | _smtCore.recordImpliedValidSplit( validSplit ); |
| 2194 | applySplit( validSplit ); |
| 2195 | |
| 2196 | if ( _soiManager ) |
| 2197 | _soiManager->removeCostComponentFromHeuristicCost( constraint ); |
| 2198 | ++_numPlConstraintsDisabledByValidSplits; |
| 2199 | |
| 2200 | return true; |
| 2201 | } |
| 2202 | |
| 2203 | return false; |
| 2204 | } |
| 2205 | |
| 2206 | bool Engine::shouldCheckDegradation() |
| 2207 | { |
nothing calls this directly
no test coverage detected