@@ -1947,18 +1947,11 @@ static std::pair<bool, std::vector<exprt>> check_axioms(
1947
1947
const exprt &val=v.second ;
1948
1948
const string_constraintt &axiom=axioms.universal [v.first ];
1949
1949
1950
- implies_exprt instance (axiom.premise (), axiom.body ());
1950
+ implies_exprt instance (
1951
+ and_exprt (axiom.univ_within_bounds (), axiom.premise ()), axiom.body ());
1951
1952
replace_expr (axiom.univ_var (), val, instance);
1952
- // We are not sure the index set contains only positive numbers
1953
- exprt bounds=and_exprt (
1954
- axiom.univ_within_bounds (),
1955
- binary_relation_exprt (
1956
- from_integer (0 , val.type ()), ID_le, val));
1957
- replace_expr (axiom.univ_var (), val, bounds);
1958
- const implies_exprt counter (bounds, instance);
1959
-
1960
- stream << " - " << from_expr (ns, " " , counter) << eom;
1961
- lemmas.push_back (counter);
1953
+ stream << " - " << from_expr (ns, " " , instance) << eom;
1954
+ lemmas.push_back (instance);
1962
1955
}
1963
1956
1964
1957
for (const auto &v : violated_not_contains)
0 commit comments