YES We show the termination of the relative TRS R/S: R: minus(x,|0|()) -> x minus(s(x),s(y)) -> minus(x,y) quot(|0|(),s(y)) -> |0|() quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) plus(|0|(),y) -> y plus(s(x),y) -> s(plus(x,y)) minus(minus(x,y),z) -> minus(x,plus(y,z)) app(nil(),k) -> k app(l,nil()) -> l app(cons(x,l),k) -> cons(x,app(l,k)) sum(cons(x,nil())) -> cons(x,nil()) sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) S: rand(x) -> x rand(x) -> rand(s(x)) -- SCC decomposition. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: minus#(s(x),s(y)) -> minus#(x,y) p2: quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) p3: quot#(s(x),s(y)) -> minus#(x,y) p4: plus#(s(x),y) -> plus#(x,y) p5: minus#(minus(x,y),z) -> minus#(x,plus(y,z)) p6: minus#(minus(x,y),z) -> plus#(y,z) p7: app#(cons(x,l),k) -> app#(l,k) p8: sum#(cons(x,cons(y,l))) -> sum#(cons(plus(x,y),l)) p9: sum#(cons(x,cons(y,l))) -> plus#(x,y) p10: sum#(app(l,cons(x,cons(y,k)))) -> sum#(app(l,sum(cons(x,cons(y,k))))) p11: sum#(app(l,cons(x,cons(y,k)))) -> app#(l,sum(cons(x,cons(y,k)))) p12: sum#(app(l,cons(x,cons(y,k)))) -> sum#(cons(x,cons(y,k))) and R consists of: r1: minus(x,|0|()) -> x r2: minus(s(x),s(y)) -> minus(x,y) r3: quot(|0|(),s(y)) -> |0|() r4: quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) r5: plus(|0|(),y) -> y r6: plus(s(x),y) -> s(plus(x,y)) r7: minus(minus(x,y),z) -> minus(x,plus(y,z)) r8: app(nil(),k) -> k r9: app(l,nil()) -> l r10: app(cons(x,l),k) -> cons(x,app(l,k)) r11: sum(cons(x,nil())) -> cons(x,nil()) r12: sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) r13: sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) r14: rand(x) -> x r15: rand(x) -> rand(s(x)) The estimated dependency graph contains the following SCCs: {p2} {p1, p5} {p10} {p8} {p4} {p7} -- Reduction pair. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: quot#(s(x),s(y)) -> quot#(minus(x,y),s(y)) and R consists of: r1: minus(x,|0|()) -> x r2: minus(s(x),s(y)) -> minus(x,y) r3: quot(|0|(),s(y)) -> |0|() r4: quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) r5: plus(|0|(),y) -> y r6: plus(s(x),y) -> s(plus(x,y)) r7: minus(minus(x,y),z) -> minus(x,plus(y,z)) r8: app(nil(),k) -> k r9: app(l,nil()) -> l r10: app(cons(x,l),k) -> cons(x,app(l,k)) r11: sum(cons(x,nil())) -> cons(x,nil()) r12: sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) r13: sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) r14: rand(x) -> x r15: rand(x) -> rand(s(x)) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: quot#_A(x1,x2) = x1 + (0,1) s_A(x1) = x1 + (0,1) minus_A(x1,x2) = x1 |0|_A() = (1,2) quot_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (1,2) plus_A(x1,x2) = x1 + ((1,0),(1,0)) x2 + (3,5) app_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(0,0)) x2 + (2,1) nil_A() = (1,5) cons_A(x1,x2) = ((0,0),(1,0)) x1 + ((1,0),(0,0)) x2 + (1,3) sum_A(x1) = x1 + (0,1) rand_A(x1) = ((1,0),(1,0)) x1 + (1,2) precedence: minus = |0| = quot = plus = app = nil = cons = sum = rand > quot# = s partial status: pi(quot#) = [1] pi(s) = [] pi(minus) = [] pi(|0|) = [] pi(quot) = [] pi(plus) = [] pi(app) = [] pi(nil) = [] pi(cons) = [] pi(sum) = [] pi(rand) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: minus#(s(x),s(y)) -> minus#(x,y) p2: minus#(minus(x,y),z) -> minus#(x,plus(y,z)) and R consists of: r1: minus(x,|0|()) -> x r2: minus(s(x),s(y)) -> minus(x,y) r3: quot(|0|(),s(y)) -> |0|() r4: quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) r5: plus(|0|(),y) -> y r6: plus(s(x),y) -> s(plus(x,y)) r7: minus(minus(x,y),z) -> minus(x,plus(y,z)) r8: app(nil(),k) -> k r9: app(l,nil()) -> l r10: app(cons(x,l),k) -> cons(x,app(l,k)) r11: sum(cons(x,nil())) -> cons(x,nil()) r12: sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) r13: sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) r14: rand(x) -> x r15: rand(x) -> rand(s(x)) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: minus#_A(x1,x2) = ((1,0),(0,0)) x1 + (1,6) s_A(x1) = ((1,0),(0,0)) x1 + (0,3) minus_A(x1,x2) = ((1,0),(0,0)) x1 + (3,5) plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (7,3) |0|_A() = (1,0) quot_A(x1,x2) = ((0,0),(1,0)) x2 + (2,4) app_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (2,3) nil_A() = (1,0) cons_A(x1,x2) = ((1,0),(0,0)) x2 + (1,2) sum_A(x1) = (5,1) rand_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: minus = plus > |0| = app > quot > minus# = s = nil = sum > cons = rand partial status: pi(minus#) = [] pi(s) = [] pi(minus) = [] pi(plus) = [] pi(|0|) = [] pi(quot) = [] pi(app) = [1] pi(nil) = [] pi(cons) = [] pi(sum) = [] pi(rand) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: minus#(s(x),s(y)) -> minus#(x,y) and R consists of: r1: minus(x,|0|()) -> x r2: minus(s(x),s(y)) -> minus(x,y) r3: quot(|0|(),s(y)) -> |0|() r4: quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) r5: plus(|0|(),y) -> y r6: plus(s(x),y) -> s(plus(x,y)) r7: minus(minus(x,y),z) -> minus(x,plus(y,z)) r8: app(nil(),k) -> k r9: app(l,nil()) -> l r10: app(cons(x,l),k) -> cons(x,app(l,k)) r11: sum(cons(x,nil())) -> cons(x,nil()) r12: sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) r13: sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) r14: rand(x) -> x r15: rand(x) -> rand(s(x)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: minus#(s(x),s(y)) -> minus#(x,y) and R consists of: r1: minus(x,|0|()) -> x r2: minus(s(x),s(y)) -> minus(x,y) r3: quot(|0|(),s(y)) -> |0|() r4: quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) r5: plus(|0|(),y) -> y r6: plus(s(x),y) -> s(plus(x,y)) r7: minus(minus(x,y),z) -> minus(x,plus(y,z)) r8: app(nil(),k) -> k r9: app(l,nil()) -> l r10: app(cons(x,l),k) -> cons(x,app(l,k)) r11: sum(cons(x,nil())) -> cons(x,nil()) r12: sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) r13: sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) r14: rand(x) -> x r15: rand(x) -> rand(s(x)) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: minus#_A(x1,x2) = x1 + x2 + (1,3) s_A(x1) = x1 + (0,2) minus_A(x1,x2) = x1 |0|_A() = (0,0) quot_A(x1,x2) = x1 + (1,1) plus_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (5,0) app_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (2,0) nil_A() = (5,1) cons_A(x1,x2) = (1,0) sum_A(x1) = (4,0) rand_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: s = minus = |0| = quot = plus = app = nil = rand > minus# = sum > cons partial status: pi(minus#) = [2] pi(s) = [] pi(minus) = [] pi(|0|) = [] pi(quot) = [] pi(plus) = [] pi(app) = [] pi(nil) = [] pi(cons) = [] pi(sum) = [] pi(rand) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: sum#(app(l,cons(x,cons(y,k)))) -> sum#(app(l,sum(cons(x,cons(y,k))))) and R consists of: r1: minus(x,|0|()) -> x r2: minus(s(x),s(y)) -> minus(x,y) r3: quot(|0|(),s(y)) -> |0|() r4: quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) r5: plus(|0|(),y) -> y r6: plus(s(x),y) -> s(plus(x,y)) r7: minus(minus(x,y),z) -> minus(x,plus(y,z)) r8: app(nil(),k) -> k r9: app(l,nil()) -> l r10: app(cons(x,l),k) -> cons(x,app(l,k)) r11: sum(cons(x,nil())) -> cons(x,nil()) r12: sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) r13: sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) r14: rand(x) -> x r15: rand(x) -> rand(s(x)) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: sum#_A(x1) = x1 + (0,1) app_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (5,6) cons_A(x1,x2) = ((0,0),(1,0)) x2 + (4,7) sum_A(x1) = (4,9) minus_A(x1,x2) = x1 + (1,1) |0|_A() = (0,0) s_A(x1) = x1 quot_A(x1,x2) = (0,0) plus_A(x1,x2) = ((1,0),(1,1)) x2 + (3,3) nil_A() = (1,10) rand_A(x1) = ((1,0),(1,1)) x1 + (1,1) precedence: app = sum = plus = nil = rand > sum# > cons = minus = |0| = s = quot partial status: pi(sum#) = [1] pi(app) = [] pi(cons) = [] pi(sum) = [] pi(minus) = [] pi(|0|) = [] pi(s) = [] pi(quot) = [] pi(plus) = [] pi(nil) = [] pi(rand) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: sum#(cons(x,cons(y,l))) -> sum#(cons(plus(x,y),l)) and R consists of: r1: minus(x,|0|()) -> x r2: minus(s(x),s(y)) -> minus(x,y) r3: quot(|0|(),s(y)) -> |0|() r4: quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) r5: plus(|0|(),y) -> y r6: plus(s(x),y) -> s(plus(x,y)) r7: minus(minus(x,y),z) -> minus(x,plus(y,z)) r8: app(nil(),k) -> k r9: app(l,nil()) -> l r10: app(cons(x,l),k) -> cons(x,app(l,k)) r11: sum(cons(x,nil())) -> cons(x,nil()) r12: sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) r13: sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) r14: rand(x) -> x r15: rand(x) -> rand(s(x)) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: sum#_A(x1) = x1 + (1,1) cons_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (3,1) plus_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (1,11) minus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (2,2) |0|_A() = (0,0) s_A(x1) = ((1,0),(0,0)) x1 quot_A(x1,x2) = (0,1) app_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (4,3) nil_A() = (1,0) sum_A(x1) = ((1,0),(0,0)) x1 + (0,10) rand_A(x1) = ((1,0),(1,1)) x1 + (1,1) precedence: plus = quot = app = sum > cons > sum# = minus = |0| = s = nil = rand partial status: pi(sum#) = [1] pi(cons) = [] pi(plus) = [] pi(minus) = [] pi(|0|) = [] pi(s) = [] pi(quot) = [] pi(app) = [] pi(nil) = [] pi(sum) = [] pi(rand) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: plus#(s(x),y) -> plus#(x,y) and R consists of: r1: minus(x,|0|()) -> x r2: minus(s(x),s(y)) -> minus(x,y) r3: quot(|0|(),s(y)) -> |0|() r4: quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) r5: plus(|0|(),y) -> y r6: plus(s(x),y) -> s(plus(x,y)) r7: minus(minus(x,y),z) -> minus(x,plus(y,z)) r8: app(nil(),k) -> k r9: app(l,nil()) -> l r10: app(cons(x,l),k) -> cons(x,app(l,k)) r11: sum(cons(x,nil())) -> cons(x,nil()) r12: sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) r13: sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) r14: rand(x) -> x r15: rand(x) -> rand(s(x)) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: plus#_A(x1,x2) = x1 + (0,1) s_A(x1) = x1 + (0,2) minus_A(x1,x2) = x1 |0|_A() = (0,0) quot_A(x1,x2) = x1 + (1,1) plus_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (1,3) app_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) nil_A() = (1,1) cons_A(x1,x2) = (1,0) sum_A(x1) = ((1,0),(0,0)) x1 + (0,2) rand_A(x1) = ((1,0),(1,0)) x1 + (1,1) precedence: minus = |0| = plus = sum = rand > plus# = nil > quot > s = cons > app partial status: pi(plus#) = [1] pi(s) = [1] pi(minus) = [] pi(|0|) = [] pi(quot) = [1] pi(plus) = [] pi(app) = [1, 2] pi(nil) = [] pi(cons) = [] pi(sum) = [] pi(rand) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: app#(cons(x,l),k) -> app#(l,k) and R consists of: r1: minus(x,|0|()) -> x r2: minus(s(x),s(y)) -> minus(x,y) r3: quot(|0|(),s(y)) -> |0|() r4: quot(s(x),s(y)) -> s(quot(minus(x,y),s(y))) r5: plus(|0|(),y) -> y r6: plus(s(x),y) -> s(plus(x,y)) r7: minus(minus(x,y),z) -> minus(x,plus(y,z)) r8: app(nil(),k) -> k r9: app(l,nil()) -> l r10: app(cons(x,l),k) -> cons(x,app(l,k)) r11: sum(cons(x,nil())) -> cons(x,nil()) r12: sum(cons(x,cons(y,l))) -> sum(cons(plus(x,y),l)) r13: sum(app(l,cons(x,cons(y,k)))) -> sum(app(l,sum(cons(x,cons(y,k))))) r14: rand(x) -> x r15: rand(x) -> rand(s(x)) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: app#_A(x1,x2) = x1 + (1,1) cons_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (2,7) minus_A(x1,x2) = ((1,0),(0,0)) x1 + (3,29) |0|_A() = (1,0) s_A(x1) = ((1,0),(0,0)) x1 + (0,1) quot_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (2,1) plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (7,30) app_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(0,0)) x2 + (3,0) nil_A() = (1,1) sum_A(x1) = x1 + (0,15) rand_A(x1) = ((1,0),(0,0)) x1 + (1,2) precedence: minus = |0| = quot = app = rand > s = plus > nil = sum > cons > app# partial status: pi(app#) = [1] pi(cons) = [2] pi(minus) = [] pi(|0|) = [] pi(s) = [] pi(quot) = [] pi(plus) = [2] pi(app) = [] pi(nil) = [] pi(sum) = [] pi(rand) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.