For assuring stability and feasibility of linear MPC, terminal cost and terminal constraints are used. While proving, we take feasible input sequence and shift it forward at each step and this way prove feasibility. However for proving stability we need Lyapunov function and cost function is used for this purpose at each step. The problem, for me, is, assuming the same input sequence for feasibility is ok, but for stability we also need to consider that we can end up with different input sequence (optimal solution) at each next step. Doesn't it make the cost function irrelevant as a Lyapunov function?
The idea in all these proofs is that you can show that you easily can create a feasible solution based on the shifted one (by appending one new control term at the tail by some strategy), and that you can show that the cost function with this control sequence is smaller than the previous cost (this is the hard part). You trivially know that the optimal cost will be at least as good, and thus causing at least as much decay, and by that you have your Lyapunov function.