Interesting problem no will do.
Given a function f of n variables (IE: f(a1,a2,a3,a4,...,an)) find a function F on f that yields 0 for all values of any variable in f if f can be written as a linear combination of functions that each contain a subset of the variables in f.
That is, if f(a1,a2,a3,...an) can be written as g1(a1) + g2(a2) + ... + gn(an) OR g(a1, ... , ak) + h(a(k+1), ... , an) or any linear combination of functions that each don't contain every variable in f, then F(f) = 0 for all values of a1,a2,a3,..,an
An example.
if f(x,y,z) = x + y + z, then F(f(x,y,z)) = 0, as f(x,y,z) can be written as a(x) + b(y) + c(z)
if f(x,y,z) = x*y^2 + z(z-1) then F(f(x,y,z)) = 0, as f(x,y,z) can be written as a(x,y) + b(z)
if f(x,y) = (x + y)/(x*y) then F(f(x,y)) = 0 as f(x,y) can be written as 1/x + 1/y which is a(x) + b(y)
However, if f(x,y,z) = x*y*z then F(f(x,y,z)) != 0 for all values of x,y and z because you cannot write f(x,y,z) as a linear combination of functions!
One of my attempts at this was this.
F(f(a[0],..,a[n]) = diff(sum(diff(f,a[k]), k = 0..n), a[0],a[1],a[2],...a[n])
This function satisfies all the above conditions, but gives some FALSE positives.
Example. f(x,y,z) = x^2*y + z will yield zero because this is
diff(diff(f,x) + diff(f,y) + diff(f,z),x,y,z) = diff(2*x*y + x^2 + 1, x, y, z) = diff(2*y, y, z) = diff(2, z) = 0
This will work for any such function, however a false positive is
f(x,y,z) = x*y*z
as this is
diff(x*y + y*z + z*x,x,y,z) = diff(y+z,y,z) = diff(1, z) = 0
I wonder if somebody can come up with a function F that has NO false positives.