kill(all);

option 1: "globalsolve"

linsolve( [ x+y=1 , x-2*y=0 ] ,[x,y] ) , globalsolve=true;

clear the x, y assignments, thus impeding the x->2/3 and y->1/3 substitution

kill(x,y)$

option 2: explicit assignment based on the hypotheses returned by linsolve

linsolve( [ x+y=1 , x-2*y=0 ] ,[x,y] )$
[x,y] : ev([x,y],%);

nonlinear system of equations example

kill(x,y);

sols: solve( [ x^2+y=1 , x-2*y=0 ] ,[x,y] );

the solve function returns a list of solutions (2 for a second order equation)
each of the solution is a list of identities in the form
unknown = value

[x,y] : ev([x,y],sols[2]);

x; y;