Hello B.P.,
I tried to implement the procedure that you described above.
First I define the matrix and the vectors using Array
amat = Array[Subscript[a, ##] &, {3, 3}];
xvec = Array[Subscript[x, #] &, 3];
bvec = Array[Subscript[b, #] &, 3];
Now the equation is set up as you referenced it at the very top.
(eq1 = amat. xvec == bvec) // TraditionalForm
The equation in matrix form can be broken down into a list of equations as you stated it
(eq2 = Thread[eq1]) // TableForm // TraditionalForm
Next is to solve for x3 to x1 sequentially by picking on of the equations, repectively.
sol3 = Flatten[Solve[Take[eq2, {3}], Subscript[x, 3]]]
sol2 = Flatten[ Solve[Take[eq2, {2}] /. sol3, Subscript[x, 2]]]
sol1 = Simplify[
Flatten[ Solve[Take[eq2, {1}] /. sol3 /. sol2, Subscript[x, 1]]]]
If I understood correctly this should be what you asked for.
Using FoldList, the sequential solving steps can be carried out in one command using the function f1 (but this is a bit tricky)
f1[ rule_, {eq_, var_}] := Simplify[Flatten[ Solve[ eq /. rule, var]]]
Drop[FoldList[ f1[#1, #2] &, {}, {eq2, xvec}\[Transpose]], 1]
Regards, Michael