File tree Expand file tree Collapse file tree 3 files changed +32
-1
lines changed
src/solvers/smt2_incremental Expand file tree Collapse file tree 3 files changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -42,3 +42,26 @@ static void validate_bit_vector_predicate_arguments(
4242 smt_bit_vector_theoryt::the_name{};
4343#include " smt_bit_vector_theory.def"
4444#undef SMT_BITVECTOR_THEORY_PREDICATE
45+
46+ const char *smt_bit_vector_theoryt::unsigned_less_thant::identifier ()
47+ {
48+ return " bvult" ;
49+ }
50+
51+ smt_sortt smt_bit_vector_theoryt::unsigned_less_thant::return_sort (
52+ const smt_termt &lhs,
53+ const smt_termt &rhs)
54+ {
55+ return smt_bool_sortt{};
56+ }
57+
58+ void smt_bit_vector_theoryt::unsigned_less_thant::validate (
59+ const smt_termt &lhs,
60+ const smt_termt &rhs)
61+ {
62+ validate_bit_vector_predicate_arguments (lhs, rhs);
63+ }
64+
65+ const smt_function_application_termt::factoryt<
66+ smt_bit_vector_theoryt::unsigned_less_thant>
67+ smt_bit_vector_theoryt::unsigned_less_than{};
Original file line number Diff line number Diff line change 33/// [X-macro](https://en.wikipedia.org/wiki/X_Macro) pattern. These define the
44/// set of bitvector theory functions which are implemented and it is used to
55/// automate repetitive parts of the implementation.
6- SMT_BITVECTOR_THEORY_PREDICATE(bvult, unsigned_less_than)
76SMT_BITVECTOR_THEORY_PREDICATE(bvule, unsigned_less_than_or_equal)
87SMT_BITVECTOR_THEORY_PREDICATE(bvugt, unsigned_greater_than)
98SMT_BITVECTOR_THEORY_PREDICATE(bvuge, unsigned_greater_than_or_equal)
Original file line number Diff line number Diff line change @@ -20,6 +20,15 @@ class smt_bit_vector_theoryt
2020 static const smt_function_application_termt::factoryt<the_name##t> the_name;
2121#include " smt_bit_vector_theory.def"
2222#undef SMT_BITVECTOR_THEORY_PREDICATE
23+
24+ struct unsigned_less_thant final
25+ {
26+ static const char *identifier ();
27+ static smt_sortt return_sort (const smt_termt &lhs, const smt_termt &rhs);
28+ static void validate (const smt_termt &lhs, const smt_termt &rhs);
29+ };
30+ static const smt_function_application_termt::factoryt<unsigned_less_thant>
31+ unsigned_less_than;
2332};
2433
2534#endif // CPROVER_SOLVERS_SMT2_INCREMENTAL_SMT_BIT_VECTOR_THEORY_H
You can’t perform that action at this time.
0 commit comments