# chopzeros = # 19 [f.[r. # ifle2 (car1 r) 48 # (f (cdr1 r)) # r # ]] # I # ; # # dec_zero = inflist1 0 ; # dec_one = cons2 1 dec_zero ; # # dec_add = # y1 [f.[c.[a.[b. # [s. # cons2 # (ifle4 s 9 s (10 pred s)) # (f (ifle4 s 9 0 1) (cdr1 a) (cdr1 b)) # ] # (c succ (car1 a) succ (car1 b)) # ]]]] # ; # # dec_show = # 20 [f.[a. # o1 (f (cdr1 a) ) (cons1 ({addconst 48} (car1 a))) # ]] # 0 # ; # # bin_todec = # 54 [f.[m.[z.[a. # ifnz2 (car1 m) # ( # ifnz2 (car1 a) # (f (dec_add 0 m m) (dec_add 0 z m) (cdr1 a)) # (f (dec_add 0 m m) z (cdr1 a)) # ) # ( # cons2 (car1 z) (f (cdr1 m) (cdr1 z) a) # ) # ]]]] # [m.[z.[a. z ]]] # dec_one # dec_zero # ; # # bin_zero = inflist1 0 ; # bin_one = cons2 1 bin_zero ; # # bin_succ = # y1 [f.[a. # ifnz2 (car1 a) # (cons2 0 (f (cdr1 a))) # (cons2 1 (cdr1 a)) # ]] # ; # # bin_from = [n. n bin_succ bin_zero ]; # # bin_add = # y1 [f.[c.[a.[b. # [s. # cons2 # (ifeven1 s 0 1) # (f (ifle4 s 1 0 1) (cdr1 a) (cdr1 b)) # ] # (c succ (car1 a) succ (car1 b)) # ]]]] # ; # # bin_mul = # y1 [f.[a.[b. # [s. # ifnz2 (car1 b) # (cons2 (car1 a) (bin_add 0 (cdr1 a) s)) # (cons2 0 s) # ] # (f a (cdr1 b)) # ]]] # ; # # bin_pow = [a.[n. n (bin_mul a) bin_one ]]; # # bin_xor = # y1 [f.[a.[b. # cons2 # (ifeven1 ((car1 a) succ (car1 b)) 0 1) # (f (cdr1 a) (cdr1 b)) # ]]] # ; # # 20 # [f. # y1 # [g.[p.[a.[b.[c.[r. # ifeq2 (car1 r) 10 # ( # [z. # chopzeros $ # dec_show (bin_todec z) # (cons2 (car1 r) (f (cdr1 r))) # ] # ( # bin_xor a # (p (bin_pow b c) (bin_from c)) # ) # ) # $ # ifeq2 (car1 r) ?^ # ( # p # (g false (bin_xor a (bin_pow b c)) bin_zero) # (g true a (bin_from c)) # 0 (cdr1 r) # ) # ( # g p a b (48 pred (car1 r) succ (o1 10 c)) (cdr1 r) # ) # ]]]]]] # false # bin_zero # bin_zero # 0 # ] # I S(SSS)(SSI(SS0))(S`KSK)(S(S(S(S(S(S`K(SSI)(S`KS(S`KS(S`KK(S`SSKS(S`KK(S`KS(S `K`S`KS(S`K`S`K`S`KS(S`K`S`K`S`K`S`KS(S`K`S`K`S`K`S`K`S`KS(S`K`S`K`S`K`S`K`S `K`S(S(S(S(S(S(S(SI`KK)`K(SI`K0))`K(SS(SSSS(SS0))(S`KSK)(S`K`S(SI0)K)(S(SI`K `K`K`KK)0)))`KK)0)0)`K0)(S`SSKS(S`KK(S`KS(S`KK(S`KS(S`KK(S`KS(S`KK(S`KS(S`K` S`K`S`K(SS(SS(SS(SS(SSI)(SS0))))(S`KSK)(S`SSKS(S`K`S(S(S(S(SS`K`S`K`SI)`KK)` K`KK)`K(S(SSSSSSSSS)(SS0)(S`KSK)(S`K`SIK)`K0))(S`SSKSK`K(SI`K0)))0)I)(S`K`S` K`S(S`K(S(SSS)(SSI(SS0))(S`KSK)(S`SSKS(S`K`S`KS(S`K`S`KK(S`SSKSK`K(SI`K0)))) `K(S`SSKS(S`KK(S`KS(S`K`SI(S`KK(S`K(S(S(SSSSSSSSS)(SS0))S(S`KSK))(SI`KK))))) )`KK))0)(S(SI(SS0))(SSI(SS(SS0)))(S`KSK)(S`SSKS(S`K`S`KS(S`K`S`K`S`KS(S`K`S( S`KS(S`KK(S`KS(S`SI`KK))))(S`K`S`K`S`K`S`KK(S`SSKS(S`K`S`KS(S`K`S`K`S`KS(S`K `S`K`S`K`S(SI`KK)(S`K`S`K`S`K`S`KK(S`SSKS(S`K`S`KS(S`K`S`K`S`KS(S`K`S`K`S`KK (S`SSKS(S`K`S`KS(S`K`S`KK(S`SSKSK`K(S(SSI`S`S`K(S`SSKS(S`KK(S`KS(S`K`S`KS(S` K`S`K`S`K`S(S`KS(S`K`SI(S`KK(S(S(SI`K(S`K`SIK))K)(S`K(SSSS(SS0)(S`KSK)(S`K`S IK))(S`KK(SS(SSSS(SS0))(S`KSK)(S(S(SI`K(S`K`SI(S`KK(SI`K`S(S`KSK)))))`K`K0)0 ))))))))(S`K`S`K`S`K`S`KK(S`SSKS(S`K`S`KS(S`K`S`KK(S`K`S`KS(S`SSKS(S`KK(S`KS (S`SSKSK`K(S(S(SI`K(S`K`SIK))`K`K0)`K(SSSS(SS0)(S`KSK)(S`K`SIK)0)))))`K(S`KK (SI`K0))))))`K`K(S`KK(SI`K0))))))))`K(S`SSKS(S`K`S`KS(S`K`S`KK(S`SSKS(S`SSKS (S`KK(SI`K`S(S`KSK)))`K(SI`KK))`K`K`S(S`KSK))))`K`K(SI`KK)))I0)I))))`K(S`K`S (SSI`S`S`K(S`SSKS(S`KK(S`KS(S`K`S`KS(S`K`S`K`S`K`S(S`KS(S`K`SI(S`KK(S(S(SI`K (S`K`SIK))K)(S`K(SSSS(SS0)(S`KSK)(S`K`SIK))(S`KK(SS(SSSS(SS0))(S`KSK)(S(S(SI `K(S`K`SI(S`KK(SI`K`S(S`KSK)))))`K`K0)0))))))))(S`K`S`K`S`K`S`KK(S`SSKS(S`K` S`KS(S`K`S`KK(S`K`S`KS(S`SSKS(S`KK(S`KS(S`SSKSK`K(S(S(SI`K(S`K`SIK))`K`K0)`K (SSSS(SS0)(S`KSK)(S`K`SIK)0)))))`K(S`KK(SI`K0))))))`K`K(S`KK(SI`K0))))))))`K (S`SSKS(S`K`S`KS(S`K`S`KK(S`SSKS(S`SSKS(S`KK(SI`K`S(S`KSK)))`K(SI`KK))`K`K`S (S`KSK))))`K`K(SI`KK)))I0)K)))))`K`K`K(SI`K0))))))(S`SSKS(S`K`S`KS(S`K`S`K`S `KS(S`K`S`K`S`KK(S`SSKSK`K(S(SSI`S`S`K(S`SSKS(S`KK(S`KS(S`K`S`KS(S`K`S`K`S`K `S(S`KS(S`K`SI(S`KK(S(S(SI`K(S`K`SIK))K)(S`K(SSSS(SS0)(S`KSK)(S`K`SIK))(S`KK (SS(SSSS(SS0))(S`KSK)(S(S(SI`K(S`K`SI(S`KK(SI`K`S(S`KSK)))))`K`K0)0))))))))( S`K`S`K`S`K`S`KK(S`SSKS(S`K`S`KS(S`K`S`KK(S`K`S`KS(S`SSKS(S`KK(S`KS(S`SSKSK` K(S(S(SI`K(S`K`SIK))`K`K0)`K(SSSS(SS0)(S`KSK)(S`K`SIK)0)))))`K(S`KK(SI`K0))) )))`K`K(S`KK(SI`K0))))))))`K(S`SSKS(S`K`S`KS(S`K`S`KK(S`SSKS(S`SSKS(S`KK(SI` K`S(S`KSK)))`K(SI`KK))`K`K`S(S`KSK))))`K`K(SI`KK)))I0)I)))))`K`K`K(SI`K0)))) )))(S`K`S`K`S(S`KS(S`KK(S`KS(S`K`SI(S`SI`KK)))))(S`K`S`K`S`K`S`KK(S`SSKS(S`K `S`KS(S`K`S`KK(S`SSKSK`K(SI`K0))))`K`K(SI`K0)))))`KK(S(SI0)`K(SSI`S`K`S(SI`K 0)(S`S`KKI)))(SSI`S`K`S(SI`K0)(S`S`KKI))))(S`K`S`KK(S`K`S(S`KS(S`K`SI(S`SI`K K)))(S`K`S`KK(S`SSKSK`K(SI`K0)))))))))))))))`K(S`K`S`K`S`K`S`KK(S`K`S(S`KS(S `KK(S`KS(S`KK(SSI`S`S`K(S`K`S(S`KS(S`K`S`KS(S`K`S`K`SI(S`K`S`KK(S`SSKS(S`SSK S(S`SSKS(S`SSKS(S`SSKS(SS`S(SS`K(SISSKS))`KK)`K(SI`KK))`K`K(S(SI`K0)`KK))`K` KK)`K`K0)`K0)))))(S`K`S`K`S`KK(S`SSKS(S`K`S`KS(S`K`S`KK(S`SSKSK`K(SI`K0))))` K`K(SI`K0))))I)))))(S`KK(S`SSKS(S`K`S`KS(S`SSKS(S`KK(S`KSK))`K(S`SSKS(S`K`SI (S`KK(SSI`S`S`K(S`K`S(S`KS(S`SSKS(S`K`S`KS(S`K`S(S`KS(S`SI`KK))(S`KK(S`K`S`K K(S`SSKS(S`KK(S`KS(S`K`SI(S`SI`KK))))(S`K`S`KK(S`K(SSI`S`S`K(S`SSKS(S`KK(S`K S(S`K`S`KS(S`K`S`K`S`K`S(S`KS(S`K`SI(S`KK(S(S(S(SI`K(S(SI`K0)`KK))`KK)`K0)0) )))(S`K`S`K`S`K`S`KK(S`SSKS(S`K`S`KS(S`K`S`KK(S`K`S`KS(S`SSKS(S`KK(S`KS(S`SS KSK`K(S(S(SI`K(S`K`SIK))`K`K0)`K(SI`K0)))))`K(S`KK(SI`K0))))))`K`K(S`KK(SI`K 0))))))))`K(S`SSKS(S`K`S`KS(S`K`S`KK(S`SSKS(S`SSKS(S`KK(SI`K`S(S`KSK)))`K(SI `KK))`K`K`S(S`KSK))))`K`K(SI`KK)))I0)(SI`K0))))))))`K`K(S`K`S(SI`K0)K)))(S`S SKS(S`K`S`KS`S`KK)`K`K(SI`K0)))I)))`K`K(S(SI0)`K(SSI`S`K`S(SI`K0)(S`S`KKI))) )))`K`K(S(SI`K(SSI`S`S`K(S`SSKS(S`K`S(SI`KK)(S`K`S`KK(S`K`S`K`S(SI`K0)(S`K`S `KK(S`SSKSK`K(SI`K0))))))`K(S`K`S(SI0)(S`KK(SI`K0))))I))`K(SSI`S`K`S(SI`K0)( S`S`KKI)))))))))))))))`K(S`SSKS(S`K`S`KS(S`K`S`K`S`KS(S`K`S`K`S`K`S`KS(S`K`S `K`S`K`S`K`S`KS(S`K`S`K`S`K`S`K`S`K`S(S(S(S(S(S(S(SI`KK)`K(SI`K0))`K(SS(SS(S S(SS(S(SSS)(SSSS(SS0))))))(S`KSK)(S`K`S(SI0)K)(S(SI`K`K`K`KK)0)))`KK)0)0)`K0 )(S`SSKS(S`K`S`KS(S`K`S`K`S`KS(S`K`S`K`S`K`S`KS(S`K`S`K`S`K`S`K`S`KS(S`K`S`K `S`K`S`K`S`KK(S`SSKS(S`K`S`KS(S`K`S`K`S`KS(S`K`S`K`S`K`S`KS(S`SSKS(S`K`S`KS( S`K`S`K`S`KS(S`K`S`K`S`K`S`KS(S`K`S(S`KS(S`KK(S`KS(S`KK(S`KSK)))))(S`KK(S`SS KS(S`K`S`KS(S`K`S`K`S`KS(S`SSKS(S`KK(S`KS(S`KK(S`KS(S`KK(SI`K0))))))`K(S`SSK S(S`KK(S`KS(S`KK(SSI`S`S`K(S`K`S(S`KS(S`K`S`KS(S`K`S`K`SI(S`K`S`KK(S`SSKS(S` SSKS(S`SSKS(S`SSKS(S`SSKS(SS`S(SS`K(SISSKS))`KK)`K(SI`KK))`K`K(S(SI`K0)`KK)) `K`KK)`K`K0)`K0)))))(S`K`S`K`S`KK(S`SSKS(S`K`S`KS(S`K`S`KK(S`SSKSK`K(SI`K0)) ))`K`K(SI`K0))))I))))`K(S`SSKS(S`K`SI(S`KK(SSI`S`S`K(S`K`S(S`KS(S`SSKS(S`K`S `KS(S`K`S(S`KS(S`SI`KK))(S`KK(S`K`S`KK(S`SSKS(S`KK(S`KS(S`K`SI(S`SI`KK))))(S `K`S`KK(S`K(SSI`S`S`K(S`SSKS(S`KK(S`KS(S`K`S`KS(S`K`S`K`S`K`S(S`KS(S`K`SI(S` KK(S(S(S(SI`K(S(SI`K0)`KK))`KK)`K0)0))))(S`K`S`K`S`K`S`KK(S`SSKS(S`K`S`KS(S` K`S`KK(S`K`S`KS(S`SSKS(S`KK(S`KS(S`SSKSK`K(S(S(SI`K(S`K`SIK))`K`K0)`K(SI`K0) ))))`K(S`KK(SI`K0))))))`K`K(S`KK(SI`K0))))))))`K(S`SSKS(S`K`S`KS(S`K`S`KK(S` SSKS(S`SSKS(S`KK(SI`K`S(S`KSK)))`K(SI`KK))`K`K`S(S`KSK))))`K`K(SI`KK)))I0)(S I`K0))))))))`K`K(S`K`S(SI`K0)K)))(S`SSKS(S`K`S`KS`S`KK)`K`K(SI`K0)))I)))`K`K (S(SI0)`K(SSI`S`K`S(SI`K0)(S`S`KKI))))))))`K`K`K`K(SSI`S`K`S(SI`K0)(S`S`KKI) )))))))(S`KK(S`K`S`KK(S`SSKS(S`K`S`KS(S`K`S`KK(SI`KK)))`K`K(S(SI`K(SSI`S`S`K (S`SSKS(S`K`S(SI`KK)(S`K`S`KK(S`K`S`K`S(SI`K0)(S`K`S`KK(S`SSKSK`K(SI`K0))))) )`K(S`K`S(SI0)(S`KK(SI`K0))))I))`K(SSI`S`K`S(SI`K0)(S`S`KKI))))))))))`K`K`K` K`K0))))))`K`K`K`K`K(SI`K0)))))))(S`SSKS(S`K`S`KS(S`K`S`K`S`KS(S`K`S`K`S`K`S `KS(S`K`S`K`S`K`S`K`S`KS(S`SSKS(S`K`S`KS(S`K`S`K`S`KS(S`K`S`K`S`K`S`KS(S`K`S `K`S`K`S`KK(S`K`S`K`S`K`S`KS`S`K`S`K`S`KK)))))`K`K`K`K(S`K`S(S(S`K(S(SSSSSSS SS)(SS0)(S`KSK)(S(S(SI`K(S`K`SI(S`KK(SI`K`S(S`KSK)))))`K`K0)0))(SI`KK))`K`S( S`KSK))(S`KK`S`K(SS(SSSS(SS0))(S`KSK)))))))))`K`K`K`K`K(SI`K0))))))))0)`K0)` K(SSI`S`K`S(SI`K0)(S`S`KKI)))`K(SSI`S`K`S(SI`K0)(S`S`KKI)))`K0)I