YES We show the termination of the TRS R: active(zeros()) -> mark(cons(|0|(),zeros())) active(U11(tt())) -> mark(tt()) active(U21(tt())) -> mark(tt()) active(U31(tt())) -> mark(tt()) active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) active(U42(tt())) -> mark(tt()) active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) active(U52(tt())) -> mark(tt()) active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) active(U62(tt())) -> mark(tt()) active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) active(U72(tt(),L)) -> mark(s(length(L))) active(U81(tt())) -> mark(nil()) active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) active(isNat(|0|())) -> mark(tt()) active(isNat(length(V1))) -> mark(U11(isNatList(V1))) active(isNat(s(V1))) -> mark(U21(isNat(V1))) active(isNatIList(V)) -> mark(U31(isNatList(V))) active(isNatIList(zeros())) -> mark(tt()) active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) active(isNatList(nil())) -> mark(tt()) active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) active(length(nil())) -> mark(|0|()) active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) mark(zeros()) -> active(zeros()) mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) mark(|0|()) -> active(|0|()) mark(U11(X)) -> active(U11(mark(X))) mark(tt()) -> active(tt()) mark(U21(X)) -> active(U21(mark(X))) mark(U31(X)) -> active(U31(mark(X))) mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) mark(U42(X)) -> active(U42(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) mark(U52(X)) -> active(U52(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) mark(isNat(X)) -> active(isNat(X)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(nil()) -> active(nil()) mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) mark(take(X1,X2)) -> active(take(mark(X1),mark(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) U11(mark(X)) -> U11(X) U11(active(X)) -> U11(X) U21(mark(X)) -> U21(X) U21(active(X)) -> U21(X) U31(mark(X)) -> U31(X) U31(active(X)) -> U31(X) U41(mark(X1),X2) -> U41(X1,X2) U41(X1,mark(X2)) -> U41(X1,X2) U41(active(X1),X2) -> U41(X1,X2) U41(X1,active(X2)) -> U41(X1,X2) U42(mark(X)) -> U42(X) U42(active(X)) -> U42(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U51(mark(X1),X2) -> U51(X1,X2) U51(X1,mark(X2)) -> U51(X1,X2) U51(active(X1),X2) -> U51(X1,X2) U51(X1,active(X2)) -> U51(X1,X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U61(mark(X1),X2) -> U61(X1,X2) U61(X1,mark(X2)) -> U61(X1,X2) U61(active(X1),X2) -> U61(X1,X2) U61(X1,active(X2)) -> U61(X1,X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X1),X2,X3) -> U71(X1,X2,X3) U71(X1,mark(X2),X3) -> U71(X1,X2,X3) U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) U71(active(X1),X2,X3) -> U71(X1,X2,X3) U71(X1,active(X2),X3) -> U71(X1,X2,X3) U71(X1,X2,active(X3)) -> U71(X1,X2,X3) U72(mark(X1),X2) -> U72(X1,X2) U72(X1,mark(X2)) -> U72(X1,X2) U72(active(X1),X2) -> U72(X1,X2) U72(X1,active(X2)) -> U72(X1,X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) take(mark(X1),X2) -> take(X1,X2) take(X1,mark(X2)) -> take(X1,X2) take(active(X1),X2) -> take(X1,X2) take(X1,active(X2)) -> take(X1,X2) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(zeros()) -> mark#(cons(|0|(),zeros())) p2: active#(zeros()) -> cons#(|0|(),zeros()) p3: active#(U11(tt())) -> mark#(tt()) p4: active#(U21(tt())) -> mark#(tt()) p5: active#(U31(tt())) -> mark#(tt()) p6: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p7: active#(U41(tt(),V2)) -> U42#(isNatIList(V2)) p8: active#(U41(tt(),V2)) -> isNatIList#(V2) p9: active#(U42(tt())) -> mark#(tt()) p10: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p11: active#(U51(tt(),V2)) -> U52#(isNatList(V2)) p12: active#(U51(tt(),V2)) -> isNatList#(V2) p13: active#(U52(tt())) -> mark#(tt()) p14: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p15: active#(U61(tt(),V2)) -> U62#(isNatIList(V2)) p16: active#(U61(tt(),V2)) -> isNatIList#(V2) p17: active#(U62(tt())) -> mark#(tt()) p18: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p19: active#(U71(tt(),L,N)) -> U72#(isNat(N),L) p20: active#(U71(tt(),L,N)) -> isNat#(N) p21: active#(U72(tt(),L)) -> mark#(s(length(L))) p22: active#(U72(tt(),L)) -> s#(length(L)) p23: active#(U72(tt(),L)) -> length#(L) p24: active#(U81(tt())) -> mark#(nil()) p25: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p26: active#(U91(tt(),IL,M,N)) -> U92#(isNat(M),IL,M,N) p27: active#(U91(tt(),IL,M,N)) -> isNat#(M) p28: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p29: active#(U92(tt(),IL,M,N)) -> U93#(isNat(N),IL,M,N) p30: active#(U92(tt(),IL,M,N)) -> isNat#(N) p31: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p32: active#(U93(tt(),IL,M,N)) -> cons#(N,take(M,IL)) p33: active#(U93(tt(),IL,M,N)) -> take#(M,IL) p34: active#(isNat(|0|())) -> mark#(tt()) p35: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p36: active#(isNat(length(V1))) -> U11#(isNatList(V1)) p37: active#(isNat(length(V1))) -> isNatList#(V1) p38: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p39: active#(isNat(s(V1))) -> U21#(isNat(V1)) p40: active#(isNat(s(V1))) -> isNat#(V1) p41: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p42: active#(isNatIList(V)) -> U31#(isNatList(V)) p43: active#(isNatIList(V)) -> isNatList#(V) p44: active#(isNatIList(zeros())) -> mark#(tt()) p45: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p46: active#(isNatIList(cons(V1,V2))) -> U41#(isNat(V1),V2) p47: active#(isNatIList(cons(V1,V2))) -> isNat#(V1) p48: active#(isNatList(nil())) -> mark#(tt()) p49: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p50: active#(isNatList(cons(V1,V2))) -> U51#(isNat(V1),V2) p51: active#(isNatList(cons(V1,V2))) -> isNat#(V1) p52: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p53: active#(isNatList(take(V1,V2))) -> U61#(isNat(V1),V2) p54: active#(isNatList(take(V1,V2))) -> isNat#(V1) p55: active#(length(nil())) -> mark#(|0|()) p56: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p57: active#(length(cons(N,L))) -> U71#(isNatList(L),L,N) p58: active#(length(cons(N,L))) -> isNatList#(L) p59: active#(take(|0|(),IL)) -> mark#(U81(isNatIList(IL))) p60: active#(take(|0|(),IL)) -> U81#(isNatIList(IL)) p61: active#(take(|0|(),IL)) -> isNatIList#(IL) p62: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p63: active#(take(s(M),cons(N,IL))) -> U91#(isNatIList(IL),IL,M,N) p64: active#(take(s(M),cons(N,IL))) -> isNatIList#(IL) p65: mark#(zeros()) -> active#(zeros()) p66: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) p67: mark#(cons(X1,X2)) -> cons#(mark(X1),X2) p68: mark#(cons(X1,X2)) -> mark#(X1) p69: mark#(|0|()) -> active#(|0|()) p70: mark#(U11(X)) -> active#(U11(mark(X))) p71: mark#(U11(X)) -> U11#(mark(X)) p72: mark#(U11(X)) -> mark#(X) p73: mark#(tt()) -> active#(tt()) p74: mark#(U21(X)) -> active#(U21(mark(X))) p75: mark#(U21(X)) -> U21#(mark(X)) p76: mark#(U21(X)) -> mark#(X) p77: mark#(U31(X)) -> active#(U31(mark(X))) p78: mark#(U31(X)) -> U31#(mark(X)) p79: mark#(U31(X)) -> mark#(X) p80: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p81: mark#(U41(X1,X2)) -> U41#(mark(X1),X2) p82: mark#(U41(X1,X2)) -> mark#(X1) p83: mark#(U42(X)) -> active#(U42(mark(X))) p84: mark#(U42(X)) -> U42#(mark(X)) p85: mark#(U42(X)) -> mark#(X) p86: mark#(isNatIList(X)) -> active#(isNatIList(X)) p87: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p88: mark#(U51(X1,X2)) -> U51#(mark(X1),X2) p89: mark#(U51(X1,X2)) -> mark#(X1) p90: mark#(U52(X)) -> active#(U52(mark(X))) p91: mark#(U52(X)) -> U52#(mark(X)) p92: mark#(U52(X)) -> mark#(X) p93: mark#(isNatList(X)) -> active#(isNatList(X)) p94: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p95: mark#(U61(X1,X2)) -> U61#(mark(X1),X2) p96: mark#(U61(X1,X2)) -> mark#(X1) p97: mark#(U62(X)) -> active#(U62(mark(X))) p98: mark#(U62(X)) -> U62#(mark(X)) p99: mark#(U62(X)) -> mark#(X) p100: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p101: mark#(U71(X1,X2,X3)) -> U71#(mark(X1),X2,X3) p102: mark#(U71(X1,X2,X3)) -> mark#(X1) p103: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p104: mark#(U72(X1,X2)) -> U72#(mark(X1),X2) p105: mark#(U72(X1,X2)) -> mark#(X1) p106: mark#(isNat(X)) -> active#(isNat(X)) p107: mark#(s(X)) -> active#(s(mark(X))) p108: mark#(s(X)) -> s#(mark(X)) p109: mark#(s(X)) -> mark#(X) p110: mark#(length(X)) -> active#(length(mark(X))) p111: mark#(length(X)) -> length#(mark(X)) p112: mark#(length(X)) -> mark#(X) p113: mark#(U81(X)) -> active#(U81(mark(X))) p114: mark#(U81(X)) -> U81#(mark(X)) p115: mark#(U81(X)) -> mark#(X) p116: mark#(nil()) -> active#(nil()) p117: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p118: mark#(U91(X1,X2,X3,X4)) -> U91#(mark(X1),X2,X3,X4) p119: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p120: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p121: mark#(U92(X1,X2,X3,X4)) -> U92#(mark(X1),X2,X3,X4) p122: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p123: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p124: mark#(U93(X1,X2,X3,X4)) -> U93#(mark(X1),X2,X3,X4) p125: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p126: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(X2))) p127: mark#(take(X1,X2)) -> take#(mark(X1),mark(X2)) p128: mark#(take(X1,X2)) -> mark#(X1) p129: mark#(take(X1,X2)) -> mark#(X2) p130: cons#(mark(X1),X2) -> cons#(X1,X2) p131: cons#(X1,mark(X2)) -> cons#(X1,X2) p132: cons#(active(X1),X2) -> cons#(X1,X2) p133: cons#(X1,active(X2)) -> cons#(X1,X2) p134: U11#(mark(X)) -> U11#(X) p135: U11#(active(X)) -> U11#(X) p136: U21#(mark(X)) -> U21#(X) p137: U21#(active(X)) -> U21#(X) p138: U31#(mark(X)) -> U31#(X) p139: U31#(active(X)) -> U31#(X) p140: U41#(mark(X1),X2) -> U41#(X1,X2) p141: U41#(X1,mark(X2)) -> U41#(X1,X2) p142: U41#(active(X1),X2) -> U41#(X1,X2) p143: U41#(X1,active(X2)) -> U41#(X1,X2) p144: U42#(mark(X)) -> U42#(X) p145: U42#(active(X)) -> U42#(X) p146: isNatIList#(mark(X)) -> isNatIList#(X) p147: isNatIList#(active(X)) -> isNatIList#(X) p148: U51#(mark(X1),X2) -> U51#(X1,X2) p149: U51#(X1,mark(X2)) -> U51#(X1,X2) p150: U51#(active(X1),X2) -> U51#(X1,X2) p151: U51#(X1,active(X2)) -> U51#(X1,X2) p152: U52#(mark(X)) -> U52#(X) p153: U52#(active(X)) -> U52#(X) p154: isNatList#(mark(X)) -> isNatList#(X) p155: isNatList#(active(X)) -> isNatList#(X) p156: U61#(mark(X1),X2) -> U61#(X1,X2) p157: U61#(X1,mark(X2)) -> U61#(X1,X2) p158: U61#(active(X1),X2) -> U61#(X1,X2) p159: U61#(X1,active(X2)) -> U61#(X1,X2) p160: U62#(mark(X)) -> U62#(X) p161: U62#(active(X)) -> U62#(X) p162: U71#(mark(X1),X2,X3) -> U71#(X1,X2,X3) p163: U71#(X1,mark(X2),X3) -> U71#(X1,X2,X3) p164: U71#(X1,X2,mark(X3)) -> U71#(X1,X2,X3) p165: U71#(active(X1),X2,X3) -> U71#(X1,X2,X3) p166: U71#(X1,active(X2),X3) -> U71#(X1,X2,X3) p167: U71#(X1,X2,active(X3)) -> U71#(X1,X2,X3) p168: U72#(mark(X1),X2) -> U72#(X1,X2) p169: U72#(X1,mark(X2)) -> U72#(X1,X2) p170: U72#(active(X1),X2) -> U72#(X1,X2) p171: U72#(X1,active(X2)) -> U72#(X1,X2) p172: isNat#(mark(X)) -> isNat#(X) p173: isNat#(active(X)) -> isNat#(X) p174: s#(mark(X)) -> s#(X) p175: s#(active(X)) -> s#(X) p176: length#(mark(X)) -> length#(X) p177: length#(active(X)) -> length#(X) p178: U81#(mark(X)) -> U81#(X) p179: U81#(active(X)) -> U81#(X) p180: U91#(mark(X1),X2,X3,X4) -> U91#(X1,X2,X3,X4) p181: U91#(X1,mark(X2),X3,X4) -> U91#(X1,X2,X3,X4) p182: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p183: U91#(X1,X2,X3,mark(X4)) -> U91#(X1,X2,X3,X4) p184: U91#(active(X1),X2,X3,X4) -> U91#(X1,X2,X3,X4) p185: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) p186: U91#(X1,X2,active(X3),X4) -> U91#(X1,X2,X3,X4) p187: U91#(X1,X2,X3,active(X4)) -> U91#(X1,X2,X3,X4) p188: U92#(mark(X1),X2,X3,X4) -> U92#(X1,X2,X3,X4) p189: U92#(X1,mark(X2),X3,X4) -> U92#(X1,X2,X3,X4) p190: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p191: U92#(X1,X2,X3,mark(X4)) -> U92#(X1,X2,X3,X4) p192: U92#(active(X1),X2,X3,X4) -> U92#(X1,X2,X3,X4) p193: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) p194: U92#(X1,X2,active(X3),X4) -> U92#(X1,X2,X3,X4) p195: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) p196: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p197: U93#(X1,mark(X2),X3,X4) -> U93#(X1,X2,X3,X4) p198: U93#(X1,X2,mark(X3),X4) -> U93#(X1,X2,X3,X4) p199: U93#(X1,X2,X3,mark(X4)) -> U93#(X1,X2,X3,X4) p200: U93#(active(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p201: U93#(X1,active(X2),X3,X4) -> U93#(X1,X2,X3,X4) p202: U93#(X1,X2,active(X3),X4) -> U93#(X1,X2,X3,X4) p203: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) p204: take#(mark(X1),X2) -> take#(X1,X2) p205: take#(X1,mark(X2)) -> take#(X1,X2) p206: take#(active(X1),X2) -> take#(X1,X2) p207: take#(X1,active(X2)) -> take#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p6, p10, p14, p18, p21, p25, p28, p31, p35, p38, p41, p45, p49, p52, p56, p59, p62, p65, p66, p68, p70, p72, p74, p76, p77, p79, p80, p82, p83, p85, p86, p87, p89, p90, p92, p93, p94, p96, p97, p99, p100, p102, p103, p105, p106, p107, p109, p110, p112, p113, p115, p117, p119, p120, p122, p123, p125, p126, p128, p129} {p144, p145} {p146, p147} {p152, p153} {p154, p155} {p160, p161} {p168, p169, p170, p171} {p172, p173} {p174, p175} {p176, p177} {p188, p189, p190, p191, p192, p193, p194, p195} {p196, p197, p198, p199, p200, p201, p202, p203} {p130, p131, p132, p133} {p204, p205, p206, p207} {p134, p135} {p136, p137} {p138, p139} {p140, p141, p142, p143} {p148, p149, p150, p151} {p156, p157, p158, p159} {p162, p163, p164, p165, p166, p167} {p178, p179} {p180, p181, p182, p183, p184, p185, p186, p187} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(zeros()) -> mark#(cons(|0|(),zeros())) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(take(X1,X2)) -> mark#(X2) p4: mark#(take(X1,X2)) -> mark#(X1) p5: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(X2))) p6: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p7: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p9: active#(take(|0|(),IL)) -> mark#(U81(isNatIList(IL))) p10: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p12: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p13: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p14: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p15: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p16: mark#(U81(X)) -> mark#(X) p17: mark#(U81(X)) -> active#(U81(mark(X))) p18: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p19: mark#(length(X)) -> mark#(X) p20: mark#(length(X)) -> active#(length(mark(X))) p21: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p22: mark#(s(X)) -> mark#(X) p23: mark#(s(X)) -> active#(s(mark(X))) p24: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p25: mark#(isNat(X)) -> active#(isNat(X)) p26: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p27: mark#(U72(X1,X2)) -> mark#(X1) p28: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p29: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p30: mark#(U71(X1,X2,X3)) -> mark#(X1) p31: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p32: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p33: mark#(U62(X)) -> mark#(X) p34: mark#(U62(X)) -> active#(U62(mark(X))) p35: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p36: mark#(U61(X1,X2)) -> mark#(X1) p37: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p38: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p39: mark#(isNatList(X)) -> active#(isNatList(X)) p40: active#(U72(tt(),L)) -> mark#(s(length(L))) p41: mark#(U52(X)) -> mark#(X) p42: mark#(U52(X)) -> active#(U52(mark(X))) p43: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p44: mark#(U51(X1,X2)) -> mark#(X1) p45: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p46: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p47: mark#(isNatIList(X)) -> active#(isNatIList(X)) p48: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p49: mark#(U42(X)) -> mark#(X) p50: mark#(U42(X)) -> active#(U42(mark(X))) p51: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p52: mark#(U41(X1,X2)) -> mark#(X1) p53: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p54: mark#(U31(X)) -> mark#(X) p55: mark#(U31(X)) -> active#(U31(mark(X))) p56: mark#(U21(X)) -> mark#(X) p57: mark#(U21(X)) -> active#(U21(mark(X))) p58: mark#(U11(X)) -> mark#(X) p59: mark#(U11(X)) -> active#(U11(mark(X))) p60: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) p61: mark#(zeros()) -> active#(zeros()) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133 Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: active#_A(x1) = x1 + 1 zeros_A = 12 mark#_A(x1) = x1 + 1 cons_A(x1,x2) = max{12, x1 + 10, x2} |0|_A = 1 take_A(x1,x2) = max{x1 + 24, x2 + 36} mark_A(x1) = x1 s_A(x1) = x1 U91_A(x1,x2,x3,x4) = max{x1 + 24, x2 + 36, x3 + 24, x4 + 24} isNatIList_A(x1) = max{11, x1 + 10} U93_A(x1,x2,x3,x4) = max{x1 + 13, x2 + 36, x3 + 24, x4 + 13} U81_A(x1) = x1 + 13 U92_A(x1,x2,x3,x4) = max{x1 + 17, x2 + 36, x3 + 24, x4 + 20} length_A(x1) = x1 + 9 U71_A(x1,x2,x3) = max{18, x1 + 1, x2 + 9, x3 + 17} isNatList_A(x1) = x1 + 8 U61_A(x1,x2) = max{x1 + 13, x2 + 13} isNat_A(x1) = x1 + 7 U51_A(x1,x2) = max{x1 + 1, x2 + 8} U41_A(x1,x2) = max{x1 + 10, x2 + 10} U31_A(x1) = max{2, x1 + 1} U21_A(x1) = x1 U72_A(x1,x2) = max{x1 + 10, x2 + 9} U11_A(x1) = max{7, x1 + 1} tt_A = 3 U62_A(x1) = max{2, x1 + 1} U52_A(x1) = x1 U42_A(x1) = x1 active_A(x1) = x1 nil_A = 0 2. max/plus interpretations on natural numbers: active#_A(x1) = max{18, x1 - 29} zeros_A = 108 mark#_A(x1) = max{0, x1 - 9} cons_A(x1,x2) = 28 |0|_A = 27 take_A(x1,x2) = 111 mark_A(x1) = max{26, x1 + 13} s_A(x1) = max{27, x1} U91_A(x1,x2,x3,x4) = 90 isNatIList_A(x1) = 27 U93_A(x1,x2,x3,x4) = 49 U81_A(x1) = max{68, x1 + 28} U92_A(x1,x2,x3,x4) = 70 length_A(x1) = 27 U71_A(x1,x2,x3) = 27 isNatList_A(x1) = 27 U61_A(x1,x2) = 29 isNat_A(x1) = 27 U51_A(x1,x2) = 27 U41_A(x1,x2) = 27 U31_A(x1) = 41 U21_A(x1) = max{27, x1} U72_A(x1,x2) = 27 U11_A(x1) = 38 tt_A = 27 U62_A(x1) = 68 U52_A(x1) = max{27, x1} U42_A(x1) = max{27, x1} active_A(x1) = max{40, x1} nil_A = 27 The next rules are strictly ordered: p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p13, p14, p15, p16, p17, p19, p24, p27, p29, p30, p32, p33, p34, p35, p36, p37, p44, p46, p52, p54, p55, p58, p59, p60, p61 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p2: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p3: mark#(length(X)) -> active#(length(mark(X))) p4: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p5: mark#(s(X)) -> mark#(X) p6: mark#(s(X)) -> active#(s(mark(X))) p7: mark#(isNat(X)) -> active#(isNat(X)) p8: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p9: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p10: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p11: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p12: mark#(isNatList(X)) -> active#(isNatList(X)) p13: active#(U72(tt(),L)) -> mark#(s(length(L))) p14: mark#(U52(X)) -> mark#(X) p15: mark#(U52(X)) -> active#(U52(mark(X))) p16: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p17: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p18: mark#(isNatIList(X)) -> active#(isNatIList(X)) p19: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p20: mark#(U42(X)) -> mark#(X) p21: mark#(U42(X)) -> active#(U42(mark(X))) p22: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p23: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p24: mark#(U21(X)) -> mark#(X) p25: mark#(U21(X)) -> active#(U21(mark(X))) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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, p19, p20, p21, p22, p23, p24, p25} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p2: mark#(U21(X)) -> active#(U21(mark(X))) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(U21(X)) -> mark#(X) p5: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p6: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p7: mark#(U42(X)) -> active#(U42(mark(X))) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U42(X)) -> mark#(X) p10: mark#(isNatIList(X)) -> active#(isNatIList(X)) p11: active#(U72(tt(),L)) -> mark#(s(length(L))) p12: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p13: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p14: mark#(U52(X)) -> active#(U52(mark(X))) p15: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p16: mark#(U52(X)) -> mark#(X) p17: mark#(isNatList(X)) -> active#(isNatList(X)) p18: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p19: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p20: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p21: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p22: mark#(isNat(X)) -> active#(isNat(X)) p23: mark#(s(X)) -> active#(s(mark(X))) p24: mark#(s(X)) -> mark#(X) p25: mark#(length(X)) -> active#(length(mark(X))) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133 Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: active#_A(x1) = max{0, x1 - 215} length_A(x1) = 182 cons_A(x1,x2) = x1 + 182 mark#_A(x1) = max{0, x1 - 182} U71_A(x1,x2,x3) = 182 isNatList_A(x1) = 182 U21_A(x1) = max{182, x1} mark_A(x1) = x1 + 9 U41_A(x1,x2) = 182 tt_A = 182 U42_A(x1) = max{182, x1} isNatIList_A(x1) = 182 U51_A(x1,x2) = 182 U52_A(x1) = max{182, x1} U72_A(x1,x2) = 182 isNat_A(x1) = 182 s_A(x1) = max{182, x1} U91_A(x1,x2,x3,x4) = x4 + 660 U92_A(x1,x2,x3,x4) = x4 + 385 active_A(x1) = max{191, x1} zeros_A = 373 |0|_A = 182 U11_A(x1) = max{182, x1 - 10} U31_A(x1) = max{182, x1} U61_A(x1,x2) = 182 U62_A(x1) = max{182, x1 - 10} U81_A(x1) = 477 nil_A = 182 U93_A(x1,x2,x3,x4) = x4 + 191 take_A(x1,x2) = x2 + 487 2. max/plus interpretations on natural numbers: active#_A(x1) = 0 length_A(x1) = 117 cons_A(x1,x2) = 477 mark#_A(x1) = 0 U71_A(x1,x2,x3) = 181 isNatList_A(x1) = 170 U21_A(x1) = 167 mark_A(x1) = 254 U41_A(x1,x2) = 170 tt_A = 243 U42_A(x1) = 122 isNatIList_A(x1) = 4 U51_A(x1,x2) = 122 U52_A(x1) = 13 U72_A(x1,x2) = 227 isNat_A(x1) = 122 s_A(x1) = 116 U91_A(x1,x2,x3,x4) = 167 U92_A(x1,x2,x3,x4) = 119 active_A(x1) = 254 zeros_A = 117 |0|_A = 229 U11_A(x1) = 119 U31_A(x1) = 82 U61_A(x1,x2) = 227 U62_A(x1) = 119 U81_A(x1) = 227 nil_A = 479 U93_A(x1,x2,x3,x4) = 0 take_A(x1,x2) = 117 The next rules are strictly ordered: p13 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p2: mark#(U21(X)) -> active#(U21(mark(X))) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(U21(X)) -> mark#(X) p5: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p6: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p7: mark#(U42(X)) -> active#(U42(mark(X))) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U42(X)) -> mark#(X) p10: mark#(isNatIList(X)) -> active#(isNatIList(X)) p11: active#(U72(tt(),L)) -> mark#(s(length(L))) p12: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p13: mark#(U52(X)) -> active#(U52(mark(X))) p14: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p15: mark#(U52(X)) -> mark#(X) p16: mark#(isNatList(X)) -> active#(isNatList(X)) p17: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p18: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p19: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p20: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p21: mark#(isNat(X)) -> active#(isNat(X)) p22: mark#(s(X)) -> active#(s(mark(X))) p23: mark#(s(X)) -> mark#(X) p24: mark#(length(X)) -> active#(length(mark(X))) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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, p19, p20, p21, p22, p23, p24} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p2: mark#(length(X)) -> active#(length(mark(X))) p3: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p4: mark#(s(X)) -> mark#(X) p5: mark#(s(X)) -> active#(s(mark(X))) p6: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p7: mark#(isNat(X)) -> active#(isNat(X)) p8: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p9: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p10: active#(U72(tt(),L)) -> mark#(s(length(L))) p11: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p12: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p13: mark#(isNatList(X)) -> active#(isNatList(X)) p14: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p15: mark#(U52(X)) -> mark#(X) p16: mark#(U52(X)) -> active#(U52(mark(X))) p17: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p18: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p19: mark#(isNatIList(X)) -> active#(isNatIList(X)) p20: mark#(U42(X)) -> mark#(X) p21: mark#(U42(X)) -> active#(U42(mark(X))) p22: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p23: mark#(U21(X)) -> mark#(X) p24: mark#(U21(X)) -> active#(U21(mark(X))) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133 Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: active#_A(x1) = x1 length_A(x1) = 110 cons_A(x1,x2) = 111 mark#_A(x1) = 110 U71_A(x1,x2,x3) = 110 isNatList_A(x1) = 110 mark_A(x1) = max{156, x1 + 105} U51_A(x1,x2) = 110 isNat_A(x1) = 110 s_A(x1) = 110 isNatIList_A(x1) = 110 U41_A(x1,x2) = 110 U21_A(x1) = 110 U72_A(x1,x2) = 110 tt_A = 110 U52_A(x1) = 110 U42_A(x1) = 110 active_A(x1) = max{215, x1 + 49} zeros_A = 168 |0|_A = 110 U11_A(x1) = 110 U31_A(x1) = 110 U61_A(x1,x2) = 110 U62_A(x1) = 110 U81_A(x1) = 110 nil_A = 110 U91_A(x1,x2,x3,x4) = 281 U92_A(x1,x2,x3,x4) = 224 U93_A(x1,x2,x3,x4) = 167 take_A(x1,x2) = 345 2. max/plus interpretations on natural numbers: active#_A(x1) = x1 + 26 length_A(x1) = 21 cons_A(x1,x2) = 53 mark#_A(x1) = 47 U71_A(x1,x2,x3) = 21 isNatList_A(x1) = 21 mark_A(x1) = 19 U51_A(x1,x2) = 21 isNat_A(x1) = 21 s_A(x1) = 20 isNatIList_A(x1) = 21 U41_A(x1,x2) = 21 U21_A(x1) = 20 U72_A(x1,x2) = 21 tt_A = 78 U52_A(x1) = 20 U42_A(x1) = 0 active_A(x1) = 19 zeros_A = 0 |0|_A = 53 U11_A(x1) = 20 U31_A(x1) = 87 U61_A(x1,x2) = 28 U62_A(x1) = 7 U81_A(x1) = 28 nil_A = 89 U91_A(x1,x2,x3,x4) = 28 U92_A(x1,x2,x3,x4) = 29 U93_A(x1,x2,x3,x4) = 20 take_A(x1,x2) = 0 The next rules are strictly ordered: p5, p16, p21, p24 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p2: mark#(length(X)) -> active#(length(mark(X))) p3: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p4: mark#(s(X)) -> mark#(X) p5: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p6: mark#(isNat(X)) -> active#(isNat(X)) p7: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p8: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p9: active#(U72(tt(),L)) -> mark#(s(length(L))) p10: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p11: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p12: mark#(isNatList(X)) -> active#(isNatList(X)) p13: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p14: mark#(U52(X)) -> mark#(X) p15: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p16: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p17: mark#(isNatIList(X)) -> active#(isNatIList(X)) p18: mark#(U42(X)) -> mark#(X) p19: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p20: mark#(U21(X)) -> mark#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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, p19, p20} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p2: mark#(U21(X)) -> mark#(X) p3: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p4: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p5: mark#(U42(X)) -> mark#(X) p6: mark#(isNatIList(X)) -> active#(isNatIList(X)) p7: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p8: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p9: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p10: mark#(U52(X)) -> mark#(X) p11: mark#(isNatList(X)) -> active#(isNatList(X)) p12: active#(U72(tt(),L)) -> mark#(s(length(L))) p13: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p14: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p15: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p16: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p17: mark#(isNat(X)) -> active#(isNat(X)) p18: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p19: mark#(s(X)) -> mark#(X) p20: mark#(length(X)) -> active#(length(mark(X))) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133 Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: active#_A(x1) = x1 + 22 length_A(x1) = max{56, x1 + 48} cons_A(x1,x2) = max{6, x1 - 3, x2 + 5} mark#_A(x1) = x1 + 22 U71_A(x1,x2,x3) = max{x1 + 33, x2 + 53, x3 + 44} isNatList_A(x1) = x1 + 14 U21_A(x1) = max{29, x1 + 1} U41_A(x1,x2) = max{31, x2 + 17} mark_A(x1) = max{7, x1} tt_A = 30 U42_A(x1) = max{18, x1} isNatIList_A(x1) = max{31, x1 + 16} U51_A(x1,x2) = x2 + 18 U52_A(x1) = max{9, x1 + 1} U72_A(x1,x2) = max{x1 + 31, x2 + 53} isNat_A(x1) = max{30, x1 - 20} s_A(x1) = max{52, x1 + 5} active_A(x1) = max{7, x1} zeros_A = 2 |0|_A = 6 U11_A(x1) = max{14, x1 + 6} U31_A(x1) = max{9, x1 + 1} U61_A(x1,x2) = max{x1 + 33, x2 + 40} U62_A(x1) = max{29, x1 + 8} U81_A(x1) = max{33, x1 + 26} nil_A = 17 U91_A(x1,x2,x3,x4) = max{x1 + 34, x2 + 53, x3 + 55, x4 + 44} U92_A(x1,x2,x3,x4) = max{x1 + 34, x2 + 53, x3 + 55, x4 + 43} U93_A(x1,x2,x3,x4) = max{x1 + 34, x2 + 53, x3 + 55, x4 + 42} take_A(x1,x2) = max{58, x1 + 50, x2 + 48} 2. max/plus interpretations on natural numbers: active#_A(x1) = x1 + 42 length_A(x1) = 38 cons_A(x1,x2) = 54 mark#_A(x1) = 80 U71_A(x1,x2,x3) = 38 isNatList_A(x1) = 38 U21_A(x1) = 0 U41_A(x1,x2) = 38 mark_A(x1) = 74 tt_A = 34 U42_A(x1) = 44 isNatIList_A(x1) = 38 U51_A(x1,x2) = 32 U52_A(x1) = 34 U72_A(x1,x2) = 38 isNat_A(x1) = 38 s_A(x1) = 45 active_A(x1) = 74 zeros_A = 47 |0|_A = 47 U11_A(x1) = 34 U31_A(x1) = 49 U61_A(x1,x2) = 34 U62_A(x1) = 34 U81_A(x1) = 41 nil_A = 34 U91_A(x1,x2,x3,x4) = 46 U92_A(x1,x2,x3,x4) = 82 U93_A(x1,x2,x3,x4) = 68 take_A(x1,x2) = 46 The next rules are strictly ordered: p2, p7, p8, p10, p14, p18, p19 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p2: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(U42(X)) -> mark#(X) p5: mark#(isNatIList(X)) -> active#(isNatIList(X)) p6: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p7: mark#(isNatList(X)) -> active#(isNatList(X)) p8: active#(U72(tt(),L)) -> mark#(s(length(L))) p9: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p10: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p11: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p12: mark#(isNat(X)) -> active#(isNat(X)) p13: mark#(length(X)) -> active#(length(mark(X))) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p2: mark#(length(X)) -> active#(length(mark(X))) p3: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p4: mark#(isNat(X)) -> active#(isNat(X)) p5: active#(U72(tt(),L)) -> mark#(s(length(L))) p6: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p7: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p8: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p9: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p10: mark#(isNatList(X)) -> active#(isNatList(X)) p11: mark#(isNatIList(X)) -> active#(isNatIList(X)) p12: mark#(U42(X)) -> mark#(X) p13: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133 Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: active#_A(x1) = x1 + 207 length_A(x1) = 110 cons_A(x1,x2) = 110 mark#_A(x1) = 317 U71_A(x1,x2,x3) = 110 isNatList_A(x1) = 110 mark_A(x1) = max{41, x1 + 38} isNatIList_A(x1) = 110 U41_A(x1,x2) = 110 isNat_A(x1) = 110 U72_A(x1,x2) = 110 tt_A = 110 s_A(x1) = 110 U42_A(x1) = 110 active_A(x1) = max{148, x1 - 1} zeros_A = 216 |0|_A = 110 U11_A(x1) = 110 U21_A(x1) = 110 U31_A(x1) = 110 U51_A(x1,x2) = 110 U52_A(x1) = 110 U61_A(x1,x2) = 110 U62_A(x1) = 110 U81_A(x1) = 224 nil_A = 185 U91_A(x1,x2,x3,x4) = 223 U92_A(x1,x2,x3,x4) = 148 U93_A(x1,x2,x3,x4) = 110 take_A(x1,x2) = 263 2. max/plus interpretations on natural numbers: active#_A(x1) = x1 + 3 length_A(x1) = 27 cons_A(x1,x2) = 6 mark#_A(x1) = 30 U71_A(x1,x2,x3) = 27 isNatList_A(x1) = 7 mark_A(x1) = 12 isNatIList_A(x1) = 27 U41_A(x1,x2) = 27 isNat_A(x1) = 26 U72_A(x1,x2) = 27 tt_A = 13 s_A(x1) = 2 U42_A(x1) = 16 active_A(x1) = 12 zeros_A = 19 |0|_A = 20 U11_A(x1) = 47 U21_A(x1) = 24 U31_A(x1) = 16 U51_A(x1,x2) = 1 U52_A(x1) = 11 U61_A(x1,x2) = 13 U62_A(x1) = 11 U81_A(x1) = 13 nil_A = 15 U91_A(x1,x2,x3,x4) = 11 U92_A(x1,x2,x3,x4) = 32 U93_A(x1,x2,x3,x4) = 19 take_A(x1,x2) = 1 The next rules are strictly ordered: p4, p10 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p2: mark#(length(X)) -> active#(length(mark(X))) p3: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p4: active#(U72(tt(),L)) -> mark#(s(length(L))) p5: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p6: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p7: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p8: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p9: mark#(isNatIList(X)) -> active#(isNatIList(X)) p10: mark#(U42(X)) -> mark#(X) p11: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p2: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(U42(X)) -> mark#(X) p5: mark#(isNatIList(X)) -> active#(isNatIList(X)) p6: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p7: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p8: active#(U72(tt(),L)) -> mark#(s(length(L))) p9: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p10: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p11: mark#(length(X)) -> active#(length(mark(X))) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133 Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: active#_A(x1) = x1 + 50 length_A(x1) = x1 cons_A(x1,x2) = max{46, x1 - 3} mark#_A(x1) = x1 + 50 U71_A(x1,x2,x3) = x1 + 35 isNatList_A(x1) = 10 U41_A(x1,x2) = max{14, x1 + 13} mark_A(x1) = x1 tt_A = 7 U42_A(x1) = x1 isNatIList_A(x1) = 20 U72_A(x1,x2) = max{41, x1 - 48} isNat_A(x1) = 7 s_A(x1) = 40 active_A(x1) = x1 zeros_A = 47 |0|_A = 0 U11_A(x1) = max{7, x1 - 4} U21_A(x1) = max{1, x1} U31_A(x1) = max{19, x1 + 9} U51_A(x1,x2) = 9 U52_A(x1) = 8 U61_A(x1,x2) = 9 U62_A(x1) = 8 U81_A(x1) = x1 + 2 nil_A = 0 U91_A(x1,x2,x3,x4) = max{x1 + 56, x4 + 56} U92_A(x1,x2,x3,x4) = max{x1 + 48, x4 + 48} U93_A(x1,x2,x3,x4) = max{x1 + 39, x4 + 39} take_A(x1,x2) = max{x1 + 37, x2 + 60} 2. max/plus interpretations on natural numbers: active#_A(x1) = max{0, x1 - 29} length_A(x1) = 28 cons_A(x1,x2) = 0 mark#_A(x1) = 0 U71_A(x1,x2,x3) = 28 isNatList_A(x1) = 27 U41_A(x1,x2) = 28 mark_A(x1) = 28 tt_A = 2 U42_A(x1) = 28 isNatIList_A(x1) = 28 U72_A(x1,x2) = 19 isNat_A(x1) = 28 s_A(x1) = 0 active_A(x1) = max{17, x1} zeros_A = 27 |0|_A = 26 U11_A(x1) = 28 U21_A(x1) = 28 U31_A(x1) = 28 U51_A(x1,x2) = 27 U52_A(x1) = 27 U61_A(x1,x2) = 0 U62_A(x1) = 28 U81_A(x1) = 28 nil_A = 0 U91_A(x1,x2,x3,x4) = 27 U92_A(x1,x2,x3,x4) = 0 U93_A(x1,x2,x3,x4) = 28 take_A(x1,x2) = 27 The next rules are strictly ordered: p1, p6, p8 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p2: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p3: mark#(U42(X)) -> mark#(X) p4: mark#(isNatIList(X)) -> active#(isNatIList(X)) p5: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p6: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p7: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p8: mark#(length(X)) -> active#(length(mark(X))) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p2: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p3: mark#(length(X)) -> active#(length(mark(X))) p4: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p5: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p6: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p7: mark#(isNatIList(X)) -> active#(isNatIList(X)) p8: mark#(U42(X)) -> mark#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133 Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: mark#_A(x1) = 154 U41_A(x1,x2) = 116 active#_A(x1) = x1 + 38 mark_A(x1) = max{47, x1 - 94} isNatIList_A(x1) = 116 cons_A(x1,x2) = 116 isNat_A(x1) = 115 length_A(x1) = 68 tt_A = 116 U42_A(x1) = 116 U72_A(x1,x2) = 116 U71_A(x1,x2,x3) = 92 active_A(x1) = max{47, x1 - 69} zeros_A = 116 |0|_A = 68 U11_A(x1) = 116 U21_A(x1) = 115 U31_A(x1) = 116 U51_A(x1,x2) = 116 U52_A(x1) = 115 isNatList_A(x1) = 94 U61_A(x1,x2) = 115 U62_A(x1) = 116 s_A(x1) = 116 U81_A(x1) = 23 nil_A = 47 U91_A(x1,x2,x3,x4) = 116 U92_A(x1,x2,x3,x4) = 115 U93_A(x1,x2,x3,x4) = 92 take_A(x1,x2) = 116 2. max/plus interpretations on natural numbers: mark#_A(x1) = 0 U41_A(x1,x2) = 46 active#_A(x1) = max{0, x1 - 46} mark_A(x1) = 35 isNatIList_A(x1) = 46 cons_A(x1,x2) = 56 isNat_A(x1) = 46 length_A(x1) = 46 tt_A = 52 U42_A(x1) = 56 U72_A(x1,x2) = 46 U71_A(x1,x2,x3) = 70 active_A(x1) = 35 zeros_A = 46 |0|_A = 48 U11_A(x1) = 48 U21_A(x1) = 49 U31_A(x1) = 56 U51_A(x1,x2) = 48 U52_A(x1) = 61 isNatList_A(x1) = 21 U61_A(x1,x2) = 48 U62_A(x1) = 48 s_A(x1) = 56 U81_A(x1) = 49 nil_A = 68 U91_A(x1,x2,x3,x4) = 49 U92_A(x1,x2,x3,x4) = 42 U93_A(x1,x2,x3,x4) = 48 take_A(x1,x2) = 56 The next rules are strictly ordered: p3, p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p2: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p5: mark#(isNatIList(X)) -> active#(isNatIList(X)) p6: mark#(U42(X)) -> mark#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p2: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p3: mark#(U42(X)) -> mark#(X) p4: mark#(isNatIList(X)) -> active#(isNatIList(X)) p5: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p6: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125, r126, r127, r128, r129, r130, r131, r132, r133 Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 8 U41_A(x1,x2) = max{x1 + 193, x2 + 394} active#_A(x1) = x1 mark_A(x1) = max{200, x1 + 8} tt_A = 192 U42_A(x1) = max{254, x1 + 54} isNatIList_A(x1) = max{324, x1 + 323} cons_A(x1,x2) = max{102, x2 + 80} isNat_A(x1) = 201 U72_A(x1,x2) = max{210, x2 + 201} active_A(x1) = max{200, x1} zeros_A = 111 |0|_A = 199 U11_A(x1) = 190 U21_A(x1) = max{0, x1 - 8} U31_A(x1) = 316 U51_A(x1,x2) = max{344, x2 + 321} U52_A(x1) = max{7, x1} isNatList_A(x1) = x1 + 250 U61_A(x1,x2) = 354 U62_A(x1) = 335 U71_A(x1,x2,x3) = x2 + 259 s_A(x1) = 188 length_A(x1) = max{380, x1 + 188} U81_A(x1) = 18 nil_A = 11 U91_A(x1,x2,x3,x4) = 89 U92_A(x1,x2,x3,x4) = 9 U93_A(x1,x2,x3,x4) = 0 take_A(x1,x2) = 112 2. max/plus interpretations on natural numbers: mark#_A(x1) = max{1, x1 - 8} U41_A(x1,x2) = 10 active#_A(x1) = max{0, x1 - 34} mark_A(x1) = 50 tt_A = 47 U42_A(x1) = 74 isNatIList_A(x1) = 35 cons_A(x1,x2) = 18 isNat_A(x1) = 48 U72_A(x1,x2) = 34 active_A(x1) = 50 zeros_A = 55 |0|_A = 26 U11_A(x1) = 0 U21_A(x1) = 23 U31_A(x1) = 21 U51_A(x1,x2) = 125 U52_A(x1) = 47 isNatList_A(x1) = 74 U61_A(x1,x2) = 101 U62_A(x1) = 74 U71_A(x1,x2,x3) = 59 s_A(x1) = 50 length_A(x1) = 84 U81_A(x1) = 82 nil_A = 55 U91_A(x1,x2,x3,x4) = 21 U92_A(x1,x2,x3,x4) = 45 U93_A(x1,x2,x3,x4) = 45 take_A(x1,x2) = 26 The next rules are strictly ordered: p1, p2, p3, p4, p5, p6 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: U42#(mark(X)) -> U42#(X) p2: U42#(active(X)) -> U42#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U42#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 2. max/plus interpretations on natural numbers: U42#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2 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: isNatIList#(mark(X)) -> isNatIList#(X) p2: isNatIList#(active(X)) -> isNatIList#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: isNatIList#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 2. max/plus interpretations on natural numbers: isNatIList#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2 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: U52#(mark(X)) -> U52#(X) p2: U52#(active(X)) -> U52#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U52#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 2. max/plus interpretations on natural numbers: U52#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2 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: isNatList#(mark(X)) -> isNatList#(X) p2: isNatList#(active(X)) -> isNatList#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: isNatList#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 2. max/plus interpretations on natural numbers: isNatList#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2 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: U62#(mark(X)) -> U62#(X) p2: U62#(active(X)) -> U62#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U62#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 2. max/plus interpretations on natural numbers: U62#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2 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: U72#(mark(X1),X2) -> U72#(X1,X2) p2: U72#(X1,active(X2)) -> U72#(X1,X2) p3: U72#(active(X1),X2) -> U72#(X1,X2) p4: U72#(X1,mark(X2)) -> U72#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U72#_A(x1,x2) = x2 + 3 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{1, x1} 2. max/plus interpretations on natural numbers: U72#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 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: U72#(mark(X1),X2) -> U72#(X1,X2) p2: U72#(X1,active(X2)) -> U72#(X1,X2) p3: U72#(active(X1),X2) -> U72#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U72#(mark(X1),X2) -> U72#(X1,X2) p2: U72#(active(X1),X2) -> U72#(X1,X2) p3: U72#(X1,active(X2)) -> U72#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U72#_A(x1,x2) = x2 + 2 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U72#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U72#(mark(X1),X2) -> U72#(X1,X2) p2: U72#(active(X1),X2) -> U72#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U72#(mark(X1),X2) -> U72#(X1,X2) p2: U72#(active(X1),X2) -> U72#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U72#_A(x1,x2) = x1 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U72#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p1, p2 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: isNat#(mark(X)) -> isNat#(X) p2: isNat#(active(X)) -> isNat#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: isNat#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 2. max/plus interpretations on natural numbers: isNat#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2 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(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: s#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 2. max/plus interpretations on natural numbers: s#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2 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: length#(mark(X)) -> length#(X) p2: length#(active(X)) -> length#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: length#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 2. max/plus interpretations on natural numbers: length#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2 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: U92#(mark(X1),X2,X3,X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) p3: U92#(X1,X2,active(X3),X4) -> U92#(X1,X2,X3,X4) p4: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) p5: U92#(active(X1),X2,X3,X4) -> U92#(X1,X2,X3,X4) p6: U92#(X1,X2,X3,mark(X4)) -> U92#(X1,X2,X3,X4) p7: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p8: U92#(X1,mark(X2),X3,X4) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = max{0, x2 - 1} mark_A(x1) = max{3, x1 + 2} active_A(x1) = x1 + 1 2. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = 0 mark_A(x1) = 0 active_A(x1) = x1 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: U92#(mark(X1),X2,X3,X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) p3: U92#(X1,X2,active(X3),X4) -> U92#(X1,X2,X3,X4) p4: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) p5: U92#(active(X1),X2,X3,X4) -> U92#(X1,X2,X3,X4) p6: U92#(X1,X2,X3,mark(X4)) -> U92#(X1,X2,X3,X4) p7: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U92#(mark(X1),X2,X3,X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p3: U92#(X1,X2,X3,mark(X4)) -> U92#(X1,X2,X3,X4) p4: U92#(active(X1),X2,X3,X4) -> U92#(X1,X2,X3,X4) p5: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) p6: U92#(X1,X2,active(X3),X4) -> U92#(X1,X2,X3,X4) p7: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = x1 + 1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 2. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = 0 mark_A(x1) = x1 active_A(x1) = x1 The next rules are strictly ordered: p1, p4 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,X3,mark(X4)) -> U92#(X1,X2,X3,X4) p3: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) p4: U92#(X1,X2,active(X3),X4) -> U92#(X1,X2,X3,X4) p5: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) p3: U92#(X1,X2,active(X3),X4) -> U92#(X1,X2,X3,X4) p4: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) p5: U92#(X1,X2,X3,mark(X4)) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = x4 + 2 mark_A(x1) = x1 + 1 active_A(x1) = max{1, x1} 2. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = 0 mark_A(x1) = x1 active_A(x1) = 0 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: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) p3: U92#(X1,X2,active(X3),X4) -> U92#(X1,X2,X3,X4) p4: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) p3: U92#(X1,X2,active(X3),X4) -> U92#(X1,X2,X3,X4) p4: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = x3 + 3 mark_A(x1) = max{1, x1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) p3: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) p3: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = x3 mark_A(x1) = x1 + 1 active_A(x1) = 0 2. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = 0 mark_A(x1) = x1 active_A(x1) = 0 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: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) p2: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) p2: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = x2 active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = 0 active_A(x1) = 0 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: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = x4 active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = 0 active_A(x1) = 0 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) p3: U93#(X1,X2,active(X3),X4) -> U93#(X1,X2,X3,X4) p4: U93#(X1,active(X2),X3,X4) -> U93#(X1,X2,X3,X4) p5: U93#(active(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p6: U93#(X1,X2,X3,mark(X4)) -> U93#(X1,X2,X3,X4) p7: U93#(X1,X2,mark(X3),X4) -> U93#(X1,X2,X3,X4) p8: U93#(X1,mark(X2),X3,X4) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = x2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 2. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = 0 mark_A(x1) = x1 active_A(x1) = x1 The next rules are strictly ordered: p4, p8 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) p3: U93#(X1,X2,active(X3),X4) -> U93#(X1,X2,X3,X4) p4: U93#(active(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p5: U93#(X1,X2,X3,mark(X4)) -> U93#(X1,X2,X3,X4) p6: U93#(X1,X2,mark(X3),X4) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,mark(X3),X4) -> U93#(X1,X2,X3,X4) p3: U93#(X1,X2,X3,mark(X4)) -> U93#(X1,X2,X3,X4) p4: U93#(active(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p5: U93#(X1,X2,active(X3),X4) -> U93#(X1,X2,X3,X4) p6: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = max{2, x3} mark_A(x1) = max{2, x1 + 1} active_A(x1) = x1 + 3 2. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = 0 mark_A(x1) = 0 active_A(x1) = x1 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: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,mark(X3),X4) -> U93#(X1,X2,X3,X4) p3: U93#(X1,X2,X3,mark(X4)) -> U93#(X1,X2,X3,X4) p4: U93#(active(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p5: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) p3: U93#(active(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p4: U93#(X1,X2,X3,mark(X4)) -> U93#(X1,X2,X3,X4) p5: U93#(X1,X2,mark(X3),X4) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = x3 + 2 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = 0 mark_A(x1) = 0 active_A(x1) = 0 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: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) p3: U93#(active(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p4: U93#(X1,X2,X3,mark(X4)) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,X3,mark(X4)) -> U93#(X1,X2,X3,X4) p3: U93#(active(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p4: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = max{3, x1 + 2} mark_A(x1) = x1 + 1 active_A(x1) = max{3, x1 + 2} 2. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = 0 mark_A(x1) = x1 active_A(x1) = 0 The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,X3,mark(X4)) -> U93#(X1,X2,X3,X4) p3: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) p3: U93#(X1,X2,X3,mark(X4)) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = max{1, x4} mark_A(x1) = x1 + 2 active_A(x1) = x1 + 1 2. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = 0 mark_A(x1) = x1 active_A(x1) = x1 The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = max{2, x1} mark_A(x1) = max{4, x1 + 3} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = 0 mark_A(x1) = 0 active_A(x1) = 0 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: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = x4 active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = 0 active_A(x1) = 0 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: cons#_A(x1,x2) = x2 + 2 mark_A(x1) = max{3, x1 + 2} active_A(x1) = max{1, x1} 2. max/plus interpretations on natural numbers: cons#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 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: cons#(mark(X1),X2) -> cons#(X1,X2) p2: cons#(X1,active(X2)) -> cons#(X1,X2) p3: cons#(active(X1),X2) -> cons#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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#(mark(X1),X2) -> cons#(X1,X2) p2: cons#(active(X1),X2) -> cons#(X1,X2) p3: cons#(X1,active(X2)) -> cons#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: cons#_A(x1,x2) = x2 + 2 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: cons#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: cons#(mark(X1),X2) -> cons#(X1,X2) p2: cons#(active(X1),X2) -> cons#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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#(mark(X1),X2) -> cons#(X1,X2) p2: cons#(active(X1),X2) -> cons#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: cons#_A(x1,x2) = x1 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: cons#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p1, p2 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: take#(mark(X1),X2) -> take#(X1,X2) p2: take#(X1,active(X2)) -> take#(X1,X2) p3: take#(active(X1),X2) -> take#(X1,X2) p4: take#(X1,mark(X2)) -> take#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: take#_A(x1,x2) = x2 + 2 mark_A(x1) = max{3, x1 + 2} active_A(x1) = max{1, x1} 2. max/plus interpretations on natural numbers: take#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 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: take#(mark(X1),X2) -> take#(X1,X2) p2: take#(X1,active(X2)) -> take#(X1,X2) p3: take#(active(X1),X2) -> take#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: take#(mark(X1),X2) -> take#(X1,X2) p2: take#(active(X1),X2) -> take#(X1,X2) p3: take#(X1,active(X2)) -> take#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: take#_A(x1,x2) = x2 + 2 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: take#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: take#(mark(X1),X2) -> take#(X1,X2) p2: take#(active(X1),X2) -> take#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: take#(mark(X1),X2) -> take#(X1,X2) p2: take#(active(X1),X2) -> take#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: take#_A(x1,x2) = x1 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: take#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p1, p2 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: U11#(mark(X)) -> U11#(X) p2: U11#(active(X)) -> U11#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U11#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 2. max/plus interpretations on natural numbers: U11#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2 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: U21#(mark(X)) -> U21#(X) p2: U21#(active(X)) -> U21#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U21#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 2. max/plus interpretations on natural numbers: U21#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2 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: U31#(mark(X)) -> U31#(X) p2: U31#(active(X)) -> U31#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U31#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 2. max/plus interpretations on natural numbers: U31#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2 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: U41#(mark(X1),X2) -> U41#(X1,X2) p2: U41#(X1,active(X2)) -> U41#(X1,X2) p3: U41#(active(X1),X2) -> U41#(X1,X2) p4: U41#(X1,mark(X2)) -> U41#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U41#_A(x1,x2) = x2 + 3 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{1, x1} 2. max/plus interpretations on natural numbers: U41#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 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: U41#(mark(X1),X2) -> U41#(X1,X2) p2: U41#(X1,active(X2)) -> U41#(X1,X2) p3: U41#(active(X1),X2) -> U41#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U41#(mark(X1),X2) -> U41#(X1,X2) p2: U41#(active(X1),X2) -> U41#(X1,X2) p3: U41#(X1,active(X2)) -> U41#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U41#_A(x1,x2) = x2 + 2 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U41#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U41#(mark(X1),X2) -> U41#(X1,X2) p2: U41#(active(X1),X2) -> U41#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U41#(mark(X1),X2) -> U41#(X1,X2) p2: U41#(active(X1),X2) -> U41#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U41#_A(x1,x2) = x1 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U41#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p1, p2 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: U51#(mark(X1),X2) -> U51#(X1,X2) p2: U51#(X1,active(X2)) -> U51#(X1,X2) p3: U51#(active(X1),X2) -> U51#(X1,X2) p4: U51#(X1,mark(X2)) -> U51#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U51#_A(x1,x2) = x2 + 2 mark_A(x1) = max{3, x1 + 2} active_A(x1) = max{1, x1} 2. max/plus interpretations on natural numbers: U51#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 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: U51#(mark(X1),X2) -> U51#(X1,X2) p2: U51#(X1,active(X2)) -> U51#(X1,X2) p3: U51#(active(X1),X2) -> U51#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U51#(mark(X1),X2) -> U51#(X1,X2) p2: U51#(active(X1),X2) -> U51#(X1,X2) p3: U51#(X1,active(X2)) -> U51#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U51#_A(x1,x2) = x2 + 2 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U51#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U51#(mark(X1),X2) -> U51#(X1,X2) p2: U51#(active(X1),X2) -> U51#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U51#(mark(X1),X2) -> U51#(X1,X2) p2: U51#(active(X1),X2) -> U51#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U51#_A(x1,x2) = x1 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U51#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p1, p2 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: U61#(mark(X1),X2) -> U61#(X1,X2) p2: U61#(X1,active(X2)) -> U61#(X1,X2) p3: U61#(active(X1),X2) -> U61#(X1,X2) p4: U61#(X1,mark(X2)) -> U61#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U61#_A(x1,x2) = x2 + 2 mark_A(x1) = max{3, x1 + 2} active_A(x1) = max{1, x1} 2. max/plus interpretations on natural numbers: U61#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 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: U61#(mark(X1),X2) -> U61#(X1,X2) p2: U61#(X1,active(X2)) -> U61#(X1,X2) p3: U61#(active(X1),X2) -> U61#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U61#(mark(X1),X2) -> U61#(X1,X2) p2: U61#(active(X1),X2) -> U61#(X1,X2) p3: U61#(X1,active(X2)) -> U61#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U61#_A(x1,x2) = x2 + 2 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U61#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U61#(mark(X1),X2) -> U61#(X1,X2) p2: U61#(active(X1),X2) -> U61#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U61#(mark(X1),X2) -> U61#(X1,X2) p2: U61#(active(X1),X2) -> U61#(X1,X2) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U61#_A(x1,x2) = x1 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U61#_A(x1,x2) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p1, p2 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: U71#(mark(X1),X2,X3) -> U71#(X1,X2,X3) p2: U71#(X1,X2,active(X3)) -> U71#(X1,X2,X3) p3: U71#(X1,active(X2),X3) -> U71#(X1,X2,X3) p4: U71#(active(X1),X2,X3) -> U71#(X1,X2,X3) p5: U71#(X1,X2,mark(X3)) -> U71#(X1,X2,X3) p6: U71#(X1,mark(X2),X3) -> U71#(X1,X2,X3) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = x3 mark_A(x1) = x1 + 1 active_A(x1) = max{3, x1 + 2} 2. max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = 0 mark_A(x1) = x1 active_A(x1) = 0 The next rules are strictly ordered: p2, p5 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U71#(mark(X1),X2,X3) -> U71#(X1,X2,X3) p2: U71#(X1,active(X2),X3) -> U71#(X1,X2,X3) p3: U71#(active(X1),X2,X3) -> U71#(X1,X2,X3) p4: U71#(X1,mark(X2),X3) -> U71#(X1,X2,X3) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U71#(mark(X1),X2,X3) -> U71#(X1,X2,X3) p2: U71#(X1,mark(X2),X3) -> U71#(X1,X2,X3) p3: U71#(active(X1),X2,X3) -> U71#(X1,X2,X3) p4: U71#(X1,active(X2),X3) -> U71#(X1,X2,X3) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = max{1, x2} mark_A(x1) = max{1, x1} active_A(x1) = max{3, x1 + 2} 2. max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = 0 mark_A(x1) = 0 active_A(x1) = 0 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: U71#(mark(X1),X2,X3) -> U71#(X1,X2,X3) p2: U71#(X1,mark(X2),X3) -> U71#(X1,X2,X3) p3: U71#(active(X1),X2,X3) -> U71#(X1,X2,X3) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U71#(mark(X1),X2,X3) -> U71#(X1,X2,X3) p2: U71#(active(X1),X2,X3) -> U71#(X1,X2,X3) p3: U71#(X1,mark(X2),X3) -> U71#(X1,X2,X3) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = x2 + 2 mark_A(x1) = max{2, x1 + 1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = 0 mark_A(x1) = 0 active_A(x1) = 0 The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U71#(mark(X1),X2,X3) -> U71#(X1,X2,X3) p2: U71#(active(X1),X2,X3) -> U71#(X1,X2,X3) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U71#(mark(X1),X2,X3) -> U71#(X1,X2,X3) p2: U71#(active(X1),X2,X3) -> U71#(X1,X2,X3) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = x1 + 1 mark_A(x1) = max{1, x1} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = 0 mark_A(x1) = 0 active_A(x1) = 0 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: U71#(mark(X1),X2,X3) -> U71#(X1,X2,X3) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U71#(mark(X1),X2,X3) -> U71#(X1,X2,X3) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = x1 mark_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = 0 mark_A(x1) = 0 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U81#(mark(X)) -> U81#(X) p2: U81#(active(X)) -> U81#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U81#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 2. max/plus interpretations on natural numbers: U81#_A(x1) = x1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1, p2 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: U91#(mark(X1),X2,X3,X4) -> U91#(X1,X2,X3,X4) p2: U91#(X1,X2,X3,active(X4)) -> U91#(X1,X2,X3,X4) p3: U91#(X1,X2,active(X3),X4) -> U91#(X1,X2,X3,X4) p4: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) p5: U91#(active(X1),X2,X3,X4) -> U91#(X1,X2,X3,X4) p6: U91#(X1,X2,X3,mark(X4)) -> U91#(X1,X2,X3,X4) p7: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p8: U91#(X1,mark(X2),X3,X4) -> U91#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = max{0, x2 - 1} mark_A(x1) = max{3, x1 + 2} active_A(x1) = x1 + 1 2. max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = 0 mark_A(x1) = 0 active_A(x1) = x1 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: U91#(mark(X1),X2,X3,X4) -> U91#(X1,X2,X3,X4) p2: U91#(X1,X2,X3,active(X4)) -> U91#(X1,X2,X3,X4) p3: U91#(X1,X2,active(X3),X4) -> U91#(X1,X2,X3,X4) p4: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) p5: U91#(active(X1),X2,X3,X4) -> U91#(X1,X2,X3,X4) p6: U91#(X1,X2,X3,mark(X4)) -> U91#(X1,X2,X3,X4) p7: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U91#(mark(X1),X2,X3,X4) -> U91#(X1,X2,X3,X4) p2: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p3: U91#(X1,X2,X3,mark(X4)) -> U91#(X1,X2,X3,X4) p4: U91#(active(X1),X2,X3,X4) -> U91#(X1,X2,X3,X4) p5: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) p6: U91#(X1,X2,active(X3),X4) -> U91#(X1,X2,X3,X4) p7: U91#(X1,X2,X3,active(X4)) -> U91#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = x1 + 1 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 2. max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = 0 mark_A(x1) = x1 active_A(x1) = x1 The next rules are strictly ordered: p1, p4 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p2: U91#(X1,X2,X3,mark(X4)) -> U91#(X1,X2,X3,X4) p3: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) p4: U91#(X1,X2,active(X3),X4) -> U91#(X1,X2,X3,X4) p5: U91#(X1,X2,X3,active(X4)) -> U91#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p2: U91#(X1,X2,X3,active(X4)) -> U91#(X1,X2,X3,X4) p3: U91#(X1,X2,active(X3),X4) -> U91#(X1,X2,X3,X4) p4: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) p5: U91#(X1,X2,X3,mark(X4)) -> U91#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = x4 + 3 mark_A(x1) = x1 + 1 active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = 0 mark_A(x1) = x1 active_A(x1) = 0 The next rules are strictly ordered: p2, p5 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p2: U91#(X1,X2,active(X3),X4) -> U91#(X1,X2,X3,X4) p3: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) 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: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p2: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) p3: U91#(X1,X2,active(X3),X4) -> U91#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = x3 + 1 mark_A(x1) = x1 active_A(x1) = x1 + 1 2. max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = 0 mark_A(x1) = x1 active_A(x1) = x1 The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p2: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p2: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = max{2, x3} mark_A(x1) = max{4, x1 + 3} active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = 0 mark_A(x1) = 0 active_A(x1) = 0 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: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the reduction pair: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = x2 active_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = 0 active_A(x1) = 0 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.