@@ -94,6 +94,7 @@ import Test.Kore.Step.Rule.Common
9494import qualified Test.Kore.Step.Rule.Common as Common
9595import Test.SMT
9696 ( runNoSMT
97+ , runSMT
9798 )
9899import Test.Tasty.HUnit.Ext
99100
@@ -103,14 +104,14 @@ test_simplifyRule_RewriteRule =
103104 let rule = Mock. a `rewritesToWithSortRewriteRule` Mock. cf
104105 expected = [rule]
105106
106- actual <- runSimplifyRule rule
107+ actual <- runSimplifyRuleNoSMT rule
107108
108109 assertEqual " " expected actual
109110
110111 , testCase " Simplify lhs term" $ do
111112 let expected = [Mock. a `rewritesToWithSortRewriteRule` Mock. cf]
112113
113- actual <- runSimplifyRule
114+ actual <- runSimplifyRuleNoSMT
114115 ( mkAnd Mock. a (mkEquals Mock. testSort Mock. a Mock. a)
115116 `rewritesToWithSortRewriteRule`
116117 Mock. cf
@@ -125,14 +126,14 @@ test_simplifyRule_RewriteRule =
125126 mkAnd Mock. cf (mkEquals Mock. testSort Mock. a Mock. a)
126127 expected = [rule]
127128
128- actual <- runSimplifyRule rule
129+ actual <- runSimplifyRuleNoSMT rule
129130
130131 assertEqual " " expected actual
131132
132133 , testCase " Substitution in lhs term" $ do
133134 let expected = [Mock. a `rewritesToWithSortRewriteRule` Mock. f Mock. b]
134135
135- actual <- runSimplifyRule
136+ actual <- runSimplifyRuleNoSMT
136137 ( mkAnd Mock. a (mkEquals Mock. testSort Mock. b x)
137138 `rewritesToWithSortRewriteRule` Mock. f x
138139 )
@@ -146,7 +147,7 @@ test_simplifyRule_RewriteRule =
146147 Pair (Mock. cf, makeEqualsPredicate Mock. testSort Mock. b Mock. b)
147148 expected = [rule]
148149
149- actual <- runSimplifyRule rule
150+ actual <- runSimplifyRuleNoSMT rule
150151
151152 assertEqual " " expected actual
152153
@@ -156,7 +157,7 @@ test_simplifyRule_RewriteRule =
156157 , Mock. b `rewritesToWithSortRewriteRule` Mock. cf
157158 ]
158159
159- actual <- runSimplifyRule
160+ actual <- runSimplifyRuleNoSMT
160161 ( mkOr Mock. a Mock. b
161162 `rewritesToWithSortRewriteRule`
162163 Mock. cf
@@ -168,7 +169,7 @@ test_simplifyRule_RewriteRule =
168169 [ Mock. functional10 x `rewritesToWithSortRewriteRule` Mock. a
169170 ]
170171
171- actual <- runSimplifyRule
172+ actual <- runSimplifyRuleNoSMT
172173 ( Pair (Mock. functional10 x, makeTruePredicate Mock. testSort)
173174 `rewritesToWithSortRewriteRule`
174175 Pair (Mock. a, makeTruePredicate Mock. testSort)
@@ -192,14 +193,14 @@ test_simplifyRule_OnePathRule =
192193 let rule = Mock. a `rewritesToWithSort` Mock. cf
193194 expected = [rule]
194195
195- actual <- runSimplifyRule rule
196+ actual <- runSimplifyRuleNoSMT rule
196197
197198 assertEqual " " expected actual
198199
199200 , testCase " Simplify lhs term" $ do
200201 let expected = [Mock. a `rewritesToWithSort` Mock. cf]
201202
202- actual <- runSimplifyRule
203+ actual <- runSimplifyRuleNoSMT
203204 ( mkAnd Mock. a (mkEquals Mock. testSort Mock. a Mock. a)
204205 `rewritesToWithSort`
205206 Mock. cf
@@ -214,14 +215,14 @@ test_simplifyRule_OnePathRule =
214215 mkAnd Mock. cf (mkEquals Mock. testSort Mock. a Mock. a)
215216 expected = [rule]
216217
217- actual <- runSimplifyRule rule
218+ actual <- runSimplifyRuleNoSMT rule
218219
219220 assertEqual " " expected actual
220221
221222 , testCase " Substitution in lhs term" $ do
222223 let expected = [Mock. a `rewritesToWithSort` Mock. f Mock. b]
223224
224- actual <- runSimplifyRule
225+ actual <- runSimplifyRuleNoSMT
225226 ( mkAnd Mock. a (mkEquals Mock. testSort Mock. b x)
226227 `rewritesToWithSort` Mock. f x
227228 )
@@ -231,7 +232,7 @@ test_simplifyRule_OnePathRule =
231232 , testCase " Simplifies requires predicate" $ do
232233 let expected = [Mock. a `rewritesToWithSort` Mock. cf]
233234
234- actual <- runSimplifyRule
235+ actual <- runSimplifyRuleNoSMT
235236 ( Pair (Mock. a, makeEqualsPredicate Mock. testSort Mock. b Mock. b)
236237 `rewritesToWithSort`
237238 Pair (Mock. cf, makeTruePredicate Mock. testSort)
@@ -246,14 +247,14 @@ test_simplifyRule_OnePathRule =
246247 Pair (Mock. cf, makeEqualsPredicate Mock. testSort Mock. b Mock. b)
247248 expected = [rule]
248249
249- actual <- runSimplifyRule rule
250+ actual <- runSimplifyRuleNoSMT rule
250251
251252 assertEqual " " expected actual
252253
253254 , testCase " Substitution in requires predicate" $ do
254255 let expected = [Mock. a `rewritesToWithSort` Mock. f Mock. b]
255256
256- actual <- runSimplifyRule
257+ actual <- runSimplifyRuleNoSMT
257258 ( Pair (Mock. a, makeEqualsPredicate Mock. testSort Mock. b x)
258259 `rewritesToWithSort`
259260 Pair (Mock. f x, makeTruePredicate Mock. testSort)
@@ -267,7 +268,7 @@ test_simplifyRule_OnePathRule =
267268 , Mock. b `rewritesToWithSort` Mock. cf
268269 ]
269270
270- actual <- runSimplifyRule
271+ actual <- runSimplifyRuleNoSMT
271272 ( mkOr Mock. a Mock. b
272273 `rewritesToWithSort`
273274 Mock. cf
@@ -294,7 +295,7 @@ test_simplifyRule_OnePathRule =
294295 [ Mock. functional10 x `rewritesToWithSort` Mock. a
295296 ]
296297
297- actual <- runSimplifyRule
298+ actual <- runSimplifyRuleNoSMT
298299 ( Pair (Mock. functional10 x, makeTruePredicate Mock. testSort)
299300 `rewritesToWithSort`
300301 Pair (Mock. a, makeTruePredicate Mock. testSort)
@@ -303,7 +304,7 @@ test_simplifyRule_OnePathRule =
303304 assertEqual " " expected actual
304305 , testCase " Predicate simplification removes trivial claim" $ do
305306 let expected = []
306- actual <- runSimplifyRule
307+ actual <- runSimplifyRuleNoSMT
307308 ( Pair
308309 ( Mock. b
309310 , makeAndPredicate
@@ -331,13 +332,24 @@ test_simplifyRule_OnePathRule =
331332
332333 x = mkElemVar Mock. x
333334
335+ runSimplifyRuleNoSMT
336+ :: SimplifyRuleLHS rule
337+ => rule
338+ -> IO [rule ]
339+ runSimplifyRuleNoSMT rule =
340+ fmap MultiAnd. extractPatterns
341+ $ runNoSMT
342+ $ runSimplifier Mock. env $ do
343+ SMT.All. declare Mock. smtDeclarations
344+ simplifyRuleLhs rule
345+
334346runSimplifyRule
335347 :: SimplifyRuleLHS rule
336348 => rule
337349 -> IO [rule ]
338350runSimplifyRule rule =
339351 fmap MultiAnd. extractPatterns
340- $ runNoSMT
352+ $ runSMT ( pure () )
341353 $ runSimplifier Mock. env $ do
342354 SMT.All. declare Mock. smtDeclarations
343355 simplifyRuleLhs rule
@@ -412,7 +424,7 @@ test_simplifyClaimRule =
412424 assertEqual " " expect (MultiAnd. extractPatterns actual)
413425 where
414426 run =
415- runNoSMT
427+ runSMT ( pure () )
416428 . runSimplifier env
417429 . flip runReaderT TestEnv
418430 { replacements, input, requires = aEqualsb }
0 commit comments