@ -8,7 +8,7 @@
namespace storm {
namespace modelchecker {
template < storm : : dd : : DdType Type >
SymbolicQualitativeCheckResult < Type > : : SymbolicQualitativeCheckResult ( storm : : dd : : Bdd < Type > const & reachableStates , storm : : dd : : Bdd < Type > const & truthValues ) : reachableStates ( reachableStates ) , truthValues ( truthValues ) {
SymbolicQualitativeCheckResult < Type > : : SymbolicQualitativeCheckResult ( storm : : dd : : Bdd < Type > const & reachableStates , storm : : dd : : Bdd < Type > const & truthValues ) : reachableStates ( reachableStates ) , states ( reachableStates ) , truthValues ( truthValues ) {
// Intentionally left empty.
}
@ -19,7 +19,7 @@ namespace storm {
template < storm : : dd : : DdType Type >
bool SymbolicQualitativeCheckResult < Type > : : isResultForAllStates ( ) const {
return true ;
return reachableStates = = states ;
}
template < storm : : dd : : DdType Type >
@ -48,22 +48,22 @@ namespace storm {
template < storm : : dd : : DdType Type >
storm : : dd : : Bdd < Type > const & SymbolicQualitativeCheckResult < Type > : : getTruthValuesVector ( ) const {
return truthValues ;
return this - > truthValues ;
}
template < storm : : dd : : DdType Type >
bool SymbolicQualitativeCheckResult < Type > : : existsTrue ( ) const {
STORM_LOG_THROW ( false , storm : : exceptions : : NotImplementedException , " Exists not implemented for symbolic results " ) ;
return ! this - > truthValues . isZero ( ) ;
}
template < storm : : dd : : DdType Type >
bool SymbolicQualitativeCheckResult < Type > : : forallTrue ( ) const {
STORM_LOG_THROW ( false , storm : : exceptions : : NotImplementedException , " Forall not implemented for symbolic results " ) ;
return this - > truthValues = = this - > states ;
}
template < storm : : dd : : DdType Type >
uint64_t SymbolicQualitativeCheckResult < Type > : : count ( ) const {
STORM_LOG_THROW ( false , storm : : exceptions : : NotImplementedException , " Count not implemented for symbolic results " ) ;
return this - > truthValues . getNonZeroCount ( ) ;
}
template < storm : : dd : : DdType Type >
@ -80,9 +80,10 @@ namespace storm {
void SymbolicQualitativeCheckResult < Type > : : filter ( QualitativeCheckResult const & filter ) {
STORM_LOG_THROW ( filter . isSymbolicQualitativeCheckResult ( ) , storm : : exceptions : : InvalidOperationException , " Cannot filter symbolic check result with non-symbolic filter. " ) ;
this - > truthValues & = filter . asSymbolicQualitativeCheckResult < Type > ( ) . getTruthValuesVector ( ) ;
this - > states & = filter . asSymbolicQualitativeCheckResult < Type > ( ) . getTruthValuesVector ( ) ;
}
template class SymbolicQualitativeCheckResult < storm : : dd : : DdType : : CUDD > ;
template class SymbolicQualitativeCheckResult < storm : : dd : : DdType : : Sylvan > ;
}
}
}