// https://en.wikipedia.org/wiki/Ackermann_function // Test to see how FunctionSpecializer deals with functions that are too recursive / resource intensive. // Unlike the test ackermann_function.yul, this one implements it using `if` nad leave { // 5 sstore(0, A(2, 1)) // 7 sstore(1, A(2, 2)) // Too many unrolling needed. In arbitrary precision, the value is 2**65536 - 3. sstore(2, A(4, 2)) function A(m, n) -> ret { if eq(m, 0) { ret := add(n, 1) leave } if eq(n, 0) { ret := A(sub(m, 1), 1) leave } ret := A(sub(m, 1), A(m, sub(n, 1))) } } // ---- // step: fullSuite // // { // { // sstore(0, A_330(A_329())) // sstore(1, A_330(A_979(A_978()))) // sstore(2, A_334(A_981(A_980()))) // } // function A_985() -> ret // { // if iszero(ret) // { // ret := 2 // leave // } // ret := A_2034(A_2033()) // } // function A_2046() -> ret // { // if iszero(ret) // { // ret := 2 // leave // } // ret := A_4020(A_4019()) // } // function A_4029() -> ret // { // if iszero(ret) // { // ret := 2 // leave // } // ret := A_7449(A_7448()) // } // function A_7476() -> ret // { // if iszero(ret) // { // ret := 2 // leave // } // ret := A_11900(A_11899()) // } // function A_11923() -> ret // { // if iszero(ret) // { // ret := 2 // leave // } // ret := A_17382(A_17381()) // } // function A_17431() -> ret // { // if iszero(ret) // { // ret := 2 // leave // } // ret := A_24015(A_24014()) // } // function A_24074() -> ret // { // if iszero(ret) // { // ret := 2 // leave // } // ret := A_31962(A_31961()) // } // function A_32021() -> ret // { // if iszero(ret) // { // ret := 2 // leave // } // ret := A_41359(A_41358()) // } // function A_41451() -> ret // { // if iszero(ret) // { // ret := 2 // leave // } // ret := A_52312(A_52311()) // } // function A_52357() -> ret // { // let m := not(3) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52360() -> ret // { // let m := not(2) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52363() -> ret // { // let m := not(1) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52366() -> ret // { // let m := not(0) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, m), A_341(m)) // } // function A_52393() -> ret // { // let m := not(4) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52398() -> ret // { // let m := not(4) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52399() -> ret // { // let m := not(3) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52400() -> ret // { // let m := not(5) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52409() -> ret // { // let m := not(3) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52410() -> ret // { // let m := not(4) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52411() -> ret // { // if iszero(ret) // { // ret := 2 // leave // } // ret := A(add(0, not(0)), A_341(0)) // } // function A_52412() -> ret // { // let m := not(2) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52413() -> ret // { // let m := not(5) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52414() -> ret // { // let m := not(6) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52429() -> ret // { // let m := not(2) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52430() -> ret // { // let m := not(4) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52431() -> ret // { // let m := not(3) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52432() -> ret // { // let m := not(1) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52433() -> ret // { // if iszero(1) // { // ret := 2 // leave // } // ret := A(add(1, not(0)), A_341(1)) // } // function A_52434() -> ret // { // let m := not(5) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52435() -> ret // { // let m := not(6) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52436() -> ret // { // let m := not(7) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52437() -> ret // { // if iszero(ret) // { // ret := 2 // leave // } // ret := A(add(0, not(0)), A_341(0)) // } // function A_52458() -> ret // { // let m := not(1) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52463() -> ret // { // if iszero(ret) // { // ret := 2 // leave // } // ret := A(add(0, not(0)), A_341(0)) // } // function A_52466() -> ret // { // let m := not(4) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52469() -> ret // { // let m := not(3) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52472() -> ret // { // let m := not(2) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52482() -> ret // { // if iszero(2) // { // ret := 2 // leave // } // ret := A(add(2, not(0)), A_341(2)) // } // function A_52485() -> ret // { // let m := not(5) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52494() -> ret // { // let m := not(6) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52503() -> ret // { // let m := not(0) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, m), A_341(m)) // } // function A_52512() -> ret // { // let m := not(7) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52536() -> ret // { // let m := not(8) // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_52575() -> ret // { // if iszero(1) // { // ret := 2 // leave // } // ret := A(add(1, not(0)), A_341(1)) // } // function A_72(m) -> ret // { // if iszero(m) // { // ret := 2 // leave // } // ret := A(add(m, not(0)), A_341(m)) // } // function A_329() -> ret // { // if iszero(ret) // { // ret := A_2038(A_4029()) // leave // } // ret := A_979(A_2040(A_4031(A_7465(A_11922(A_17410(A_24045(A_31994(A_41405(A_52354(A_52353())))))))))) // } // function A_330(n) -> ret // { // if iszero(n) // { // ret := A_985() // leave // } // ret := A_987(A_979(add(n, not(0)))) // } // function A_334(n) -> ret // { // if iszero(n) // { // ret := A_2040(A_7467(A_11923())) // leave // } // ret := A_997(A_981(add(n, not(0)))) // } // function A_2033() -> ret // { // if iszero(ret) // { // ret := add(ret, 1) // leave // } // ret := A_7469(A_17412(A_31996(A_52356(A_52355())))) // } // function A_4019() -> ret // { // if iszero(ret) // { // ret := add(ret, 1) // leave // } // ret := A_11926(A_24048(A_41408(A_52357()))) // } // function A_7448() -> ret // { // if iszero(ret) // { // ret := add(ret, 1) // leave // } // ret := A_17415(A_31999(A_52359(A_52358()))) // } // function A_11899() -> ret // { // if iszero(ret) // { // ret := add(ret, 1) // leave // } // ret := A_24051(A_41411(A_52360())) // } // function A_17381() -> ret // { // if iszero(ret) // { // ret := add(ret, 1) // leave // } // ret := A_32002(A_52362(A_52361())) // } // function A_24014() -> ret // { // if iszero(ret) // { // ret := add(ret, 1) // leave // } // ret := A_41414(A_52363()) // } // function A_31961() -> ret // { // if iszero(ret) // { // ret := add(ret, 1) // leave // } // ret := A_52365(A_52364()) // } // function A_41358() -> ret // { // if iszero(ret) // { // ret := add(ret, 1) // leave // } // ret := A_52366() // } // function A_52311() -> ret // { // if iszero(ret) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(0, not(0))) // } // function A_52355() -> ret // { // let m := not(3) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52358() -> ret // { // let m := not(2) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52361() -> ret // { // let m := not(1) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52364() -> ret // { // let m := not(0) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, m)) // } // function A_52394() -> ret // { // let m := not(4) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52396() -> ret // { // let m := not(3) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52401() -> ret // { // let m := not(3) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52403() -> ret // { // let m := not(2) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52405() -> ret // { // let m := not(4) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52407() -> ret // { // let m := not(5) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52415() -> ret // { // let m := not(2) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52417() -> ret // { // let m := not(4) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52419() -> ret // { // let m := not(3) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52421() -> ret // { // if iszero(1) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(1, not(0))) // } // function A_52423() -> ret // { // let m := not(5) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52425() -> ret // { // let m := not(1) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52427() -> ret // { // let m := not(6) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52438() -> ret // { // let m := not(1) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52440() -> ret // { // let m := not(4) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52442() -> ret // { // let m := not(3) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52444() -> ret // { // let m := not(2) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52446() -> ret // { // if iszero(2) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(2, not(0))) // } // function A_52448() -> ret // { // let m := not(5) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52450() -> ret // { // let m := not(0) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, m)) // } // function A_52452() -> ret // { // let m := not(6) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52454() -> ret // { // let m := not(7) // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_52456() -> ret // { // if iszero(1) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(1, not(0))) // } // function A_341(m) -> ret // { // if iszero(m) // { // ret := add(ret, 1) // leave // } // ret := A_72(add(m, not(0))) // } // function A_978() -> ret // { // if iszero(ret) // { // ret := A_4037(A_7476()) // leave // } // ret := A_2040(A_4031(A_7465(A_11922(A_17410(A_24045(A_31994(A_41405(A_52390(A_52389()))))))))) // } // function A_979(n) -> ret // { // if iszero(n) // { // ret := A_2046() // leave // } // ret := A_2038(A_2040(add(n, not(0)))) // } // function A_980() -> ret // { // if iszero(ret) // { // ret := A_4041(A_11922(A_24067(A_32021()))) // leave // } // ret := A_2051(A_4043(A_7481(A_11939(A_17430(A_24069(A_32023(A_41437(A_52392(A_52391()))))))))) // } // function A_981(n) -> ret // { // if iszero(n) // { // ret := A_4031(A_11941(A_17431())) // leave // } // ret := A_2054(A_2051(add(n, not(0)))) // } // function A_987(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_4047(A_11943(A_24071(A_41439(A_52393())))) // leave // } // ret := A_2034(A_2038(add(n, not(0)))) // } // function A_997(n) -> ret // { // if iszero(n) // { // ret := A_4037(A_7476()) // leave // } // ret := A_2040(A_2054(add(n, not(0)))) // } // function A_2034(n) -> ret // { // if iszero(n) // { // ret := A_7486(A_17434(A_32026(A_52395(A_52394())))) // leave // } // ret := A_4047(A_4020(add(n, not(0)))) // } // function A_2038(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_7469(A_17412(A_31996(A_52397(A_52396())))) // leave // } // ret := A_4020(A_4037(add(n, not(0)))) // } // function A_2040(n) -> ret // { // if iszero(n) // { // ret := A_4029() // leave // } // ret := A_4037(A_4031(add(n, not(0)))) // } // function A_2051(n) -> ret // { // if iszero(n) // { // ret := A_7465(A_17438(A_24074())) // leave // } // ret := A_4041(A_4043(add(n, not(0)))) // } // function A_2054(n) -> ret // { // if iszero(n) // { // ret := A_7467(A_11923()) // leave // } // ret := A_4031(A_4041(add(n, not(0)))) // } // function A_4020(n) -> ret // { // if iszero(n) // { // ret := A_11943(A_24071(A_41439(A_52398()))) // leave // } // ret := A_7469(A_7449(add(n, not(0)))) // } // function A_4031(n) -> ret // { // if iszero(n) // { // ret := A_7476() // leave // } // ret := A_7467(A_7465(add(n, not(0)))) // } // function A_4037(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_11926(A_24048(A_41408(A_52399()))) // leave // } // ret := A_7449(A_7467(add(n, not(0)))) // } // function A_4041(n) -> ret // { // if iszero(n) // { // ret := A_11941(A_17431()) // leave // } // ret := A_7465(A_7510(add(n, not(0)))) // } // function A_4043(n) -> ret // { // if iszero(n) // { // ret := A_11922(A_24067(A_32021())) // leave // } // ret := A_7510(A_7481(add(n, not(0)))) // } // function A_4047(n) -> ret // { // if iszero(n) // { // ret := A_11957(A_24082(A_41447(A_52400()))) // leave // } // ret := A_7486(A_7469(add(n, not(0)))) // } // function A_7449(n) -> ret // { // if iszero(n) // { // ret := A_17412(A_31996(A_52402(A_52401()))) // leave // } // ret := A_11926(A_11900(add(n, not(0)))) // } // function A_7465(n) -> ret // { // if iszero(n) // { // ret := A_11923() // leave // } // ret := A_11941(A_11922(add(n, not(0)))) // } // function A_7467(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_17415(A_31999(A_52404(A_52403()))) // leave // } // ret := A_11900(A_11941(add(n, not(0)))) // } // function A_7469(n) -> ret // { // if iszero(n) // { // ret := A_17434(A_32026(A_52406(A_52405()))) // leave // } // ret := A_11943(A_11926(add(n, not(0)))) // } // function A_7481(n) -> ret // { // if iszero(n) // { // ret := A_17410(A_32040(A_41451())) // leave // } // ret := A_11981(A_11939(add(n, not(0)))) // } // function A_7486(n) -> ret // { // if iszero(n) // { // ret := A_17453(A_32042(A_52408(A_52407()))) // leave // } // ret := A_11957(A_11943(add(n, not(0)))) // } // function A_7510(n) -> ret // { // if iszero(n) // { // ret := A_17438(A_24074()) // leave // } // ret := A_11922(A_11981(add(n, not(0)))) // } // function A_11900(n) -> ret // { // if iszero(n) // { // ret := A_24048(A_41408(A_52409())) // leave // } // ret := A_17415(A_17382(add(n, not(0)))) // } // function A_11922(n) -> ret // { // if iszero(n) // { // ret := A_17431() // leave // } // ret := A_17438(A_17410(add(n, not(0)))) // } // function A_11926(n) -> ret // { // if iszero(n) // { // ret := A_24071(A_41439(A_52410())) // leave // } // ret := A_17412(A_17415(add(n, not(0)))) // } // function A_11939(n) -> ret // { // if iszero(n) // { // ret := A_24045(A_41458(A_52411())) // leave // } // ret := A_17479(A_17430(add(n, not(0)))) // } // function A_11941(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_24051(A_41411(A_52412())) // leave // } // ret := A_17382(A_17438(add(n, not(0)))) // } // function A_11943(n) -> ret // { // if iszero(n) // { // ret := A_24082(A_41447(A_52413())) // leave // } // ret := A_17434(A_17412(add(n, not(0)))) // } // function A_11957(n) -> ret // { // if iszero(n) // { // ret := A_24100(A_41464(A_52414())) // leave // } // ret := A_17453(A_17434(add(n, not(0)))) // } // function A_11981(n) -> ret // { // if iszero(n) // { // ret := A_24067(A_32021()) // leave // } // ret := A_17410(A_17479(add(n, not(0)))) // } // function A_17382(n) -> ret // { // if iszero(n) // { // ret := A_31999(A_52416(A_52415())) // leave // } // ret := A_24051(A_24015(add(n, not(0)))) // } // function A_17410(n) -> ret // { // if iszero(n) // { // ret := A_24074() // leave // } // ret := A_24067(A_24045(add(n, not(0)))) // } // function A_17412(n) -> ret // { // if iszero(n) // { // ret := A_32026(A_52418(A_52417())) // leave // } // ret := A_24071(A_24048(add(n, not(0)))) // } // function A_17415(n) -> ret // { // if iszero(n) // { // ret := A_31996(A_52420(A_52419())) // leave // } // ret := A_24048(A_24051(add(n, not(0)))) // } // function A_17430(n) -> ret // { // if iszero(n) // { // ret := A_31994(A_52422(A_52421())) // leave // } // ret := A_24126(A_24069(add(n, not(0)))) // } // function A_17434(n) -> ret // { // if iszero(n) // { // ret := A_32042(A_52424(A_52423())) // leave // } // ret := A_24082(A_24071(add(n, not(0)))) // } // function A_17438(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_32002(A_52426(A_52425())) // leave // } // ret := A_24015(A_24067(add(n, not(0)))) // } // function A_17453(n) -> ret // { // if iszero(n) // { // ret := A_32063(A_52428(A_52427())) // leave // } // ret := A_24100(A_24082(add(n, not(0)))) // } // function A_17479(n) -> ret // { // if iszero(n) // { // ret := A_32040(A_41451()) // leave // } // ret := A_24045(A_24126(add(n, not(0)))) // } // function A_24015(n) -> ret // { // if iszero(n) // { // ret := A_41411(A_52429()) // leave // } // ret := A_32002(A_31962(add(n, not(0)))) // } // function A_24045(n) -> ret // { // if iszero(n) // { // ret := A_32021() // leave // } // ret := A_32040(A_31994(add(n, not(0)))) // } // function A_24048(n) -> ret // { // if iszero(n) // { // ret := A_41439(A_52430()) // leave // } // ret := A_31996(A_31999(add(n, not(0)))) // } // function A_24051(n) -> ret // { // if iszero(n) // { // ret := A_41408(A_52431()) // leave // } // ret := A_31999(A_32002(add(n, not(0)))) // } // function A_24067(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_41414(A_52432()) // leave // } // ret := A_31962(A_32040(add(n, not(0)))) // } // function A_24069(n) -> ret // { // if iszero(n) // { // ret := A_41405(A_52433()) // leave // } // ret := A_32092(A_32023(add(n, not(0)))) // } // function A_24071(n) -> ret // { // if iszero(n) // { // ret := A_41447(A_52434()) // leave // } // ret := A_32026(A_31996(add(n, not(0)))) // } // function A_24082(n) -> ret // { // if iszero(n) // { // ret := A_41464(A_52435()) // leave // } // ret := A_32042(A_32026(add(n, not(0)))) // } // function A_24100(n) -> ret // { // if iszero(n) // { // ret := A_41488(A_52436()) // leave // } // ret := A_32063(A_32042(add(n, not(0)))) // } // function A_24126(n) -> ret // { // if iszero(n) // { // ret := A_41458(A_52437()) // leave // } // ret := A_31994(A_32092(add(n, not(0)))) // } // function A_31962(n) -> ret // { // if iszero(n) // { // ret := A_52439(A_52438()) // leave // } // ret := A_41414(A_41359(add(n, not(0)))) // } // function A_31994(n) -> ret // { // if iszero(n) // { // ret := A_41451() // leave // } // ret := A_41458(A_41405(add(n, not(0)))) // } // function A_31996(n) -> ret // { // if iszero(n) // { // ret := A_52441(A_52440()) // leave // } // ret := A_41439(A_41408(add(n, not(0)))) // } // function A_31999(n) -> ret // { // if iszero(n) // { // ret := A_52443(A_52442()) // leave // } // ret := A_41408(A_41411(add(n, not(0)))) // } // function A_32002(n) -> ret // { // if iszero(n) // { // ret := A_52445(A_52444()) // leave // } // ret := A_41411(A_41414(add(n, not(0)))) // } // function A_32023(n) -> ret // { // if iszero(n) // { // ret := A_52447(A_52446()) // leave // } // ret := A_41517(A_41437(add(n, not(0)))) // } // function A_32026(n) -> ret // { // if iszero(n) // { // ret := A_52449(A_52448()) // leave // } // ret := A_41447(A_41439(add(n, not(0)))) // } // function A_32040(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_52451(A_52450()) // leave // } // ret := A_41359(A_41458(add(n, not(0)))) // } // function A_32042(n) -> ret // { // if iszero(n) // { // ret := A_52453(A_52452()) // leave // } // ret := A_41464(A_41447(add(n, not(0)))) // } // function A_32063(n) -> ret // { // if iszero(n) // { // ret := A_52455(A_52454()) // leave // } // ret := A_41488(A_41464(add(n, not(0)))) // } // function A_32092(n) -> ret // { // if iszero(n) // { // ret := A_52457(A_52456()) // leave // } // ret := A_41405(A_41517(add(n, not(0)))) // } // function A_41359(n) -> ret // { // if iszero(n) // { // ret := A_52458() // leave // } // ret := A_52460(A_52459(add(n, not(0)))) // } // function A_41405(n) -> ret // { // if iszero(n) // { // ret := A_52463() // leave // } // ret := A_52465(A_52464(add(n, not(0)))) // } // function A_41408(n) -> ret // { // if iszero(n) // { // ret := A_52466() // leave // } // ret := A_52468(A_52467(add(n, not(0)))) // } // function A_41411(n) -> ret // { // if iszero(n) // { // ret := A_52469() // leave // } // ret := A_52471(A_52470(add(n, not(0)))) // } // function A_41414(n) -> ret // { // if iszero(n) // { // ret := A_52472() // leave // } // ret := A_52474(A_52473(add(n, not(0)))) // } // function A_41437(n) -> ret // { // if iszero(n) // { // ret := A_52482() // leave // } // ret := A_52484(A_52483(add(n, not(0)))) // } // function A_41439(n) -> ret // { // if iszero(n) // { // ret := A_52485() // leave // } // ret := A_52487(A_52486(add(n, not(0)))) // } // function A_41447(n) -> ret // { // if iszero(n) // { // ret := A_52494() // leave // } // ret := A_52496(A_52495(add(n, not(0)))) // } // function A_41458(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_52503() // leave // } // ret := A_52505(A_52504(add(n, not(0)))) // } // function A_41464(n) -> ret // { // if iszero(n) // { // ret := A_52512() // leave // } // ret := A_52514(A_52513(add(n, not(0)))) // } // function A_41488(n) -> ret // { // if iszero(n) // { // ret := A_52536() // leave // } // ret := A_52538(A_52537(add(n, not(0)))) // } // function A_41517(n) -> ret // { // if iszero(n) // { // ret := A_52575() // leave // } // ret := A_52577(A_52576(add(n, not(0)))) // } // function A_52312(n) -> ret // { // let m := not(0) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, m)) // leave // } // ret := A(add(m, m), A(m, add(n, m))) // } // function A_52353() -> ret // { // let n := not(9) // if iszero(2) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(2, not(0))) // leave // } // let _1 := not(0) // ret := A(add(2, _1), A(2, add(n, _1))) // } // function A_52354(n) -> ret // { // if iszero(1) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(1, not(0))) // leave // } // let _1 := not(0) // ret := A(add(1, _1), A(1, add(n, _1))) // } // function A_52356(n) -> ret // { // let m := not(4) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52359(n) -> ret // { // let m := not(3) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52362(n) -> ret // { // let m := not(2) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52365(n) -> ret // { // let m := not(1) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52389() -> ret // { // let n := not(8) // if iszero(2) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(2, not(0))) // leave // } // let _1 := not(0) // ret := A(add(2, _1), A(2, add(n, _1))) // } // function A_52390(n) -> ret // { // if iszero(1) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(1, not(0))) // leave // } // let _1 := not(0) // ret := A(add(1, _1), A(1, add(n, _1))) // } // function A_52391() -> ret // { // let n := not(8) // if iszero(4) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(4, not(0))) // leave // } // let _1 := not(0) // ret := A(add(4, _1), A(4, add(n, _1))) // } // function A_52392(n) -> ret // { // if iszero(3) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(3, not(0))) // leave // } // let _1 := not(0) // ret := A(add(3, _1), A(3, add(n, _1))) // } // function A_52395(n) -> ret // { // let m := not(5) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52397(n) -> ret // { // let m := not(4) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52402(n) -> ret // { // let m := not(4) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52404(n) -> ret // { // let m := not(3) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52406(n) -> ret // { // let m := not(5) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52408(n) -> ret // { // let m := not(6) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52416(n) -> ret // { // let m := not(3) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52418(n) -> ret // { // let m := not(5) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52420(n) -> ret // { // let m := not(4) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52422(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(0, not(0))) // leave // } // let _1 := not(0) // ret := A(add(0, _1), A(0, add(n, _1))) // } // function A_52424(n) -> ret // { // let m := not(6) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52426(n) -> ret // { // let m := not(2) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52428(n) -> ret // { // let m := not(7) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52439(n) -> ret // { // let m := not(2) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52441(n) -> ret // { // let m := not(5) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52443(n) -> ret // { // let m := not(4) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52445(n) -> ret // { // let m := not(3) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52447(n) -> ret // { // if iszero(1) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(1, not(0))) // leave // } // let _1 := not(0) // ret := A(add(1, _1), A(1, add(n, _1))) // } // function A_52449(n) -> ret // { // let m := not(6) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52451(n) -> ret // { // let m := not(1) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52453(n) -> ret // { // let m := not(7) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52455(n) -> ret // { // let m := not(8) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52457(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(0, not(0))) // leave // } // let _1 := not(0) // ret := A(add(0, _1), A(0, add(n, _1))) // } // function A_52459(n) -> ret // { // let m := not(0) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, m)) // leave // } // ret := A(add(m, m), A(m, add(n, m))) // } // function A_52460(n) -> ret // { // let m := not(1) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52464(n) -> ret // { // if iszero(1) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(1, not(0))) // leave // } // let _1 := not(0) // ret := A(add(1, _1), A(1, add(n, _1))) // } // function A_52465(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(0, not(0))) // leave // } // let _1 := not(0) // ret := A(add(0, _1), A(0, add(n, _1))) // } // function A_52467(n) -> ret // { // let m := not(3) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52468(n) -> ret // { // let m := not(4) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52470(n) -> ret // { // let m := not(2) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52471(n) -> ret // { // let m := not(3) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52473(n) -> ret // { // let m := not(1) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52474(n) -> ret // { // let m := not(2) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52483(n) -> ret // { // if iszero(3) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(3, not(0))) // leave // } // let _1 := not(0) // ret := A(add(3, _1), A(3, add(n, _1))) // } // function A_52484(n) -> ret // { // if iszero(2) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(2, not(0))) // leave // } // let _1 := not(0) // ret := A(add(2, _1), A(2, add(n, _1))) // } // function A_52486(n) -> ret // { // let m := not(4) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52487(n) -> ret // { // let m := not(5) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52495(n) -> ret // { // let m := not(5) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52496(n) -> ret // { // let m := not(6) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52504(n) -> ret // { // if iszero(ret) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(0, not(0))) // leave // } // let _1 := not(0) // ret := A(add(0, _1), A(0, add(n, _1))) // } // function A_52505(n) -> ret // { // let m := not(0) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, m)) // leave // } // ret := A(add(m, m), A(m, add(n, m))) // } // function A_52513(n) -> ret // { // let m := not(6) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52514(n) -> ret // { // let m := not(7) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52537(n) -> ret // { // let m := not(7) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52538(n) -> ret // { // let m := not(8) // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // function A_52576(n) -> ret // { // if iszero(2) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(2, not(0))) // leave // } // let _1 := not(0) // ret := A(add(2, _1), A(2, add(n, _1))) // } // function A_52577(n) -> ret // { // if iszero(1) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(1, not(0))) // leave // } // let _1 := not(0) // ret := A(add(1, _1), A(1, add(n, _1))) // } // function A(m, n) -> ret // { // if iszero(m) // { // ret := add(n, 1) // leave // } // if iszero(n) // { // ret := A_72(add(m, not(0))) // leave // } // let _1 := not(0) // ret := A(add(m, _1), A(m, add(n, _1))) // } // }