YES We show the termination of the TRS R: rec(rec(x)) -> sent(rec(x)) rec(sent(x)) -> sent(rec(x)) rec(no(x)) -> sent(rec(x)) rec(bot()) -> up(sent(bot())) rec(up(x)) -> up(rec(x)) sent(up(x)) -> up(sent(x)) no(up(x)) -> up(no(x)) top(rec(up(x))) -> top(check(rec(x))) top(sent(up(x))) -> top(check(rec(x))) top(no(up(x))) -> top(check(rec(x))) check(up(x)) -> up(check(x)) check(sent(x)) -> sent(check(x)) check(rec(x)) -> rec(check(x)) check(no(x)) -> no(check(x)) check(no(x)) -> no(x) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: rec#(rec(x)) -> sent#(rec(x)) p2: rec#(sent(x)) -> sent#(rec(x)) p3: rec#(sent(x)) -> rec#(x) p4: rec#(no(x)) -> sent#(rec(x)) p5: rec#(no(x)) -> rec#(x) p6: rec#(bot()) -> sent#(bot()) p7: rec#(up(x)) -> rec#(x) p8: sent#(up(x)) -> sent#(x) p9: no#(up(x)) -> no#(x) p10: top#(rec(up(x))) -> top#(check(rec(x))) p11: top#(rec(up(x))) -> check#(rec(x)) p12: top#(rec(up(x))) -> rec#(x) p13: top#(sent(up(x))) -> top#(check(rec(x))) p14: top#(sent(up(x))) -> check#(rec(x)) p15: top#(sent(up(x))) -> rec#(x) p16: top#(no(up(x))) -> top#(check(rec(x))) p17: top#(no(up(x))) -> check#(rec(x)) p18: top#(no(up(x))) -> rec#(x) p19: check#(up(x)) -> check#(x) p20: check#(sent(x)) -> sent#(check(x)) p21: check#(sent(x)) -> check#(x) p22: check#(rec(x)) -> rec#(check(x)) p23: check#(rec(x)) -> check#(x) p24: check#(no(x)) -> no#(check(x)) p25: check#(no(x)) -> check#(x) and R consists of: r1: rec(rec(x)) -> sent(rec(x)) r2: rec(sent(x)) -> sent(rec(x)) r3: rec(no(x)) -> sent(rec(x)) r4: rec(bot()) -> up(sent(bot())) r5: rec(up(x)) -> up(rec(x)) r6: sent(up(x)) -> up(sent(x)) r7: no(up(x)) -> up(no(x)) r8: top(rec(up(x))) -> top(check(rec(x))) r9: top(sent(up(x))) -> top(check(rec(x))) r10: top(no(up(x))) -> top(check(rec(x))) r11: check(up(x)) -> up(check(x)) r12: check(sent(x)) -> sent(check(x)) r13: check(rec(x)) -> rec(check(x)) r14: check(no(x)) -> no(check(x)) r15: check(no(x)) -> no(x) The estimated dependency graph contains the following SCCs: {p10, p13, p16} {p19, p21, p23, p25} {p3, p5, p7} {p8} {p9} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: top#(no(up(x))) -> top#(check(rec(x))) p2: top#(sent(up(x))) -> top#(check(rec(x))) p3: top#(rec(up(x))) -> top#(check(rec(x))) and R consists of: r1: rec(rec(x)) -> sent(rec(x)) r2: rec(sent(x)) -> sent(rec(x)) r3: rec(no(x)) -> sent(rec(x)) r4: rec(bot()) -> up(sent(bot())) r5: rec(up(x)) -> up(rec(x)) r6: sent(up(x)) -> up(sent(x)) r7: no(up(x)) -> up(no(x)) r8: top(rec(up(x))) -> top(check(rec(x))) r9: top(sent(up(x))) -> top(check(rec(x))) r10: top(no(up(x))) -> top(check(rec(x))) r11: check(up(x)) -> up(check(x)) r12: check(sent(x)) -> sent(check(x)) r13: check(rec(x)) -> rec(check(x)) r14: check(no(x)) -> no(check(x)) r15: check(no(x)) -> no(x) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r11, r12, r13, r14, r15 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: top#_A(x1) = max{30, x1 + 6} no_A(x1) = max{25, x1 + 21} up_A(x1) = max{15, x1 + 5} check_A(x1) = max{3, x1} rec_A(x1) = max{17, x1 + 14} sent_A(x1) = max{12, x1 + 9} bot_A = 0 precedence: top# = rec > check > sent > no = up = bot partial status: pi(top#) = [] pi(no) = [] pi(up) = [] pi(check) = [1] pi(rec) = [] pi(sent) = [1] pi(bot) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: top#_A(x1) = 26 no_A(x1) = 15 up_A(x1) = 15 check_A(x1) = max{4, x1} rec_A(x1) = 36 sent_A(x1) = max{5, x1} bot_A = 35 precedence: top# = no = check = rec > bot > sent > up partial status: pi(top#) = [] pi(no) = [] pi(up) = [] pi(check) = [1] pi(rec) = [] pi(sent) = [] pi(bot) = [] The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: top#(no(up(x))) -> top#(check(rec(x))) p2: top#(sent(up(x))) -> top#(check(rec(x))) and R consists of: r1: rec(rec(x)) -> sent(rec(x)) r2: rec(sent(x)) -> sent(rec(x)) r3: rec(no(x)) -> sent(rec(x)) r4: rec(bot()) -> up(sent(bot())) r5: rec(up(x)) -> up(rec(x)) r6: sent(up(x)) -> up(sent(x)) r7: no(up(x)) -> up(no(x)) r8: top(rec(up(x))) -> top(check(rec(x))) r9: top(sent(up(x))) -> top(check(rec(x))) r10: top(no(up(x))) -> top(check(rec(x))) r11: check(up(x)) -> up(check(x)) r12: check(sent(x)) -> sent(check(x)) r13: check(rec(x)) -> rec(check(x)) r14: check(no(x)) -> no(check(x)) r15: check(no(x)) -> no(x) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: top#(no(up(x))) -> top#(check(rec(x))) p2: top#(sent(up(x))) -> top#(check(rec(x))) and R consists of: r1: rec(rec(x)) -> sent(rec(x)) r2: rec(sent(x)) -> sent(rec(x)) r3: rec(no(x)) -> sent(rec(x)) r4: rec(bot()) -> up(sent(bot())) r5: rec(up(x)) -> up(rec(x)) r6: sent(up(x)) -> up(sent(x)) r7: no(up(x)) -> up(no(x)) r8: top(rec(up(x))) -> top(check(rec(x))) r9: top(sent(up(x))) -> top(check(rec(x))) r10: top(no(up(x))) -> top(check(rec(x))) r11: check(up(x)) -> up(check(x)) r12: check(sent(x)) -> sent(check(x)) r13: check(rec(x)) -> rec(check(x)) r14: check(no(x)) -> no(check(x)) r15: check(no(x)) -> no(x) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r11, r12, r13, r14, r15 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: top#_A(x1) = x1 + 2 no_A(x1) = x1 + 3 up_A(x1) = x1 check_A(x1) = x1 rec_A(x1) = max{0, x1 - 2} sent_A(x1) = max{0, x1 - 2} bot_A = 3 precedence: bot > top# = no = up = check = rec = sent partial status: pi(top#) = [1] pi(no) = [] pi(up) = [] pi(check) = [] pi(rec) = [] pi(sent) = [] pi(bot) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: top#_A(x1) = max{6, x1 - 9} no_A(x1) = 14 up_A(x1) = 9 check_A(x1) = 15 rec_A(x1) = 10 sent_A(x1) = 9 bot_A = 8 precedence: check > top# = no > sent > rec > up = bot partial status: pi(top#) = [] pi(no) = [] pi(up) = [] pi(check) = [] pi(rec) = [] pi(sent) = [] pi(bot) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: top#(sent(up(x))) -> top#(check(rec(x))) and R consists of: r1: rec(rec(x)) -> sent(rec(x)) r2: rec(sent(x)) -> sent(rec(x)) r3: rec(no(x)) -> sent(rec(x)) r4: rec(bot()) -> up(sent(bot())) r5: rec(up(x)) -> up(rec(x)) r6: sent(up(x)) -> up(sent(x)) r7: no(up(x)) -> up(no(x)) r8: top(rec(up(x))) -> top(check(rec(x))) r9: top(sent(up(x))) -> top(check(rec(x))) r10: top(no(up(x))) -> top(check(rec(x))) r11: check(up(x)) -> up(check(x)) r12: check(sent(x)) -> sent(check(x)) r13: check(rec(x)) -> rec(check(x)) r14: check(no(x)) -> no(check(x)) r15: check(no(x)) -> no(x) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: top#(sent(up(x))) -> top#(check(rec(x))) and R consists of: r1: rec(rec(x)) -> sent(rec(x)) r2: rec(sent(x)) -> sent(rec(x)) r3: rec(no(x)) -> sent(rec(x)) r4: rec(bot()) -> up(sent(bot())) r5: rec(up(x)) -> up(rec(x)) r6: sent(up(x)) -> up(sent(x)) r7: no(up(x)) -> up(no(x)) r8: top(rec(up(x))) -> top(check(rec(x))) r9: top(sent(up(x))) -> top(check(rec(x))) r10: top(no(up(x))) -> top(check(rec(x))) r11: check(up(x)) -> up(check(x)) r12: check(sent(x)) -> sent(check(x)) r13: check(rec(x)) -> rec(check(x)) r14: check(no(x)) -> no(check(x)) r15: check(no(x)) -> no(x) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r11, r12, r13, r14, r15 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: top#_A(x1) = ((1,0),(0,0)) x1 sent_A(x1) = ((1,1),(0,0)) x1 + (1,0) up_A(x1) = x1 + (2,0) check_A(x1) = ((1,0),(0,0)) x1 rec_A(x1) = ((1,0),(0,0)) x1 + (3,0) no_A(x1) = ((1,0),(0,0)) x1 + (5,0) bot_A() = (1,0) precedence: top# = sent = up = check = rec = no = bot partial status: pi(top#) = [] pi(sent) = [] pi(up) = [] pi(check) = [] pi(rec) = [] pi(no) = [] pi(bot) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: top#_A(x1) = ((1,1),(0,0)) x1 + (1,1) sent_A(x1) = x1 + (7,0) up_A(x1) = x1 check_A(x1) = ((1,0),(0,0)) x1 + (3,0) rec_A(x1) = ((1,1),(0,1)) x1 + (2,0) no_A(x1) = (1,0) bot_A() = (1,6) precedence: check > sent = rec = no > top# = up = bot partial status: pi(top#) = [] pi(sent) = [] pi(up) = [] pi(check) = [] pi(rec) = [1] pi(no) = [] pi(bot) = [] 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: check#(no(x)) -> check#(x) p2: check#(rec(x)) -> check#(x) p3: check#(sent(x)) -> check#(x) p4: check#(up(x)) -> check#(x) and R consists of: r1: rec(rec(x)) -> sent(rec(x)) r2: rec(sent(x)) -> sent(rec(x)) r3: rec(no(x)) -> sent(rec(x)) r4: rec(bot()) -> up(sent(bot())) r5: rec(up(x)) -> up(rec(x)) r6: sent(up(x)) -> up(sent(x)) r7: no(up(x)) -> up(no(x)) r8: top(rec(up(x))) -> top(check(rec(x))) r9: top(sent(up(x))) -> top(check(rec(x))) r10: top(no(up(x))) -> top(check(rec(x))) r11: check(up(x)) -> up(check(x)) r12: check(sent(x)) -> sent(check(x)) r13: check(rec(x)) -> rec(check(x)) r14: check(no(x)) -> no(check(x)) r15: check(no(x)) -> no(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: check#_A(x1) = max{2, x1 + 1} no_A(x1) = max{1, x1} rec_A(x1) = max{1, x1} sent_A(x1) = max{1, x1} up_A(x1) = max{1, x1} precedence: check# = no = rec = sent = up partial status: pi(check#) = [1] pi(no) = [1] pi(rec) = [1] pi(sent) = [1] pi(up) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: check#_A(x1) = x1 + 1 no_A(x1) = x1 rec_A(x1) = x1 sent_A(x1) = x1 up_A(x1) = x1 precedence: check# = no = rec = sent = up partial status: pi(check#) = [1] pi(no) = [1] pi(rec) = [1] pi(sent) = [1] pi(up) = [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: rec#(up(x)) -> rec#(x) p2: rec#(no(x)) -> rec#(x) p3: rec#(sent(x)) -> rec#(x) and R consists of: r1: rec(rec(x)) -> sent(rec(x)) r2: rec(sent(x)) -> sent(rec(x)) r3: rec(no(x)) -> sent(rec(x)) r4: rec(bot()) -> up(sent(bot())) r5: rec(up(x)) -> up(rec(x)) r6: sent(up(x)) -> up(sent(x)) r7: no(up(x)) -> up(no(x)) r8: top(rec(up(x))) -> top(check(rec(x))) r9: top(sent(up(x))) -> top(check(rec(x))) r10: top(no(up(x))) -> top(check(rec(x))) r11: check(up(x)) -> up(check(x)) r12: check(sent(x)) -> sent(check(x)) r13: check(rec(x)) -> rec(check(x)) r14: check(no(x)) -> no(check(x)) r15: check(no(x)) -> no(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: rec#_A(x1) = max{4, x1 + 3} up_A(x1) = max{3, x1 + 2} no_A(x1) = max{3, x1 + 2} sent_A(x1) = x1 + 4 precedence: rec# = up = no = sent partial status: pi(rec#) = [1] pi(up) = [1] pi(no) = [1] pi(sent) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: rec#_A(x1) = x1 + 1 up_A(x1) = x1 no_A(x1) = x1 sent_A(x1) = x1 + 2 precedence: rec# = up = no = sent partial status: pi(rec#) = [1] pi(up) = [1] pi(no) = [1] pi(sent) = [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: sent#(up(x)) -> sent#(x) and R consists of: r1: rec(rec(x)) -> sent(rec(x)) r2: rec(sent(x)) -> sent(rec(x)) r3: rec(no(x)) -> sent(rec(x)) r4: rec(bot()) -> up(sent(bot())) r5: rec(up(x)) -> up(rec(x)) r6: sent(up(x)) -> up(sent(x)) r7: no(up(x)) -> up(no(x)) r8: top(rec(up(x))) -> top(check(rec(x))) r9: top(sent(up(x))) -> top(check(rec(x))) r10: top(no(up(x))) -> top(check(rec(x))) r11: check(up(x)) -> up(check(x)) r12: check(sent(x)) -> sent(check(x)) r13: check(rec(x)) -> rec(check(x)) r14: check(no(x)) -> no(check(x)) r15: check(no(x)) -> no(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: sent#_A(x1) = max{4, x1 + 3} up_A(x1) = max{3, x1 + 2} precedence: sent# = up partial status: pi(sent#) = [1] pi(up) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: sent#_A(x1) = max{1, x1 - 1} up_A(x1) = x1 precedence: sent# = up partial status: pi(sent#) = [] pi(up) = [1] 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: no#(up(x)) -> no#(x) and R consists of: r1: rec(rec(x)) -> sent(rec(x)) r2: rec(sent(x)) -> sent(rec(x)) r3: rec(no(x)) -> sent(rec(x)) r4: rec(bot()) -> up(sent(bot())) r5: rec(up(x)) -> up(rec(x)) r6: sent(up(x)) -> up(sent(x)) r7: no(up(x)) -> up(no(x)) r8: top(rec(up(x))) -> top(check(rec(x))) r9: top(sent(up(x))) -> top(check(rec(x))) r10: top(no(up(x))) -> top(check(rec(x))) r11: check(up(x)) -> up(check(x)) r12: check(sent(x)) -> sent(check(x)) r13: check(rec(x)) -> rec(check(x)) r14: check(no(x)) -> no(check(x)) r15: check(no(x)) -> no(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: no#_A(x1) = max{4, x1 + 3} up_A(x1) = max{3, x1 + 2} precedence: no# = up partial status: pi(no#) = [1] pi(up) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: no#_A(x1) = max{1, x1 - 1} up_A(x1) = x1 precedence: no# = up partial status: pi(no#) = [] pi(up) = [1] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.