Skip to content

Commit 5043001

Browse files
author
Daniel Kroening
committed
prop_conv_solvert: remove let conversion
This removes the handling of let expressions from prop_conv_solvert to prevent duplicating this functionality in boolbvt.
1 parent 0475c87 commit 5043001

File tree

1 file changed

+1
-24
lines changed

1 file changed

+1
-24
lines changed

src/solvers/prop/prop_conv_solver.cpp

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,8 @@ literalt prop_conv_solvert::convert(const exprt &expr)
182182
literalt literal = convert_bool(expr);
183183

184184
// insert into cache
185-
186185
result.first->second = literal;
186+
187187
if(freeze_all && !literal.is_constant())
188188
prop.set_frozen(literal);
189189

@@ -305,29 +305,6 @@ literalt prop_conv_solvert::convert_bool(const exprt &expr)
305305
return equal ? prop.lequal(tmp1, tmp2) : prop.lxor(tmp1, tmp2);
306306
}
307307
}
308-
else if(expr.id() == ID_let)
309-
{
310-
const let_exprt &let_expr = to_let_expr(expr);
311-
312-
// first check whether this is all boolean
313-
if(
314-
let_expr.value().type().id() == ID_bool &&
315-
let_expr.where().type().id() == ID_bool)
316-
{
317-
literalt value = convert(let_expr.value());
318-
319-
// We expect the identifier of the bound symbols to be unique,
320-
// and thus, these can go straight into the symbol map.
321-
// This property also allows us to cache any subexpressions.
322-
const irep_idt &id = let_expr.symbol().get_identifier();
323-
symbols[id] = value;
324-
literalt result = convert(let_expr.where());
325-
326-
// remove again
327-
symbols.erase(id);
328-
return result;
329-
}
330-
}
331308

332309
return convert_rest(expr);
333310
}

0 commit comments

Comments
 (0)