File tree 2 files changed +8
-13
lines changed
2 files changed +8
-13
lines changed Original file line number Diff line number Diff line change @@ -69,6 +69,7 @@ class skolemizer {
69
69
typedef act_cache cache;
70
70
71
71
ast_manager & m;
72
+ var_subst m_subst;
72
73
symbol m_sk_hack;
73
74
bool m_sk_hack_enabled;
74
75
cache m_cache;
@@ -128,7 +129,6 @@ class skolemizer {
128
129
//
129
130
// (VAR 0) should be in the last position of substitution.
130
131
//
131
- var_subst s (m);
132
132
SASSERT (is_well_sorted (m, q->get_expr ()));
133
133
expr_ref tmp (m);
134
134
expr * body = q->get_expr ();
@@ -146,7 +146,7 @@ class skolemizer {
146
146
}
147
147
}
148
148
}
149
- r = s (body, substitution);
149
+ r = m_subst (body, substitution);
150
150
p = nullptr ;
151
151
if (m_proofs_enabled) {
152
152
if (q->get_kind () == forall_k)
@@ -159,6 +159,7 @@ class skolemizer {
159
159
public:
160
160
skolemizer (ast_manager & m):
161
161
m (m),
162
+ m_subst (m),
162
163
m_sk_hack (" sk_hack" ),
163
164
m_sk_hack_enabled (false ),
164
165
m_cache (m),
Original file line number Diff line number Diff line change @@ -240,23 +240,18 @@ namespace recfun {
240
240
{
241
241
VERIFY (m_cases.empty () && " cases cannot already be computed" );
242
242
SASSERT (n_vars == m_domain.size ());
243
-
244
243
TRACEFN (" compute cases " << mk_pp (rhs, m));
245
244
246
- unsigned case_idx = 0 ;
247
-
248
- std::string name (" case-" );
249
- name.append (m_name.str ());
250
-
251
- m_vars.append (n_vars, vars);
252
- m_rhs = rhs;
253
-
254
245
if (!is_macro)
255
246
for (expr* e : subterms::all (m_rhs))
256
247
if (is_lambda (e))
257
248
throw default_exception (" recursive definitions with lambdas are not supported" );
258
-
249
+
250
+
251
+ unsigned case_idx = 0 ;
259
252
expr_ref_vector conditions (m);
253
+ m_vars.append (n_vars, vars);
254
+ m_rhs = rhs;
260
255
261
256
// is the function a macro (unconditional body)?
262
257
if (is_macro || n_vars == 0 || !contains_ite (u, rhs)) {
@@ -265,7 +260,6 @@ namespace recfun {
265
260
return ;
266
261
}
267
262
268
-
269
263
270
264
// analyze control flow of `rhs`, accumulating guards and
271
265
// rebuilding a `ite`-free RHS on the fly for each path in `rhs`.
You can’t perform that action at this time.
0 commit comments