> pl -f recursionNoPred.pro test number 1: trace eval of [const, 1, 99] : [ 1 ] trace eval out [const, 1, 99] : [1] --> 99 end test number 1, succeeded: [const, 1, 99] : [1] --> 99 test number 2: trace eval of [const, 2, 99] : [ 1, 2 ] trace eval out [const, 2, 99] : [1, 2] --> 99 end test number 2, succeeded: [const, 2, 99] : [1, 2] --> 99 test number 3: trace eval of [const, 2, 99] : [ 1, 2 ] trace eval out [const, 2, 99] : [1, 2] --> 99 end test number 3, succeeded: [const, 2, 99] : [1, 2] --> 99 test number 4: trace eval of [proj, 1, 0] : [ 98 ] trace eval out [proj, 1, 0] : [98] --> 98 end test number 4, succeeded: [proj, 1, 0] : [98] --> 98 test number 5: trace eval of [proj, 2, 0] : [ 98, 99 ] trace eval out [proj, 2, 0] : [98, 99] --> 98 end test number 5, succeeded: [proj, 2, 0] : [98, 99] --> 98 test number 6: trace eval of [proj, 2, 1] : [ 98, 99 ] trace eval out [proj, 2, 1] : [98, 99] --> 99 end test number 6, succeeded: [proj, 2, 1] : [98, 99] --> 99 test number 7: trace eval of [succ, 1, 0] : [ 97 ] trace eval out [succ, 1, 0] : [97] --> 98 end test number 7, succeeded: [succ, 1, 0] : [97] --> 98 test number 8: trace eval of [succ, 2, 0] : [ 97, 98 ] trace eval out [succ, 2, 0] : [97, 98] --> 98 end test number 8, succeeded: [succ, 2, 0] : [97, 98] --> 98 test number 9: trace eval of [succ, 2, 1] : [ 97, 98 ] trace eval out [succ, 2, 1] : [97, 98] --> 99 end test number 9, succeeded: [succ, 2, 1] : [97, 98] --> 99 test number 10: trace eval of [cond, 4] : [ 98, 99, 1, 1 ] equality true, returning 98 trace eval out [cond, 4] : [98, 99, 1, 1] --> 98 end test number 10, succeeded: [cond, 4] : [98, 99, 1, 1] --> 98 test number 11: trace eval of [cond, 4] : [ 98, 99, 1, 2 ] equality false, returning 99 trace eval out [cond, 4] : [98, 99, 1, 2] --> 99 end test number 11, succeeded: [cond, 4] : [98, 99, 1, 2] --> 99 test number 12: trace eval of [compose, 1, [succ, 1, 0], [ [succ, 1, 0] ] : [ 97 ] trace eval of [succ, 1, 0] : [ 97 ] trace eval out [succ, 1, 0] : [97] --> 98 trace eval of [succ, 1, 0] : [ 98 ] trace eval out [succ, 1, 0] : [98] --> 99 trace eval out [compose, 1, [succ, 1, 0], [ [succ, 1, 0] ] : [97] --> 99 end test number 12, succeeded: [compose, 1, [succ, 1, 0], [ [succ, 1, 0] ] : [97] --> 99 test number 13: trace eval of [compose, 2, [succ, 1, 0], [ [succ, 2, 0] ] : [ 96, 97 ] trace eval of [succ, 2, 0] : [ 96, 97 ] trace eval out [succ, 2, 0] : [96, 97] --> 97 trace eval of [succ, 1, 0] : [ 97 ] trace eval out [succ, 1, 0] : [97] --> 98 trace eval out [compose, 2, [succ, 1, 0], [ [succ, 2, 0] ] : [96, 97] --> 98 end test number 13, succeeded: [compose, 2, [succ, 1, 0], [ [succ, 2, 0] ] : [96, 97] --> 98 test number 14: trace eval of [compose, 2, [succ, 1, 0], [ [succ, 2, 1] ] : [ 96, 97 ] trace eval of [succ, 2, 1] : [ 96, 97 ] trace eval out [succ, 2, 1] : [96, 97] --> 98 trace eval of [succ, 1, 0] : [ 98 ] trace eval out [succ, 1, 0] : [98] --> 99 trace eval out [compose, 2, [succ, 1, 0], [ [succ, 2, 1] ] : [96, 97] --> 99 end test number 14, succeeded: [compose, 2, [succ, 1, 0], [ [succ, 2, 1] ] : [96, 97] --> 99 test number 15: trace eval of [compose, 3, [succ, 1, 0], [ [succ, 3, 2] ] : [ 95, 96, 97 ] trace eval of [succ, 3, 2] : [ 95, 96, 97 ] trace eval out [succ, 3, 2] : [95, 96, 97] --> 98 trace eval of [succ, 1, 0] : [ 98 ] trace eval out [succ, 1, 0] : [98] --> 99 trace eval out [compose, 3, [succ, 1, 0], [ [succ, 3, 2] ] : [95, 96, 97] --> 99 end test number 15, succeeded: [compose, 3, [succ, 1, 0], [ [succ, 3, 2] ] : [95, 96, 97] --> 99 test number 16: trace eval of [compose, 2, [succ, 2, 0], [ [proj, 2, 0] [succ, 2, 1] ] : [ 95, 96 ] trace eval of [proj, 2, 0] : [ 95, 96 ] trace eval out [proj, 2, 0] : [95, 96] --> 95 trace eval of [succ, 2, 1] : [ 95, 96 ] trace eval out [succ, 2, 1] : [95, 96] --> 97 trace eval of [succ, 2, 0] : [ 95, 97 ] trace eval out [succ, 2, 0] : [95, 97] --> 96 trace eval out [compose, 2, [succ, 2, 0], [ [proj, 2, 0] [succ, 2, 1] ] : [95, 96] --> 96 end test number 16, succeeded: [compose, 2, [succ, 2, 0], [ [proj, 2, 0] [succ, 2, 1] ] : [95, 96] --> 96 test number 17: trace eval of [compose, 2, [succ, 2, 1], [ [proj, 2, 0] [succ, 2, 1] ] : [ 95, 96 ] trace eval of [proj, 2, 0] : [ 95, 96 ] trace eval out [proj, 2, 0] : [95, 96] --> 95 trace eval of [succ, 2, 1] : [ 95, 96 ] trace eval out [succ, 2, 1] : [95, 96] --> 97 trace eval of [succ, 2, 1] : [ 95, 97 ] trace eval out [succ, 2, 1] : [95, 97] --> 98 trace eval out [compose, 2, [succ, 2, 1], [ [proj, 2, 0] [succ, 2, 1] ] : [95, 96] --> 98 end test number 17, succeeded: [compose, 2, [succ, 2, 1], [ [proj, 2, 0] [succ, 2, 1] ] : [95, 96] --> 98 test number 18: trace eval of [s1n, 2] : [ [proj, 2, 0], 98 ] trace eval out [s1n, 2] : [[proj, 2, 0], 98] --> [compose, 1, [proj, 2, 0], [const, 1, 98], [proj, 1, 0]] end test number 18, succeeded: [s1n, 2] : [[proj, 2, 0], 98] --> [compose, 1, [proj, 2, 0], [const, 1, 98], [proj, 1, 0]] test number 19: trace eval of [s1n, 2] : [ [proj, 2, 2], 98 ] trace eval out [s1n, 2] : [[proj, 2, 2], 98] --> [compose, 1, [proj, 2, 2], [const, 1, 98], [proj, 1, 0]] end test number 19, succeeded: [s1n, 2] : [[proj, 2, 2], 98] --> [compose, 1, [proj, 2, 2], [const, 1, 98], [proj, 1, 0]] test number 20: trace eval of [app, 2] : [ [succ, 1, 0], 98 ] trace eval of [succ, 1, 0] : [ 98 ] trace eval out [succ, 1, 0] : [98] --> 99 trace eval out [app, 2] : [[succ, 1, 0], 98] --> 99 end test number 20, succeeded: [app, 2] : [[succ, 1, 0], 98] --> 99 test number 21: trace eval of [app, 3] : [ [succ, 2, 0], 97, 98 ] trace eval of [succ, 2, 0] : [ 97, 98 ] trace eval out [succ, 2, 0] : [97, 98] --> 98 trace eval out [app, 3] : [[succ, 2, 0], 97, 98] --> 98 end test number 21, succeeded: [app, 3] : [[succ, 2, 0], 97, 98] --> 98 test number 22: trace eval of [app, 3] : [ [succ, 2, 1], 97, 98 ] trace eval of [succ, 2, 1] : [ 97, 98 ] trace eval out [succ, 2, 1] : [97, 98] --> 99 trace eval out [app, 3] : [[succ, 2, 1], 97, 98] --> 99 end test number 22, succeeded: [app, 3] : [[succ, 2, 1], 97, 98] --> 99 test number 23: trace eval of [app, 4] : [ [succ, 3, 0], 96, 97, 98 ] trace eval of [succ, 3, 0] : [ 96, 97, 98 ] trace eval out [succ, 3, 0] : [96, 97, 98] --> 97 trace eval out [app, 4] : [[succ, 3, 0], 96, 97, 98] --> 97 end test number 23, succeeded: [app, 4] : [[succ, 3, 0], 96, 97, 98] --> 97 test number 24: trace eval of [app, 4] : [ [succ, 3, 1], 96, 97, 98 ] trace eval of [succ, 3, 1] : [ 96, 97, 98 ] trace eval out [succ, 3, 1] : [96, 97, 98] --> 98 trace eval out [app, 4] : [[succ, 3, 1], 96, 97, 98] --> 98 end test number 24, succeeded: [app, 4] : [[succ, 3, 1], 96, 97, 98] --> 98 test number 25: trace eval of [app, 4] : [ [succ, 3, 2], 96, 97, 98 ] trace eval of [succ, 3, 2] : [ 96, 97, 98 ] trace eval out [succ, 3, 2] : [96, 97, 98] --> 99 trace eval out [app, 4] : [[succ, 3, 2], 96, 97, 98] --> 99 end test number 25, succeeded: [app, 4] : [[succ, 3, 2], 96, 97, 98] --> 99 test number 26: trace eval of [app, 2] : [ [compose, 1, [succ, 1, 0], [succ, 1, 0]], 97 ] trace eval of [compose, 1, [succ, 1, 0], [ [succ, 1, 0] ] : [ 97 ] trace eval of [succ, 1, 0] : [ 97 ] trace eval out [succ, 1, 0] : [97] --> 98 trace eval of [succ, 1, 0] : [ 98 ] trace eval out [succ, 1, 0] : [98] --> 99 trace eval out [compose, 1, [succ, 1, 0], [ [succ, 1, 0] ] : [97] --> 99 trace eval out [app, 2] : [[compose, 1, [succ, 1, 0], [succ, 1, 0]], 97] --> 99 end test number 26, succeeded: [app, 2] : [[compose, 1, [succ, 1, 0], [succ, 1, 0]], 97] --> 99 test number 27: trace eval of [app, 3] : [ [s1n, 2], [proj, 2, 2], 98 ] trace eval of [s1n, 2] : [ [proj, 2, 2], 98 ] trace eval out [s1n, 2] : [[proj, 2, 2], 98] --> [compose, 1, [proj, 2, 2], [const, 1, 98], [proj, 1, 0]] trace eval out [app, 3] : [[s1n, 2], [proj, 2, 2], 98] --> [compose, 1, [proj, 2, 2], [const, 1, 98], [proj, 1, 0]] end test number 27, succeeded: [app, 3] : [[s1n, 2], [proj, 2, 2], 98] --> [compose, 1, [proj, 2, 2], [const, 1, 98], [proj, 1, 0]] test number 28: trace eval of [s2n, 3] : [ [proj, 3, 0], [proj, 3, 0], 1 ] trace eval out [s2n, 3] : [[proj, 3, 0], [proj, 3, 0], 1] --> [compose, 1, [proj, 3, 0], [const, 1, [proj, 3, 0]], [const, 1, 1], [proj, 1, 0]] end test number 28, succeeded: [s2n, 3] : [[proj, 3, 0], [proj, 3, 0], 1] --> [compose, 1, [proj, 3, 0], [const, 1, [proj, 3, 0]], [const, 1, 1], [proj, 1, 0]] test number 29: trace eval of [compose, 3, [cond, 4], [ [proj, 3, 1] [proj, 3, 2] [proj, 3, 0] [const, 3, 0] ] : [ 0, 97, 98 ] trace eval of [proj, 3, 1] : [ 0, 97, 98 ] trace eval out [proj, 3, 1] : [0, 97, 98] --> 97 trace eval of [proj, 3, 2] : [ 0, 97, 98 ] trace eval out [proj, 3, 2] : [0, 97, 98] --> 98 trace eval of [proj, 3, 0] : [ 0, 97, 98 ] trace eval out [proj, 3, 0] : [0, 97, 98] --> 0 trace eval of [const, 3, 0] : [ 0, 97, 98 ] trace eval out [const, 3, 0] : [0, 97, 98] --> 0 trace eval of [cond, 4] : [ 97, 98, 0, 0 ] equality true, returning 97 trace eval out [cond, 4] : [97, 98, 0, 0] --> 97 trace eval out [compose, 3, [cond, 4], [ [proj, 3, 1] [proj, 3, 2] [proj, 3, 0] [const, 3, 0] ] : [0, 97, 98] --> 97 end test number 29, succeeded: [compose, 3, [cond, 4], [ [proj, 3, 1] [proj, 3, 2] [proj, 3, 0] [const, 3, 0] ] : [0, 97, 98] --> 97 test number 30: trace eval of [compose, 3, [cond, 4], [ [proj, 3, 1] [proj, 3, 2] [proj, 3, 0] [const, 3, 0] ] : [ 1, 97, 98 ] trace eval of [proj, 3, 1] : [ 1, 97, 98 ] trace eval out [proj, 3, 1] : [1, 97, 98] --> 97 trace eval of [proj, 3, 2] : [ 1, 97, 98 ] trace eval out [proj, 3, 2] : [1, 97, 98] --> 98 trace eval of [proj, 3, 0] : [ 1, 97, 98 ] trace eval out [proj, 3, 0] : [1, 97, 98] --> 1 trace eval of [const, 3, 0] : [ 1, 97, 98 ] trace eval out [const, 3, 0] : [1, 97, 98] --> 0 trace eval of [cond, 4] : [ 97, 98, 1, 0 ] equality false, returning 98 trace eval out [cond, 4] : [97, 98, 1, 0] --> 98 trace eval out [compose, 3, [cond, 4], [ [proj, 3, 1] [proj, 3, 2] [proj, 3, 0] [const, 3, 0] ] : [1, 97, 98] --> 98 end test number 30, succeeded: [compose, 3, [cond, 4], [ [proj, 3, 1] [proj, 3, 2] [proj, 3, 0] [const, 3, 0] ] : [1, 97, 98] --> 98 test number 31: trace eval of [app, 4] : [ [compose, 3, [cond, 4], [proj, 3, 1], [proj, 3, 2], [proj, 3, 0], [const, 3, 0]], 1, 97, 98 ] trace eval of [compose, 3, [cond, 4], [ [proj, 3, 1] [proj, 3, 2] [proj, 3, 0] [const, 3, 0] ] : [ 1, 97, 98 ] trace eval of [proj, 3, 1] : [ 1, 97, 98 ] trace eval out [proj, 3, 1] : [1, 97, 98] --> 97 trace eval of [proj, 3, 2] : [ 1, 97, 98 ] trace eval out [proj, 3, 2] : [1, 97, 98] --> 98 trace eval of [proj, 3, 0] : [ 1, 97, 98 ] trace eval out [proj, 3, 0] : [1, 97, 98] --> 1 trace eval of [const, 3, 0] : [ 1, 97, 98 ] trace eval out [const, 3, 0] : [1, 97, 98] --> 0 trace eval of [cond, 4] : [ 97, 98, 1, 0 ] equality false, returning 98 trace eval out [cond, 4] : [97, 98, 1, 0] --> 98 trace eval out [compose, 3, [cond, 4], [ [proj, 3, 1] [proj, 3, 2] [proj, 3, 0] [const, 3, 0] ] : [1, 97, 98] --> 98 trace eval out [app, 4] : [[compose, 3, [cond, 4], [proj, 3, 1], [proj, 3, 2], [proj, 3, 0], [const, 3, 0]], 1, 97, 98] --> 98 end test number 31, succeeded: [app, 4] : [[compose, 3, [cond, 4], [proj, 3, 1], [proj, 3, 2], [proj, 3, 0], [const, 3, 0]], 1, 97, 98] --> 98 test number 32: trace eval of [app, 3] : [ [compose, 2, [cond, 4], [proj, 2, 1], [succ, 2, 1], [proj, 2, 0], [const, 2, 0]], 0, 97 ] trace eval of [compose, 2, [cond, 4], [ [proj, 2, 1] [succ, 2, 1] [proj, 2, 0] [const, 2, 0] ] : [ 0, 97 ] trace eval of [proj, 2, 1] : [ 0, 97 ] trace eval out [proj, 2, 1] : [0, 97] --> 97 trace eval of [succ, 2, 1] : [ 0, 97 ] trace eval out [succ, 2, 1] : [0, 97] --> 98 trace eval of [proj, 2, 0] : [ 0, 97 ] trace eval out [proj, 2, 0] : [0, 97] --> 0 trace eval of [const, 2, 0] : [ 0, 97 ] trace eval out [const, 2, 0] : [0, 97] --> 0 trace eval of [cond, 4] : [ 97, 98, 0, 0 ] equality true, returning 97 trace eval out [cond, 4] : [97, 98, 0, 0] --> 97 trace eval out [compose, 2, [cond, 4], [ [proj, 2, 1] [succ, 2, 1] [proj, 2, 0] [const, 2, 0] ] : [0, 97] --> 97 trace eval out [app, 3] : [[compose, 2, [cond, 4], [proj, 2, 1], [succ, 2, 1], [proj, 2, 0], [const, 2, 0]], 0, 97] --> 97 end test number 32, succeeded: [app, 3] : [[compose, 2, [cond, 4], [proj, 2, 1], [succ, 2, 1], [proj, 2, 0], [const, 2, 0]], 0, 97] --> 97 test number 33: trace eval of [app, 3] : [ [compose, 2, [cond, 4], [proj, 2, 1], [succ, 2, 1], [proj, 2, 0], [const, 2, 0]], 1, 97 ] trace eval of [compose, 2, [cond, 4], [ [proj, 2, 1] [succ, 2, 1] [proj, 2, 0] [const, 2, 0] ] : [ 1, 97 ] trace eval of [proj, 2, 1] : [ 1, 97 ] trace eval out [proj, 2, 1] : [1, 97] --> 97 trace eval of [succ, 2, 1] : [ 1, 97 ] trace eval out [succ, 2, 1] : [1, 97] --> 98 trace eval of [proj, 2, 0] : [ 1, 97 ] trace eval out [proj, 2, 0] : [1, 97] --> 1 trace eval of [const, 2, 0] : [ 1, 97 ] trace eval out [const, 2, 0] : [1, 97] --> 0 trace eval of [cond, 4] : [ 97, 98, 1, 0 ] equality false, returning 98 trace eval out [cond, 4] : [97, 98, 1, 0] --> 98 trace eval out [compose, 2, [cond, 4], [ [proj, 2, 1] [succ, 2, 1] [proj, 2, 0] [const, 2, 0] ] : [1, 97] --> 98 trace eval out [app, 3] : [[compose, 2, [cond, 4], [proj, 2, 1], [succ, 2, 1], [proj, 2, 0], [const, 2, 0]], 1, 97] --> 98 end test number 33, succeeded: [app, 3] : [[compose, 2, [cond, 4], [proj, 2, 1], [succ, 2, 1], [proj, 2, 0], [const, 2, 0]], 1, 97] --> 98 test number 34: trace eval of [compose, 3, [cond, 4], [ [proj, 3, 1] [compose, 3, [succ, 1, 0], [ [succ, 3, 0] ] [proj, 3, 0] [const, 3, 0] ] : [ 1, 97, 98 ] trace eval of [proj, 3, 1] : [ 1, 97, 98 ] trace eval out [proj, 3, 1] : [1, 97, 98] --> 97 trace eval of [compose, 3, [succ, 1, 0], [ [succ, 3, 0] ] : [ 1, 97, 98 ] trace eval of [succ, 3, 0] : [ 1, 97, 98 ] trace eval out [succ, 3, 0] : [1, 97, 98] --> 2 trace eval of [succ, 1, 0] : [ 2 ] trace eval out [succ, 1, 0] : [2] --> 3 trace eval out [compose, 3, [succ, 1, 0], [ [succ, 3, 0] ] : [1, 97, 98] --> 3 trace eval of [proj, 3, 0] : [ 1, 97, 98 ] trace eval out [proj, 3, 0] : [1, 97, 98] --> 1 trace eval of [const, 3, 0] : [ 1, 97, 98 ] trace eval out [const, 3, 0] : [1, 97, 98] --> 0 trace eval of [cond, 4] : [ 97, 3, 1, 0 ] equality false, returning 3 trace eval out [cond, 4] : [97, 3, 1, 0] --> 3 trace eval out [compose, 3, [cond, 4], [ [proj, 3, 1] [compose, 3, [succ, 1, 0], [ [succ, 3, 0] ] [proj, 3, 0] [const, 3, 0] ] : [1, 97, 98] --> 3 end test number 34, succeeded: [compose, 3, [cond, 4], [ [proj, 3, 1] [compose, 3, [succ, 1, 0], [ [succ, 3, 0] ] [proj, 3, 0] [const, 3, 0] ] : [1, 97, 98] --> 3 Conclusion: in 34 tests: 34 successes, 0 failures.