3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 09:05:31 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2025-03-07 10:46:29 -08:00
parent 8df45b442b
commit 80f00f191a
26 changed files with 213 additions and 152 deletions

View file

@ -1257,7 +1257,8 @@ extern "C" {
case OP_EXT_ROTATE_LEFT: return Z3_OP_EXT_ROTATE_LEFT;
case OP_EXT_ROTATE_RIGHT: return Z3_OP_EXT_ROTATE_RIGHT;
case OP_INT2BV: return Z3_OP_INT2BV;
case OP_BV2INT: return Z3_OP_BV2INT;
case OP_UBV2INT: return Z3_OP_BV2INT;
case OP_SBV2INT: return Z3_OP_SBV2INT;
case OP_CARRY: return Z3_OP_CARRY;
case OP_XOR3: return Z3_OP_XOR3;
case OP_BIT2BOOL: return Z3_OP_BIT2BOOL;

View file

@ -140,7 +140,7 @@ Z3_ast Z3_API NAME(Z3_context c, unsigned i, Z3_ast n) { \
else {
expr * _n = to_expr(n);
parameter p(to_sort(int_s));
ast* a = mk_c(c)->m().mk_app(mk_c(c)->get_bv_fid(), OP_BV2INT, 1, &p, 1, &_n);
ast* a = mk_c(c)->m().mk_app(mk_c(c)->get_bv_fid(), OP_UBV2INT, 1, &p, 1, &_n);
mk_c(c)->save_ast_trail(a);
check_sorts(c, a);
RETURN_Z3(of_ast(a));

View file

@ -367,13 +367,11 @@ typedef enum
- Z3_OP_EXT_ROTATE_RIGHT (extended) Right rotation. Similar to Z3_OP_ROTATE_RIGHT, but it is a binary operator instead of a parametric one.
- Z3_OP_INT2BV Coerce integer to bit-vector. NB. This function
is not supported by the decision procedures. Only the most
rudimentary simplification rules are applied to this function.
- Z3_OP_INT2BV Coerce integer to bit-vector.
- Z3_OP_BV2INT Coerce bit-vector to integer. NB. This function
is not supported by the decision procedures. Only the most
rudimentary simplification rules are applied to this function.
- Z3_OP_BV2INT Coerce bit-vector to integer.
- Z3_OP_SBV2INT Coerce signed bit-vector to integer.
- Z3_OP_CARRY Compute the carry bit in a full-adder.
The meaning is given by the equivalence
@ -1106,6 +1104,7 @@ typedef enum {
Z3_OP_BIT2BOOL,
Z3_OP_INT2BV,
Z3_OP_BV2INT,
Z3_OP_SBV2INT,
Z3_OP_CARRY,
Z3_OP_XOR3,