Có, nhưng bạn phải xem xét các tổ hợp đánh máy. Nghĩa là, bạn cần cung cấp cho và K
các lược đồ loại sau:
K : A → B → A S : ( A → B → C ) → ( A → B ) → ( A → C )
trong đó A , B và C là các biến meta có thể được khởi tạo cho bất kỳ loại cụ thể nào tại mỗi lần sử dụng.SK
KS::A → B → A( A → B → C) → ( A → B ) → ( A → C)
A , BC
Sau đó, bạn muốn thêm loại của số tự nhiên vào ngôn ngữ của loại và thêm các tổ hợp sau:
z : N s u c c : N → N i t e r : N → ( N → N ) → N → NN
zsucciter:::NN→NN→(N→N)→N→N
Các quy tắc bình đẳng cho các bổ sung là:
iterifziterif(succe)==if(iterife)
iter:A→(A→A)→N→A
iter
iter
pred′pred==λk.iter(z,z)(λ(n,n′).(succn,n))kλk.snd(pred′k)
N≃N×N