User blog comment:Upquark11111/An Explanation of Loader's Number/@comment-11227630-20171210002438/@comment-26454151-20171210202658

There actually is a difference in the lambda rule, or Rule 4. In fact, Loader's implementation actually differs from the actual λPω. But the calculi of the lambda cube have the additional condition for the abstraction rule that $$\Gamma \vdash (\Pi x:A.B):s$$. The addition of this condition basically amounts to having to use Rule 5 whenever we want to use Rule 4.

If you look at the last step of the proof, you need to be able to show that $$\Gamma \vdash (\Pi x:\ast .B):s$$. This is impossible in λ→ since we would need $$\ast : s_1$$, but we are restricted to $$s_1 = \ast$$. Hence, the polymorphic definition of natural numbers that we would like to use is not possible in λ→. It is the polymorphic version of the Church encoding that allows Iter to exist.

Now, to address the difference between Loader's calculus and λPω, he actually leaves a comment in the lambda rule part of his code. He writes:

He appears to be aware of this difference between Loader's version and the actual λPω, and claims that it is conservative enough to preserve the nice properties of λPω.