Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce AbstractIdealCertificate #55

Open
tweisser opened this issue Jun 12, 2020 · 0 comments
Open

Introduce AbstractIdealCertificate #55

tweisser opened this issue Jun 12, 2020 · 0 comments

Comments

@tweisser
Copy link

A polynomial equality p == q over an ideal generated by polynomials h[1],...,h[k] can be expressed in different ways. Currently, a groebner basis of the ideal is computed and p - q is reduced with respect to this groebner basis. The remaining coefficients are equated to zero.
Alternatively, one can introduce auxiliary variables and directly write the representation in the ideal

deg = [maxdegree(p-q) - maxdegree(hi) for hi in h]
idx = findall(i -> i>=0, deg)
@variable model aux[i in idx] Poly(maxdegree_basis(BT, variables(p - q), deg[i])
@constraint model coefficients(p-q -sum(h[i]*aux[i] for i in idx), BT) .== 0

The choice of deg is not backed up theoretically, the degree of the multipliers might actually be higher. I have not thought about an example for this though.

In order to be able to use sparsity efficiently, one should probably not use maxdegree_basis but generate a more sophisticated basis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant