Parenthesization of two subchains
*A*_{1} .. *A*_{k} and
*A*_{k+1} .. *A*_{n}must each be optimal for
*A*_{1} .. *A*_{n} to be optimal.

Why? A lower cost solution to a subchain reduces the cost of
*A*_{1} .. *A*_{n}. The total cost is calculated as cost(
*A*_{1} .. *A*_{k}) +
cost(
*A*_{k+1} .. *A*_{n}) + cost of multiplying two resultant matrices together.
The last term is constant no matter what the subproblem solutions are.

We can show that if the subproblem does not have an optimal solution, a
better subproblem solution cost yields a better total cost.

Thus, as is the case with ALL Dynamic Programming solutions, an optimal solution to the problem consists of optimal solutions to subproblems.

This is called