Skip to content

Commit 974ab83

Browse files
Restrict the scope of bool pred internalisation to syntactic transformation only (#3945)
Fixes #3938
1 parent e845c00 commit 974ab83

File tree

3 files changed

+349
-286
lines changed

3 files changed

+349
-286
lines changed

booster/library/Booster/Syntax/Json/Internalise.hs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -429,27 +429,20 @@ internalisePred allowAlias checkSubsorts sortVars definition@KoreDefinition{sort
429429
Syntax.KJBottom{} -> notSupported
430430
Syntax.KJNot{arg} -> do
431431
recursion arg >>= \case
432-
[BoolPred (Internal.Predicate (Internal.EqualsInt a b))] ->
433-
pure [BoolPred $ Internal.Predicate $ Internal.NEqualsInt a b]
434-
[BoolPred (Internal.Predicate (Internal.NEqualsInt a b))] ->
435-
pure [BoolPred $ Internal.Predicate $ Internal.EqualsInt a b]
436-
[BoolPred (Internal.Predicate (Internal.EqualsK a b))] ->
437-
pure [BoolPred $ Internal.Predicate $ Internal.NEqualsK a b]
438-
[BoolPred (Internal.Predicate (Internal.NEqualsK a b))] ->
439-
pure [BoolPred $ Internal.Predicate $ Internal.EqualsK a b]
440432
[BoolPred (Internal.Predicate p')] ->
441433
pure [BoolPred $ Internal.Predicate $ Internal.NotBool p']
442434
[SubstitutionPred k v] ->
443435
if "@" `isPrefixOf` k.variableName
444436
then notSupported -- @ variables are set variables, the negation of which we do not support internalising
445437
else case sortOfTerm v of
446438
Internal.SortInt ->
447-
pure [BoolPred $ Internal.Predicate $ Internal.NEqualsInt (Internal.Var k) v]
439+
pure [BoolPred $ Internal.Predicate $ Internal.NotBool $ Internal.EqualsInt (Internal.Var k) v]
448440
otherSort ->
449441
pure
450442
[ BoolPred $
451443
Internal.Predicate $
452-
Internal.NEqualsK (Internal.KSeq otherSort $ Internal.Var k) (Internal.KSeq otherSort v)
444+
Internal.NotBool $
445+
Internal.EqualsK (Internal.KSeq otherSort $ Internal.Var k) (Internal.KSeq otherSort v)
453446
]
454447
_ -> notSupported
455448
Syntax.KJAnd{patterns = []} -> notSupported

0 commit comments

Comments
 (0)