YES We show the termination of the TRS R: .(.(x,y),z) -> .(x,.(y,z)) a(f(x)) -> f(a(x)) a(.(x,y)) -> .(a(x),y) a(b1(x)) -> b1(a(x)) f(b(x)) -> b(f(x)) .(b(x),y) -> b(.(x,y)) b1(b(x)) -> b(b(x)) a(f(.(|0|(),x))) -> b1(.(f(.(|0|(),x)),.(|0|(),f(x)))) a(f(|0|())) -> b1(.(f(|0|()),|0|())) f(.(|0|(),x)) -> b(.(|0|(),f(x))) f(|0|()) -> b(|0|()) c(b(x)) -> c(a(x)) a(b(x)) -> b(a(x)) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: .#(.(x,y),z) -> .#(x,.(y,z)) p2: .#(.(x,y),z) -> .#(y,z) p3: a#(f(x)) -> f#(a(x)) p4: a#(f(x)) -> a#(x) p5: a#(.(x,y)) -> .#(a(x),y) p6: a#(.(x,y)) -> a#(x) p7: a#(b1(x)) -> b1#(a(x)) p8: a#(b1(x)) -> a#(x) p9: f#(b(x)) -> f#(x) p10: .#(b(x),y) -> .#(x,y) p11: a#(f(.(|0|(),x))) -> b1#(.(f(.(|0|(),x)),.(|0|(),f(x)))) p12: a#(f(.(|0|(),x))) -> .#(f(.(|0|(),x)),.(|0|(),f(x))) p13: a#(f(.(|0|(),x))) -> .#(|0|(),f(x)) p14: a#(f(.(|0|(),x))) -> f#(x) p15: a#(f(|0|())) -> b1#(.(f(|0|()),|0|())) p16: a#(f(|0|())) -> .#(f(|0|()),|0|()) p17: f#(.(|0|(),x)) -> .#(|0|(),f(x)) p18: f#(.(|0|(),x)) -> f#(x) p19: c#(b(x)) -> c#(a(x)) p20: c#(b(x)) -> a#(x) p21: a#(b(x)) -> a#(x) and R consists of: r1: .(.(x,y),z) -> .(x,.(y,z)) r2: a(f(x)) -> f(a(x)) r3: a(.(x,y)) -> .(a(x),y) r4: a(b1(x)) -> b1(a(x)) r5: f(b(x)) -> b(f(x)) r6: .(b(x),y) -> b(.(x,y)) r7: b1(b(x)) -> b(b(x)) r8: a(f(.(|0|(),x))) -> b1(.(f(.(|0|(),x)),.(|0|(),f(x)))) r9: a(f(|0|())) -> b1(.(f(|0|()),|0|())) r10: f(.(|0|(),x)) -> b(.(|0|(),f(x))) r11: f(|0|()) -> b(|0|()) r12: c(b(x)) -> c(a(x)) r13: a(b(x)) -> b(a(x)) The estimated dependency graph contains the following SCCs: {p19} {p4, p6, p8, p21} {p1, p2, p10} {p9, p18} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: c#(b(x)) -> c#(a(x)) and R consists of: r1: .(.(x,y),z) -> .(x,.(y,z)) r2: a(f(x)) -> f(a(x)) r3: a(.(x,y)) -> .(a(x),y) r4: a(b1(x)) -> b1(a(x)) r5: f(b(x)) -> b(f(x)) r6: .(b(x),y) -> b(.(x,y)) r7: b1(b(x)) -> b(b(x)) r8: a(f(.(|0|(),x))) -> b1(.(f(.(|0|(),x)),.(|0|(),f(x)))) r9: a(f(|0|())) -> b1(.(f(|0|()),|0|())) r10: f(.(|0|(),x)) -> b(.(|0|(),f(x))) r11: f(|0|()) -> b(|0|()) r12: c(b(x)) -> c(a(x)) r13: a(b(x)) -> b(a(x)) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r13 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: c#_A(x1) = ((1,0),(0,0)) x1 + (0,1) b_A(x1) = ((1,0),(1,0)) x1 + (2,4) a_A(x1) = x1 + (2,2) ._A(x1,x2) = x1 f_A(x1) = x1 + (5,5) b1_A(x1) = ((0,1),(0,1)) x1 + (1,2) |0|_A() = (4,5) precedence: c# = b = a = . = f = b1 = |0| partial status: pi(c#) = [] pi(b) = [] pi(a) = [] pi(.) = [] pi(f) = [] pi(b1) = [] pi(|0|) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: c#_A(x1) = ((1,0),(0,0)) x1 + (0,2) b_A(x1) = ((1,1),(1,0)) x1 + (1,3) a_A(x1) = ((1,1),(1,0)) x1 + (0,2) ._A(x1,x2) = x1 f_A(x1) = x1 b1_A(x1) = (6,1) |0|_A() = (7,10) precedence: a = f = |0| > . > c# = b = b1 partial status: pi(c#) = [] pi(b) = [] pi(a) = [] pi(.) = [] pi(f) = [] pi(b1) = [] pi(|0|) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a#(b(x)) -> a#(x) p2: a#(b1(x)) -> a#(x) p3: a#(.(x,y)) -> a#(x) p4: a#(f(x)) -> a#(x) and R consists of: r1: .(.(x,y),z) -> .(x,.(y,z)) r2: a(f(x)) -> f(a(x)) r3: a(.(x,y)) -> .(a(x),y) r4: a(b1(x)) -> b1(a(x)) r5: f(b(x)) -> b(f(x)) r6: .(b(x),y) -> b(.(x,y)) r7: b1(b(x)) -> b(b(x)) r8: a(f(.(|0|(),x))) -> b1(.(f(.(|0|(),x)),.(|0|(),f(x)))) r9: a(f(|0|())) -> b1(.(f(|0|()),|0|())) r10: f(.(|0|(),x)) -> b(.(|0|(),f(x))) r11: f(|0|()) -> b(|0|()) r12: c(b(x)) -> c(a(x)) r13: a(b(x)) -> b(a(x)) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: a#_A(x1) = max{2, x1 + 1} b_A(x1) = max{1, x1} b1_A(x1) = max{1, x1} ._A(x1,x2) = max{x1, x2} f_A(x1) = max{1, x1} precedence: a# = b = b1 = . = f partial status: pi(a#) = [1] pi(b) = [1] pi(b1) = [1] pi(.) = [1, 2] pi(f) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: a#_A(x1) = x1 + 3 b_A(x1) = x1 b1_A(x1) = x1 ._A(x1,x2) = max{x1 + 2, x2 + 2} f_A(x1) = x1 precedence: a# = b = b1 = . = f partial status: pi(a#) = [1] pi(b) = [1] pi(b1) = [1] pi(.) = [1, 2] pi(f) = [1] The next rules are strictly ordered: p1, p2, p3, p4 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: .#(.(x,y),z) -> .#(x,.(y,z)) p2: .#(b(x),y) -> .#(x,y) p3: .#(.(x,y),z) -> .#(y,z) and R consists of: r1: .(.(x,y),z) -> .(x,.(y,z)) r2: a(f(x)) -> f(a(x)) r3: a(.(x,y)) -> .(a(x),y) r4: a(b1(x)) -> b1(a(x)) r5: f(b(x)) -> b(f(x)) r6: .(b(x),y) -> b(.(x,y)) r7: b1(b(x)) -> b(b(x)) r8: a(f(.(|0|(),x))) -> b1(.(f(.(|0|(),x)),.(|0|(),f(x)))) r9: a(f(|0|())) -> b1(.(f(|0|()),|0|())) r10: f(.(|0|(),x)) -> b(.(|0|(),f(x))) r11: f(|0|()) -> b(|0|()) r12: c(b(x)) -> c(a(x)) r13: a(b(x)) -> b(a(x)) The set of usable rules consists of r1, r6 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: .#_A(x1,x2) = x1 + 4 ._A(x1,x2) = max{x1 + 5, x2} b_A(x1) = x1 precedence: .# = . > b partial status: pi(.#) = [1] pi(.) = [1, 2] pi(b) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: .#_A(x1,x2) = x1 + 3 ._A(x1,x2) = max{x1 + 2, x2 + 5} b_A(x1) = x1 + 4 precedence: .# = . = b partial status: pi(.#) = [1] pi(.) = [2] pi(b) = [1] The next rules are strictly ordered: p1, p2, p3 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: f#(b(x)) -> f#(x) p2: f#(.(|0|(),x)) -> f#(x) and R consists of: r1: .(.(x,y),z) -> .(x,.(y,z)) r2: a(f(x)) -> f(a(x)) r3: a(.(x,y)) -> .(a(x),y) r4: a(b1(x)) -> b1(a(x)) r5: f(b(x)) -> b(f(x)) r6: .(b(x),y) -> b(.(x,y)) r7: b1(b(x)) -> b(b(x)) r8: a(f(.(|0|(),x))) -> b1(.(f(.(|0|(),x)),.(|0|(),f(x)))) r9: a(f(|0|())) -> b1(.(f(|0|()),|0|())) r10: f(.(|0|(),x)) -> b(.(|0|(),f(x))) r11: f(|0|()) -> b(|0|()) r12: c(b(x)) -> c(a(x)) r13: a(b(x)) -> b(a(x)) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: f#_A(x1) = max{2, x1 + 1} b_A(x1) = max{1, x1} ._A(x1,x2) = max{1, x1, x2} |0|_A = 0 precedence: f# = b = . = |0| partial status: pi(f#) = [1] pi(b) = [1] pi(.) = [1, 2] pi(|0|) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: f#_A(x1) = x1 + 2 b_A(x1) = x1 + 1 ._A(x1,x2) = max{x1 - 1, x2 + 1} |0|_A = 2 precedence: f# = b = . = |0| partial status: pi(f#) = [] pi(b) = [1] pi(.) = [2] pi(|0|) = [] The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains.