mirror of
https://github.com/Z3Prover/z3
synced 2026-03-26 14:25:46 +00:00
Replace the stub factor_n_sqf_pp (TODO: invoke Dejan's procedure) with a working implementation using bivariate Hensel lifting: - Evaluate away extra variables to reduce to bivariate - Factor the univariate specialization - Lift univariate factors to bivariate via linear Hensel lifting in Zp[x] - Verify lifted factors multiply to original over Z[x,y] - For >2 variables, check bivariate factors divide the original polynomial Tests: (x0+x1)(x0+2x1)(x0+3x1) now correctly factors into 3 linear factors. All 89 unit tests pass in both release and debug builds. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
4 lines
329 B
Text
4 lines
329 B
Text
Polynomial manipulation package.
|
|
It contains support for univariate (upolynomial.*) and multivariate polynomials (polynomial.*).
|
|
Multivariate polynomial factorization uses evaluation and GCD recovery: evaluate away extra variables
|
|
to get a univariate polynomial, factor it, then recover multivariate factors via GCD computation.
|