YES We show the termination of the TRS R: |0|(|#|()) -> |#|() +(x,|#|()) -> x +(|#|(),x) -> x +(|0|(x),|0|(y)) -> |0|(+(x,y)) +(|0|(x),|1|(y)) -> |1|(+(x,y)) +(|1|(x),|0|(y)) -> |1|(+(x,y)) +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) +(+(x,y),z) -> +(x,+(y,z)) -(|#|(),x) -> |#|() -(x,|#|()) -> x -(|0|(x),|0|(y)) -> |0|(-(x,y)) -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) -(|1|(x),|0|(y)) -> |1|(-(x,y)) -(|1|(x),|1|(y)) -> |0|(-(x,y)) not(true()) -> false() not(false()) -> true() if(true(),x,y) -> x if(false(),x,y) -> y eq(|#|(),|#|()) -> true() eq(|#|(),|1|(y)) -> false() eq(|1|(x),|#|()) -> false() eq(|#|(),|0|(y)) -> eq(|#|(),y) eq(|0|(x),|#|()) -> eq(x,|#|()) eq(|1|(x),|1|(y)) -> eq(x,y) eq(|0|(x),|1|(y)) -> false() eq(|1|(x),|0|(y)) -> false() eq(|0|(x),|0|(y)) -> eq(x,y) ge(|0|(x),|0|(y)) -> ge(x,y) ge(|0|(x),|1|(y)) -> not(ge(y,x)) ge(|1|(x),|0|(y)) -> ge(x,y) ge(|1|(x),|1|(y)) -> ge(x,y) ge(x,|#|()) -> true() ge(|#|(),|0|(x)) -> ge(|#|(),x) ge(|#|(),|1|(x)) -> false() log(x) -> -(|log'|(x),|1|(|#|())) |log'|(|#|()) -> |#|() |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) *(|#|(),x) -> |#|() *(|0|(x),y) -> |0|(*(x,y)) *(|1|(x),y) -> +(|0|(*(x,y)),y) *(*(x,y),z) -> *(x,*(y,z)) *(x,+(y,z)) -> +(*(x,y),*(x,z)) app(nil(),l) -> l app(cons(x,l1),l2) -> cons(x,app(l1,l2)) sum(nil()) -> |0|(|#|()) sum(cons(x,l)) -> +(x,sum(l)) sum(app(l1,l2)) -> +(sum(l1),sum(l2)) prod(nil()) -> |1|(|#|()) prod(cons(x,l)) -> *(x,prod(l)) prod(app(l1,l2)) -> *(prod(l1),prod(l2)) mem(x,nil()) -> false() mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) inter(x,nil()) -> nil() inter(nil(),x) -> nil() inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) ifinter(false(),x,l1,l2) -> inter(l1,l2) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: +#(|0|(x),|0|(y)) -> |0|#(+(x,y)) p2: +#(|0|(x),|0|(y)) -> +#(x,y) p3: +#(|0|(x),|1|(y)) -> +#(x,y) p4: +#(|1|(x),|0|(y)) -> +#(x,y) p5: +#(|1|(x),|1|(y)) -> |0|#(+(+(x,y),|1|(|#|()))) p6: +#(|1|(x),|1|(y)) -> +#(+(x,y),|1|(|#|())) p7: +#(|1|(x),|1|(y)) -> +#(x,y) p8: +#(+(x,y),z) -> +#(x,+(y,z)) p9: +#(+(x,y),z) -> +#(y,z) p10: -#(|0|(x),|0|(y)) -> |0|#(-(x,y)) p11: -#(|0|(x),|0|(y)) -> -#(x,y) p12: -#(|0|(x),|1|(y)) -> -#(-(x,y),|1|(|#|())) p13: -#(|0|(x),|1|(y)) -> -#(x,y) p14: -#(|1|(x),|0|(y)) -> -#(x,y) p15: -#(|1|(x),|1|(y)) -> |0|#(-(x,y)) p16: -#(|1|(x),|1|(y)) -> -#(x,y) p17: eq#(|#|(),|0|(y)) -> eq#(|#|(),y) p18: eq#(|0|(x),|#|()) -> eq#(x,|#|()) p19: eq#(|1|(x),|1|(y)) -> eq#(x,y) p20: eq#(|0|(x),|0|(y)) -> eq#(x,y) p21: ge#(|0|(x),|0|(y)) -> ge#(x,y) p22: ge#(|0|(x),|1|(y)) -> not#(ge(y,x)) p23: ge#(|0|(x),|1|(y)) -> ge#(y,x) p24: ge#(|1|(x),|0|(y)) -> ge#(x,y) p25: ge#(|1|(x),|1|(y)) -> ge#(x,y) p26: ge#(|#|(),|0|(x)) -> ge#(|#|(),x) p27: log#(x) -> -#(|log'|(x),|1|(|#|())) p28: log#(x) -> |log'|#(x) p29: |log'|#(|1|(x)) -> +#(|log'|(x),|1|(|#|())) p30: |log'|#(|1|(x)) -> |log'|#(x) p31: |log'|#(|0|(x)) -> if#(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) p32: |log'|#(|0|(x)) -> ge#(x,|1|(|#|())) p33: |log'|#(|0|(x)) -> +#(|log'|(x),|1|(|#|())) p34: |log'|#(|0|(x)) -> |log'|#(x) p35: *#(|0|(x),y) -> |0|#(*(x,y)) p36: *#(|0|(x),y) -> *#(x,y) p37: *#(|1|(x),y) -> +#(|0|(*(x,y)),y) p38: *#(|1|(x),y) -> |0|#(*(x,y)) p39: *#(|1|(x),y) -> *#(x,y) p40: *#(*(x,y),z) -> *#(x,*(y,z)) p41: *#(*(x,y),z) -> *#(y,z) p42: *#(x,+(y,z)) -> +#(*(x,y),*(x,z)) p43: *#(x,+(y,z)) -> *#(x,y) p44: *#(x,+(y,z)) -> *#(x,z) p45: app#(cons(x,l1),l2) -> app#(l1,l2) p46: sum#(nil()) -> |0|#(|#|()) p47: sum#(cons(x,l)) -> +#(x,sum(l)) p48: sum#(cons(x,l)) -> sum#(l) p49: sum#(app(l1,l2)) -> +#(sum(l1),sum(l2)) p50: sum#(app(l1,l2)) -> sum#(l1) p51: sum#(app(l1,l2)) -> sum#(l2) p52: prod#(cons(x,l)) -> *#(x,prod(l)) p53: prod#(cons(x,l)) -> prod#(l) p54: prod#(app(l1,l2)) -> *#(prod(l1),prod(l2)) p55: prod#(app(l1,l2)) -> prod#(l1) p56: prod#(app(l1,l2)) -> prod#(l2) p57: mem#(x,cons(y,l)) -> if#(eq(x,y),true(),mem(x,l)) p58: mem#(x,cons(y,l)) -> eq#(x,y) p59: mem#(x,cons(y,l)) -> mem#(x,l) p60: inter#(app(l1,l2),l3) -> app#(inter(l1,l3),inter(l2,l3)) p61: inter#(app(l1,l2),l3) -> inter#(l1,l3) p62: inter#(app(l1,l2),l3) -> inter#(l2,l3) p63: inter#(l1,app(l2,l3)) -> app#(inter(l1,l2),inter(l1,l3)) p64: inter#(l1,app(l2,l3)) -> inter#(l1,l2) p65: inter#(l1,app(l2,l3)) -> inter#(l1,l3) p66: inter#(cons(x,l1),l2) -> ifinter#(mem(x,l2),x,l1,l2) p67: inter#(cons(x,l1),l2) -> mem#(x,l2) p68: inter#(l1,cons(x,l2)) -> ifinter#(mem(x,l1),x,l2,l1) p69: inter#(l1,cons(x,l2)) -> mem#(x,l1) p70: ifinter#(true(),x,l1,l2) -> inter#(l1,l2) p71: ifinter#(false(),x,l1,l2) -> inter#(l1,l2) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p48, p50, p51} {p53, p55, p56} {p36, p39, p40, p41, p43, p44} {p30, p34} {p2, p3, p4, p6, p7, p8, p9} {p11, p12, p13, p14, p16} {p61, p62, p64, p65, p66, p68, p70, p71} {p59} {p19, p20} {p17} {p18} {p21, p23, p24, p25} {p26} {p45} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: sum#(app(l1,l2)) -> sum#(l2) p2: sum#(app(l1,l2)) -> sum#(l1) p3: sum#(cons(x,l)) -> sum#(l) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r10, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: sum#_A(x1) = x1 app_A(x1,x2) = x1 + x2 + 6 cons_A(x1,x2) = x1 + x2 + 5 |0|_A(x1) = x1 + 9 |#|_A() = 2 +_A(x1,x2) = x1 + x2 + 1 -_A(x1,x2) = x1 + 3 not_A(x1) = x1 + 6 true_A() = 1 false_A() = 3 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 6 |1|_A(x1) = x1 + 13 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 17 *_A(x1,x2) = x1 + x2 + 2 sum_A(x1) = x1 + 1 nil_A() = 16 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 7 base order 2: precedence: if > app = cons = eq = inter > sum# = sum = prod > + = * > - = |log'| > |0| = ge > nil > not = false = |1| > |#| > true partial status: pi(sum#) = [] pi(app) = [1, 2] pi(cons) = [2] pi(|0|) = [1] pi(|#|) = [] pi(+) = [] pi(-) = [1] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(|1|) = [1] pi(ge) = [] pi(|log'|) = [1] pi(*) = [] pi(sum) = [] pi(nil) = [] pi(prod) = [] pi(inter) = [1, 2] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: sum#(app(l1,l2)) -> sum#(l1) p2: sum#(cons(x,l)) -> sum#(l) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: sum#(app(l1,l2)) -> sum#(l1) p2: sum#(cons(x,l)) -> sum#(l) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r5, r6, r9, r10, r12, r13, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: sum#_A(x1) = x1 app_A(x1,x2) = x1 + 2 cons_A(x1,x2) = x1 + x2 + 7 |0|_A(x1) = x1 + 12 |#|_A() = 3 +_A(x1,x2) = x1 + x2 + 3 |1|_A(x1) = 16 -_A(x1,x2) = x1 + 11 not_A(x1) = x1 + 13 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 8 ge_A(x1,x2) = x1 + 8 |log'|_A(x1) = x1 + 11 *_A(x1,x2) = x1 + x2 + 2 sum_A(x1) = x1 + 3 nil_A() = 17 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 3 base order 2: precedence: if = eq > cons > - = inter > not = nil > |1| > + > sum > app = |0| = * = prod > |log'| > ge > sum# = |#| > false > true partial status: pi(sum#) = [] pi(app) = [1] pi(cons) = [1, 2] pi(|0|) = [1] pi(|#|) = [] pi(+) = [] pi(|1|) = [] pi(-) = [1] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [1] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [] pi(sum) = [1] pi(nil) = [] pi(prod) = [] pi(inter) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: sum#(cons(x,l)) -> sum#(l) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: sum#(cons(x,l)) -> sum#(l) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r5, r6, r9, r12, r13, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: sum#_A(x1) = x1 cons_A(x1,x2) = x1 + x2 + 14 |0|_A(x1) = x1 + 11 |#|_A() = 2 +_A(x1,x2) = x1 + 4 |1|_A(x1) = 3 -_A(x1,x2) = 4 not_A(x1) = x1 + 12 true_A() = 1 false_A() = 4 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 15 ge_A(x1,x2) = x1 + 4 |log'|_A(x1) = x1 + 6 *_A(x1,x2) = x1 + x2 + 12 sum_A(x1) = x1 + 1 nil_A() = 14 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 16 base order 2: precedence: if = eq > sum# = cons > sum = inter > nil > |#| > not = prod > |0| = * > + = |log'| > ge > - = false > |1| = true partial status: pi(sum#) = [] pi(cons) = [2] pi(|0|) = [1] pi(|#|) = [] pi(+) = [1] pi(|1|) = [] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [2] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: prod#(app(l1,l2)) -> prod#(l2) p2: prod#(app(l1,l2)) -> prod#(l1) p3: prod#(cons(x,l)) -> prod#(l) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r10, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: prod#_A(x1) = x1 app_A(x1,x2) = x1 + x2 + 5 cons_A(x1,x2) = x1 + x2 + 4 |0|_A(x1) = x1 + 9 |#|_A() = 3 +_A(x1,x2) = x1 + x2 + 1 -_A(x1,x2) = x1 + 4 not_A(x1) = x1 + 10 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 5 |1|_A(x1) = x1 + 14 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 19 *_A(x1,x2) = x1 + x2 + 2 sum_A(x1) = x1 + 1 nil_A() = 18 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 6 base order 2: precedence: if > prod# = app = cons = eq = inter > sum = prod > + = * > - = |log'| > |0| = ge > nil > false > |1| > |#| = not > true partial status: pi(prod#) = [] pi(app) = [1, 2] pi(cons) = [2] pi(|0|) = [1] pi(|#|) = [] pi(+) = [] pi(-) = [1] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(|1|) = [1] pi(ge) = [] pi(|log'|) = [1] pi(*) = [] pi(sum) = [] pi(nil) = [] pi(prod) = [] pi(inter) = [1, 2] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: prod#(app(l1,l2)) -> prod#(l1) p2: prod#(cons(x,l)) -> prod#(l) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: prod#(app(l1,l2)) -> prod#(l1) p2: prod#(cons(x,l)) -> prod#(l) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r5, r6, r9, r10, r12, r13, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: prod#_A(x1) = x1 + 19 app_A(x1,x2) = x1 + 2 cons_A(x1,x2) = x1 + x2 + 18 |0|_A(x1) = x1 + 23 |#|_A() = 3 +_A(x1,x2) = x1 + x2 + 14 |1|_A(x1) = 10 -_A(x1,x2) = x1 + 11 not_A(x1) = x1 + 24 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 19 ge_A(x1,x2) = x1 + 11 |log'|_A(x1) = x1 + 12 *_A(x1,x2) = x1 + x2 + 11 sum_A(x1) = x1 + 3 nil_A() = 27 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 3 base order 2: precedence: + > prod# = eq = sum > cons = not > inter > nil > |0| = * > - = |log'| > if = ge > app = |1| = prod > |#| > false > true partial status: pi(prod#) = [] pi(app) = [1] pi(cons) = [1, 2] pi(|0|) = [1] pi(|#|) = [] pi(+) = [] pi(|1|) = [] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [1, 2] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [] pi(sum) = [1] pi(nil) = [] pi(prod) = [] pi(inter) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: prod#(cons(x,l)) -> prod#(l) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: prod#(cons(x,l)) -> prod#(l) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r5, r6, r9, r12, r13, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: prod#_A(x1) = x1 cons_A(x1,x2) = x1 + x2 + 14 |0|_A(x1) = x1 + 11 |#|_A() = 2 +_A(x1,x2) = x1 + 4 |1|_A(x1) = 3 -_A(x1,x2) = 4 not_A(x1) = x1 + 12 true_A() = 1 false_A() = 4 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 15 ge_A(x1,x2) = x1 + 4 |log'|_A(x1) = x1 + 6 *_A(x1,x2) = x1 + x2 + 12 sum_A(x1) = x1 + 1 nil_A() = 14 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 16 base order 2: precedence: if = eq > prod# = cons > sum = inter > nil > |#| > not = prod > |0| = * > + = |log'| > ge > - = false > |1| = true partial status: pi(prod#) = [] pi(cons) = [2] pi(|0|) = [1] pi(|#|) = [] pi(+) = [1] pi(|1|) = [] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [2] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: *#(x,+(y,z)) -> *#(x,z) p2: *#(x,+(y,z)) -> *#(x,y) p3: *#(*(x,y),z) -> *#(y,z) p4: *#(*(x,y),z) -> *#(x,*(y,z)) p5: *#(|1|(x),y) -> *#(x,y) p6: *#(|0|(x),y) -> *#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: *#_A(x1,x2) = x1 + 6 +_A(x1,x2) = x1 + x2 + 5 *_A(x1,x2) = x1 + x2 + 10 |1|_A(x1) = x1 + 20 |0|_A(x1) = x1 + 11 |#|_A() = 3 -_A(x1,x2) = x2 + 4 eq_A(x1,x2) = x1 + x2 + 5 true_A() = 1 false_A() = 2 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 2 sum_A(x1) = x1 + 2 nil_A() = 24 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 4 base order 2: precedence: + = inter > - = eq = sum = nil > * = |#| > prod > |1| = |0| > *# = ge > false = |log'| > true partial status: pi(*#) = [] pi(+) = [] pi(*) = [] pi(|1|) = [1] pi(|0|) = [1] pi(|#|) = [] pi(-) = [2] pi(eq) = [1] pi(true) = [] pi(false) = [] pi(ge) = [1] pi(|log'|) = [1] pi(sum) = [1] pi(nil) = [] pi(prod) = [] pi(inter) = [2] The following rules are removed: p3 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: *#(x,+(y,z)) -> *#(x,z) p2: *#(x,+(y,z)) -> *#(x,y) p3: *#(*(x,y),z) -> *#(x,*(y,z)) p4: *#(|1|(x),y) -> *#(x,y) p5: *#(|0|(x),y) -> *#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: *#(x,+(y,z)) -> *#(x,z) p2: *#(|0|(x),y) -> *#(x,y) p3: *#(|1|(x),y) -> *#(x,y) p4: *#(*(x,y),z) -> *#(x,*(y,z)) p5: *#(x,+(y,z)) -> *#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r3, r9, r10, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: *#_A(x1,x2) = x1 + 2 +_A(x1,x2) = x2 + 1 |0|_A(x1) = x1 + 10 |1|_A(x1) = x1 + 14 *_A(x1,x2) = x1 + 3 |#|_A() = 3 -_A(x1,x2) = x1 + 3 not_A(x1) = x1 + 8 true_A() = 2 false_A() = 1 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 5 ge_A(x1,x2) = x1 + 3 |log'|_A(x1) = x1 + 9 sum_A(x1) = x1 + 2 nil_A() = 18 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 6 base order 2: precedence: inter > sum > eq > nil = prod > |#| > true > not > *# = + = |0| = |1| = * = |log'| > - = if = ge > false partial status: pi(*#) = [1] pi(+) = [] pi(|0|) = [1] pi(|1|) = [1] pi(*) = [1] pi(|#|) = [] pi(-) = [1] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [] pi(|log'|) = [] pi(sum) = [1] pi(nil) = [] pi(prod) = [] pi(inter) = [1] The following rules are removed: p2 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: *#(x,+(y,z)) -> *#(x,z) p2: *#(|1|(x),y) -> *#(x,y) p3: *#(*(x,y),z) -> *#(x,*(y,z)) p4: *#(x,+(y,z)) -> *#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: *#(x,+(y,z)) -> *#(x,z) p2: *#(x,+(y,z)) -> *#(x,y) p3: *#(*(x,y),z) -> *#(x,*(y,z)) p4: *#(|1|(x),y) -> *#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r10, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r49, r54, r55, r60 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: *#_A(x1,x2) = x1 + 4 +_A(x1,x2) = x1 + x2 + 3 *_A(x1,x2) = x1 + x2 + 26 |1|_A(x1) = x1 + 25 |0|_A(x1) = x1 + 23 |#|_A() = 11 -_A(x1,x2) = x1 + 14 not_A(x1) = x1 + 13 true_A() = 10 false_A() = 8 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 11 ge_A(x1,x2) = x1 + 11 |log'|_A(x1) = x1 + 38 prod_A(x1) = x1 + 31 nil_A() = 6 inter_A(x1,x2) = 7 ifinter_A(x1,x2,x3,x4) = x3 + 8 cons_A(x1,x2) = 7 base order 2: precedence: - = not = |log'| > eq = ge > + = * = |1| = |0| = true = prod > *# = |#| > false = ifinter > if = inter > nil > cons partial status: pi(*#) = [] pi(+) = [2] pi(*) = [2] pi(|1|) = [] pi(|0|) = [] pi(|#|) = [] pi(-) = [1] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [1, 2] pi(ge) = [1] pi(|log'|) = [] pi(prod) = [1] pi(nil) = [] pi(inter) = [] pi(ifinter) = [3] pi(cons) = [] The following rules are removed: p3 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: *#(x,+(y,z)) -> *#(x,z) p2: *#(x,+(y,z)) -> *#(x,y) p3: *#(|1|(x),y) -> *#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: *#(x,+(y,z)) -> *#(x,z) p2: *#(|1|(x),y) -> *#(x,y) p3: *#(x,+(y,z)) -> *#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r10, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: *#_A(x1,x2) = x1 + x2 + 16 +_A(x1,x2) = x1 + x2 + 11 |1|_A(x1) = x1 + 15 |0|_A(x1) = x1 + 10 |#|_A() = 3 -_A(x1,x2) = x1 + 1 not_A(x1) = x1 + 11 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + 5 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 9 *_A(x1,x2) = x1 + x2 + 16 app_A(x1,x2) = x1 + x2 + 27 cons_A(x1,x2) = x1 + 4 sum_A(x1) = x1 + 5 nil_A() = 19 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 28 base order 2: precedence: *# = app = inter > + = * = sum = nil = prod > |0| = - > |log'| > |1| = not = false = ge > true > if = eq > |#| = cons partial status: pi(*#) = [2] pi(+) = [] pi(|1|) = [1] pi(|0|) = [1] pi(|#|) = [] pi(-) = [1] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [] pi(app) = [1, 2] pi(cons) = [1] pi(sum) = [1] pi(nil) = [] pi(prod) = [1] pi(inter) = [2] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: *#(|1|(x),y) -> *#(x,y) p2: *#(x,+(y,z)) -> *#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: *#(|1|(x),y) -> *#(x,y) p2: *#(x,+(y,z)) -> *#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55, r60 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: *#_A(x1,x2) = x1 + x2 + 21 |1|_A(x1) = x1 + 5 +_A(x1,x2) = x1 + x2 + 20 |0|_A(x1) = x1 + 18 |#|_A() = 3 -_A(x1,x2) = x2 + 4 not_A(x1) = x1 + 19 true_A() = 2 false_A() = 6 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 14 ge_A(x1,x2) = x1 + 4 |log'|_A(x1) = x1 + 14 *_A(x1,x2) = x1 + x2 + 19 app_A(x1,x2) = x2 + 24 cons_A(x1,x2) = 1 sum_A(x1) = x1 + 5 nil_A() = 22 prod_A(x1) = x1 + 23 inter_A(x1,x2) = x1 + 23 ifinter_A(x1,x2,x3,x4) = 2 base order 2: precedence: if > eq = ifinter > not = inter > true = nil > *# = |#| > + = * = prod > cons > app > sum > |0| > |log'| > ge > false > |1| > - partial status: pi(*#) = [] pi(|1|) = [] pi(+) = [2] pi(|0|) = [1] pi(|#|) = [] pi(-) = [2] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [2] pi(app) = [] pi(cons) = [] pi(sum) = [1] pi(nil) = [] pi(prod) = [1] pi(inter) = [1] pi(ifinter) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: *#(x,+(y,z)) -> *#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: *#(x,+(y,z)) -> *#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: *#_A(x1,x2) = x2 +_A(x1,x2) = x1 + x2 + 10 |0|_A(x1) = x1 + 9 |#|_A() = 3 -_A(x1,x2) = 4 not_A(x1) = x1 + 10 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 5 |1|_A(x1) = x1 + 23 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 1 *_A(x1,x2) = x1 + x2 + 24 app_A(x1,x2) = x1 + x2 + 35 cons_A(x1,x2) = x1 + 4 sum_A(x1) = x1 + 5 nil_A() = 27 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 36 base order 2: precedence: * = nil = inter > *# = + = |1| = app = prod > not = sum > |0| > - = |log'| > if = ge > |#| = eq > false = cons > true partial status: pi(*#) = [] pi(+) = [1] pi(|0|) = [] pi(|#|) = [] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(|1|) = [] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [1] pi(app) = [1] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: |log'|#(|0|(x)) -> |log'|#(x) p2: |log'|#(|1|(x)) -> |log'|#(x) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: |log'|#_A(x1) = x1 |0|_A(x1) = x1 + 10 |1|_A(x1) = x1 + 27 |#|_A() = 5 +_A(x1,x2) = x1 + x2 + 11 -_A(x1,x2) = 6 not_A(x1) = x1 + 11 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x2 + 4 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 34 *_A(x1,x2) = x1 + x2 + 28 app_A(x1,x2) = x1 + x2 + 41 cons_A(x1,x2) = x1 + 5 sum_A(x1) = x1 + 6 nil_A() = 33 prod_A(x1) = x1 + 6 inter_A(x1,x2) = x1 + x2 + 42 base order 2: precedence: + = * > false = eq = cons > |log'| = app = inter > |log'|# = sum = nil > |0| = |1| = |#| = ge > - = not = if = prod > true partial status: pi(|log'|#) = [1] pi(|0|) = [1] pi(|1|) = [] pi(|#|) = [] pi(+) = [] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [] pi(|log'|) = [1] pi(*) = [] pi(app) = [2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [1, 2] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: |log'|#(|1|(x)) -> |log'|#(x) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: |log'|#(|1|(x)) -> |log'|#(x) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r9, r15, r16, r18, r19, r20, r22, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: |log'|#_A(x1) = x1 |1|_A(x1) = x1 + 10 |0|_A(x1) = x1 + 26 |#|_A() = 2 +_A(x1,x2) = x1 + 3 -_A(x1,x2) = x2 + 3 not_A(x1) = x1 + 30 true_A() = 1 false_A() = 30 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x2 + 27 ge_A(x1,x2) = x1 + 29 |log'|_A(x1) = x1 + 6 *_A(x1,x2) = x1 + x2 + 27 sum_A(x1) = x1 + 1 nil_A() = 31 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 31 base order 2: precedence: |log'| > if > inter > * = nil > |1| = + > |#| = not = prod > ge = sum > |0| > - = eq > |log'|# = false > true partial status: pi(|log'|#) = [1] pi(|1|) = [1] pi(|0|) = [1] pi(|#|) = [] pi(+) = [1] pi(-) = [2] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [] pi(|log'|) = [1] pi(*) = [1] pi(sum) = [1] pi(nil) = [] pi(prod) = [] pi(inter) = [1, 2] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: +#(|0|(x),|0|(y)) -> +#(x,y) p2: +#(+(x,y),z) -> +#(y,z) p3: +#(+(x,y),z) -> +#(x,+(y,z)) p4: +#(|1|(x),|1|(y)) -> +#(x,y) p5: +#(|1|(x),|1|(y)) -> +#(+(x,y),|1|(|#|())) p6: +#(|0|(x),|1|(y)) -> +#(x,y) p7: +#(|1|(x),|0|(y)) -> +#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: +#_A(x1,x2) = x1 + x2 + 25 |0|_A(x1) = x1 + 9 +_A(x1,x2) = x1 + x2 + 11 |1|_A(x1) = x1 + 24 |#|_A() = 3 -_A(x1,x2) = x1 + 4 not_A(x1) = x1 false_A() = 2 true_A() = 1 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 5 ge_A(x1,x2) = x1 + 5 |log'|_A(x1) = x1 + 2 *_A(x1,x2) = x1 + x2 + 10 app_A(x1,x2) = x1 + x2 + 22 cons_A(x1,x2) = x1 + 4 sum_A(x1) = x1 + 5 nil_A() = 28 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 23 base order 2: precedence: app = inter > prod > + = - = * > eq = sum = nil > +# = |0| = |1| = not > |log'| > if = ge > |#| = cons > false > true partial status: pi(+#) = [] pi(|0|) = [] pi(+) = [1] pi(|1|) = [1] pi(|#|) = [] pi(-) = [1] pi(not) = [] pi(false) = [] pi(true) = [] pi(if) = [] pi(eq) = [] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [] pi(app) = [1, 2] pi(cons) = [1] pi(sum) = [1] pi(nil) = [] pi(prod) = [] pi(inter) = [1, 2] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: +#(+(x,y),z) -> +#(y,z) p2: +#(+(x,y),z) -> +#(x,+(y,z)) p3: +#(|1|(x),|1|(y)) -> +#(x,y) p4: +#(|1|(x),|1|(y)) -> +#(+(x,y),|1|(|#|())) p5: +#(|0|(x),|1|(y)) -> +#(x,y) p6: +#(|1|(x),|0|(y)) -> +#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: +#(+(x,y),z) -> +#(y,z) p2: +#(|1|(x),|0|(y)) -> +#(x,y) p3: +#(|0|(x),|1|(y)) -> +#(x,y) p4: +#(|1|(x),|1|(y)) -> +#(+(x,y),|1|(|#|())) p5: +#(|1|(x),|1|(y)) -> +#(x,y) p6: +#(+(x,y),z) -> +#(x,+(y,z)) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: +#_A(x1,x2) = x1 + x2 + 10 +_A(x1,x2) = x1 + x2 + 11 |1|_A(x1) = x1 + 24 |0|_A(x1) = x1 + 9 |#|_A() = 3 -_A(x1,x2) = x2 + 4 not_A(x1) = x1 + 5 true_A() = 2 false_A() = 1 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 5 ge_A(x1,x2) = x1 + 3 |log'|_A(x1) = x1 + 2 *_A(x1,x2) = x1 + x2 + 25 app_A(x1,x2) = x1 + x2 + 36 cons_A(x1,x2) = x1 + 4 sum_A(x1) = x1 + 5 nil_A() = 28 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 37 base order 2: precedence: not > eq = ge = * > + = false > app = inter > prod > cons = sum = nil > +# = |1| = |0| = - > |log'| > |#| = if > true partial status: pi(+#) = [] pi(+) = [1, 2] pi(|1|) = [1] pi(|0|) = [] pi(|#|) = [] pi(-) = [2] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [2] pi(app) = [1, 2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [] pi(inter) = [1, 2] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: +#(|1|(x),|0|(y)) -> +#(x,y) p2: +#(|0|(x),|1|(y)) -> +#(x,y) p3: +#(|1|(x),|1|(y)) -> +#(+(x,y),|1|(|#|())) p4: +#(|1|(x),|1|(y)) -> +#(x,y) p5: +#(+(x,y),z) -> +#(x,+(y,z)) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: +#(|1|(x),|0|(y)) -> +#(x,y) p2: +#(+(x,y),z) -> +#(x,+(y,z)) p3: +#(|1|(x),|1|(y)) -> +#(x,y) p4: +#(|1|(x),|1|(y)) -> +#(+(x,y),|1|(|#|())) p5: +#(|0|(x),|1|(y)) -> +#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: +#_A(x1,x2) = x1 + x2 + 8 |1|_A(x1) = x1 + 23 |0|_A(x1) = x1 + 9 +_A(x1,x2) = x1 + x2 + 10 |#|_A() = 3 -_A(x1,x2) = x1 + 8 not_A(x1) = x1 + 10 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 5 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 1 *_A(x1,x2) = x1 + x2 + 24 app_A(x1,x2) = x1 + x2 + 35 cons_A(x1,x2) = x1 + 4 sum_A(x1) = x1 + 5 nil_A() = 27 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 36 base order 2: precedence: - = inter > +# = eq = ge = nil > |1| = + = if = * > not = cons > app > sum = prod > |0| > |log'| > |#| > false > true partial status: pi(+#) = [] pi(|1|) = [] pi(|0|) = [1] pi(+) = [] pi(|#|) = [] pi(-) = [1] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [] pi(|log'|) = [1] pi(*) = [1, 2] pi(app) = [2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [] pi(inter) = [1] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: +#(+(x,y),z) -> +#(x,+(y,z)) p2: +#(|1|(x),|1|(y)) -> +#(x,y) p3: +#(|1|(x),|1|(y)) -> +#(+(x,y),|1|(|#|())) p4: +#(|0|(x),|1|(y)) -> +#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: +#(+(x,y),z) -> +#(x,+(y,z)) p2: +#(|0|(x),|1|(y)) -> +#(x,y) p3: +#(|1|(x),|1|(y)) -> +#(+(x,y),|1|(|#|())) p4: +#(|1|(x),|1|(y)) -> +#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: +#_A(x1,x2) = x1 + x2 + 20 +_A(x1,x2) = x1 + x2 + 9 |0|_A(x1) = x1 + 7 |1|_A(x1) = x1 + 19 |#|_A() = 2 -_A(x1,x2) = 8 not_A(x1) = x1 + 8 true_A() = 1 false_A() = 1 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 4 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 1 *_A(x1,x2) = x1 + x2 + 8 app_A(x1,x2) = x1 + x2 + 18 cons_A(x1,x2) = x1 + 3 sum_A(x1) = x1 + 4 nil_A() = 22 prod_A(x1) = x1 + 4 inter_A(x1,x2) = x1 + x2 + 19 base order 2: precedence: eq = * > cons > inter > app > +# = sum = nil = prod > |0| = |1| = not > + > |log'| > if = ge > - > |#| > true = false partial status: pi(+#) = [] pi(+) = [] pi(|0|) = [] pi(|1|) = [1] pi(|#|) = [] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [1] pi(app) = [2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [] pi(inter) = [] The following rules are removed: p2 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: +#(+(x,y),z) -> +#(x,+(y,z)) p2: +#(|1|(x),|1|(y)) -> +#(+(x,y),|1|(|#|())) p3: +#(|1|(x),|1|(y)) -> +#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: +#(+(x,y),z) -> +#(x,+(y,z)) p2: +#(|1|(x),|1|(y)) -> +#(x,y) p3: +#(|1|(x),|1|(y)) -> +#(+(x,y),|1|(|#|())) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r15, r16, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: +#_A(x1,x2) = x1 + x2 + 33 +_A(x1,x2) = x1 + x2 + 14 |1|_A(x1) = x1 + 32 |#|_A() = 5 |0|_A(x1) = x1 + 12 -_A(x1,x2) = 6 not_A(x1) = 3 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x3 + 2 eq_A(x1,x2) = x1 + 6 ge_A(x1,x2) = 4 |log'|_A(x1) = x1 + 39 *_A(x1,x2) = x1 + x2 + 13 app_A(x1,x2) = x1 + x2 + 33 cons_A(x1,x2) = x1 + 8 sum_A(x1) = x1 + 9 nil_A() = 38 prod_A(x1) = x1 + 9 inter_A(x1,x2) = x1 + x2 + 34 base order 2: precedence: +# > |#| > + > |log'| = * > app > prod > |1| = sum > |0| = - = ge > not = if > cons > inter > nil > true > eq > false partial status: pi(+#) = [] pi(+) = [] pi(|1|) = [1] pi(|#|) = [] pi(|0|) = [1] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [3] pi(eq) = [] pi(ge) = [] pi(|log'|) = [1] pi(*) = [] pi(app) = [1, 2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [] pi(inter) = [2] The following rules are removed: p2 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: +#(+(x,y),z) -> +#(x,+(y,z)) p2: +#(|1|(x),|1|(y)) -> +#(+(x,y),|1|(|#|())) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: +#(+(x,y),z) -> +#(x,+(y,z)) p2: +#(|1|(x),|1|(y)) -> +#(+(x,y),|1|(|#|())) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r15, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: +#_A(x1,x2) = x1 + x2 + 1 +_A(x1,x2) = x1 + x2 + 5 |1|_A(x1) = x1 + 23 |#|_A() = 3 |0|_A(x1) = x1 + 14 -_A(x1,x2) = 4 not_A(x1) = x1 true_A() = 2 false_A() = 1 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 5 ge_A(x1,x2) = x1 + 3 |log'|_A(x1) = x1 + 13 *_A(x1,x2) = x1 + x2 + 24 app_A(x1,x2) = x1 + x2 + 35 cons_A(x1,x2) = x1 + 4 sum_A(x1) = x1 + 5 nil_A() = 27 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 36 base order 2: precedence: if = eq = * > cons > app = inter > sum = nil = prod > +# = + = |0| > |log'| > |1| = not = ge > - > |#| > false > true partial status: pi(+#) = [1] pi(+) = [] pi(|1|) = [1] pi(|#|) = [] pi(|0|) = [] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [1] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [1] pi(app) = [1, 2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [2] The following rules are removed: p2 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: +#(+(x,y),z) -> +#(x,+(y,z)) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: +#(+(x,y),z) -> +#(x,+(y,z)) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: +#_A(x1,x2) = x1 + x2 + 1 +_A(x1,x2) = x1 + x2 + 5 |0|_A(x1) = x1 + 12 |#|_A() = 1 |1|_A(x1) = x1 + 26 -_A(x1,x2) = x1 + 5 not_A(x1) = x1 + 27 true_A() = 10 false_A() = 11 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 27 ge_A(x1,x2) = x2 + 10 |log'|_A(x1) = x1 + 29 *_A(x1,x2) = x1 + x2 + 13 inter_A(x1,x2) = 3 nil_A() = 2 base order 2: precedence: +# = - = if = eq = * > + = |0| = ge > true > |#| = |1| = |log'| > false > not = inter > nil partial status: pi(+#) = [1] pi(+) = [] pi(|0|) = [1] pi(|#|) = [] pi(|1|) = [1] pi(-) = [1] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [1] pi(ge) = [2] pi(|log'|) = [1] pi(*) = [] pi(inter) = [] pi(nil) = [] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: -#(|0|(x),|0|(y)) -> -#(x,y) p2: -#(|1|(x),|1|(y)) -> -#(x,y) p3: -#(|1|(x),|0|(y)) -> -#(x,y) p4: -#(|0|(x),|1|(y)) -> -#(x,y) p5: -#(|0|(x),|1|(y)) -> -#(-(x,y),|1|(|#|())) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r10, r11, r12, r13, r14, r15, r16, r18, r20, r21, r25, r26, r28, r29, r30, r31, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: -#_A(x1,x2) = x1 + 6 |0|_A(x1) = x1 + 7 |1|_A(x1) = x1 + 7 -_A(x1,x2) = x1 |#|_A() = 4 +_A(x1,x2) = x1 + x2 + 6 not_A(x1) = x1 + 7 true_A() = 3 false_A() = 1 if_A(x1,x2,x3) = x3 + 2 eq_A(x1,x2) = 2 ge_A(x1,x2) = x1 + x2 + 1 |log'|_A(x1) = x1 + 6 *_A(x1,x2) = x1 + x2 + 8 app_A(x1,x2) = x1 + x2 + 21 cons_A(x1,x2) = x1 + 5 sum_A(x1) = x1 + 6 nil_A() = 12 prod_A(x1) = x1 + 6 inter_A(x1,x2) = x1 + x2 + 22 base order 2: precedence: prod > app = inter > if = * = nil > cons = sum > -# = |0| = - = + > |log'| > ge > |#| > false > not > true > |1| = eq partial status: pi(-#) = [] pi(|0|) = [1] pi(|1|) = [1] pi(-) = [1] pi(|#|) = [] pi(+) = [1, 2] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [1, 2] pi(|log'|) = [1] pi(*) = [1, 2] pi(app) = [] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [] The following rules are removed: p5 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: -#(|0|(x),|0|(y)) -> -#(x,y) p2: -#(|1|(x),|1|(y)) -> -#(x,y) p3: -#(|1|(x),|0|(y)) -> -#(x,y) p4: -#(|0|(x),|1|(y)) -> -#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: -#(|0|(x),|0|(y)) -> -#(x,y) p2: -#(|0|(x),|1|(y)) -> -#(x,y) p3: -#(|1|(x),|0|(y)) -> -#(x,y) p4: -#(|1|(x),|1|(y)) -> -#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r10, r15, r16, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55, r60 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: -#_A(x1,x2) = x1 + x2 + 17 |0|_A(x1) = x1 + 16 |1|_A(x1) = x1 + 4 |#|_A() = 6 +_A(x1,x2) = x1 + x2 + 5 -_A(x1,x2) = x1 + 3 not_A(x1) = x1 + 21 true_A() = 25 false_A() = 5 eq_A(x1,x2) = x1 + x2 + 27 ge_A(x1,x2) = x1 + 26 |log'|_A(x1) = x1 + 3 *_A(x1,x2) = x1 + x2 + 17 app_A(x1,x2) = 5 cons_A(x1,x2) = 4 sum_A(x1) = x1 + 1 nil_A() = 23 prod_A(x1) = x1 + 6 inter_A(x1,x2) = 24 ifinter_A(x1,x2,x3,x4) = 25 base order 2: precedence: not > eq = ge > false > true = ifinter > inter > * = nil > -# = |0| = + = sum = prod > - = app > cons > |1| = |#| = |log'| partial status: pi(-#) = [2] pi(|0|) = [1] pi(|1|) = [] pi(|#|) = [] pi(+) = [1, 2] pi(-) = [1] pi(not) = [] pi(true) = [] pi(false) = [] pi(eq) = [1] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [2] pi(app) = [] pi(cons) = [] pi(sum) = [1] pi(nil) = [] pi(prod) = [1] pi(inter) = [] pi(ifinter) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: -#(|0|(x),|1|(y)) -> -#(x,y) p2: -#(|1|(x),|0|(y)) -> -#(x,y) p3: -#(|1|(x),|1|(y)) -> -#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: -#(|0|(x),|1|(y)) -> -#(x,y) p2: -#(|1|(x),|1|(y)) -> -#(x,y) p3: -#(|1|(x),|0|(y)) -> -#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: -#_A(x1,x2) = x1 + x2 + 24 |0|_A(x1) = x1 + 9 |1|_A(x1) = x1 + 23 |#|_A() = 3 +_A(x1,x2) = x1 + x2 + 10 -_A(x1,x2) = 4 not_A(x1) = x1 + 10 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 5 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 8 *_A(x1,x2) = x1 + x2 + 11 app_A(x1,x2) = x1 + x2 + 22 cons_A(x1,x2) = x1 + 4 sum_A(x1) = x1 + 5 nil_A() = 27 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 23 base order 2: precedence: nil > if = eq = inter > -# = + > |0| = |1| = not = false = * > - = |log'| = app = cons = sum > ge = prod > |#| > true partial status: pi(-#) = [2] pi(|0|) = [] pi(|1|) = [1] pi(|#|) = [] pi(+) = [] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [2] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [] pi(app) = [2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [1] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: -#(|1|(x),|1|(y)) -> -#(x,y) p2: -#(|1|(x),|0|(y)) -> -#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: -#(|1|(x),|1|(y)) -> -#(x,y) p2: -#(|1|(x),|0|(y)) -> -#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55, r60 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: -#_A(x1,x2) = x1 + x2 + 6 |1|_A(x1) = x1 + 5 |0|_A(x1) = x1 + 10 |#|_A() = 3 +_A(x1,x2) = x1 + x2 + 12 -_A(x1,x2) = 4 not_A(x1) = x1 + 2 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 6 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 2 *_A(x1,x2) = x1 + x2 + 11 app_A(x1,x2) = x1 + x2 + 23 cons_A(x1,x2) = x1 + 4 sum_A(x1) = x1 + 5 nil_A() = 14 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 24 ifinter_A(x1,x2,x3,x4) = x2 + x3 + 5 base order 2: precedence: -# > |1| = |0| = + > not = |log'| > if = ge > - = app = inter = ifinter > * = sum = nil = prod > false = eq > cons > true > |#| partial status: pi(-#) = [1] pi(|1|) = [] pi(|0|) = [1] pi(|#|) = [] pi(+) = [1, 2] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [1] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [1] pi(app) = [] pi(cons) = [] pi(sum) = [1] pi(nil) = [] pi(prod) = [1] pi(inter) = [1] pi(ifinter) = [3] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: -#(|1|(x),|0|(y)) -> -#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: -#(|1|(x),|0|(y)) -> -#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: -#_A(x1,x2) = x1 + x2 + 13 |1|_A(x1) = x1 + 21 |0|_A(x1) = x1 + 14 |#|_A() = 5 +_A(x1,x2) = x1 + x2 + 19 -_A(x1,x2) = 6 not_A(x1) = x1 + 15 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x2 + 4 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 13 *_A(x1,x2) = x1 + x2 + 20 app_A(x1,x2) = x1 + x2 + 33 cons_A(x1,x2) = x1 + 5 sum_A(x1) = x1 + 6 nil_A() = 27 prod_A(x1) = x1 + 6 inter_A(x1,x2) = x1 + x2 + 34 base order 2: precedence: + = prod > app > if = * > eq = cons = sum > inter > -# = nil > |0| > - = |log'| > |1| = not = ge > |#| > false > true partial status: pi(-#) = [1] pi(|1|) = [1] pi(|0|) = [1] pi(|#|) = [] pi(+) = [1, 2] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [] pi(|log'|) = [] pi(*) = [1, 2] pi(app) = [1, 2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [2] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ifinter#(false(),x,l1,l2) -> inter#(l1,l2) p2: inter#(l1,cons(x,l2)) -> ifinter#(mem(x,l1),x,l2,l1) p3: ifinter#(true(),x,l1,l2) -> inter#(l1,l2) p4: inter#(cons(x,l1),l2) -> ifinter#(mem(x,l2),x,l1,l2) p5: inter#(l1,app(l2,l3)) -> inter#(l1,l3) p6: inter#(l1,app(l2,l3)) -> inter#(l1,l2) p7: inter#(app(l1,l2),l3) -> inter#(l2,l3) p8: inter#(app(l1,l2),l3) -> inter#(l1,l3) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r10, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r32, r33, r34, r36, r39, r46, r49, r52, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: ifinter#_A(x1,x2,x3,x4) = x3 + x4 + 14 false_A() = 2 inter#_A(x1,x2) = x1 + x2 + 13 cons_A(x1,x2) = x1 + x2 + 11 mem_A(x1,x2) = x1 + x2 + 12 true_A() = 1 app_A(x1,x2) = x1 + x2 + 12 |0|_A(x1) = x1 + 7 |#|_A() = 4 +_A(x1,x2) = x1 + x2 + 9 -_A(x1,x2) = x1 + 4 not_A(x1) = x1 + 8 if_A(x1,x2,x3) = x1 + x2 + x3 + 8 eq_A(x1,x2) = x1 + x2 + 1 |1|_A(x1) = x1 + 21 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 17 *_A(x1,x2) = x1 + x2 + 8 sum_A(x1) = x1 + 1 nil_A() = 26 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 13 base order 2: precedence: inter# = if = sum = inter > mem = app = nil > eq > ifinter# = cons > prod > |0| = + = - = |1| = * > not = |log'| > ge > |#| > false > true partial status: pi(ifinter#) = [] pi(false) = [] pi(inter#) = [] pi(cons) = [] pi(mem) = [] pi(true) = [] pi(app) = [2] pi(|0|) = [] pi(|#|) = [] pi(+) = [] pi(-) = [1] pi(not) = [] pi(if) = [1, 3] pi(eq) = [2] pi(|1|) = [] pi(ge) = [] pi(|log'|) = [1] pi(*) = [] pi(sum) = [1] pi(nil) = [] pi(prod) = [] pi(inter) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: inter#(l1,cons(x,l2)) -> ifinter#(mem(x,l1),x,l2,l1) p2: ifinter#(true(),x,l1,l2) -> inter#(l1,l2) p3: inter#(cons(x,l1),l2) -> ifinter#(mem(x,l2),x,l1,l2) p4: inter#(l1,app(l2,l3)) -> inter#(l1,l3) p5: inter#(l1,app(l2,l3)) -> inter#(l1,l2) p6: inter#(app(l1,l2),l3) -> inter#(l2,l3) p7: inter#(app(l1,l2),l3) -> inter#(l1,l3) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: inter#(l1,cons(x,l2)) -> ifinter#(mem(x,l1),x,l2,l1) p2: ifinter#(true(),x,l1,l2) -> inter#(l1,l2) p3: inter#(app(l1,l2),l3) -> inter#(l1,l3) p4: inter#(app(l1,l2),l3) -> inter#(l2,l3) p5: inter#(l1,app(l2,l3)) -> inter#(l1,l2) p6: inter#(l1,app(l2,l3)) -> inter#(l1,l3) p7: inter#(cons(x,l1),l2) -> ifinter#(mem(x,l2),x,l1,l2) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: inter#_A(x1,x2) = x1 + x2 + 6 cons_A(x1,x2) = x1 + x2 + 8 ifinter#_A(x1,x2,x3,x4) = x3 + x4 + 7 mem_A(x1,x2) = x1 + x2 + 9 true_A() = 1 app_A(x1,x2) = x1 + x2 + 9 |0|_A(x1) = x1 + 22 |#|_A() = 3 +_A(x1,x2) = x1 + x2 + 1 -_A(x1,x2) = 4 not_A(x1) = x1 + 2 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 18 |1|_A(x1) = x1 + 5 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 10 *_A(x1,x2) = x1 + x2 + 6 sum_A(x1) = x1 + 1 nil_A() = 26 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 10 base order 2: precedence: inter# = |log'| > ifinter# = if = eq > cons > nil = inter > mem = app > ge = sum = prod > |0| = * > + > |1| > - = not > |#| > false > true partial status: pi(inter#) = [2] pi(cons) = [2] pi(ifinter#) = [] pi(mem) = [] pi(true) = [] pi(app) = [2] pi(|0|) = [] pi(|#|) = [] pi(+) = [] pi(-) = [] pi(not) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(|1|) = [1] pi(ge) = [] pi(|log'|) = [1] pi(*) = [] pi(sum) = [] pi(nil) = [] pi(prod) = [] pi(inter) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: ifinter#(true(),x,l1,l2) -> inter#(l1,l2) p2: inter#(app(l1,l2),l3) -> inter#(l1,l3) p3: inter#(app(l1,l2),l3) -> inter#(l2,l3) p4: inter#(l1,app(l2,l3)) -> inter#(l1,l2) p5: inter#(l1,app(l2,l3)) -> inter#(l1,l3) p6: inter#(cons(x,l1),l2) -> ifinter#(mem(x,l2),x,l1,l2) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ifinter#(true(),x,l1,l2) -> inter#(l1,l2) p2: inter#(cons(x,l1),l2) -> ifinter#(mem(x,l2),x,l1,l2) p3: inter#(l1,app(l2,l3)) -> inter#(l1,l3) p4: inter#(l1,app(l2,l3)) -> inter#(l1,l2) p5: inter#(app(l1,l2),l3) -> inter#(l2,l3) p6: inter#(app(l1,l2),l3) -> inter#(l1,l3) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r5, r6, r9, r15, r16, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: ifinter#_A(x1,x2,x3,x4) = x3 + x4 + 12 true_A() = 1 inter#_A(x1,x2) = x1 + x2 + 11 cons_A(x1,x2) = x1 + x2 + 9 mem_A(x1,x2) = x2 + 1 app_A(x1,x2) = x1 + x2 + 10 |0|_A(x1) = x1 + 12 |#|_A() = 5 +_A(x1,x2) = x1 + x2 + 7 |1|_A(x1) = 20 -_A(x1,x2) = 7 not_A(x1) = 3 false_A() = 2 eq_A(x1,x2) = 3 ge_A(x1,x2) = 4 |log'|_A(x1) = x1 + 22 *_A(x1,x2) = x2 + 6 sum_A(x1) = x1 + 1 nil_A() = 21 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 11 base order 2: precedence: inter# > ifinter# = inter > cons = mem = app = nil = prod > + > |log'| = sum > |0| = |1| = - = * > |#| > eq = ge > false > not > true partial status: pi(ifinter#) = [4] pi(true) = [] pi(inter#) = [2] pi(cons) = [2] pi(mem) = [] pi(app) = [1, 2] pi(|0|) = [] pi(|#|) = [] pi(+) = [1, 2] pi(|1|) = [] pi(-) = [] pi(not) = [] pi(false) = [] pi(eq) = [] pi(ge) = [] pi(|log'|) = [] pi(*) = [2] pi(sum) = [] pi(nil) = [] pi(prod) = [] pi(inter) = [2] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: inter#(cons(x,l1),l2) -> ifinter#(mem(x,l2),x,l1,l2) p2: inter#(l1,app(l2,l3)) -> inter#(l1,l3) p3: inter#(l1,app(l2,l3)) -> inter#(l1,l2) p4: inter#(app(l1,l2),l3) -> inter#(l2,l3) p5: inter#(app(l1,l2),l3) -> inter#(l1,l3) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p2, p3, p4, p5} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: inter#(l1,app(l2,l3)) -> inter#(l1,l3) p2: inter#(app(l1,l2),l3) -> inter#(l1,l3) p3: inter#(app(l1,l2),l3) -> inter#(l2,l3) p4: inter#(l1,app(l2,l3)) -> inter#(l1,l2) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r4, r7, r9, r11, r14, r15, r16, r18, r19, r20, r21, r25, r26, r32, r33, r34, r36, r39, r40, r45, r46, r49 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: inter#_A(x1,x2) = x1 + x2 + 32 app_A(x1,x2) = x1 + x2 + 31 |0|_A(x1) = 11 |#|_A() = 4 +_A(x1,x2) = x1 + x2 + 12 |1|_A(x1) = x1 + 17 -_A(x1,x2) = 12 not_A(x1) = x1 + 6 true_A() = 3 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 + 2 eq_A(x1,x2) = x1 + x2 + 18 ge_A(x1,x2) = x1 + 6 |log'|_A(x1) = 5 *_A(x1,x2) = x1 + x2 + 18 cons_A(x1,x2) = x1 + 5 sum_A(x1) = x1 + 6 nil_A() = 22 prod_A(x1) = x1 + 6 base order 2: precedence: not > eq = ge = nil > false > |1| > - > |0| > + > * > inter# = if = cons > app > sum = prod > |#| > true = |log'| partial status: pi(inter#) = [] pi(app) = [1, 2] pi(|0|) = [] pi(|#|) = [] pi(+) = [] pi(|1|) = [1] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [1] pi(|log'|) = [] pi(*) = [] pi(cons) = [1] pi(sum) = [1] pi(nil) = [] pi(prod) = [1] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: inter#(app(l1,l2),l3) -> inter#(l1,l3) p2: inter#(app(l1,l2),l3) -> inter#(l2,l3) p3: inter#(l1,app(l2,l3)) -> inter#(l1,l2) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: inter#(app(l1,l2),l3) -> inter#(l1,l3) p2: inter#(l1,app(l2,l3)) -> inter#(l1,l2) p3: inter#(app(l1,l2),l3) -> inter#(l2,l3) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r5, r6, r9, r12, r13, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: inter#_A(x1,x2) = x1 + x2 + 51 app_A(x1,x2) = x1 + x2 + 50 |0|_A(x1) = x1 + 21 |#|_A() = 3 +_A(x1,x2) = x1 + x2 + 9 |1|_A(x1) = 4 -_A(x1,x2) = 5 not_A(x1) = x1 + 22 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 9 ge_A(x1,x2) = x1 + 5 |log'|_A(x1) = x1 + 7 *_A(x1,x2) = x1 + x2 + 20 cons_A(x1,x2) = x1 + 8 sum_A(x1) = x1 + 20 nil_A() = 5 prod_A(x1) = x1 + 9 inter_A(x1,x2) = x2 + 6 base order 2: precedence: eq = * = sum > |0| = not > inter# = + = |log'| = prod > app = if = ge = cons = inter > - = nil > |1| > |#| > false > true partial status: pi(inter#) = [] pi(app) = [2] pi(|0|) = [] pi(|#|) = [] pi(+) = [1, 2] pi(|1|) = [] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [2] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [1, 2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: inter#(l1,app(l2,l3)) -> inter#(l1,l2) p2: inter#(app(l1,l2),l3) -> inter#(l2,l3) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: inter#(l1,app(l2,l3)) -> inter#(l1,l2) p2: inter#(app(l1,l2),l3) -> inter#(l2,l3) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: inter#_A(x1,x2) = x1 + x2 + 18 app_A(x1,x2) = x1 + x2 + 17 |0|_A(x1) = x1 + 12 |#|_A() = 20 +_A(x1,x2) = x1 + x2 + 5 -_A(x1,x2) = 40 not_A(x1) = x1 + 13 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 20 |1|_A(x1) = x1 + 19 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 11 *_A(x1,x2) = x1 + x2 + 6 cons_A(x1,x2) = x1 + 4 sum_A(x1) = x1 + 5 nil_A() = 40 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 18 base order 2: precedence: if = eq > inter# = |0| = + = - > app = nil = inter > * = sum = prod > false = cons > not = |1| = ge = |log'| > true > |#| partial status: pi(inter#) = [] pi(app) = [1] pi(|0|) = [1] pi(|#|) = [] pi(+) = [2] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [2] pi(|1|) = [1] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [1] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: inter#(app(l1,l2),l3) -> inter#(l2,l3) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: inter#(app(l1,l2),l3) -> inter#(l2,l3) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: inter#_A(x1,x2) = x1 app_A(x1,x2) = x1 + x2 + 70 |0|_A(x1) = x1 + 12 |#|_A() = 2 +_A(x1,x2) = x1 + x2 + 1 -_A(x1,x2) = 3 not_A(x1) = x1 + 20 true_A() = 1 false_A() = 20 if_A(x1,x2,x3) = x1 + x3 + 1 eq_A(x1,x2) = x1 + x2 + 1 |1|_A(x1) = x1 + 16 ge_A(x1,x2) = x1 + 19 |log'|_A(x1) = x1 + 11 *_A(x1,x2) = x1 + x2 + 23 cons_A(x1,x2) = x1 + 22 sum_A(x1) = x1 + 23 nil_A() = 21 prod_A(x1) = x1 + 23 inter_A(x1,x2) = x1 + x2 + 71 base order 2: precedence: if = eq > cons > inter > app = nil > inter# = sum > + = ge = * = prod > |0| > |log'| > |#| > not = false = |1| > - = true partial status: pi(inter#) = [] pi(app) = [1, 2] pi(|0|) = [1] pi(|#|) = [] pi(+) = [] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(|1|) = [1] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [1] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [2] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mem#(x,cons(y,l)) -> mem#(x,l) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: mem#_A(x1,x2) = x2 cons_A(x1,x2) = x1 + x2 + 14 |0|_A(x1) = x1 + 9 |#|_A() = 7 +_A(x1,x2) = x1 + x2 + 3 -_A(x1,x2) = 8 not_A(x1) = x1 + 10 true_A() = 6 false_A() = 12 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x2 + 6 |1|_A(x1) = x1 + 11 ge_A(x1,x2) = x1 + 7 |log'|_A(x1) = x1 + 6 *_A(x1,x2) = x1 + x2 + 10 sum_A(x1) = x1 + 1 nil_A() = 19 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 16 base order 2: precedence: true = false > |#| = if = eq > cons = inter > mem# = * = sum = nil > |0| = prod > + = |1| > - = not = |log'| > ge partial status: pi(mem#) = [] pi(cons) = [2] pi(|0|) = [] pi(|#|) = [] pi(+) = [] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(|1|) = [] pi(ge) = [1] pi(|log'|) = [] pi(*) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [2] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: eq#(|0|(x),|0|(y)) -> eq#(x,y) p2: eq#(|1|(x),|1|(y)) -> eq#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55, r60 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: eq#_A(x1,x2) = x1 + x2 + 15 |0|_A(x1) = x1 + 28 |1|_A(x1) = x1 + 14 |#|_A() = 7 +_A(x1,x2) = x1 + x2 + 15 -_A(x1,x2) = 13 not_A(x1) = x1 + 6 true_A() = 6 false_A() = 1 eq_A(x1,x2) = x1 + x2 + 1 ge_A(x1,x2) = x1 + 7 |log'|_A(x1) = x1 + 6 *_A(x1,x2) = x1 + x2 + 29 sum_A(x1) = x1 + 32 nil_A() = 4 prod_A(x1) = x1 + 18 inter_A(x1,x2) = 5 ifinter_A(x1,x2,x3,x4) = x2 + x3 + 4 cons_A(x1,x2) = x1 + 3 base order 2: precedence: * > eq# = prod > |1| = |#| = + > true = sum > inter = ifinter = cons > nil > false = eq > not > |0| > - = |log'| > ge partial status: pi(eq#) = [1] pi(|0|) = [1] pi(|1|) = [1] pi(|#|) = [] pi(+) = [1, 2] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(eq) = [2] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [1] pi(sum) = [1] pi(nil) = [] pi(prod) = [1] pi(inter) = [] pi(ifinter) = [3] pi(cons) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: eq#(|1|(x),|1|(y)) -> eq#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: eq#(|1|(x),|1|(y)) -> eq#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: eq#_A(x1,x2) = x1 + x2 + 6 |1|_A(x1) = x1 + 5 |0|_A(x1) = x1 + 10 |#|_A() = 3 +_A(x1,x2) = x1 + x2 + 11 -_A(x1,x2) = 4 not_A(x1) = x1 + 2 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 6 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 2 *_A(x1,x2) = x1 + x2 + 12 app_A(x1,x2) = x1 + x2 + 23 cons_A(x1,x2) = x1 + 4 sum_A(x1) = x1 + 5 nil_A() = 14 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 24 base order 2: precedence: inter > eq# = + = eq = nil > |1| > * = app = prod > sum > |0| = not > |log'| > if = ge > - = cons > true > |#| > false partial status: pi(eq#) = [1] pi(|1|) = [1] pi(|0|) = [] pi(|#|) = [] pi(+) = [2] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [1] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [] pi(app) = [1, 2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [2] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: eq#(|#|(),|0|(y)) -> eq#(|#|(),y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: eq#_A(x1,x2) = x2 + 4 |#|_A() = 3 |0|_A(x1) = x1 + 19 +_A(x1,x2) = x1 + x2 + 5 -_A(x1,x2) = 5 not_A(x1) = x1 + 2 true_A() = 2 false_A() = 1 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 15 |1|_A(x1) = x1 + 6 ge_A(x1,x2) = x1 + 3 |log'|_A(x1) = x1 + 4 *_A(x1,x2) = x1 + x2 + 20 app_A(x1,x2) = x1 + x2 + 31 cons_A(x1,x2) = x1 + 4 sum_A(x1) = x1 + 5 nil_A() = 23 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 32 base order 2: precedence: |0| = * > + = |log'| > eq# = ge > |#| = if = eq > cons > app = inter > sum = prod > |1| > - = not = nil > true > false partial status: pi(eq#) = [2] pi(|#|) = [] pi(|0|) = [] pi(+) = [1] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [2] pi(|1|) = [1] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [2] pi(app) = [1, 2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [] pi(inter) = [2] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: eq#(|0|(x),|#|()) -> eq#(x,|#|()) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r10, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: eq#_A(x1,x2) = x1 + 4 |0|_A(x1) = x1 + 38 |#|_A() = 3 +_A(x1,x2) = x1 + x2 + 11 -_A(x1,x2) = x1 + 4 not_A(x1) = x1 + 3 true_A() = 4 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x2 + 6 |1|_A(x1) = x1 + 9 ge_A(x1,x2) = x1 + 5 |log'|_A(x1) = x1 + 14 *_A(x1,x2) = x1 + x2 + 10 app_A(x1,x2) = x1 + x2 + 28 cons_A(x1,x2) = x1 + 7 sum_A(x1) = x1 + 8 nil_A() = 42 prod_A(x1) = x1 + 8 inter_A(x1,x2) = x1 + x2 + 29 base order 2: precedence: ge = nil > |0| = * > - = |log'| > eq# = prod > |#| = not = false = if = eq = |1| = cons = inter > true = app > + = sum partial status: pi(eq#) = [] pi(|0|) = [1] pi(|#|) = [] pi(+) = [1, 2] pi(-) = [1] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(|1|) = [1] pi(ge) = [1] pi(|log'|) = [] pi(*) = [1, 2] pi(app) = [1] pi(cons) = [1] pi(sum) = [1] pi(nil) = [] pi(prod) = [] pi(inter) = [1, 2] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ge#(|0|(x),|0|(y)) -> ge#(x,y) p2: ge#(|1|(x),|1|(y)) -> ge#(x,y) p3: ge#(|1|(x),|0|(y)) -> ge#(x,y) p4: ge#(|0|(x),|1|(y)) -> ge#(y,x) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55, r60 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: ge#_A(x1,x2) = x1 + x2 + 19 |0|_A(x1) = x1 + 12 |1|_A(x1) = x1 + 18 |#|_A() = 4 +_A(x1,x2) = x1 + x2 + 1 -_A(x1,x2) = 5 not_A(x1) = x1 + 1 true_A() = 3 false_A() = 1 eq_A(x1,x2) = x1 + x2 + 7 ge_A(x1,x2) = x1 + 4 |log'|_A(x1) = x1 + 11 *_A(x1,x2) = x1 + x2 + 19 app_A(x1,x2) = x2 + 1 cons_A(x1,x2) = 0 sum_A(x1) = x1 + 1 nil_A() = 23 prod_A(x1) = x1 + 2 inter_A(x1,x2) = 24 ifinter_A(x1,x2,x3,x4) = 25 base order 2: precedence: + = * > |log'| = ifinter > eq = prod = inter > ge# = not = true = cons > app = sum = nil > |0| = |1| = - = ge > |#| > false partial status: pi(ge#) = [1, 2] pi(|0|) = [1] pi(|1|) = [1] pi(|#|) = [] pi(+) = [1] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(eq) = [1] pi(ge) = [] pi(|log'|) = [1] pi(*) = [] pi(app) = [2] pi(cons) = [] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [] pi(ifinter) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: ge#(|1|(x),|1|(y)) -> ge#(x,y) p2: ge#(|1|(x),|0|(y)) -> ge#(x,y) p3: ge#(|0|(x),|1|(y)) -> ge#(y,x) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2, p3} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ge#(|1|(x),|1|(y)) -> ge#(x,y) p2: ge#(|0|(x),|1|(y)) -> ge#(y,x) p3: ge#(|1|(x),|0|(y)) -> ge#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r10, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55, r60 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: ge#_A(x1,x2) = x1 + x2 + 24 |1|_A(x1) = x1 + 23 |0|_A(x1) = x1 + 9 |#|_A() = 3 +_A(x1,x2) = x1 + x2 + 10 -_A(x1,x2) = x1 + 8 not_A(x1) = x1 + 10 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 5 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 2 *_A(x1,x2) = x1 + x2 + 24 sum_A(x1) = x1 + 5 nil_A() = 27 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 7 ifinter_A(x1,x2,x3,x4) = x2 + x3 + 5 cons_A(x1,x2) = x1 + 4 base order 2: precedence: if = eq > ge# = not = * = inter = ifinter > - > nil = prod > |1| = false = cons > + > sum > |0| > |log'| > ge > |#| > true partial status: pi(ge#) = [1] pi(|1|) = [] pi(|0|) = [1] pi(|#|) = [] pi(+) = [] pi(-) = [1] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [1] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [2] pi(sum) = [1] pi(nil) = [] pi(prod) = [1] pi(inter) = [1] pi(ifinter) = [2, 3] pi(cons) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: ge#(|0|(x),|1|(y)) -> ge#(y,x) p2: ge#(|1|(x),|0|(y)) -> ge#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ge#(|0|(x),|1|(y)) -> ge#(y,x) p2: ge#(|1|(x),|0|(y)) -> ge#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r3, r9, r15, r16, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55, r60 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: ge#_A(x1,x2) = x1 + x2 + 26 |0|_A(x1) = x1 + 25 |1|_A(x1) = x1 + 13 |#|_A() = 6 +_A(x1,x2) = x2 + 5 -_A(x1,x2) = 7 not_A(x1) = x1 + 10 true_A() = 1 false_A() = 2 eq_A(x1,x2) = x2 + 7 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 12 *_A(x1,x2) = x1 + x2 + 26 app_A(x1,x2) = x1 + x2 + 37 cons_A(x1,x2) = 4 sum_A(x1) = x1 + 5 nil_A() = 32 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + 33 ifinter_A(x1,x2,x3,x4) = 5 base order 2: precedence: app = inter > ge# = sum = nil > |0| = |1| = not > - = |log'| > eq = ge = ifinter > cons > * = prod > + > |#| > false > true partial status: pi(ge#) = [1] pi(|0|) = [] pi(|1|) = [1] pi(|#|) = [] pi(+) = [2] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(eq) = [2] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [] pi(app) = [1, 2] pi(cons) = [] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [1] pi(ifinter) = [] The following rules are removed: p1 -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: ge#(|1|(x),|0|(y)) -> ge#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ge#(|1|(x),|0|(y)) -> ge#(x,y) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: ge#_A(x1,x2) = x1 + x2 + 23 |1|_A(x1) = x1 + 22 |0|_A(x1) = x1 + 10 |#|_A() = 5 +_A(x1,x2) = x1 + x2 + 20 -_A(x1,x2) = 11 not_A(x1) = x1 + 11 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x2 + 4 ge_A(x1,x2) = x1 + 2 |log'|_A(x1) = x1 + 4 *_A(x1,x2) = x1 + x2 + 21 app_A(x1,x2) = x1 + x2 + 34 cons_A(x1,x2) = x1 + 5 sum_A(x1) = x1 + 6 nil_A() = 28 prod_A(x1) = x1 + 6 inter_A(x1,x2) = x1 + x2 + 35 base order 2: precedence: + = prod > app > if = * > eq = cons = sum > - = inter > nil > |1| > ge# = not > |0| > |log'| > ge > |#| > false > true partial status: pi(ge#) = [1] pi(|1|) = [] pi(|0|) = [1] pi(|#|) = [] pi(+) = [1] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(ge) = [] pi(|log'|) = [] pi(*) = [1, 2] pi(app) = [1, 2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [2] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ge#(|#|(),|0|(x)) -> ge#(|#|(),x) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r45, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: ge#_A(x1,x2) = x2 + 4 |#|_A() = 3 |0|_A(x1) = x1 + 21 +_A(x1,x2) = x1 + x2 + 7 -_A(x1,x2) = 5 not_A(x1) = x1 + 2 true_A() = 2 false_A() = 1 if_A(x1,x2,x3) = x1 + x3 eq_A(x1,x2) = x1 + x2 + 17 |1|_A(x1) = x1 + 6 ge_A(x1,x2) = x1 + 3 |log'|_A(x1) = x1 + 4 *_A(x1,x2) = x1 + x2 + 22 app_A(x1,x2) = x1 + x2 + 33 cons_A(x1,x2) = x1 + 4 sum_A(x1) = x1 + 5 nil_A() = 25 prod_A(x1) = x1 + 5 inter_A(x1,x2) = x1 + x2 + 34 base order 2: precedence: not > |0| = * > + = |log'| > if = ge > false = eq > cons > app = inter > ge# = sum > |#| = |1| = prod > - = true = nil partial status: pi(ge#) = [2] pi(|#|) = [] pi(|0|) = [] pi(+) = [1] pi(-) = [] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(|1|) = [1] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [2] pi(app) = [1, 2] pi(cons) = [1] pi(sum) = [] pi(nil) = [] pi(prod) = [] pi(inter) = [2] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: app#(cons(x,l1),l2) -> app#(l1,l2) and R consists of: r1: |0|(|#|()) -> |#|() r2: +(x,|#|()) -> x r3: +(|#|(),x) -> x r4: +(|0|(x),|0|(y)) -> |0|(+(x,y)) r5: +(|0|(x),|1|(y)) -> |1|(+(x,y)) r6: +(|1|(x),|0|(y)) -> |1|(+(x,y)) r7: +(|1|(x),|1|(y)) -> |0|(+(+(x,y),|1|(|#|()))) r8: +(+(x,y),z) -> +(x,+(y,z)) r9: -(|#|(),x) -> |#|() r10: -(x,|#|()) -> x r11: -(|0|(x),|0|(y)) -> |0|(-(x,y)) r12: -(|0|(x),|1|(y)) -> |1|(-(-(x,y),|1|(|#|()))) r13: -(|1|(x),|0|(y)) -> |1|(-(x,y)) r14: -(|1|(x),|1|(y)) -> |0|(-(x,y)) r15: not(true()) -> false() r16: not(false()) -> true() r17: if(true(),x,y) -> x r18: if(false(),x,y) -> y r19: eq(|#|(),|#|()) -> true() r20: eq(|#|(),|1|(y)) -> false() r21: eq(|1|(x),|#|()) -> false() r22: eq(|#|(),|0|(y)) -> eq(|#|(),y) r23: eq(|0|(x),|#|()) -> eq(x,|#|()) r24: eq(|1|(x),|1|(y)) -> eq(x,y) r25: eq(|0|(x),|1|(y)) -> false() r26: eq(|1|(x),|0|(y)) -> false() r27: eq(|0|(x),|0|(y)) -> eq(x,y) r28: ge(|0|(x),|0|(y)) -> ge(x,y) r29: ge(|0|(x),|1|(y)) -> not(ge(y,x)) r30: ge(|1|(x),|0|(y)) -> ge(x,y) r31: ge(|1|(x),|1|(y)) -> ge(x,y) r32: ge(x,|#|()) -> true() r33: ge(|#|(),|0|(x)) -> ge(|#|(),x) r34: ge(|#|(),|1|(x)) -> false() r35: log(x) -> -(|log'|(x),|1|(|#|())) r36: |log'|(|#|()) -> |#|() r37: |log'|(|1|(x)) -> +(|log'|(x),|1|(|#|())) r38: |log'|(|0|(x)) -> if(ge(x,|1|(|#|())),+(|log'|(x),|1|(|#|())),|#|()) r39: *(|#|(),x) -> |#|() r40: *(|0|(x),y) -> |0|(*(x,y)) r41: *(|1|(x),y) -> +(|0|(*(x,y)),y) r42: *(*(x,y),z) -> *(x,*(y,z)) r43: *(x,+(y,z)) -> +(*(x,y),*(x,z)) r44: app(nil(),l) -> l r45: app(cons(x,l1),l2) -> cons(x,app(l1,l2)) r46: sum(nil()) -> |0|(|#|()) r47: sum(cons(x,l)) -> +(x,sum(l)) r48: sum(app(l1,l2)) -> +(sum(l1),sum(l2)) r49: prod(nil()) -> |1|(|#|()) r50: prod(cons(x,l)) -> *(x,prod(l)) r51: prod(app(l1,l2)) -> *(prod(l1),prod(l2)) r52: mem(x,nil()) -> false() r53: mem(x,cons(y,l)) -> if(eq(x,y),true(),mem(x,l)) r54: inter(x,nil()) -> nil() r55: inter(nil(),x) -> nil() r56: inter(app(l1,l2),l3) -> app(inter(l1,l3),inter(l2,l3)) r57: inter(l1,app(l2,l3)) -> app(inter(l1,l2),inter(l1,l3)) r58: inter(cons(x,l1),l2) -> ifinter(mem(x,l2),x,l1,l2) r59: inter(l1,cons(x,l2)) -> ifinter(mem(x,l1),x,l2,l1) r60: ifinter(true(),x,l1,l2) -> cons(x,inter(l1,l2)) r61: ifinter(false(),x,l1,l2) -> inter(l1,l2) The set of usable rules consists of r1, r2, r3, r9, r10, r15, r16, r18, r19, r20, r21, r22, r23, r25, r26, r32, r33, r34, r36, r39, r46, r49, r54, r55 Take the reduction pair: generalized weighted path order (>=MG, >MG) base order 1: matrix interpretation with standard point-wise order: carrier: N^1 order: standard order interpretations: app#_A(x1,x2) = x1 cons_A(x1,x2) = x1 + x2 + 14 |0|_A(x1) = x1 + 19 |#|_A() = 3 +_A(x1,x2) = x1 + x2 + 1 -_A(x1,x2) = x1 + 10 not_A(x1) = x1 + 9 true_A() = 1 false_A() = 2 if_A(x1,x2,x3) = x1 + x3 + 8 eq_A(x1,x2) = x1 + x2 + 15 |1|_A(x1) = x1 + 30 ge_A(x1,x2) = x1 + 20 |log'|_A(x1) = x1 + 13 *_A(x1,x2) = x1 + x2 + 12 sum_A(x1) = x1 + 1 nil_A() = 34 prod_A(x1) = x1 + 1 inter_A(x1,x2) = x1 + x2 + 16 base order 2: precedence: eq > app# = cons > * = prod > not = inter > ge = sum > |0| = - > nil > false > + = |1| = |log'| > |#| = if > true partial status: pi(app#) = [] pi(cons) = [2] pi(|0|) = [1] pi(|#|) = [] pi(+) = [] pi(-) = [1] pi(not) = [] pi(true) = [] pi(false) = [] pi(if) = [] pi(eq) = [] pi(|1|) = [] pi(ge) = [1] pi(|log'|) = [1] pi(*) = [] pi(sum) = [] pi(nil) = [] pi(prod) = [1] pi(inter) = [2] The following rules are removed: p1 Then no dependency pair remains.