Pareto optimal means you cannot make one consumer better off without making another consumer worse off.
efficient means that you cannot increase consumption without decreasing the consumption of another good. In essence, it means that the resource constraint must be binding - that you are not wasting any goods.
This can be proved in a one good, one consumer economy. Although that does not make a lot of sense, the theory still holds for multiple good economies and illustrates the logic of how to do so.
Let's start off assuming that we have maximized our utility such that:
U = U(c*)
where utility is a function of consumption (c).
Now let's assume that the resource constraint is not binding - that the allocation is not efficient. This implies:
Y - c* > 0
This says the resource constraint (Y) is larger than our current consumption bundle (c*).
This implies that there exists a d * c > 0 (where d is the difference operator) such that:
Y - c* - dc = 0
Substituting this d * c into utility function we would get:
U = U(c* + d * c)
as long as U'(c) > 0 (we have not reached a satiation point)
U = U(c* + d * c) > U(c*)
Which implies that our original utility function U(c*) could not have been a pareto optimal allocation. This implies that a function can only be pareto optimal if the consumption allocation is efficient. Thus, if a consumption bundle is pareto optimal it must also be efficient.
You this could simple be shown with a two good model and two consumers where one consumer does not spend all of his income and you increase consumption of one good.