Skip to content

Commit b49fdd3

Browse files
authored
Make Conditional's term a strict field (#2442)
* Make Conditional's term a strict field * Check if term is bottom before simplify * Add test
1 parent 904f532 commit b49fdd3

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

kore/src/Kore/Internal/Conditional.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ quadratic complexity.
9090
-}
9191
data Conditional variable child =
9292
Conditional
93-
{ term :: child
93+
{ term :: !child
9494
, predicate :: !(Predicate variable)
9595
, substitution :: !(Substitution variable)
9696
}

kore/src/Kore/Reachability/Claim.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import Control.Lens
4040
( Lens'
4141
)
4242
import qualified Control.Lens as Lens
43+
import qualified Control.Monad as Monad
4344
import Control.Monad.Catch
4445
( Exception (..)
4546
, SomeException (..)
@@ -604,6 +605,7 @@ simplify' lensClaimPattern claim = do
604605

605606
simplifyLeftHandSide =
606607
Lens.traverseOf (lensClaimPattern . field @"left") $ \config -> do
608+
Monad.guard (not . isBottom . Conditional.term $ config)
607609
let definedConfig =
608610
Pattern.andCondition (mkDefined <$> config)
609611
$ from $ makeCeilPredicate (Conditional.term config)

kore/test/Test/Kore/Reachability/Prove.hs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -658,6 +658,21 @@ test_proveClaims =
658658
[ mkTest "OnePath" simpleOnePathClaim
659659
, mkTest "AllPath" simpleAllPathClaim
660660
]
661+
, testGroup "LHS is undefined" $
662+
let mkTest name mkSimpleClaim =
663+
testCase name $ do
664+
let claims = [mkSimpleClaim mkBottom_ Mock.a]
665+
actual <- proveClaims_
666+
Unlimited
667+
Unlimited
668+
[]
669+
claims
670+
[]
671+
assertEqual "Result is \\top" MultiAnd.top actual
672+
in
673+
[ mkTest "OnePath" simpleOnePathClaim
674+
, mkTest "AllPath" simpleAllPathClaim
675+
]
661676
]
662677

663678
simpleAxiom

0 commit comments

Comments
 (0)