 (The proof that these two suffice to represent all functions is beyond the scope of this entry. For further discussion, see the entry on  combinatory logic.)  One can prove the theorem constructively: there is an algorithm that, given \(M\), produces the required \(F\). Church called this \(F\) ‘\(\lambda x[M]\)’ (Church,  1932).[3]  From this perspective, the \(\beta\)-rule can be justified: if ‘\(\lambda x[M]\)’ is to be a function \(F\) satisfying \(Fx = M\), then \(\lambda x[M]\)x should transform to \(M\). This is just a special case of the more general principle that for all \(N, (\lambda x[M])N\) should transform to \(M[x := N]\).