I agree that this is a bug, and the function solve()
is full of bugs. The symbolic ring lacks semantics, here we do not know where do x
and y
live (there exists an assumption system, but it does not work correctly). I would advise to avoid the symbolic ring as much as possible, in your case, perhaps the right place is to consider the equation as a linear one over, say, the rationals:
sage: Proj = Matrix(QQ, [0, 1]) ; Proj
[0 1]
sage: Proj.right_kernel()
Vector space of degree 2 and dimension 1 over Rational Field
Basis matrix:
[1 0]
And you can check that your last equation is equivalent to your first one:
sage: ProjTwice = Matrix(QQ, [[0, 1],[0,1]]) ; ProjTwice
[0 1]
[0 1]
sage: ProjTwice.right_kernel()
Vector space of degree 2 and dimension 1 over Rational Field
Basis matrix:
[1 0]
sage: Proj.right_kernel() == ProjTwice.right_kernel()
True