3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-01-25 03:24:01 +00:00

Add missing API functions to C++, Java, C#, and TypeScript bindings (#8152)

* Initial plan

* Add missing API functions to C++, Java, C#, and TypeScript bindings

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Fix TypeScript type errors in new API functions

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Address code review comments and add documentation

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Fix TypeScript async issue in polynomialSubresultants

Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>

* Delete API_COHERENCE_FIXES.md

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Copilot 2026-01-11 13:59:30 -08:00 committed by GitHub
parent 854d7a5af1
commit 5aac5c98b3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 158 additions and 1 deletions

View file

@ -4291,7 +4291,7 @@ public class Context implements AutoCloseable {
}
/**
* Creates or a partial order.
* Creates a partial order.
* @param index The index of the order.
* @param sort The sort of the order.
*/
@ -4306,6 +4306,40 @@ public class Context implements AutoCloseable {
);
}
/**
* Create the transitive closure of a binary relation.
* The resulting relation is recursive.
* @param f function declaration of a binary relation
*/
public final <R extends Sort> FuncDecl<BoolSort> mkTransitiveClosure(FuncDecl<BoolSort> f) {
return (FuncDecl<BoolSort>) FuncDecl.create(
this,
Native.mkTransitiveClosure(
nCtx(),
f.getNativeObject()
)
);
}
/**
* Return the nonzero subresultants of p and q with respect to the "variable" x.
* Note that any subterm that cannot be viewed as a polynomial is assumed to be a variable.
* @param p arithmetic term
* @param q arithmetic term
* @param x variable
*/
public final <R extends Sort> ASTVector polynomialSubresultants(Expr<R> p, Expr<R> q, Expr<R> x) {
return new ASTVector(
this,
Native.polynomialSubresultants(
nCtx(),
p.getNativeObject(),
q.getNativeObject(),
x.getNativeObject()
)
);
}
/**
* Wraps an AST.
* Remarks: This function is used for transitions between