File tree 2 files changed +7
-4
lines changed
2 files changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -122,7 +122,7 @@ runImplies def mLlvmLibrary mSMTOptions antecedent consequent =
122
122
, substitution = substitutionR
123
123
}
124
124
125
- SMT. isSat solver (Set. toList substPatL. constraints) >>= \ case
125
+ SMT. isSat solver (Set. toList substPatL. constraints) substPatL . substitution >>= \ case
126
126
SMT. IsUnsat ->
127
127
let sort = externaliseSort $ sortOfPattern substPatL
128
128
in implies' (Kore.Syntax. KJBottom sort) sort antecedent. term consequent. term mempty
@@ -159,8 +159,10 @@ runImplies def mLlvmLibrary mSMTOptions antecedent consequent =
159
159
pure . Left . RpcError. backendError $ RpcError. Aborted (Text. pack . constructorName $ err)
160
160
MatchSuccess subst -> do
161
161
let filteredConsequentPreds =
162
- Set. map (Substitution. substituteInPredicate subst) substPatR. constraints
163
- `Set.difference` substPatL. constraints
162
+ Set. map
163
+ (Substitution. substituteInPredicate subst)
164
+ (substPatR. constraints <> (Set. fromList $ Substitution. asEquations substPatR. substitution))
165
+ `Set.difference` (substPatL. constraints <> (Set. fromList $ Substitution. asEquations substPatL. substitution))
164
166
165
167
if null filteredConsequentPreds
166
168
then
Original file line number Diff line number Diff line change @@ -280,8 +280,9 @@ isSat ::
280
280
Log. LoggerMIO io =>
281
281
SMT. SMTContext ->
282
282
[Predicate ] ->
283
+ Map Variable Term -> -- supplied substitution
283
284
io (IsSatResult () )
284
- isSat ctxt ps = fmap void <$> (isSatReturnTransState ctxt ps mempty )
285
+ isSat ctxt ps subst = fmap void <$> (isSatReturnTransState ctxt ps subst )
285
286
286
287
{- |
287
288
Implementation of get-model request
You can’t perform that action at this time.
0 commit comments