if cond truepart elsepart = (cond truepart elsepart) fact x = (facta x 1) facta x a = (if (eq x 0) a (facta (sub x 1) (mult a x))) not x = (x false true) and x y = (x y false) ident x = x two = 2 op which = (if (eq which 1) add sub) fib n = (if (gt 2 n) 1 (add (fib (sub n 1)) (fib (sub n 2)))) fibx n = (fiba n 1 1) fiba n a b = (if (gt 2 n) b (fiba (sub n 1) b (add a b))) f x y = (x true y) factb a p = (((gt a 1) factb false) (sub a 1) (mult a p)) factc a = (factb a 1) fa g x = (g (fb g x) (fb g x)) fb g x = (g (fc g x) (fc g x)) fc g x = (g (fd g x) (fd g x)) fd g x = (g (fe g x) (fe g x)) fe g x = (g (ff g x) (ff g x)) ff g x = (g (fg g x) (fg g x)) fg g x = (g (fh g x) (fh g x)) fh g x = (g (fi g x) (fi g x)) fi g x = (g (fj g x) (fj g x)) fj g x = (g x x) conc a b = (concx add mult a b) concx f g a b = (f (g a 10) b) tri a b c = true gx i g x = ((eq i 0) x (((eq i 0) tri gx) (sub i 1) g (g x))) addi x = (add 1 x) mapx f zero aa ab ac ad ae af ag ah ai aj = (conc (f aa) (conc (f ab) (conc (f ac) (conc (f ad) (conc (f ae) (conc (f af) (conc (f ag) (conc (f ah) (conc (f ai) (conc (f aj) zero)))))))))) u a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as = (a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as (add 1 as)) v a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as = as (gx 10 addi 5) (u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u v 1) (mapx addi 0 1 2 3 4 5 6 7 8 9 10) (fj rem 3) (fj true (div -9 2)) (fi true false) (fh false true) (fg true true) (ff add 1) (fe mult 1) (fd add 1) (fa add 1) (conc 1 (conc 2 (conc 3 (conc 4 (conc 5 (conc 6 (conc 7 (conc 8 (conc 9 0))))))))) ((f f false) (add 1 2) (sub 1 2)) (true (add 1 2) (mult 1 2)) 5 true (and (gt 3 5) (eq (two) ((op 1) 1 1))) (false (sub 1 2) (div 1 2)) (fact 3) ((eq (true 1 2) (false 2 1)) (add 1 2) (sub 1 2)) (factc 8) (add (add (add (add (fib 100) (fib 100)) (add (fib 100) (fib 100))) (add (add (fib 100) (fib 100)) (add (fib 100) (fib 100)))) (add (add (add (fib 100) (fib 100)) (add (fib 100) (fib 100))) (add (add (fib 100) (fib 100)) (add (fib 100) (fib 100))))) (add (add (add (add (fibx 100) (fibx 100)) (add (fibx 100) (fibx 100))) (add (add (fibx 100) (fibx 100)) (add (fibx 100) (fibx 100)))) (add (add (add (fibx 100) (fibx 100)) (add (fibx 100) (fibx 100))) (add (add (fibx 100) (fibx 100)) (add 100 100)))) (add (add (add (add (add 1 3) (add 1 1)) (add (add 1 1) (add 1 1))) (add (add (add 1 1) (add 1 1)) (add (add 1 1) (add 1 1)))) (add (add (add (add 1 1) (add 1 1)) (add (add 1 1) (add 1 1))) (add (add (add 1 1) (add 1 1)) (add (add 1 1) (add 1 1))))) (true (true (true (true (add 1 1) (add 1 1)) (true (add 1 1) (add 1 1))) (true (true (add 1 1) (add 1 1)) (true (add 1 1) (add 1 1)))) (true (true (true (add 1 1) (add 1 1)) (true (add 1 1) (add 1 1))) (true (true (add 1 1) (add 1 1)) (true add add))))