MAYBE Rewrite Rules: [ zero(0) -> true, zero(s(?x)) -> false, fact(?x) -> if(zero(?x),s(0),*(?x,fact(-(?x,s(0))))), +(0,?y) -> ?y, +(s(?x),?y) -> s(+(?x,?y)), *(0,?y) -> 0, *(s(?x),?y) -> +(*(?x,?y),?y), *(s(?x),fact(?x)) -> fact(s(?x)), if(true,?y,?z) -> ?y, if(false,?y,?z) -> ?z, if(?x,?y,?y) -> ?y, -(?x,0) -> ?x, -(0,s(?y)) -> 0, -(s(?x),s(?y)) -> -(?x,?y) ] Apply Direct Methods... Inner CPs: [ *(s(?x_1),if(zero(?x_1),s(0),*(?x_1,fact(-(?x_1,s(0)))))) = fact(s(?x_1)) ] Outer CPs: [ +(*(?x_5,fact(?x_5)),fact(?x_5)) = fact(s(?x_5)), ?z_7 = ?z_7, ?z_8 = ?z_8 ] not Overlay, check Termination... unknown/not Terminating unknown Knuth & Bendix not Left-Linear, not Right-Linear unknown Weakly-Non-Overlapping & Non-Collapsing & Shallow unknown Strongly Depth-Preserving & Root-E-Closed/Non-E-Overlapping unknown Strongly Weight-Preserving & Root-E-Closed/Non-E-Overlapping [ zero(0) -> true, zero(s(?x)) -> false, fact(?x_1) -> if(zero(?x_1),s(0),*(?x_1,fact(-(?x_1,s(0))))), +(0,?y_2) -> ?y_2, +(s(?x_3),?y_3) -> s(+(?x_3,?y_3)), *(0,?y_4) -> 0, *(s(?x_5),?y_5) -> +(*(?x_5,?y_5),?y_5), *(s(?x_6),fact(?x_6)) -> fact(s(?x_6)), if(true,?y_7,?z_7) -> ?y_7, if(false,?y_8,?z_8) -> ?z_8, if(?x_9,?y_9,?y_9) -> ?y_9, -(?x_10,0) -> ?x_10, -(0,s(?y_11)) -> 0, -(s(?x_12),s(?y_12)) -> -(?x_12,?y_12) ] Sort Assignment: * : 42*42=>42 + : 42*42=>42 - : 42*42=>42 0 : =>42 s : 42=>42 if : 32*42*42=>42 fact : 42=>42 true : =>32 zero : 42=>32 false : =>32 non-linear variables: {?x_6,?y_9} non-linear types: {42} types leq non-linear types: {42} rules applicable to terms of non-linear types: [ zero(0) -> true, zero(s(?x)) -> false, fact(?x_1) -> if(zero(?x_1),s(0),*(?x_1,fact(-(?x_1,s(0))))), +(0,?y_2) -> ?y_2, +(s(?x_3),?y_3) -> s(+(?x_3,?y_3)), *(0,?y_4) -> 0, *(s(?x_5),?y_5) -> +(*(?x_5,?y_5),?y_5), *(s(?x_6),fact(?x_6)) -> fact(s(?x_6)), if(true,?y_7,?z_7) -> ?y_7, if(false,?y_8,?z_8) -> ?z_8, if(?x_9,?y_9,?y_9) -> ?y_9, -(?x_10,0) -> ?x_10, -(0,s(?y_11)) -> 0, -(s(?x_12),s(?y_12)) -> -(?x_12,?y_12) ] unknown innermost-termination for terms of non-linear types unknown Quasi-Left-Linear & Parallel-Closed [ zero(0) -> true, zero(s(?x)) -> false, fact(?x_1) -> if(zero(?x_1),s(0),*(?x_1,fact(-(?x_1,s(0))))), +(0,?y_2) -> ?y_2, +(s(?x_3),?y_3) -> s(+(?x_3,?y_3)), *(0,?y_4) -> 0, *(s(?x_5),?y_5) -> +(*(?x_5,?y_5),?y_5), *(s(?x_6),fact(?x_6)) -> fact(s(?x_6)), if(true,?y_7,?z_7) -> ?y_7, if(false,?y_8,?z_8) -> ?z_8, if(?x_9,?y_9,?y_9) -> ?y_9, -(?x_10,0) -> ?x_10, -(0,s(?y_11)) -> 0, -(s(?x_12),s(?y_12)) -> -(?x_12,?y_12) ] Sort Assignment: * : 42*42=>42 + : 42*42=>42 - : 42*42=>42 0 : =>42 s : 42=>42 if : 32*42*42=>42 fact : 42=>42 true : =>32 zero : 42=>32 false : =>32 non-linear variables: {?x_1,?y_5,?x_6,?y_9} non-linear types: {42} types leq non-linear types: {42} rules applicable to terms of non-linear types: [ zero(0) -> true, zero(s(?x)) -> false, fact(?x_1) -> if(zero(?x_1),s(0),*(?x_1,fact(-(?x_1,s(0))))), +(0,?y_2) -> ?y_2, +(s(?x_3),?y_3) -> s(+(?x_3,?y_3)), *(0,?y_4) -> 0, *(s(?x_5),?y_5) -> +(*(?x_5,?y_5),?y_5), *(s(?x_6),fact(?x_6)) -> fact(s(?x_6)), if(true,?y_7,?z_7) -> ?y_7, if(false,?y_8,?z_8) -> ?z_8, if(?x_9,?y_9,?y_9) -> ?y_9, -(?x_10,0) -> ?x_10, -(0,s(?y_11)) -> 0, -(s(?x_12),s(?y_12)) -> -(?x_12,?y_12) ] Rnl: 0: {} 1: {} 2: {0,1,2,3,4,5,6,7,8,9,10,11,12,13} 3: {} 4: {} 5: {} 6: {0,1,2,3,4,5,6,7,8,9,10,11,12,13} 7: {0,1,2,3,4,5,6,7,8,9,10,11,12,13} 8: {} 9: {} 10: {0,1,2,3,4,5,6,7,8,9,10,11,12,13} 11: {} 12: {} 13: {} unknown innermost-termination for terms of non-linear types unknown Quasi-Linear & Linearized-Decreasing [ zero(0) -> true, zero(s(?x)) -> false, fact(?x_1) -> if(zero(?x_1),s(0),*(?x_1,fact(-(?x_1,s(0))))), +(0,?y_2) -> ?y_2, +(s(?x_3),?y_3) -> s(+(?x_3,?y_3)), *(0,?y_4) -> 0, *(s(?x_5),?y_5) -> +(*(?x_5,?y_5),?y_5), *(s(?x_6),fact(?x_6)) -> fact(s(?x_6)), if(true,?y_7,?z_7) -> ?y_7, if(false,?y_8,?z_8) -> ?z_8, if(?x_9,?y_9,?y_9) -> ?y_9, -(?x_10,0) -> ?x_10, -(0,s(?y_11)) -> 0, -(s(?x_12),s(?y_12)) -> -(?x_12,?y_12) ] Sort Assignment: * : 42*42=>42 + : 42*42=>42 - : 42*42=>42 0 : =>42 s : 42=>42 if : 32*42*42=>42 fact : 42=>42 true : =>32 zero : 42=>32 false : =>32 non-linear variables: {?x_1,?y_5,?x_6,?y_9} non-linear types: {42} types leq non-linear types: {42} rules applicable to terms of non-linear types: [ zero(0) -> true, zero(s(?x)) -> false, fact(?x_1) -> if(zero(?x_1),s(0),*(?x_1,fact(-(?x_1,s(0))))), +(0,?y_2) -> ?y_2, +(s(?x_3),?y_3) -> s(+(?x_3,?y_3)), *(0,?y_4) -> 0, *(s(?x_5),?y_5) -> +(*(?x_5,?y_5),?y_5), *(s(?x_6),fact(?x_6)) -> fact(s(?x_6)), if(true,?y_7,?z_7) -> ?y_7, if(false,?y_8,?z_8) -> ?z_8, if(?x_9,?y_9,?y_9) -> ?y_9, -(?x_10,0) -> ?x_10, -(0,s(?y_11)) -> 0, -(s(?x_12),s(?y_12)) -> -(?x_12,?y_12) ] unknown innermost-termination for terms of non-linear types unknown Strongly Quasi-Linear & Hierarchically Decreasing check Non-Confluence... obtain 15 rules by 3 steps unfolding obtain 100 candidates for checking non-joinability check by TCAP-Approximation [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] (failure) check by Ordering(rpo), check by Tree-Automata Approximation [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] (failure) [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] (failure) [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] [ zero(0) -> true, zero(s(?x:Nat)) -> false, fact(?x:Nat) -> if(zero(?x:Nat),s(0),*(?x:Nat,fact(-(?x:Nat,s(0))))), +(0,?y:Nat) -> ?y:Nat, +(s(?x:Nat),?y:Nat) -> s(+(?x:Nat,?y:Nat)), *(0,?y:Nat) -> 0, *(s(?x:Nat),?y:Nat) -> +(*(?x:Nat,?y:Nat),?y:Nat), *(s(?x:Nat),fact(?x:Nat)) -> fact(s(?x:Nat)), if(true,?y:Nat,?z:Nat) -> ?y:Nat, if(false,?y:Nat,?z:Nat) -> ?z:Nat, if(?x:Bool,?y:Nat,?y:Nat) -> ?y:Nat, -(?x:Nat,0) -> ?x:Nat, -(0,s(?y:Nat)) -> 0, -(s(?x:Nat),s(?y:Nat)) -> -(?x:Nat,?y:Nat) ] new/if5.trs: Failure(timeout) (60228 msec.)