Skip to content

Commit e8661b4

Browse files
committed
Move partitionPredicates to Booster.Pattern.Bool
1 parent edc8e6f commit e8661b4

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

booster/library/Booster/Pattern/Bool.hs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ module Booster.Pattern.Bool (
1313
mkEq,
1414
destructEq,
1515
asEquations,
16+
partitionPredicates,
1617
-- patterns
1718
pattern TrueBool,
1819
pattern FalseBool,
@@ -27,8 +28,10 @@ module Booster.Pattern.Bool (
2728
) where
2829

2930
import Data.ByteString.Char8 (ByteString)
31+
import Data.List (partition)
3032
import Data.Map.Strict (Map)
3133
import Data.Map.Strict qualified as Map
34+
import Data.Maybe (isJust, mapMaybe)
3235

3336
import Booster.Definition.Attributes.Base (
3437
FunctionType (..),
@@ -232,3 +235,9 @@ destructEq = \case
232235
-- | turns a substitution into a list of equations
233236
asEquations :: Map Variable Term -> [Predicate]
234237
asEquations = map (uncurry mkEq) . Map.assocs
238+
239+
-- | Extract substitution items from a list of generic predicates. Return empty substitution if none are found
240+
partitionPredicates :: [Predicate] -> (Map Variable Term, [Predicate])
241+
partitionPredicates ps =
242+
let (substItems, normalPreds) = partition (isJust . destructEq) ps
243+
in (Map.fromList . mapMaybe destructEq $ substItems, normalPreds)

booster/library/Booster/Pattern/Rewrite.hs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import Data.List (intersperse, partition)
3737
import Data.List.NonEmpty (NonEmpty (..), toList)
3838
import Data.List.NonEmpty qualified as NE
3939
import Data.Map qualified as Map
40-
import Data.Maybe (catMaybes, fromMaybe, isJust, mapMaybe)
40+
import Data.Maybe (catMaybes, fromMaybe, mapMaybe)
4141
import Data.Sequence (Seq, (|>))
4242
import Data.Set qualified as Set
4343
import Data.Text as Text (Text, pack)
@@ -393,12 +393,6 @@ applyRule pat@Pattern{ceilConditions} rule =
393393
withPatternContext rewritten $
394394
return (rule, rewritten)
395395
where
396-
-- extract substitution items from a list of generic predicates. Return empty substitution if none are found
397-
partitionPredicates :: [Predicate] -> (Substitution, [Predicate])
398-
partitionPredicates ps =
399-
let (substItems, normalPreds) = partition (isJust . destructEq) ps
400-
in (Map.fromList . mapMaybe destructEq $ substItems, normalPreds)
401-
402396
-- Given known predicates, a known substitution and a newly acquired substitution (from the ensures clause):
403397
-- - apply the new substitution to the old substitution
404398
-- - simplify the substituted old substitution, assuming known truth

0 commit comments

Comments
 (0)