diff --git a/alib2algo/src/arbology/exact/ExactPatternMatch.cpp b/alib2algo/src/arbology/exact/ExactPatternMatch.cpp index 5b5b0a7d40338574b3e18dea7daeabef4898d41a..f4eb81e227df738089955c8f761997a215e687fc 100644 --- a/alib2algo/src/arbology/exact/ExactPatternMatch.cpp +++ b/alib2algo/src/arbology/exact/ExactPatternMatch.cpp @@ -61,9 +61,11 @@ bool ExactPatternMatch::matchHelper ( const tree::RankedNode & subject, const tr if ( nonlinearVariables.count ( pattern.getSymbol ( ) ) ) { auto setting = variablesSetting.find ( pattern.getSymbol ( ) ); - if ( ( setting != variablesSetting.end ( ) ) && ( repeats.getSymbol ( ).getSymbol ( ) != setting->second ) ) return false; + if ( setting != variablesSetting.end ( ) ) return repeats.getSymbol ( ).getSymbol ( ) == setting->second; - if ( setting == variablesSetting.end ( ) ) variablesSetting.insert ( std::make_pair ( pattern.getSymbol ( ), repeats.getSymbol ( ).getSymbol ( ) ) ); + variablesSetting.insert ( std::make_pair ( pattern.getSymbol ( ), repeats.getSymbol ( ).getSymbol ( ) ) ); + + return true; } if ( subject.getSymbol ( ) != pattern.getSymbol ( ) ) return false;