# How to check if 0 polynomial lies in span of some polynomials?

I have lot of polynomials like this

f1[a1_,x1_] := (a1 x1 + 1 - x1)

f2[a2_,x2_] := (a2 x2 + 1 - x2)

f3[a1_,x1_,a2_,x2_] := (a1 x1 + 1 - x1)*(a2 x2 + 1 - x2)

f4[a1_,x1_,a2_,x2_] := (a1 x1 + 1 - x1)*(a2 x2 + 1 - x2)*x2

f5[a1_,x1_,a2_,x2_] := (a1 x1 + 1 - x1)*(a2 x2 + 1 - x2)*(a1 x1 + 1 - x1)

f6[a1_,x1_,a2_,x2_,a3_,x3_] := (a1 x1 + 1 - x1)*(a2 x2 + 1 - x2)*(a3 x3 + 1 -x3)

and so on...

I want to know what integer linear combinations of these polynomials would result in a 0 polynomial. That is, I want to the set of all solutions for

c1 f1 + c2 f2 + c3 f3 + c4 f4 + c5 f5 + c6 f6 = 0

When I enter

Solve[c1 f1[a1_,x1_] + c2 f2[a2_,x2_] + c3 f3[a1_,x1_,a2_,x2_] + c4 f4[a1_,x1_,a2_,x2_] + c5 f5[a1_,x1_,a2_,x2_] + c6 f6[a1_,x1_,a2_,x2_,a3_,x3_] == 0, {c1,c2,c3,c4,c5,c6}]

mathematica just expresses one variable in terms of all others. That's not what I want. I want all non-trivial integer solutions for c1, c2, c3, c4, c5, c6 (some of them could be zero) such that the above equation is satisfied for all values of x1,x2,x3,a1,a2,a3.

I could try to expand my polynomials and express it as a set of linear equations Mc=0, where the matrix M represents the coefficients of the polynomials. But unfortunately, when I expand my polynomials, they have exponential number of monomials, and I could not use this method even when problem size becomes bigger.

Are there better ways to solve my problem?

• Sep 29, 2019 at 16:06
• To start with, Blank is used on the LHS in the definition of a function, not when calling the function. Sep 29, 2019 at 16:08
• FindInstance? Sep 29, 2019 at 16:22
• You could substitute random integers for your variables. Sep 30, 2019 at 5:43