I want to check if a given vector is inside a matrix's null space.
Here is what I have done:
#Define a matrix
A=Matrix([[1,-1,2,-1],[2,1,-2,-2],[-1,2,-4,1],[3,0,0,-3]],ring=QQ)
#Free variables to be used in the given vector
var('s t')
#The null space of the matrix A
ns=A.kernel()
s=2
t=1
#Create a vector
ans=s*vector([1,0,0,1])+t*vector([0,2,1,0])
#If ans is in the null space of A, then A*ans is the 0 vector
print A*ans
#If A*ans is the 0 vector, then the following should be true too
print ans in ns
I had expected the last print statement to be true since A*ans results in a zero vector, hence ans is in the null space of A.
Why isn't this the case?