YES We show the termination of the TRS R: active(and(true(),X)) -> mark(X) active(and(false(),Y)) -> mark(false()) active(if(true(),X,Y)) -> mark(X) active(if(false(),X,Y)) -> mark(Y) active(add(|0|(),X)) -> mark(X) active(add(s(X),Y)) -> mark(s(add(X,Y))) active(first(|0|(),X)) -> mark(nil()) active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) active(from(X)) -> mark(cons(X,from(s(X)))) mark(and(X1,X2)) -> active(and(mark(X1),X2)) mark(true()) -> active(true()) mark(false()) -> active(false()) mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) mark(add(X1,X2)) -> active(add(mark(X1),X2)) mark(|0|()) -> active(|0|()) mark(s(X)) -> active(s(X)) mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) mark(nil()) -> active(nil()) mark(cons(X1,X2)) -> active(cons(X1,X2)) mark(from(X)) -> active(from(X)) and(mark(X1),X2) -> and(X1,X2) and(X1,mark(X2)) -> and(X1,X2) and(active(X1),X2) -> and(X1,X2) and(X1,active(X2)) -> and(X1,X2) if(mark(X1),X2,X3) -> if(X1,X2,X3) if(X1,mark(X2),X3) -> if(X1,X2,X3) if(X1,X2,mark(X3)) -> if(X1,X2,X3) if(active(X1),X2,X3) -> if(X1,X2,X3) if(X1,active(X2),X3) -> if(X1,X2,X3) if(X1,X2,active(X3)) -> if(X1,X2,X3) add(mark(X1),X2) -> add(X1,X2) add(X1,mark(X2)) -> add(X1,X2) add(active(X1),X2) -> add(X1,X2) add(X1,active(X2)) -> add(X1,X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) first(mark(X1),X2) -> first(X1,X2) first(X1,mark(X2)) -> first(X1,X2) first(active(X1),X2) -> first(X1,X2) first(X1,active(X2)) -> first(X1,X2) cons(mark(X1),X2) -> cons(X1,X2) cons(X1,mark(X2)) -> cons(X1,X2) cons(active(X1),X2) -> cons(X1,X2) cons(X1,active(X2)) -> cons(X1,X2) from(mark(X)) -> from(X) from(active(X)) -> from(X) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(true(),X)) -> mark#(X) p2: active#(and(false(),Y)) -> mark#(false()) p3: active#(if(true(),X,Y)) -> mark#(X) p4: active#(if(false(),X,Y)) -> mark#(Y) p5: active#(add(|0|(),X)) -> mark#(X) p6: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p7: active#(add(s(X),Y)) -> s#(add(X,Y)) p8: active#(add(s(X),Y)) -> add#(X,Y) p9: active#(first(|0|(),X)) -> mark#(nil()) p10: active#(first(s(X),cons(Y,Z))) -> mark#(cons(Y,first(X,Z))) p11: active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z)) p12: active#(first(s(X),cons(Y,Z))) -> first#(X,Z) p13: active#(from(X)) -> mark#(cons(X,from(s(X)))) p14: active#(from(X)) -> cons#(X,from(s(X))) p15: active#(from(X)) -> from#(s(X)) p16: active#(from(X)) -> s#(X) p17: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p18: mark#(and(X1,X2)) -> and#(mark(X1),X2) p19: mark#(and(X1,X2)) -> mark#(X1) p20: mark#(true()) -> active#(true()) p21: mark#(false()) -> active#(false()) p22: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p23: mark#(if(X1,X2,X3)) -> if#(mark(X1),X2,X3) p24: mark#(if(X1,X2,X3)) -> mark#(X1) p25: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p26: mark#(add(X1,X2)) -> add#(mark(X1),X2) p27: mark#(add(X1,X2)) -> mark#(X1) p28: mark#(|0|()) -> active#(|0|()) p29: mark#(s(X)) -> active#(s(X)) p30: mark#(first(X1,X2)) -> active#(first(mark(X1),mark(X2))) p31: mark#(first(X1,X2)) -> first#(mark(X1),mark(X2)) p32: mark#(first(X1,X2)) -> mark#(X1) p33: mark#(first(X1,X2)) -> mark#(X2) p34: mark#(nil()) -> active#(nil()) p35: mark#(cons(X1,X2)) -> active#(cons(X1,X2)) p36: mark#(from(X)) -> active#(from(X)) p37: and#(mark(X1),X2) -> and#(X1,X2) p38: and#(X1,mark(X2)) -> and#(X1,X2) p39: and#(active(X1),X2) -> and#(X1,X2) p40: and#(X1,active(X2)) -> and#(X1,X2) p41: if#(mark(X1),X2,X3) -> if#(X1,X2,X3) p42: if#(X1,mark(X2),X3) -> if#(X1,X2,X3) p43: if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) p44: if#(active(X1),X2,X3) -> if#(X1,X2,X3) p45: if#(X1,active(X2),X3) -> if#(X1,X2,X3) p46: if#(X1,X2,active(X3)) -> if#(X1,X2,X3) p47: add#(mark(X1),X2) -> add#(X1,X2) p48: add#(X1,mark(X2)) -> add#(X1,X2) p49: add#(active(X1),X2) -> add#(X1,X2) p50: add#(X1,active(X2)) -> add#(X1,X2) p51: s#(mark(X)) -> s#(X) p52: s#(active(X)) -> s#(X) p53: first#(mark(X1),X2) -> first#(X1,X2) p54: first#(X1,mark(X2)) -> first#(X1,X2) p55: first#(active(X1),X2) -> first#(X1,X2) p56: first#(X1,active(X2)) -> first#(X1,X2) p57: cons#(mark(X1),X2) -> cons#(X1,X2) p58: cons#(X1,mark(X2)) -> cons#(X1,X2) p59: cons#(active(X1),X2) -> cons#(X1,X2) p60: cons#(X1,active(X2)) -> cons#(X1,X2) p61: from#(mark(X)) -> from#(X) p62: from#(active(X)) -> from#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p3, p4, p5, p6, p10, p13, p17, p19, p22, p24, p25, p27, p29, p30, p32, p33, p35, p36} {p51, p52} {p47, p48, p49, p50} {p57, p58, p59, p60} {p53, p54, p55, p56} {p61, p62} {p37, p38, p39, p40} {p41, p42, p43, p44, p45, p46} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(true(),X)) -> mark#(X) p2: mark#(from(X)) -> active#(from(X)) p3: active#(from(X)) -> mark#(cons(X,from(s(X)))) p4: mark#(cons(X1,X2)) -> active#(cons(X1,X2)) p5: active#(first(s(X),cons(Y,Z))) -> mark#(cons(Y,first(X,Z))) p6: mark#(first(X1,X2)) -> mark#(X2) p7: mark#(first(X1,X2)) -> mark#(X1) p8: mark#(first(X1,X2)) -> active#(first(mark(X1),mark(X2))) p9: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p10: mark#(s(X)) -> active#(s(X)) p11: active#(add(|0|(),X)) -> mark#(X) p12: mark#(add(X1,X2)) -> mark#(X1) p13: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p14: active#(if(false(),X,Y)) -> mark#(Y) p15: mark#(if(X1,X2,X3)) -> mark#(X1) p16: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p17: active#(if(true(),X,Y)) -> mark#(X) p18: mark#(and(X1,X2)) -> mark#(X1) p19: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: active#_A(x1) = x1 and_A(x1,x2) = 3 true_A() = 4 mark#_A(x1) = 3 from_A(x1) = 3 cons_A(x1,x2) = 1 s_A(x1) = 2 first_A(x1,x2) = 3 mark_A(x1) = 5 add_A(x1,x2) = 3 |0|_A() = 1 if_A(x1,x2,x3) = 3 false_A() = 2 active_A(x1) = 5 nil_A() = 2 precedence: true > from = cons > active# = and = mark# = s = first = mark = add = |0| = if = false = active = nil partial status: pi(active#) = [] pi(and) = [] pi(true) = [] pi(mark#) = [] pi(from) = [] pi(cons) = [] pi(s) = [] pi(first) = [] pi(mark) = [] pi(add) = [] pi(|0|) = [] pi(if) = [] pi(false) = [] pi(active) = [] pi(nil) = [] The next rules are strictly ordered: p4 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(true(),X)) -> mark#(X) p2: mark#(from(X)) -> active#(from(X)) p3: active#(from(X)) -> mark#(cons(X,from(s(X)))) p4: active#(first(s(X),cons(Y,Z))) -> mark#(cons(Y,first(X,Z))) p5: mark#(first(X1,X2)) -> mark#(X2) p6: mark#(first(X1,X2)) -> mark#(X1) p7: mark#(first(X1,X2)) -> active#(first(mark(X1),mark(X2))) p8: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p9: mark#(s(X)) -> active#(s(X)) p10: active#(add(|0|(),X)) -> mark#(X) p11: mark#(add(X1,X2)) -> mark#(X1) p12: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p13: active#(if(false(),X,Y)) -> mark#(Y) p14: mark#(if(X1,X2,X3)) -> mark#(X1) p15: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p16: active#(if(true(),X,Y)) -> mark#(X) p17: mark#(and(X1,X2)) -> mark#(X1) p18: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(true(),X)) -> mark#(X) p2: mark#(and(X1,X2)) -> active#(and(mark(X1),X2)) p3: active#(if(true(),X,Y)) -> mark#(X) p4: mark#(and(X1,X2)) -> mark#(X1) p5: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p6: active#(if(false(),X,Y)) -> mark#(Y) p7: mark#(if(X1,X2,X3)) -> mark#(X1) p8: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p9: active#(add(|0|(),X)) -> mark#(X) p10: mark#(add(X1,X2)) -> mark#(X1) p11: mark#(s(X)) -> active#(s(X)) p12: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p13: mark#(first(X1,X2)) -> active#(first(mark(X1),mark(X2))) p14: active#(first(s(X),cons(Y,Z))) -> mark#(cons(Y,first(X,Z))) p15: mark#(first(X1,X2)) -> mark#(X1) p16: mark#(first(X1,X2)) -> mark#(X2) p17: mark#(from(X)) -> active#(from(X)) p18: active#(from(X)) -> mark#(cons(X,from(s(X)))) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: active#_A(x1) = x1 and_A(x1,x2) = x1 + x2 + 5 true_A() = 1 mark#_A(x1) = x1 + 4 mark_A(x1) = x1 if_A(x1,x2,x3) = x1 + x2 + x3 + 5 false_A() = 1 add_A(x1,x2) = x1 + x2 + 5 |0|_A() = 2 s_A(x1) = 1 first_A(x1,x2) = x1 + x2 + 3 cons_A(x1,x2) = x1 + 2 from_A(x1) = x1 + 6 active_A(x1) = x1 nil_A() = 1 precedence: mark = if > false > and = true = mark# = add = |0| = s = first = from = active > active# > cons > nil partial status: pi(active#) = [1] pi(and) = [1, 2] pi(true) = [] pi(mark#) = [] pi(mark) = [1] pi(if) = [2] pi(false) = [] pi(add) = [] pi(|0|) = [] pi(s) = [] pi(first) = [1] pi(cons) = [1] pi(from) = [] pi(active) = [1] pi(nil) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(true(),X)) -> mark#(X) p2: active#(if(true(),X,Y)) -> mark#(X) p3: mark#(and(X1,X2)) -> mark#(X1) p4: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p5: active#(if(false(),X,Y)) -> mark#(Y) p6: mark#(if(X1,X2,X3)) -> mark#(X1) p7: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p8: active#(add(|0|(),X)) -> mark#(X) p9: mark#(add(X1,X2)) -> mark#(X1) p10: mark#(s(X)) -> active#(s(X)) p11: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p12: mark#(first(X1,X2)) -> active#(first(mark(X1),mark(X2))) p13: active#(first(s(X),cons(Y,Z))) -> mark#(cons(Y,first(X,Z))) p14: mark#(first(X1,X2)) -> mark#(X1) p15: mark#(first(X1,X2)) -> mark#(X2) p16: mark#(from(X)) -> active#(from(X)) p17: active#(from(X)) -> mark#(cons(X,from(s(X)))) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(true(),X)) -> mark#(X) p2: mark#(from(X)) -> active#(from(X)) p3: active#(from(X)) -> mark#(cons(X,from(s(X)))) p4: mark#(first(X1,X2)) -> mark#(X2) p5: mark#(first(X1,X2)) -> mark#(X1) p6: mark#(first(X1,X2)) -> active#(first(mark(X1),mark(X2))) p7: active#(first(s(X),cons(Y,Z))) -> mark#(cons(Y,first(X,Z))) p8: mark#(s(X)) -> active#(s(X)) p9: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p10: mark#(add(X1,X2)) -> mark#(X1) p11: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p12: active#(add(|0|(),X)) -> mark#(X) p13: mark#(if(X1,X2,X3)) -> mark#(X1) p14: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p15: active#(if(false(),X,Y)) -> mark#(Y) p16: mark#(and(X1,X2)) -> mark#(X1) p17: active#(if(true(),X,Y)) -> mark#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: active#_A(x1) = x1 + 2 and_A(x1,x2) = 7 true_A() = 1 mark#_A(x1) = 6 from_A(x1) = 4 cons_A(x1,x2) = 5 s_A(x1) = 2 first_A(x1,x2) = 4 mark_A(x1) = 3 add_A(x1,x2) = 4 |0|_A() = 1 if_A(x1,x2,x3) = 4 false_A() = 2 active_A(x1) = 3 nil_A() = 2 precedence: true > from = cons = s > first = mark = active > and > if > active# = mark# > add = |0| = false = nil partial status: pi(active#) = [] pi(and) = [] pi(true) = [] pi(mark#) = [] pi(from) = [] pi(cons) = [] pi(s) = [] pi(first) = [] pi(mark) = [] pi(add) = [] pi(|0|) = [] pi(if) = [] pi(false) = [] pi(active) = [] pi(nil) = [] The next rules are strictly ordered: p8 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(true(),X)) -> mark#(X) p2: mark#(from(X)) -> active#(from(X)) p3: active#(from(X)) -> mark#(cons(X,from(s(X)))) p4: mark#(first(X1,X2)) -> mark#(X2) p5: mark#(first(X1,X2)) -> mark#(X1) p6: mark#(first(X1,X2)) -> active#(first(mark(X1),mark(X2))) p7: active#(first(s(X),cons(Y,Z))) -> mark#(cons(Y,first(X,Z))) p8: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p9: mark#(add(X1,X2)) -> mark#(X1) p10: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p11: active#(add(|0|(),X)) -> mark#(X) p12: mark#(if(X1,X2,X3)) -> mark#(X1) p13: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p14: active#(if(false(),X,Y)) -> mark#(Y) p15: mark#(and(X1,X2)) -> mark#(X1) p16: active#(if(true(),X,Y)) -> mark#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(true(),X)) -> mark#(X) p2: mark#(and(X1,X2)) -> mark#(X1) p3: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p4: active#(if(true(),X,Y)) -> mark#(X) p5: mark#(if(X1,X2,X3)) -> mark#(X1) p6: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p7: active#(if(false(),X,Y)) -> mark#(Y) p8: mark#(add(X1,X2)) -> mark#(X1) p9: mark#(first(X1,X2)) -> active#(first(mark(X1),mark(X2))) p10: active#(add(|0|(),X)) -> mark#(X) p11: mark#(first(X1,X2)) -> mark#(X1) p12: mark#(first(X1,X2)) -> mark#(X2) p13: mark#(from(X)) -> active#(from(X)) p14: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p15: active#(first(s(X),cons(Y,Z))) -> mark#(cons(Y,first(X,Z))) p16: active#(from(X)) -> mark#(cons(X,from(s(X)))) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: active#_A(x1) = x1 and_A(x1,x2) = x1 + x2 true_A() = 3 mark#_A(x1) = x1 + 2 if_A(x1,x2,x3) = x1 + x2 + x3 mark_A(x1) = x1 add_A(x1,x2) = x1 + x2 + 3 false_A() = 3 first_A(x1,x2) = x1 + x2 + 3 |0|_A() = 1 from_A(x1) = 4 s_A(x1) = 1 cons_A(x1,x2) = 2 active_A(x1) = x1 nil_A() = 3 precedence: and = true = if = mark = add = false = first = |0| = s = cons = active = nil > mark# = from > active# partial status: pi(active#) = [1] pi(and) = [] pi(true) = [] pi(mark#) = [] pi(if) = [] pi(mark) = [] pi(add) = [] pi(false) = [] pi(first) = [] pi(|0|) = [] pi(from) = [] pi(s) = [] pi(cons) = [] pi(active) = [] pi(nil) = [] The next rules are strictly ordered: p15 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(true(),X)) -> mark#(X) p2: mark#(and(X1,X2)) -> mark#(X1) p3: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p4: active#(if(true(),X,Y)) -> mark#(X) p5: mark#(if(X1,X2,X3)) -> mark#(X1) p6: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p7: active#(if(false(),X,Y)) -> mark#(Y) p8: mark#(add(X1,X2)) -> mark#(X1) p9: mark#(first(X1,X2)) -> active#(first(mark(X1),mark(X2))) p10: active#(add(|0|(),X)) -> mark#(X) p11: mark#(first(X1,X2)) -> mark#(X1) p12: mark#(first(X1,X2)) -> mark#(X2) p13: mark#(from(X)) -> active#(from(X)) p14: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p15: active#(from(X)) -> mark#(cons(X,from(s(X)))) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(true(),X)) -> mark#(X) p2: mark#(from(X)) -> active#(from(X)) p3: active#(from(X)) -> mark#(cons(X,from(s(X)))) p4: mark#(first(X1,X2)) -> mark#(X2) p5: mark#(first(X1,X2)) -> mark#(X1) p6: mark#(first(X1,X2)) -> active#(first(mark(X1),mark(X2))) p7: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p8: mark#(add(X1,X2)) -> mark#(X1) p9: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p10: active#(add(|0|(),X)) -> mark#(X) p11: mark#(if(X1,X2,X3)) -> mark#(X1) p12: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p13: active#(if(false(),X,Y)) -> mark#(Y) p14: mark#(and(X1,X2)) -> mark#(X1) p15: active#(if(true(),X,Y)) -> mark#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: active#_A(x1) = x1 + 1 and_A(x1,x2) = x1 + x2 + 2 true_A() = 2 mark#_A(x1) = x1 + 1 from_A(x1) = 4 cons_A(x1,x2) = 1 s_A(x1) = 3 first_A(x1,x2) = x1 + x2 + 2 mark_A(x1) = x1 add_A(x1,x2) = x1 + x2 + 4 |0|_A() = 2 if_A(x1,x2,x3) = x1 + x2 + x3 false_A() = 2 active_A(x1) = x1 nil_A() = 1 precedence: first > and > true > s > if > mark# = from > active# = cons = mark = add = |0| = false = active = nil partial status: pi(active#) = [1] pi(and) = [] pi(true) = [] pi(mark#) = [] pi(from) = [] pi(cons) = [] pi(s) = [] pi(first) = [] pi(mark) = [] pi(add) = [] pi(|0|) = [] pi(if) = [] pi(false) = [] pi(active) = [] pi(nil) = [] The next rules are strictly ordered: p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(true(),X)) -> mark#(X) p2: mark#(from(X)) -> active#(from(X)) p3: active#(from(X)) -> mark#(cons(X,from(s(X)))) p4: mark#(first(X1,X2)) -> mark#(X2) p5: mark#(first(X1,X2)) -> mark#(X1) p6: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p7: mark#(add(X1,X2)) -> mark#(X1) p8: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p9: active#(add(|0|(),X)) -> mark#(X) p10: mark#(if(X1,X2,X3)) -> mark#(X1) p11: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p12: active#(if(false(),X,Y)) -> mark#(Y) p13: mark#(and(X1,X2)) -> mark#(X1) p14: active#(if(true(),X,Y)) -> mark#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(and(true(),X)) -> mark#(X) p2: mark#(and(X1,X2)) -> mark#(X1) p3: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p4: active#(if(true(),X,Y)) -> mark#(X) p5: mark#(if(X1,X2,X3)) -> mark#(X1) p6: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p7: active#(if(false(),X,Y)) -> mark#(Y) p8: mark#(add(X1,X2)) -> mark#(X1) p9: mark#(first(X1,X2)) -> mark#(X1) p10: mark#(first(X1,X2)) -> mark#(X2) p11: mark#(from(X)) -> active#(from(X)) p12: active#(add(|0|(),X)) -> mark#(X) p13: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p14: active#(from(X)) -> mark#(cons(X,from(s(X)))) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: active#_A(x1) = x1 + 2 and_A(x1,x2) = 3 true_A() = 0 mark#_A(x1) = 2 if_A(x1,x2,x3) = 0 mark_A(x1) = 0 add_A(x1,x2) = 0 false_A() = 0 first_A(x1,x2) = 3 from_A(x1) = 0 |0|_A() = 0 s_A(x1) = 4 cons_A(x1,x2) = 1 active_A(x1) = 0 nil_A() = 0 precedence: |0| > and > true = false = first > mark = active > cons = nil > s > active# = mark# = if = add = from partial status: pi(active#) = [] pi(and) = [] pi(true) = [] pi(mark#) = [] pi(if) = [] pi(mark) = [] pi(add) = [] pi(false) = [] pi(first) = [] pi(from) = [] pi(|0|) = [] pi(s) = [] pi(cons) = [] pi(active) = [] pi(nil) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p3: active#(if(true(),X,Y)) -> mark#(X) p4: mark#(if(X1,X2,X3)) -> mark#(X1) p5: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p6: active#(if(false(),X,Y)) -> mark#(Y) p7: mark#(add(X1,X2)) -> mark#(X1) p8: mark#(first(X1,X2)) -> mark#(X1) p9: mark#(first(X1,X2)) -> mark#(X2) p10: mark#(from(X)) -> active#(from(X)) p11: active#(add(|0|(),X)) -> mark#(X) p12: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p13: active#(from(X)) -> mark#(cons(X,from(s(X)))) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: mark#(from(X)) -> active#(from(X)) p3: active#(from(X)) -> mark#(cons(X,from(s(X)))) p4: mark#(first(X1,X2)) -> mark#(X2) p5: mark#(first(X1,X2)) -> mark#(X1) p6: mark#(add(X1,X2)) -> mark#(X1) p7: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p8: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p9: mark#(if(X1,X2,X3)) -> mark#(X1) p10: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p11: active#(add(|0|(),X)) -> mark#(X) p12: active#(if(false(),X,Y)) -> mark#(Y) p13: active#(if(true(),X,Y)) -> mark#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: mark#_A(x1) = x1 + 2 and_A(x1,x2) = x1 + x2 + 1 from_A(x1) = 9 active#_A(x1) = x1 + 1 cons_A(x1,x2) = 6 s_A(x1) = 4 first_A(x1,x2) = x1 + x2 + 5 add_A(x1,x2) = x1 + x2 + 3 mark_A(x1) = x1 if_A(x1,x2,x3) = x1 + x2 + x3 |0|_A() = 1 false_A() = 3 true_A() = 3 active_A(x1) = x1 nil_A() = 1 precedence: mark# = s = add = mark = if = |0| = false = true = active > from > active# > cons > first > and = nil partial status: pi(mark#) = [] pi(and) = [2] pi(from) = [] pi(active#) = [] pi(cons) = [] pi(s) = [] pi(first) = [1] pi(add) = [] pi(mark) = [] pi(if) = [] pi(|0|) = [] pi(false) = [] pi(true) = [] pi(active) = [] pi(nil) = [] The next rules are strictly ordered: p11 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: mark#(from(X)) -> active#(from(X)) p3: active#(from(X)) -> mark#(cons(X,from(s(X)))) p4: mark#(first(X1,X2)) -> mark#(X2) p5: mark#(first(X1,X2)) -> mark#(X1) p6: mark#(add(X1,X2)) -> mark#(X1) p7: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p8: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p9: mark#(if(X1,X2,X3)) -> mark#(X1) p10: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p11: active#(if(false(),X,Y)) -> mark#(Y) p12: active#(if(true(),X,Y)) -> mark#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p3: active#(if(true(),X,Y)) -> mark#(X) p4: mark#(if(X1,X2,X3)) -> mark#(X1) p5: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p6: active#(if(false(),X,Y)) -> mark#(Y) p7: mark#(add(X1,X2)) -> mark#(X1) p8: mark#(first(X1,X2)) -> mark#(X1) p9: mark#(first(X1,X2)) -> mark#(X2) p10: mark#(from(X)) -> active#(from(X)) p11: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p12: active#(from(X)) -> mark#(cons(X,from(s(X)))) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: mark#_A(x1) = x1 and_A(x1,x2) = x1 + x2 + 1 if_A(x1,x2,x3) = x1 + x2 + x3 active#_A(x1) = x1 mark_A(x1) = x1 true_A() = 1 add_A(x1,x2) = x1 + x2 + 2 false_A() = 1 first_A(x1,x2) = x1 + x2 from_A(x1) = x1 s_A(x1) = 1 cons_A(x1,x2) = x1 active_A(x1) = x1 |0|_A() = 1 nil_A() = 1 precedence: mark# = and = true = add = from > active# = mark = first = s = |0| = nil > if > false = cons = active partial status: pi(mark#) = [1] pi(and) = [2] pi(if) = [1, 2] pi(active#) = [1] pi(mark) = [1] pi(true) = [] pi(add) = [] pi(false) = [] pi(first) = [1, 2] pi(from) = [1] pi(s) = [] pi(cons) = [] pi(active) = [1] pi(|0|) = [] pi(nil) = [] The next rules are strictly ordered: p12 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p3: active#(if(true(),X,Y)) -> mark#(X) p4: mark#(if(X1,X2,X3)) -> mark#(X1) p5: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p6: active#(if(false(),X,Y)) -> mark#(Y) p7: mark#(add(X1,X2)) -> mark#(X1) p8: mark#(first(X1,X2)) -> mark#(X1) p9: mark#(first(X1,X2)) -> mark#(X2) p10: mark#(from(X)) -> active#(from(X)) p11: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: mark#(from(X)) -> active#(from(X)) p3: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p4: mark#(first(X1,X2)) -> mark#(X2) p5: mark#(first(X1,X2)) -> mark#(X1) p6: mark#(add(X1,X2)) -> mark#(X1) p7: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p8: active#(if(false(),X,Y)) -> mark#(Y) p9: mark#(if(X1,X2,X3)) -> mark#(X1) p10: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p11: active#(if(true(),X,Y)) -> mark#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: mark#_A(x1) = 3 and_A(x1,x2) = 2 from_A(x1) = 1 active#_A(x1) = x1 + 1 add_A(x1,x2) = 2 s_A(x1) = 5 first_A(x1,x2) = 4 mark_A(x1) = 2 if_A(x1,x2,x3) = 2 false_A() = 1 true_A() = 0 active_A(x1) = 2 |0|_A() = 3 nil_A() = 1 cons_A(x1,x2) = 3 precedence: add > mark# = and = active# = mark = false = true = active > first > |0| = nil = cons > from = s = if partial status: pi(mark#) = [] pi(and) = [] pi(from) = [] pi(active#) = [] pi(add) = [] pi(s) = [] pi(first) = [] pi(mark) = [] pi(if) = [] pi(false) = [] pi(true) = [] pi(active) = [] pi(|0|) = [] pi(nil) = [] pi(cons) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) p3: mark#(first(X1,X2)) -> mark#(X2) p4: mark#(first(X1,X2)) -> mark#(X1) p5: mark#(add(X1,X2)) -> mark#(X1) p6: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p7: active#(if(false(),X,Y)) -> mark#(Y) p8: mark#(if(X1,X2,X3)) -> mark#(X1) p9: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p10: active#(if(true(),X,Y)) -> mark#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p3: active#(if(true(),X,Y)) -> mark#(X) p4: mark#(if(X1,X2,X3)) -> mark#(X1) p5: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p6: active#(if(false(),X,Y)) -> mark#(Y) p7: mark#(add(X1,X2)) -> mark#(X1) p8: mark#(first(X1,X2)) -> mark#(X1) p9: mark#(first(X1,X2)) -> mark#(X2) p10: active#(add(s(X),Y)) -> mark#(s(add(X,Y))) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: mark#_A(x1) = x1 + 1 and_A(x1,x2) = x1 + x2 + 2 if_A(x1,x2,x3) = x1 + x2 + x3 active#_A(x1) = x1 mark_A(x1) = x1 true_A() = 2 add_A(x1,x2) = x1 + x2 + 4 false_A() = 2 first_A(x1,x2) = x1 + x2 + 2 s_A(x1) = 3 active_A(x1) = x1 |0|_A() = 1 nil_A() = 2 cons_A(x1,x2) = x1 from_A(x1) = x1 precedence: mark# = false = first > and = if = active# = mark = true = add = s = active = |0| = nil = cons = from partial status: pi(mark#) = [] pi(and) = [] pi(if) = [] pi(active#) = [1] pi(mark) = [1] pi(true) = [] pi(add) = [] pi(false) = [] pi(first) = [] pi(s) = [] pi(active) = [1] pi(|0|) = [] pi(nil) = [] pi(cons) = [] pi(from) = [] The next rules are strictly ordered: p10 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p3: active#(if(true(),X,Y)) -> mark#(X) p4: mark#(if(X1,X2,X3)) -> mark#(X1) p5: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p6: active#(if(false(),X,Y)) -> mark#(Y) p7: mark#(add(X1,X2)) -> mark#(X1) p8: mark#(first(X1,X2)) -> mark#(X1) p9: mark#(first(X1,X2)) -> mark#(X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: mark#(first(X1,X2)) -> mark#(X2) p3: mark#(first(X1,X2)) -> mark#(X1) p4: mark#(add(X1,X2)) -> mark#(X1) p5: mark#(add(X1,X2)) -> active#(add(mark(X1),X2)) p6: active#(if(false(),X,Y)) -> mark#(Y) p7: mark#(if(X1,X2,X3)) -> mark#(X1) p8: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p9: active#(if(true(),X,Y)) -> mark#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: mark#_A(x1) = 6 and_A(x1,x2) = 7 first_A(x1,x2) = 2 add_A(x1,x2) = 4 active#_A(x1) = x1 mark_A(x1) = 5 if_A(x1,x2,x3) = 6 false_A() = 6 true_A() = 7 active_A(x1) = 5 |0|_A() = 1 s_A(x1) = 3 nil_A() = 1 cons_A(x1,x2) = 2 from_A(x1) = 4 precedence: mark# = add = active# = mark = if = true = active > first = nil > |0| = cons > and = false = from > s partial status: pi(mark#) = [] pi(and) = [] pi(first) = [] pi(add) = [] pi(active#) = [] pi(mark) = [] pi(if) = [] pi(false) = [] pi(true) = [] pi(active) = [] pi(|0|) = [] pi(s) = [] pi(nil) = [] pi(cons) = [] pi(from) = [] The next rules are strictly ordered: p5 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: mark#(first(X1,X2)) -> mark#(X2) p3: mark#(first(X1,X2)) -> mark#(X1) p4: mark#(add(X1,X2)) -> mark#(X1) p5: active#(if(false(),X,Y)) -> mark#(Y) p6: mark#(if(X1,X2,X3)) -> mark#(X1) p7: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p8: active#(if(true(),X,Y)) -> mark#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: mark#(if(X1,X2,X3)) -> active#(if(mark(X1),X2,X3)) p3: active#(if(true(),X,Y)) -> mark#(X) p4: mark#(if(X1,X2,X3)) -> mark#(X1) p5: mark#(add(X1,X2)) -> mark#(X1) p6: mark#(first(X1,X2)) -> mark#(X1) p7: mark#(first(X1,X2)) -> mark#(X2) p8: active#(if(false(),X,Y)) -> mark#(Y) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: mark#_A(x1) = x1 + 2 and_A(x1,x2) = x1 + x2 + 3 if_A(x1,x2,x3) = x1 + x2 + x3 + 3 active#_A(x1) = x1 mark_A(x1) = x1 true_A() = 1 add_A(x1,x2) = x1 + x2 + 3 first_A(x1,x2) = x1 + x2 + 3 false_A() = 1 active_A(x1) = x1 |0|_A() = 1 s_A(x1) = 5 nil_A() = 2 cons_A(x1,x2) = x1 + 4 from_A(x1) = x1 + 6 precedence: if = add = first = false = |0| > active# = nil > cons > mark# = and = mark > true = active = s > from partial status: pi(mark#) = [1] pi(and) = [1, 2] pi(if) = [2] pi(active#) = [] pi(mark) = [1] pi(true) = [] pi(add) = [] pi(first) = [] pi(false) = [] pi(active) = [1] pi(|0|) = [] pi(s) = [] pi(nil) = [] pi(cons) = [] pi(from) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: active#(if(true(),X,Y)) -> mark#(X) p3: mark#(if(X1,X2,X3)) -> mark#(X1) p4: mark#(add(X1,X2)) -> mark#(X1) p5: mark#(first(X1,X2)) -> mark#(X1) p6: mark#(first(X1,X2)) -> mark#(X2) p7: active#(if(false(),X,Y)) -> mark#(Y) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p3, p4, p5, p6} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(and(X1,X2)) -> mark#(X1) p2: mark#(first(X1,X2)) -> mark#(X2) p3: mark#(first(X1,X2)) -> mark#(X1) p4: mark#(add(X1,X2)) -> mark#(X1) p5: mark#(if(X1,X2,X3)) -> mark#(X1) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: mark#_A(x1) = x1 and_A(x1,x2) = x1 + x2 + 1 first_A(x1,x2) = x1 + x2 + 1 add_A(x1,x2) = x1 + x2 + 1 if_A(x1,x2,x3) = x1 + x3 + 1 precedence: mark# = and = first = add = if partial status: pi(mark#) = [1] pi(and) = [1, 2] pi(first) = [1, 2] pi(add) = [1, 2] pi(if) = [1, 3] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(first(X1,X2)) -> mark#(X2) p2: mark#(first(X1,X2)) -> mark#(X1) p3: mark#(add(X1,X2)) -> mark#(X1) p4: mark#(if(X1,X2,X3)) -> mark#(X1) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) 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: mark#(first(X1,X2)) -> mark#(X2) p2: mark#(if(X1,X2,X3)) -> mark#(X1) p3: mark#(add(X1,X2)) -> mark#(X1) p4: mark#(first(X1,X2)) -> mark#(X1) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: mark#_A(x1) = x1 first_A(x1,x2) = x1 + x2 + 1 if_A(x1,x2,x3) = x1 + x3 + 1 add_A(x1,x2) = x1 + x2 + 1 precedence: mark# = first = if = add partial status: pi(mark#) = [1] pi(first) = [1, 2] pi(if) = [1, 3] pi(add) = [1, 2] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(if(X1,X2,X3)) -> mark#(X1) p2: mark#(add(X1,X2)) -> mark#(X1) p3: mark#(first(X1,X2)) -> mark#(X1) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) 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: mark#(if(X1,X2,X3)) -> mark#(X1) p2: mark#(first(X1,X2)) -> mark#(X1) p3: mark#(add(X1,X2)) -> mark#(X1) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: mark#_A(x1) = x1 if_A(x1,x2,x3) = x1 + x2 + x3 + 1 first_A(x1,x2) = x1 + x2 + 1 add_A(x1,x2) = x1 + x2 + 1 precedence: mark# = if = first = add partial status: pi(mark#) = [] pi(if) = [3] pi(first) = [2] pi(add) = [2] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(first(X1,X2)) -> mark#(X1) p2: mark#(add(X1,X2)) -> mark#(X1) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(first(X1,X2)) -> mark#(X1) p2: mark#(add(X1,X2)) -> mark#(X1) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: mark#_A(x1) = x1 first_A(x1,x2) = x1 + x2 + 1 add_A(x1,x2) = x1 + x2 + 1 precedence: mark# = first = add partial status: pi(mark#) = [] pi(first) = [2] pi(add) = [2] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(add(X1,X2)) -> mark#(X1) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(add(X1,X2)) -> mark#(X1) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: mark#_A(x1) = x1 add_A(x1,x2) = x1 + x2 + 1 precedence: mark# = add partial status: pi(mark#) = [] pi(add) = [2] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: s#(mark(X)) -> s#(X) p2: s#(active(X)) -> s#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: s#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: s# = mark = active partial status: pi(s#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: s#(active(X)) -> s#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: s#(active(X)) -> s#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: s#_A(x1) = x1 active_A(x1) = x1 + 1 precedence: s# = active partial status: pi(s#) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: add#(mark(X1),X2) -> add#(X1,X2) p2: add#(X1,active(X2)) -> add#(X1,X2) p3: add#(active(X1),X2) -> add#(X1,X2) p4: add#(X1,mark(X2)) -> add#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: add#_A(x1,x2) = x1 + x2 + 2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: add# = mark = active partial status: pi(add#) = [] pi(mark) = [1] pi(active) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: add#(X1,active(X2)) -> add#(X1,X2) p2: add#(active(X1),X2) -> add#(X1,X2) p3: add#(X1,mark(X2)) -> add#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) 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: add#(X1,active(X2)) -> add#(X1,X2) p2: add#(X1,mark(X2)) -> add#(X1,X2) p3: add#(active(X1),X2) -> add#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: add#_A(x1,x2) = x1 + x2 + 2 active_A(x1) = x1 + 1 mark_A(x1) = x1 + 1 precedence: add# = active = mark partial status: pi(add#) = [1] pi(active) = [1] pi(mark) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: add#(X1,mark(X2)) -> add#(X1,X2) p2: add#(active(X1),X2) -> add#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: add#(X1,mark(X2)) -> add#(X1,X2) p2: add#(active(X1),X2) -> add#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: add#_A(x1,x2) = x1 + x2 + 2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: mark = active > add# partial status: pi(add#) = [] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: add#(active(X1),X2) -> add#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: add#(active(X1),X2) -> add#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: add#_A(x1,x2) = x1 active_A(x1) = x1 + 1 precedence: add# = active partial status: pi(add#) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: cons#(mark(X1),X2) -> cons#(X1,X2) p2: cons#(X1,active(X2)) -> cons#(X1,X2) p3: cons#(active(X1),X2) -> cons#(X1,X2) p4: cons#(X1,mark(X2)) -> cons#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: cons#_A(x1,x2) = x1 + x2 + 2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: cons# = mark = active partial status: pi(cons#) = [] pi(mark) = [1] pi(active) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: cons#(X1,active(X2)) -> cons#(X1,X2) p2: cons#(active(X1),X2) -> cons#(X1,X2) p3: cons#(X1,mark(X2)) -> cons#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) 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: cons#(X1,active(X2)) -> cons#(X1,X2) p2: cons#(X1,mark(X2)) -> cons#(X1,X2) p3: cons#(active(X1),X2) -> cons#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: cons#_A(x1,x2) = x1 + x2 + 2 active_A(x1) = x1 + 1 mark_A(x1) = x1 + 1 precedence: cons# = active = mark partial status: pi(cons#) = [1] pi(active) = [1] pi(mark) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: cons#(X1,mark(X2)) -> cons#(X1,X2) p2: cons#(active(X1),X2) -> cons#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: cons#(X1,mark(X2)) -> cons#(X1,X2) p2: cons#(active(X1),X2) -> cons#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: cons#_A(x1,x2) = x1 + x2 + 2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: mark = active > cons# partial status: pi(cons#) = [] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: cons#(active(X1),X2) -> cons#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: cons#(active(X1),X2) -> cons#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: cons#_A(x1,x2) = x1 active_A(x1) = x1 + 1 precedence: cons# = active partial status: pi(cons#) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: first#(mark(X1),X2) -> first#(X1,X2) p2: first#(X1,active(X2)) -> first#(X1,X2) p3: first#(active(X1),X2) -> first#(X1,X2) p4: first#(X1,mark(X2)) -> first#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: first#_A(x1,x2) = x1 + x2 + 2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: first# = mark = active partial status: pi(first#) = [] pi(mark) = [1] pi(active) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: first#(X1,active(X2)) -> first#(X1,X2) p2: first#(active(X1),X2) -> first#(X1,X2) p3: first#(X1,mark(X2)) -> first#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) 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: first#(X1,active(X2)) -> first#(X1,X2) p2: first#(X1,mark(X2)) -> first#(X1,X2) p3: first#(active(X1),X2) -> first#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: first#_A(x1,x2) = x1 + x2 + 2 active_A(x1) = x1 + 1 mark_A(x1) = x1 + 1 precedence: first# = active = mark partial status: pi(first#) = [1] pi(active) = [1] pi(mark) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: first#(X1,mark(X2)) -> first#(X1,X2) p2: first#(active(X1),X2) -> first#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: first#(X1,mark(X2)) -> first#(X1,X2) p2: first#(active(X1),X2) -> first#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: first#_A(x1,x2) = x1 + x2 + 2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: mark = active > first# partial status: pi(first#) = [] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: first#(active(X1),X2) -> first#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: first#(active(X1),X2) -> first#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: first#_A(x1,x2) = x1 active_A(x1) = x1 + 1 precedence: first# = active partial status: pi(first#) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: from#(mark(X)) -> from#(X) p2: from#(active(X)) -> from#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: from#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: from# = mark = active partial status: pi(from#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: from#(active(X)) -> from#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: from#(active(X)) -> from#(X) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: from#_A(x1) = x1 active_A(x1) = x1 + 1 precedence: from# = active partial status: pi(from#) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: and#(mark(X1),X2) -> and#(X1,X2) p2: and#(X1,active(X2)) -> and#(X1,X2) p3: and#(active(X1),X2) -> and#(X1,X2) p4: and#(X1,mark(X2)) -> and#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: and#_A(x1,x2) = x1 + x2 + 2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: and# = mark = active partial status: pi(and#) = [] pi(mark) = [1] pi(active) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: and#(X1,active(X2)) -> and#(X1,X2) p2: and#(active(X1),X2) -> and#(X1,X2) p3: and#(X1,mark(X2)) -> and#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) 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: and#(X1,active(X2)) -> and#(X1,X2) p2: and#(X1,mark(X2)) -> and#(X1,X2) p3: and#(active(X1),X2) -> and#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: and#_A(x1,x2) = x1 + x2 + 2 active_A(x1) = x1 + 1 mark_A(x1) = x1 + 1 precedence: and# = active = mark partial status: pi(and#) = [1] pi(active) = [1] pi(mark) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: and#(X1,mark(X2)) -> and#(X1,X2) p2: and#(active(X1),X2) -> and#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: and#(X1,mark(X2)) -> and#(X1,X2) p2: and#(active(X1),X2) -> and#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: and#_A(x1,x2) = x1 + x2 + 2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: mark = active > and# partial status: pi(and#) = [] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: and#(active(X1),X2) -> and#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: and#(active(X1),X2) -> and#(X1,X2) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: and#_A(x1,x2) = x1 active_A(x1) = x1 + 1 precedence: and# = active partial status: pi(and#) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: if#(mark(X1),X2,X3) -> if#(X1,X2,X3) p2: if#(X1,X2,active(X3)) -> if#(X1,X2,X3) p3: if#(X1,active(X2),X3) -> if#(X1,X2,X3) p4: if#(active(X1),X2,X3) -> if#(X1,X2,X3) p5: if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) p6: if#(X1,mark(X2),X3) -> if#(X1,X2,X3) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: if#_A(x1,x2,x3) = x1 + x2 + x3 + 2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: if# = mark = active partial status: pi(if#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: if#(X1,X2,active(X3)) -> if#(X1,X2,X3) p2: if#(X1,active(X2),X3) -> if#(X1,X2,X3) p3: if#(active(X1),X2,X3) -> if#(X1,X2,X3) p4: if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) p5: if#(X1,mark(X2),X3) -> if#(X1,X2,X3) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) 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: if#(X1,X2,active(X3)) -> if#(X1,X2,X3) p2: if#(X1,mark(X2),X3) -> if#(X1,X2,X3) p3: if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) p4: if#(active(X1),X2,X3) -> if#(X1,X2,X3) p5: if#(X1,active(X2),X3) -> if#(X1,X2,X3) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: if#_A(x1,x2,x3) = x1 + x2 + x3 + 2 active_A(x1) = x1 + 1 mark_A(x1) = x1 + 1 precedence: if# = active = mark partial status: pi(if#) = [1] pi(active) = [1] pi(mark) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: if#(X1,mark(X2),X3) -> if#(X1,X2,X3) p2: if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) p3: if#(active(X1),X2,X3) -> if#(X1,X2,X3) p4: if#(X1,active(X2),X3) -> if#(X1,X2,X3) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) 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: if#(X1,mark(X2),X3) -> if#(X1,X2,X3) p2: if#(X1,active(X2),X3) -> if#(X1,X2,X3) p3: if#(active(X1),X2,X3) -> if#(X1,X2,X3) p4: if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: if#_A(x1,x2,x3) = x1 + x2 + x3 + 2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: if# = mark = active partial status: pi(if#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: if#(X1,active(X2),X3) -> if#(X1,X2,X3) p2: if#(active(X1),X2,X3) -> if#(X1,X2,X3) p3: if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) 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: if#(X1,active(X2),X3) -> if#(X1,X2,X3) p2: if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) p3: if#(active(X1),X2,X3) -> if#(X1,X2,X3) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: if#_A(x1,x2,x3) = x1 + x2 + x3 + 2 active_A(x1) = x1 + 1 mark_A(x1) = x1 + 1 precedence: if# = active = mark partial status: pi(if#) = [1] pi(active) = [1] pi(mark) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) p2: if#(active(X1),X2,X3) -> if#(X1,X2,X3) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: if#(X1,X2,mark(X3)) -> if#(X1,X2,X3) p2: if#(active(X1),X2,X3) -> if#(X1,X2,X3) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: if#_A(x1,x2,x3) = x1 + x2 + x3 + 2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: if# = mark = active partial status: pi(if#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: if#(active(X1),X2,X3) -> if#(X1,X2,X3) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: if#(active(X1),X2,X3) -> if#(X1,X2,X3) and R consists of: r1: active(and(true(),X)) -> mark(X) r2: active(and(false(),Y)) -> mark(false()) r3: active(if(true(),X,Y)) -> mark(X) r4: active(if(false(),X,Y)) -> mark(Y) r5: active(add(|0|(),X)) -> mark(X) r6: active(add(s(X),Y)) -> mark(s(add(X,Y))) r7: active(first(|0|(),X)) -> mark(nil()) r8: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) r9: active(from(X)) -> mark(cons(X,from(s(X)))) r10: mark(and(X1,X2)) -> active(and(mark(X1),X2)) r11: mark(true()) -> active(true()) r12: mark(false()) -> active(false()) r13: mark(if(X1,X2,X3)) -> active(if(mark(X1),X2,X3)) r14: mark(add(X1,X2)) -> active(add(mark(X1),X2)) r15: mark(|0|()) -> active(|0|()) r16: mark(s(X)) -> active(s(X)) r17: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) r18: mark(nil()) -> active(nil()) r19: mark(cons(X1,X2)) -> active(cons(X1,X2)) r20: mark(from(X)) -> active(from(X)) r21: and(mark(X1),X2) -> and(X1,X2) r22: and(X1,mark(X2)) -> and(X1,X2) r23: and(active(X1),X2) -> and(X1,X2) r24: and(X1,active(X2)) -> and(X1,X2) r25: if(mark(X1),X2,X3) -> if(X1,X2,X3) r26: if(X1,mark(X2),X3) -> if(X1,X2,X3) r27: if(X1,X2,mark(X3)) -> if(X1,X2,X3) r28: if(active(X1),X2,X3) -> if(X1,X2,X3) r29: if(X1,active(X2),X3) -> if(X1,X2,X3) r30: if(X1,X2,active(X3)) -> if(X1,X2,X3) r31: add(mark(X1),X2) -> add(X1,X2) r32: add(X1,mark(X2)) -> add(X1,X2) r33: add(active(X1),X2) -> add(X1,X2) r34: add(X1,active(X2)) -> add(X1,X2) r35: s(mark(X)) -> s(X) r36: s(active(X)) -> s(X) r37: first(mark(X1),X2) -> first(X1,X2) r38: first(X1,mark(X2)) -> first(X1,X2) r39: first(active(X1),X2) -> first(X1,X2) r40: first(X1,active(X2)) -> first(X1,X2) r41: cons(mark(X1),X2) -> cons(X1,X2) r42: cons(X1,mark(X2)) -> cons(X1,X2) r43: cons(active(X1),X2) -> cons(X1,X2) r44: cons(X1,active(X2)) -> cons(X1,X2) r45: from(mark(X)) -> from(X) r46: from(active(X)) -> from(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: if#_A(x1,x2,x3) = x1 active_A(x1) = x1 + 1 precedence: if# = active partial status: pi(if#) = [1] pi(active) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.