3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-07 17:47:58 +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

@ -4849,6 +4849,44 @@ namespace Microsoft.Z3
return a.NativeObject;
}
/// <summary>
/// Create a partial order relation over a sort.
/// </summary>
/// <param name="a">The sort of the relation.</param>
/// <param name="index">The index of the relation.</param>
public FuncDecl MkPartialOrder(Sort a, uint index)
{
return new FuncDecl(this, Native.Z3_mk_partial_order(this.nCtx, a.NativeObject, index));
}
/// <summary>
/// Create the transitive closure of a binary relation.
/// </summary>
/// <remarks>The resulting relation is recursive.</remarks>
/// <param name="f">A binary relation represented as a function declaration.</param>
public FuncDecl MkTransitiveClosure(FuncDecl f)
{
return new FuncDecl(this, Native.Z3_mk_transitive_closure(this.nCtx, f.NativeObject));
}
/// <summary>
/// Return the nonzero subresultants of p and q with respect to the "variable" x.
/// </summary>
/// <remarks>
/// p, q and x are Z3 expressions where p and q are arithmetic terms.
/// Note that any subterm that cannot be viewed as a polynomial is assumed to be a variable.
/// </remarks>
/// <param name="p">First arithmetic term.</param>
/// <param name="q">Second arithmetic term.</param>
/// <param name="x">The variable with respect to which subresultants are computed.</param>
public ASTVector PolynomialSubresultants(Expr p, Expr q, Expr x)
{
CheckContextMatch(p);
CheckContextMatch(q);
CheckContextMatch(x);
return new ASTVector(this, Native.Z3_polynomial_subresultants(this.nCtx, p.NativeObject, q.NativeObject, x.NativeObject));
}
/// <summary>
/// Return a string describing all available parameters to <c>Expr.Simplify</c>.
/// </summary>