Explicit solution of linear program: minimize $c^T x$ subject to $Ax = b$ This is the given question in a textbook I am following. I will paste the solution below which I do not understand:

I am a little hazy on linear algebra theory, so I don't fully understand how the vector c can be decomposed this way. In general can one take an arbitrary linear mapping / matrix A and decompose a vector via something like:
vector = (component in null space of A) + (component in image(?) of A) ? 
Also why would it be the matrix transpose times lambda in this case?
Finally, once the theoretical solution is given by the inner product of lambda and b, how does one find lambda? Is this what techniques like the "simplex method" do?
Thank you.
 A: Regarding the answer given by 'Batman', full rank does not imply trivial null space. Every m by n matrix with m <= n and with at least one subset of m independent columns is full rank. This may be taken as a definition of the term 'full rank' for such matrices; the definition for matrices with n <= m may be obtained by applying the above characterization to their transpose.
Regarding the questions of the original poster:
QUESTION 1 : "I am a little hazy on linear algebra theory, so I don't fully understand how the vector c can be decomposed this way. In general can one take an arbitrary linear mapping / matrix A and decompose a vector via something like:
vector = (component in null space of A) + (component in image(?) of A) ?"
ANSWER 1 : No. The summation above does not make sense since for an m by n matrix the null space of A is a subspace of R^n while the image of A is a subspace of R^m.
QUESTION 2 : "Also why would it be the matrix transpose times lambda in this case?"
ANSWER 2 : The matrix transpose times lambda is always orthogonal to any element in the null space of A, i.e. A*x = 0 implies transpose(x)*transpose(A)*lam = transpose(lam)*A*x = transpose(lam)*0 = 0. Furthermore, it can be shown that these subspaces are complementary so that for any m by n matrix A any vector x in R^n may be uniquely decomposed according to x =   transpose(A)*lam + y with y in the null space of A. Here is a constructive proof: let y = x - A^*A*x and let lam = transpose(A^)*x where A^ denotes any pseudo-inverse of A.
QUESTION 3: Finally, once the theoretical solution is given by the inner product of lambda and b, how does one find lambda? Is this what techniques like the "simplex method" do?
ANSWER 3: This question seems to indicate a misunderstanding of what the proof above is demonstrating, so allow me to clarify in three parts.
(1) In the proof above, the condition that the component of c in the null space of A is zero implies that lam is dual feasible so that after showing transpose(c)*x = transpose(lam)*b we may conclude that every primal feasible x obtains primal objective value equal to a dual objective value for some dual feasible point. Since any dual feasible point yields a lower bound on the infimum over all primal feasible objective values, we conclude that all primal feasible values obtain the same bounded objective value which must also be optimal.
(2) It must be understood that the hypotheses underlying the proof above represent a proper subset of the types of linear programs with existent primal and dual feasible points. Therefore the mathematical manipulations demonstrated in the proof cannot be closely related to the simplex algorithm.
(3) In the case of such linear programs as satisfy the hypotheses underlying the proof above, one may find a dual feasible lam simply by decomposing c as discussed above, a constructive algorithm for which is indicated in the proof I gave in the answer to the former question by specifically forming the Moore-Penrose pseudo-inverse, e.g. via singular value decomposition.
