@@ -46,6 +46,12 @@ static bool is_valid_string_constraint(
46
46
messaget::mstreamt& stream,
47
47
const namespacet& ns,
48
48
const string_constraintt &expr);
49
+ static bool is_axiom_sat (
50
+ const namespacet& ns,
51
+ ui_message_handlert::uit ui,
52
+ const exprt &axiom,
53
+ const symbol_exprt& var,
54
+ exprt &witness);
49
55
50
56
exprt simplify_sum (const exprt &f);
51
57
@@ -1224,7 +1230,8 @@ bool string_refinementt::check_axioms()
1224
1230
<< " " << from_expr (ns, " " , with_concretized_arrays) << eom;
1225
1231
exprt witness;
1226
1232
1227
- bool is_sat=is_axiom_sat (with_concretized_arrays, univ_var, witness);
1233
+ bool is_sat=is_axiom_sat (
1234
+ ns, supert::config_.ui , with_concretized_arrays, univ_var, witness);
1228
1235
1229
1236
if (is_sat)
1230
1237
{
@@ -1271,7 +1278,7 @@ bool string_refinementt::check_axioms()
1271
1278
substitute_array_access (negaxiom);
1272
1279
exprt witness;
1273
1280
1274
- bool is_sat=is_axiom_sat (negaxiom, univ_var, witness);
1281
+ bool is_sat=is_axiom_sat (ns, supert::config_. ui , negaxiom, univ_var, witness);
1275
1282
1276
1283
if (is_sat)
1277
1284
{
@@ -1810,18 +1817,22 @@ exprt string_refinementt::get(const exprt &expr) const
1810
1817
// / \param [out] witness: the witness of the satisfying assignment if one
1811
1818
// / exists. If UNSAT, then behaviour is undefined.
1812
1819
// / \return: true if axiom is SAT, false if UNSAT
1813
- bool string_refinementt::is_axiom_sat (
1814
- const exprt &axiom, const symbol_exprt& var, exprt &witness)
1820
+ static bool is_axiom_sat (
1821
+ const namespacet& ns,
1822
+ ui_message_handlert::uit ui,
1823
+ const exprt &axiom,
1824
+ const symbol_exprt& var,
1825
+ exprt &witness)
1815
1826
{
1816
1827
satcheck_no_simplifiert sat_check;
1817
- supert ::infot info;
1828
+ bv_refinementt ::infot info;
1818
1829
info.ns =&ns;
1819
1830
info.prop =&sat_check;
1820
1831
info.refine_arithmetic =true ;
1821
1832
info.refine_arrays =true ;
1822
1833
info.max_node_refinement =5 ;
1823
- info.ui =supert::config_. ui ;
1824
- supert solver (info);
1834
+ info.ui =ui;
1835
+ bv_refinementt solver (info);
1825
1836
solver << axiom;
1826
1837
1827
1838
switch (solver ())
0 commit comments