Skip to content

Commit db1832a

Browse files
committed
Merge remote-tracking branch 'origin/master' into release
2 parents 81fe80c + b7a6b36 commit db1832a

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

booster/library/Booster/Pattern/ApplyEquations.hs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,12 +479,16 @@ evaluatePattern' pat@Pattern{term, ceilConditions} = withPatternContext pat $ do
479479
traverse_ simplifyAssumedPredicate . predicates =<< getState
480480
-- this may yield additional new constraints, left unevaluated
481481
evaluatedConstraints <- predicates <$> getState
482+
-- break-up introduced symbolic _andBool_, filter-out trivial truth, de-duplicate
483+
let flattenedEvaluatedConstraints =
484+
Set.unions . Set.map (Set.fromList . filter (/= Predicate TrueBool) . splitBoolPredicates) $
485+
evaluatedConstraints
482486
-- The interface-level evaluatePattern puts pat.substitution together with pat.constraints
483487
-- into the simplifier state as known truth. Here the substitution will bubble-up as part of
484488
-- evaluatedConstraints. To avoid duplicating constraints (i.e. having equivalent entities
485489
-- in pat.predicate and pat.substitution), we discard the old substitution here
486490
-- and extract a possible simplified one from evaluatedConstraints.
487-
let (simplifiedSubsitution, simplifiedConstraints) = extractSubstitution (Set.toList evaluatedConstraints)
491+
let (simplifiedSubsitution, simplifiedConstraints) = extractSubstitution . Set.toList $ flattenedEvaluatedConstraints
488492

489493
pure
490494
Pattern

0 commit comments

Comments
 (0)