3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-13 14:40:55 +00:00

add on_binding callbacks across APIs

update release notes,
add to Java, .Net, C++
This commit is contained in:
Nikolaj Bjorner 2025-08-07 07:50:08 -07:00
parent 30830aae75
commit fa3d341b18
6 changed files with 90 additions and 1 deletions

View file

@ -641,6 +641,7 @@ def mk_java(java_src, java_dir, package_name):
public static native void propagateRegisterEq(Object o, long ctx, long solver);
public static native void propagateRegisterDecide(Object o, long ctx, long solver);
public static native void propagateRegisterFinal(Object o, long ctx, long solver);
public static native void propagateRegisterOnBinding(Object o, long ctx, long solver);
public static native void propagateAdd(Object o, long ctx, long solver, long javainfo, long e);
public static native boolean propagateConsequence(Object o, long ctx, long solver, long javainfo, int num_fixed, long[] fixed, long num_eqs, long[] eq_lhs, long[] eq_rhs, long conseq);
public static native boolean propagateNextSplit(Object o, long ctx, long solver, long javainfo, long e, long idx, int phase);
@ -684,6 +685,10 @@ def mk_java(java_src, java_dir, package_name):
protected final void registerFinal() {
Native.propagateRegisterFinal(this, ctx, solver);
}
protected final void registerOnBinding() {
Native.propagateRegisterOnBinding(this, ctx, solver);
}
protected abstract void pushWrapper();
@ -700,6 +705,8 @@ def mk_java(java_src, java_dir, package_name):
protected abstract void fixedWrapper(long lvar, long lvalue);
protected abstract void decideWrapper(long lvar, int bit, boolean is_pos);
protected abstract boolean onBindingWrapper(long q, long inst);
}
""")
java_native.write('\n')