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: max/plus interpretations on natural numbers: active#_A(x1) = max{0, x1 - 47} zeros_A = 54 mark#_A(x1) = 7 cons_A(x1,x2) = 54 |0|_A = 53 take_A(x1,x2) = 54 mark_A(x1) = max{40, x1 - 14} s_A(x1) = 54 U91_A(x1,x2,x3,x4) = 54 isNatIList_A(x1) = 54 U93_A(x1,x2,x3,x4) = 54 U81_A(x1) = 7 U92_A(x1,x2,x3,x4) = 54 length_A(x1) = 54 U71_A(x1,x2,x3) = 54 isNatList_A(x1) = 54 U61_A(x1,x2) = 54 isNat_A(x1) = 54 U51_A(x1,x2) = 54 U41_A(x1,x2) = 54 U31_A(x1) = 54 U21_A(x1) = 54 U72_A(x1,x2) = 54 U11_A(x1) = 54 tt_A = 54 U62_A(x1) = 54 U52_A(x1) = 54 U42_A(x1) = 54 active_A(x1) = 40 nil_A = 53 The next rules are strictly ordered: p17 We remove them from the problem. -- SCC decomposition. 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: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p18: mark#(length(X)) -> mark#(X) p19: mark#(length(X)) -> active#(length(mark(X))) p20: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p21: mark#(s(X)) -> mark#(X) p22: mark#(s(X)) -> active#(s(mark(X))) p23: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p24: mark#(isNat(X)) -> active#(isNat(X)) p25: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p26: mark#(U72(X1,X2)) -> mark#(X1) p27: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p28: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p29: mark#(U71(X1,X2,X3)) -> mark#(X1) p30: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p31: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p32: mark#(U62(X)) -> mark#(X) p33: mark#(U62(X)) -> active#(U62(mark(X))) p34: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p35: mark#(U61(X1,X2)) -> mark#(X1) p36: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p37: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p38: mark#(isNatList(X)) -> active#(isNatList(X)) p39: active#(U72(tt(),L)) -> mark#(s(length(L))) p40: mark#(U52(X)) -> mark#(X) p41: mark#(U52(X)) -> active#(U52(mark(X))) p42: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p43: mark#(U51(X1,X2)) -> mark#(X1) p44: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p45: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p46: mark#(isNatIList(X)) -> active#(isNatIList(X)) p47: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p48: mark#(U42(X)) -> mark#(X) p49: mark#(U42(X)) -> active#(U42(mark(X))) p50: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p51: mark#(U41(X1,X2)) -> mark#(X1) p52: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p53: mark#(U31(X)) -> mark#(X) p54: mark#(U31(X)) -> active#(U31(mark(X))) p55: mark#(U21(X)) -> mark#(X) p56: mark#(U21(X)) -> active#(U21(mark(X))) p57: mark#(U11(X)) -> mark#(X) p58: mark#(U11(X)) -> active#(U11(mark(X))) p59: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) p60: 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 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, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48, p49, p50, p51, p52, p53, p54, p55, p56, p57, p58, p59, p60} -- 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)) -> active#(cons(mark(X1),X2)) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(zeros()) -> active#(zeros()) p5: mark#(U11(X)) -> active#(U11(mark(X))) p6: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p7: mark#(U11(X)) -> mark#(X) p8: mark#(U21(X)) -> active#(U21(mark(X))) p9: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p10: mark#(U21(X)) -> mark#(X) p11: mark#(U31(X)) -> active#(U31(mark(X))) p12: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p13: mark#(U31(X)) -> mark#(X) p14: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p15: active#(U72(tt(),L)) -> mark#(s(length(L))) p16: mark#(U41(X1,X2)) -> mark#(X1) p17: mark#(U42(X)) -> active#(U42(mark(X))) p18: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p19: mark#(U42(X)) -> mark#(X) p20: mark#(isNatIList(X)) -> active#(isNatIList(X)) p21: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p22: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p23: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p24: mark#(U51(X1,X2)) -> mark#(X1) p25: mark#(U52(X)) -> active#(U52(mark(X))) p26: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p27: mark#(U52(X)) -> mark#(X) p28: mark#(isNatList(X)) -> active#(isNatList(X)) p29: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p30: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p31: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p32: mark#(U61(X1,X2)) -> mark#(X1) p33: mark#(U62(X)) -> active#(U62(mark(X))) p34: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p35: mark#(U62(X)) -> mark#(X) p36: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p37: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p38: mark#(U71(X1,X2,X3)) -> mark#(X1) p39: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p40: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p41: mark#(U72(X1,X2)) -> mark#(X1) p42: mark#(isNat(X)) -> active#(isNat(X)) p43: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p44: mark#(s(X)) -> active#(s(mark(X))) p45: active#(take(|0|(),IL)) -> mark#(U81(isNatIList(IL))) p46: mark#(s(X)) -> mark#(X) p47: mark#(length(X)) -> active#(length(mark(X))) p48: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p49: mark#(length(X)) -> mark#(X) p50: mark#(U81(X)) -> mark#(X) p51: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p52: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p53: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p54: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p55: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p56: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p57: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(X2))) p58: mark#(take(X1,X2)) -> mark#(X1) p59: mark#(take(X1,X2)) -> mark#(X2) p60: mark#(cons(X1,X2)) -> mark#(X1) 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: max/plus interpretations on natural numbers: active#_A(x1) = max{0, x1 - 7} zeros_A = 11 mark#_A(x1) = max{0, x1 - 7} cons_A(x1,x2) = max{x1 + 8, x2} |0|_A = 2 mark_A(x1) = x1 U41_A(x1,x2) = max{x1 + 5, x2 + 6} tt_A = 3 U42_A(x1) = max{4, x1} isNatIList_A(x1) = x1 + 6 U11_A(x1) = x1 + 11 U51_A(x1,x2) = max{x1 + 3, x2 + 3} U52_A(x1) = max{3, x1} isNatList_A(x1) = x1 + 3 U21_A(x1) = max{10, x1} U61_A(x1,x2) = max{x1 + 3, x2 + 17} U62_A(x1) = x1 + 3 U31_A(x1) = x1 + 3 U71_A(x1,x2,x3) = max{x1 + 8, x2 + 11, x3 + 19} U72_A(x1,x2) = max{x1 + 11, x2 + 11} isNat_A(x1) = x1 + 3 s_A(x1) = max{7, x1} length_A(x1) = x1 + 11 U91_A(x1,x2,x3,x4) = max{x1 + 8, x2 + 14, x3 + 14, x4 + 22} U92_A(x1,x2,x3,x4) = max{x1 + 11, x2 + 14, x3 + 14, x4 + 22} U93_A(x1,x2,x3,x4) = max{x1 + 11, x2 + 14, x3 + 14, x4 + 15} take_A(x1,x2) = max{x1 + 14, x2 + 14} U81_A(x1) = max{13, x1} active_A(x1) = max{1, x1} nil_A = 2 The next rules are strictly ordered: p7, p9, p32, p38, p41, p45, p49, p52, p54, p56, p58, p59, p60 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(zeros()) -> mark#(cons(|0|(),zeros())) p2: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(zeros()) -> active#(zeros()) p5: mark#(U11(X)) -> active#(U11(mark(X))) p6: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p7: mark#(U21(X)) -> active#(U21(mark(X))) p8: mark#(U21(X)) -> mark#(X) p9: mark#(U31(X)) -> active#(U31(mark(X))) p10: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p11: mark#(U31(X)) -> mark#(X) p12: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p13: active#(U72(tt(),L)) -> mark#(s(length(L))) p14: mark#(U41(X1,X2)) -> mark#(X1) p15: mark#(U42(X)) -> active#(U42(mark(X))) p16: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p17: mark#(U42(X)) -> mark#(X) p18: mark#(isNatIList(X)) -> active#(isNatIList(X)) p19: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p20: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p21: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p22: mark#(U51(X1,X2)) -> mark#(X1) p23: mark#(U52(X)) -> active#(U52(mark(X))) p24: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p25: mark#(U52(X)) -> mark#(X) p26: mark#(isNatList(X)) -> active#(isNatList(X)) p27: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p28: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p29: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p30: mark#(U62(X)) -> active#(U62(mark(X))) p31: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p32: mark#(U62(X)) -> mark#(X) p33: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p34: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p35: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p36: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p37: mark#(isNat(X)) -> active#(isNat(X)) p38: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p39: mark#(s(X)) -> active#(s(mark(X))) p40: mark#(s(X)) -> mark#(X) p41: mark#(length(X)) -> active#(length(mark(X))) p42: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p43: mark#(U81(X)) -> mark#(X) p44: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p45: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p46: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p47: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(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, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47} -- 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)) -> active#(cons(mark(X1),X2)) p3: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p4: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(X2))) p5: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p6: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p7: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p8: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p9: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p10: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p11: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p12: mark#(U81(X)) -> mark#(X) p13: mark#(length(X)) -> active#(length(mark(X))) p14: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p15: mark#(s(X)) -> mark#(X) p16: mark#(s(X)) -> active#(s(mark(X))) p17: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p18: mark#(isNat(X)) -> active#(isNat(X)) p19: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p20: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p21: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p22: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p23: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p24: mark#(U62(X)) -> mark#(X) p25: mark#(U62(X)) -> active#(U62(mark(X))) p26: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p27: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p28: active#(U72(tt(),L)) -> mark#(s(length(L))) p29: mark#(isNatList(X)) -> active#(isNatList(X)) p30: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p31: mark#(U52(X)) -> mark#(X) p32: mark#(U52(X)) -> active#(U52(mark(X))) p33: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p34: mark#(U51(X1,X2)) -> mark#(X1) p35: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p36: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p37: mark#(isNatIList(X)) -> active#(isNatIList(X)) p38: mark#(U42(X)) -> mark#(X) p39: mark#(U42(X)) -> active#(U42(mark(X))) p40: mark#(U41(X1,X2)) -> mark#(X1) p41: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p42: mark#(U31(X)) -> mark#(X) p43: mark#(U31(X)) -> active#(U31(mark(X))) p44: mark#(U21(X)) -> mark#(X) p45: mark#(U21(X)) -> active#(U21(mark(X))) p46: mark#(U11(X)) -> active#(U11(mark(X))) p47: 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: max/plus interpretations on natural numbers: active#_A(x1) = max{0, x1 - 7} zeros_A = 0 mark#_A(x1) = max{0, x1 - 7} cons_A(x1,x2) = max{x1, x2 + 4} |0|_A = 3 mark_A(x1) = max{4, x1} take_A(x1,x2) = max{37, x1 + 33, x2 + 32} s_A(x1) = max{8, x1 + 4} U91_A(x1,x2,x3,x4) = max{41, x2 + 36, x3 + 37, x4 + 31} isNatIList_A(x1) = x1 + 23 length_A(x1) = x1 U71_A(x1,x2,x3) = max{x1 - 14, x2 + 4, x3} isNatList_A(x1) = x1 + 18 U93_A(x1,x2,x3,x4) = max{41, x1 + 8, x2 + 36, x3 + 37, x4 + 30} U61_A(x1,x2) = max{x1 + 8, x2 + 50} isNat_A(x1) = max{22, x1 + 18} U92_A(x1,x2,x3,x4) = max{41, x1 + 13, x2 + 36, x3 + 37, x4 + 31} U51_A(x1,x2) = max{x1, x2 + 21} U41_A(x1,x2) = max{x1, x2 + 27} U81_A(x1) = max{7, x1 + 3} U31_A(x1) = max{23, x1} U21_A(x1) = max{26, x1} U11_A(x1) = max{17, x1} U72_A(x1,x2) = max{8, x2 + 4} tt_A = 22 U62_A(x1) = max{8, x1} U52_A(x1) = max{7, x1 + 3} U42_A(x1) = max{27, x1} active_A(x1) = max{4, x1} nil_A = 5 The next rules are strictly ordered: p15 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(zeros()) -> mark#(cons(|0|(),zeros())) p2: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) p3: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p4: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(X2))) p5: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p6: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p7: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p8: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p9: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p10: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p11: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p12: mark#(U81(X)) -> mark#(X) p13: mark#(length(X)) -> active#(length(mark(X))) p14: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p15: mark#(s(X)) -> active#(s(mark(X))) p16: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p17: mark#(isNat(X)) -> active#(isNat(X)) p18: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p19: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p20: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p21: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p22: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p23: mark#(U62(X)) -> mark#(X) p24: mark#(U62(X)) -> active#(U62(mark(X))) p25: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p26: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p27: active#(U72(tt(),L)) -> mark#(s(length(L))) p28: mark#(isNatList(X)) -> active#(isNatList(X)) p29: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p30: mark#(U52(X)) -> mark#(X) p31: mark#(U52(X)) -> active#(U52(mark(X))) p32: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p33: mark#(U51(X1,X2)) -> mark#(X1) p34: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p35: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p36: mark#(isNatIList(X)) -> active#(isNatIList(X)) p37: mark#(U42(X)) -> mark#(X) p38: mark#(U42(X)) -> active#(U42(mark(X))) p39: mark#(U41(X1,X2)) -> mark#(X1) p40: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p41: mark#(U31(X)) -> mark#(X) p42: mark#(U31(X)) -> active#(U31(mark(X))) p43: mark#(U21(X)) -> mark#(X) p44: mark#(U21(X)) -> active#(U21(mark(X))) p45: mark#(U11(X)) -> active#(U11(mark(X))) p46: 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 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, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(zeros()) -> mark#(cons(|0|(),zeros())) p2: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(zeros()) -> active#(zeros()) p5: mark#(U11(X)) -> active#(U11(mark(X))) p6: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p7: mark#(U21(X)) -> active#(U21(mark(X))) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U21(X)) -> mark#(X) p10: mark#(U31(X)) -> active#(U31(mark(X))) p11: active#(U72(tt(),L)) -> mark#(s(length(L))) p12: mark#(U31(X)) -> mark#(X) p13: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p14: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p15: mark#(U41(X1,X2)) -> mark#(X1) p16: mark#(U42(X)) -> active#(U42(mark(X))) p17: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p18: mark#(U42(X)) -> mark#(X) p19: mark#(isNatIList(X)) -> active#(isNatIList(X)) p20: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p21: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p22: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p23: mark#(U51(X1,X2)) -> mark#(X1) p24: mark#(U52(X)) -> active#(U52(mark(X))) p25: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p26: mark#(U52(X)) -> mark#(X) p27: mark#(isNatList(X)) -> active#(isNatList(X)) p28: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p29: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p30: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p31: mark#(U62(X)) -> active#(U62(mark(X))) p32: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p33: mark#(U62(X)) -> mark#(X) p34: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p35: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p36: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p37: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p38: mark#(isNat(X)) -> active#(isNat(X)) p39: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p40: mark#(s(X)) -> active#(s(mark(X))) p41: mark#(length(X)) -> active#(length(mark(X))) p42: mark#(U81(X)) -> mark#(X) p43: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p44: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p45: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p46: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(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: max/plus interpretations on natural numbers: active#_A(x1) = x1 + 5 zeros_A = 10 mark#_A(x1) = x1 + 5 cons_A(x1,x2) = max{x1 + 8, x2} |0|_A = 1 mark_A(x1) = x1 U41_A(x1,x2) = max{7, x1 + 3, x2 - 1} tt_A = 0 U42_A(x1) = x1 isNatIList_A(x1) = max{7, x1 - 1} U11_A(x1) = 13 U51_A(x1,x2) = max{2, x1 + 1, x2 - 3} U52_A(x1) = max{2, x1} isNatList_A(x1) = max{0, x1 - 3} U21_A(x1) = max{1, x1} U71_A(x1,x2,x3) = max{9, x2 - 13} U72_A(x1,x2) = max{9, x2 - 13} isNat_A(x1) = x1 + 4 U31_A(x1) = x1 + 1 s_A(x1) = max{8, x1} length_A(x1) = max{9, x1 - 13} U91_A(x1,x2,x3,x4) = max{x1 + 22, x2 + 22, x3 + 22, x4 + 30} U92_A(x1,x2,x3,x4) = max{x2 + 22, x3 + 22, x4 + 30} U93_A(x1,x2,x3,x4) = max{x1 + 22, x2 + 22, x3 + 22, x4 + 21} take_A(x1,x2) = max{x1 + 22, x2 + 22} U61_A(x1,x2) = max{x1 + 15, x2 + 19} U62_A(x1) = x1 + 9 U81_A(x1) = x1 + 15 active_A(x1) = x1 nil_A = 14 The next rules are strictly ordered: p12, p15, p23, p28, p33, p42 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(zeros()) -> mark#(cons(|0|(),zeros())) p2: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(zeros()) -> active#(zeros()) p5: mark#(U11(X)) -> active#(U11(mark(X))) p6: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p7: mark#(U21(X)) -> active#(U21(mark(X))) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U21(X)) -> mark#(X) p10: mark#(U31(X)) -> active#(U31(mark(X))) p11: active#(U72(tt(),L)) -> mark#(s(length(L))) p12: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p13: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p14: mark#(U42(X)) -> active#(U42(mark(X))) p15: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p16: mark#(U42(X)) -> mark#(X) p17: mark#(isNatIList(X)) -> active#(isNatIList(X)) p18: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p19: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p20: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p21: mark#(U52(X)) -> active#(U52(mark(X))) p22: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p23: mark#(U52(X)) -> mark#(X) p24: mark#(isNatList(X)) -> active#(isNatList(X)) p25: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p26: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p27: mark#(U62(X)) -> active#(U62(mark(X))) p28: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p29: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p30: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p31: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p32: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p33: mark#(isNat(X)) -> active#(isNat(X)) p34: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p35: mark#(s(X)) -> active#(s(mark(X))) p36: mark#(length(X)) -> active#(length(mark(X))) p37: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p38: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p39: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p40: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(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, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40} -- 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)) -> active#(cons(mark(X1),X2)) p3: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p4: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(X2))) p5: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p6: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p7: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p8: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p9: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p10: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p11: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p12: mark#(length(X)) -> active#(length(mark(X))) p13: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p14: mark#(s(X)) -> active#(s(mark(X))) p15: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p16: mark#(isNat(X)) -> active#(isNat(X)) p17: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p18: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p19: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p20: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p21: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p22: mark#(U62(X)) -> active#(U62(mark(X))) p23: active#(U72(tt(),L)) -> mark#(s(length(L))) p24: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p25: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p26: mark#(isNatList(X)) -> active#(isNatList(X)) p27: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p28: mark#(U52(X)) -> mark#(X) p29: mark#(U52(X)) -> active#(U52(mark(X))) p30: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p31: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p32: mark#(isNatIList(X)) -> active#(isNatIList(X)) p33: mark#(U42(X)) -> mark#(X) p34: mark#(U42(X)) -> active#(U42(mark(X))) p35: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p36: mark#(U31(X)) -> active#(U31(mark(X))) p37: mark#(U21(X)) -> mark#(X) p38: mark#(U21(X)) -> active#(U21(mark(X))) p39: mark#(U11(X)) -> active#(U11(mark(X))) p40: 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: max/plus interpretations on natural numbers: active#_A(x1) = x1 + 1 zeros_A = 34 mark#_A(x1) = max{28, x1 + 1} cons_A(x1,x2) = max{x1 + 28, x2} |0|_A = 5 mark_A(x1) = x1 take_A(x1,x2) = max{x1 + 26, x2 + 26} s_A(x1) = max{60, x1} U91_A(x1,x2,x3,x4) = max{x1 + 2, x2 + 26, x3 + 26, x4 + 54} isNatIList_A(x1) = x1 + 23 length_A(x1) = x1 + 44 U71_A(x1,x2,x3) = max{x1 + 28, x2 + 44, x3 + 55} isNatList_A(x1) = x1 + 16 U93_A(x1,x2,x3,x4) = max{x1 + 26, x2 + 26, x3 + 26, x4 + 54} U61_A(x1,x2) = max{x1 + 12, x2 + 39} isNat_A(x1) = x1 + 11 U92_A(x1,x2,x3,x4) = max{x1 + 14, x2 + 26, x3 + 26, x4 + 54} U51_A(x1,x2) = max{x1 + 11, x2 + 16} U41_A(x1,x2) = max{x1 + 18, x2 + 23} U21_A(x1) = max{2, x1} U11_A(x1) = x1 + 2 tt_A = 16 U72_A(x1,x2) = max{x1 + 44, x2 + 44} U62_A(x1) = x1 + 16 U52_A(x1) = max{16, x1} U42_A(x1) = max{16, x1} U31_A(x1) = x1 + 2 active_A(x1) = max{1, x1} U81_A(x1) = x1 + 3 nil_A = 2 The next rules are strictly ordered: p7, p15 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(zeros()) -> mark#(cons(|0|(),zeros())) p2: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) p3: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p4: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(X2))) p5: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p6: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p7: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p8: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p9: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p10: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p11: mark#(length(X)) -> active#(length(mark(X))) p12: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p13: mark#(s(X)) -> active#(s(mark(X))) p14: mark#(isNat(X)) -> active#(isNat(X)) p15: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p16: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p17: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p18: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p19: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p20: mark#(U62(X)) -> active#(U62(mark(X))) p21: active#(U72(tt(),L)) -> mark#(s(length(L))) p22: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p23: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p24: mark#(isNatList(X)) -> active#(isNatList(X)) p25: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p26: mark#(U52(X)) -> mark#(X) p27: mark#(U52(X)) -> active#(U52(mark(X))) p28: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p29: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p30: mark#(isNatIList(X)) -> active#(isNatIList(X)) p31: mark#(U42(X)) -> mark#(X) p32: mark#(U42(X)) -> active#(U42(mark(X))) p33: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p34: mark#(U31(X)) -> active#(U31(mark(X))) p35: mark#(U21(X)) -> mark#(X) p36: mark#(U21(X)) -> active#(U21(mark(X))) p37: mark#(U11(X)) -> active#(U11(mark(X))) p38: 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 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, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38} -- 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)) -> active#(cons(mark(X1),X2)) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(zeros()) -> active#(zeros()) p5: mark#(U11(X)) -> active#(U11(mark(X))) p6: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p7: mark#(U21(X)) -> active#(U21(mark(X))) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U21(X)) -> mark#(X) p10: mark#(U31(X)) -> active#(U31(mark(X))) p11: active#(U72(tt(),L)) -> mark#(s(length(L))) p12: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p13: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p14: mark#(U42(X)) -> active#(U42(mark(X))) p15: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p16: mark#(U42(X)) -> mark#(X) p17: mark#(isNatIList(X)) -> active#(isNatIList(X)) p18: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p19: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p20: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p21: mark#(U52(X)) -> active#(U52(mark(X))) p22: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p23: mark#(U52(X)) -> mark#(X) p24: mark#(isNatList(X)) -> active#(isNatList(X)) p25: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p26: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p27: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p28: mark#(U62(X)) -> active#(U62(mark(X))) p29: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p30: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p31: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p32: mark#(isNat(X)) -> active#(isNat(X)) p33: mark#(s(X)) -> active#(s(mark(X))) p34: mark#(length(X)) -> active#(length(mark(X))) p35: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p36: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p37: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p38: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(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: max/plus interpretations on natural numbers: active#_A(x1) = max{25, x1 + 17} zeros_A = 9 mark#_A(x1) = x1 + 17 cons_A(x1,x2) = max{8, x1 - 18} |0|_A = 27 mark_A(x1) = x1 U41_A(x1,x2) = 40 tt_A = 2 U42_A(x1) = max{40, x1} isNatIList_A(x1) = 40 U11_A(x1) = x1 + 9 U51_A(x1,x2) = 31 U52_A(x1) = max{12, x1} isNatList_A(x1) = 31 U21_A(x1) = max{9, x1} U71_A(x1,x2,x3) = 27 U72_A(x1,x2) = 27 isNat_A(x1) = max{20, x1 + 13} U31_A(x1) = x1 + 9 s_A(x1) = max{8, x1} length_A(x1) = 27 U91_A(x1,x2,x3,x4) = max{x1 + 32, x3 + 32, x4 + 32} U92_A(x1,x2,x3,x4) = max{x1 + 9, x3 + 32, x4 + 31} U93_A(x1,x2,x3,x4) = max{8, x4} take_A(x1,x2) = max{x1 + 73, x2 + 73} U61_A(x1,x2) = 9 U62_A(x1) = 8 active_A(x1) = max{1, x1} U81_A(x1) = x1 + 34 nil_A = 14 The next rules are strictly ordered: p15, p29 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(zeros()) -> mark#(cons(|0|(),zeros())) p2: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(zeros()) -> active#(zeros()) p5: mark#(U11(X)) -> active#(U11(mark(X))) p6: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p7: mark#(U21(X)) -> active#(U21(mark(X))) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U21(X)) -> mark#(X) p10: mark#(U31(X)) -> active#(U31(mark(X))) p11: active#(U72(tt(),L)) -> mark#(s(length(L))) p12: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p13: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p14: mark#(U42(X)) -> active#(U42(mark(X))) p15: mark#(U42(X)) -> mark#(X) p16: mark#(isNatIList(X)) -> active#(isNatIList(X)) p17: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p18: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p19: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p20: mark#(U52(X)) -> active#(U52(mark(X))) p21: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p22: mark#(U52(X)) -> mark#(X) p23: mark#(isNatList(X)) -> active#(isNatList(X)) p24: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p25: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p26: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p27: mark#(U62(X)) -> active#(U62(mark(X))) p28: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p29: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p30: mark#(isNat(X)) -> active#(isNat(X)) p31: mark#(s(X)) -> active#(s(mark(X))) p32: mark#(length(X)) -> active#(length(mark(X))) p33: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p34: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p35: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p36: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(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, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36} -- 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)) -> active#(cons(mark(X1),X2)) p3: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p4: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(X2))) p5: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p6: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p7: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p8: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p9: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p10: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p11: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p12: mark#(length(X)) -> active#(length(mark(X))) p13: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p14: mark#(s(X)) -> active#(s(mark(X))) p15: active#(U72(tt(),L)) -> mark#(s(length(L))) p16: mark#(isNat(X)) -> active#(isNat(X)) p17: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p18: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p19: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p20: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p21: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p22: mark#(U62(X)) -> active#(U62(mark(X))) p23: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p24: mark#(isNatList(X)) -> active#(isNatList(X)) p25: mark#(U52(X)) -> mark#(X) p26: mark#(U52(X)) -> active#(U52(mark(X))) p27: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p28: mark#(isNatIList(X)) -> active#(isNatIList(X)) p29: mark#(U42(X)) -> mark#(X) p30: mark#(U42(X)) -> active#(U42(mark(X))) p31: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p32: mark#(U31(X)) -> active#(U31(mark(X))) p33: mark#(U21(X)) -> mark#(X) p34: mark#(U21(X)) -> active#(U21(mark(X))) p35: mark#(U11(X)) -> active#(U11(mark(X))) p36: 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: max/plus interpretations on natural numbers: active#_A(x1) = x1 + 14 zeros_A = 12 mark#_A(x1) = max{24, x1 + 14} cons_A(x1,x2) = max{12, x1 - 39, x2 - 38} |0|_A = 45 mark_A(x1) = x1 length_A(x1) = 45 U71_A(x1,x2,x3) = x1 + 11 isNatList_A(x1) = 34 take_A(x1,x2) = max{x1 + 101, x2 + 101} U51_A(x1,x2) = max{34, x1 - 111} isNat_A(x1) = 18 U93_A(x1,x2,x3,x4) = max{x1 + 13, x2 + 63, x3 + 63, x4 + 31} isNatIList_A(x1) = 22 U41_A(x1,x2) = max{22, x1 + 4} U92_A(x1,x2,x3,x4) = max{x1 + 15, x2 + 63, x3 + 64, x4 + 31} s_A(x1) = max{6, x1 - 37} U21_A(x1) = max{7, x1} U91_A(x1,x2,x3,x4) = max{x1 + 14, x2 + 63, x3 + 64, x4 + 32} tt_A = 8 U72_A(x1,x2) = max{10, x1 + 1} U52_A(x1) = max{10, x1} U42_A(x1) = max{11, x1} U62_A(x1) = max{8, x1 - 13} U61_A(x1,x2) = 9 U31_A(x1) = 11 U11_A(x1) = 18 active_A(x1) = max{5, x1} U81_A(x1) = x1 + 61 nil_A = 61 The next rules are strictly ordered: p23 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(zeros()) -> mark#(cons(|0|(),zeros())) p2: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) p3: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p4: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(X2))) p5: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p6: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p7: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p8: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p9: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p10: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p11: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p12: mark#(length(X)) -> active#(length(mark(X))) p13: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p14: mark#(s(X)) -> active#(s(mark(X))) p15: active#(U72(tt(),L)) -> mark#(s(length(L))) p16: mark#(isNat(X)) -> active#(isNat(X)) p17: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p18: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p19: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p20: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p21: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p22: mark#(U62(X)) -> active#(U62(mark(X))) p23: mark#(isNatList(X)) -> active#(isNatList(X)) p24: mark#(U52(X)) -> mark#(X) p25: mark#(U52(X)) -> active#(U52(mark(X))) p26: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p27: mark#(isNatIList(X)) -> active#(isNatIList(X)) p28: mark#(U42(X)) -> mark#(X) p29: mark#(U42(X)) -> active#(U42(mark(X))) p30: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p31: mark#(U31(X)) -> active#(U31(mark(X))) p32: mark#(U21(X)) -> mark#(X) p33: mark#(U21(X)) -> active#(U21(mark(X))) p34: mark#(U11(X)) -> active#(U11(mark(X))) p35: 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 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, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35} -- 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)) -> active#(cons(mark(X1),X2)) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(zeros()) -> active#(zeros()) p5: mark#(U11(X)) -> active#(U11(mark(X))) p6: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p7: mark#(U21(X)) -> active#(U21(mark(X))) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U21(X)) -> mark#(X) p10: mark#(U31(X)) -> active#(U31(mark(X))) p11: active#(U72(tt(),L)) -> mark#(s(length(L))) p12: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p13: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p14: mark#(U42(X)) -> active#(U42(mark(X))) p15: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p16: mark#(U42(X)) -> mark#(X) p17: mark#(isNatIList(X)) -> active#(isNatIList(X)) p18: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p19: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p20: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p21: mark#(U52(X)) -> active#(U52(mark(X))) p22: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p23: mark#(U52(X)) -> mark#(X) p24: mark#(isNatList(X)) -> active#(isNatList(X)) p25: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p26: mark#(U62(X)) -> active#(U62(mark(X))) p27: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p28: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p29: mark#(isNat(X)) -> active#(isNat(X)) p30: mark#(s(X)) -> active#(s(mark(X))) p31: mark#(length(X)) -> active#(length(mark(X))) p32: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p33: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p34: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p35: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(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: max/plus interpretations on natural numbers: active#_A(x1) = x1 + 1 zeros_A = 8 mark#_A(x1) = max{6, x1 + 1} cons_A(x1,x2) = max{x1 + 4, x2} |0|_A = 3 mark_A(x1) = x1 U41_A(x1,x2) = 9 tt_A = 3 U42_A(x1) = max{6, x1} isNatIList_A(x1) = 9 U11_A(x1) = x1 + 6 U51_A(x1,x2) = max{x1 + 2, x2 + 5} U52_A(x1) = max{3, x1} isNatList_A(x1) = x1 + 5 U21_A(x1) = max{3, x1} U71_A(x1,x2,x3) = max{x1 + 6, x2 + 11, x3 + 12} U72_A(x1,x2) = max{x1 + 8, x2 + 11} isNat_A(x1) = x1 + 3 U31_A(x1) = 3 s_A(x1) = max{6, x1} length_A(x1) = x1 + 11 U91_A(x1,x2,x3,x4) = max{x1 + 6, x2 + 15, x3 + 15, x4 + 15} U92_A(x1,x2,x3,x4) = max{x1 + 12, x2 + 15, x3 + 15, x4 + 15} U93_A(x1,x2,x3,x4) = max{x1 + 12, x2 + 15, x3 + 15, x4 + 15} take_A(x1,x2) = max{x1 + 15, x2 + 15} U62_A(x1) = x1 + 7 active_A(x1) = max{2, x1} U61_A(x1,x2) = max{x1 + 4, x2 + 20} U81_A(x1) = x1 + 4 nil_A = 3 The next rules are strictly ordered: p10 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(zeros()) -> mark#(cons(|0|(),zeros())) p2: mark#(cons(X1,X2)) -> active#(cons(mark(X1),X2)) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(zeros()) -> active#(zeros()) p5: mark#(U11(X)) -> active#(U11(mark(X))) p6: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p7: mark#(U21(X)) -> active#(U21(mark(X))) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U21(X)) -> mark#(X) p10: active#(U72(tt(),L)) -> mark#(s(length(L))) p11: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p12: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p13: mark#(U42(X)) -> active#(U42(mark(X))) p14: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p15: mark#(U42(X)) -> mark#(X) p16: mark#(isNatIList(X)) -> active#(isNatIList(X)) p17: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p18: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p19: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p20: mark#(U52(X)) -> active#(U52(mark(X))) p21: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p22: mark#(U52(X)) -> mark#(X) p23: mark#(isNatList(X)) -> active#(isNatList(X)) p24: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p25: mark#(U62(X)) -> active#(U62(mark(X))) p26: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p27: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p28: mark#(isNat(X)) -> active#(isNat(X)) p29: mark#(s(X)) -> active#(s(mark(X))) p30: mark#(length(X)) -> active#(length(mark(X))) p31: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p32: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p33: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p34: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(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, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34} -- 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)) -> active#(cons(mark(X1),X2)) p3: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p4: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(X2))) p5: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p6: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p7: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p8: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p9: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p10: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p11: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p12: mark#(length(X)) -> active#(length(mark(X))) p13: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p14: mark#(s(X)) -> active#(s(mark(X))) p15: active#(U72(tt(),L)) -> mark#(s(length(L))) p16: mark#(isNat(X)) -> active#(isNat(X)) p17: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p18: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p19: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p20: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p21: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p22: mark#(U62(X)) -> active#(U62(mark(X))) p23: mark#(isNatList(X)) -> active#(isNatList(X)) p24: mark#(U52(X)) -> mark#(X) p25: mark#(U52(X)) -> active#(U52(mark(X))) p26: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p27: mark#(isNatIList(X)) -> active#(isNatIList(X)) p28: mark#(U42(X)) -> mark#(X) p29: mark#(U42(X)) -> active#(U42(mark(X))) p30: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p31: mark#(U21(X)) -> mark#(X) p32: mark#(U21(X)) -> active#(U21(mark(X))) p33: mark#(U11(X)) -> active#(U11(mark(X))) p34: 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: max/plus interpretations on natural numbers: active#_A(x1) = max{0, x1 - 27} zeros_A = 53 mark#_A(x1) = max{0, x1 - 23} cons_A(x1,x2) = x1 + 29 |0|_A = 20 mark_A(x1) = x1 length_A(x1) = 63 U71_A(x1,x2,x3) = max{37, x1 + 36} isNatList_A(x1) = 23 take_A(x1,x2) = max{x1 + 120, x2 + 120} U51_A(x1,x2) = max{22, x1 + 1} isNat_A(x1) = 22 U93_A(x1,x2,x3,x4) = max{x1 + 33, x3 + 33, x4 + 33} isNatIList_A(x1) = 23 U41_A(x1,x2) = max{23, x1 - 4} U92_A(x1,x2,x3,x4) = max{x1 + 55, x3 + 78, x4 + 78} s_A(x1) = max{28, x1 - 15} U21_A(x1) = max{22, x1} U91_A(x1,x2,x3,x4) = max{x1 + 82, x3 + 82, x4 + 82} tt_A = 22 U72_A(x1,x2) = max{53, x1 + 16} U52_A(x1) = max{22, x1} U42_A(x1) = max{21, x1} U62_A(x1) = max{22, x1} U11_A(x1) = 22 active_A(x1) = max{17, x1} U31_A(x1) = max{22, x1} U61_A(x1,x2) = 23 U81_A(x1) = x1 + 19 nil_A = 18 The next rules are strictly ordered: p2, p4, p6, p8, p10, p12, p14, p15, p17, p18, p20, p34 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(zeros()) -> mark#(cons(|0|(),zeros())) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p4: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p5: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p6: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p7: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p8: mark#(isNat(X)) -> active#(isNat(X)) p9: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p10: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p11: mark#(U62(X)) -> active#(U62(mark(X))) p12: mark#(isNatList(X)) -> active#(isNatList(X)) p13: mark#(U52(X)) -> mark#(X) p14: mark#(U52(X)) -> active#(U52(mark(X))) p15: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p16: mark#(isNatIList(X)) -> active#(isNatIList(X)) p17: mark#(U42(X)) -> mark#(X) p18: mark#(U42(X)) -> active#(U42(mark(X))) p19: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p20: mark#(U21(X)) -> mark#(X) p21: mark#(U21(X)) -> active#(U21(mark(X))) p22: mark#(U11(X)) -> active#(U11(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: {p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22} -- 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#(U11(X)) -> active#(U11(mark(X))) p3: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p4: mark#(U21(X)) -> active#(U21(mark(X))) p5: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p6: mark#(U21(X)) -> mark#(X) p7: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p8: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p9: mark#(U42(X)) -> active#(U42(mark(X))) p10: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p11: mark#(U42(X)) -> mark#(X) p12: mark#(isNatIList(X)) -> active#(isNatIList(X)) p13: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p14: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p15: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p16: mark#(U52(X)) -> active#(U52(mark(X))) p17: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p18: mark#(U52(X)) -> mark#(X) p19: mark#(isNatList(X)) -> active#(isNatList(X)) p20: mark#(U62(X)) -> active#(U62(mark(X))) p21: mark#(isNat(X)) -> active#(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 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: max/plus interpretations on natural numbers: active#_A(x1) = x1 + 4 length_A(x1) = x1 + 10 cons_A(x1,x2) = max{x1 + 25, x2} mark#_A(x1) = max{13, x1 + 4} U71_A(x1,x2,x3) = max{x2 + 10, x3 + 15} isNatList_A(x1) = x1 + 16 U11_A(x1) = 4 mark_A(x1) = x1 U41_A(x1,x2) = 14 tt_A = 4 U42_A(x1) = max{14, x1} isNatIList_A(x1) = 14 U21_A(x1) = max{10, x1} U51_A(x1,x2) = max{x1 + 11, x2 + 16} U52_A(x1) = max{7, x1} U91_A(x1,x2,x3,x4) = max{x1 + 26, x2 + 38, x3 + 38, x4 + 25} U92_A(x1,x2,x3,x4) = max{x1 + 23, x2 + 38, x3 + 38, x4 + 25} isNat_A(x1) = x1 + 9 U93_A(x1,x2,x3,x4) = max{x1 + 16, x2 + 38, x3 + 38, x4 + 25} take_A(x1,x2) = max{x1 + 38, x2 + 38} s_A(x1) = max{4, x1} U62_A(x1) = x1 + 10 active_A(x1) = max{3, x1} zeros_A = 36 |0|_A = 11 U31_A(x1) = 4 U61_A(x1,x2) = max{x1 + 45, x2 + 45} U72_A(x1,x2) = max{x1 + 6, x2 + 10} U81_A(x1) = x1 + 24 nil_A = 4 The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p2: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p3: mark#(U21(X)) -> active#(U21(mark(X))) p4: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p5: mark#(U21(X)) -> mark#(X) p6: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p7: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p8: mark#(U42(X)) -> active#(U42(mark(X))) p9: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p10: mark#(U42(X)) -> mark#(X) p11: mark#(isNatIList(X)) -> active#(isNatIList(X)) p12: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p13: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p14: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p15: mark#(U52(X)) -> active#(U52(mark(X))) p16: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p17: mark#(U52(X)) -> mark#(X) p18: mark#(isNatList(X)) -> active#(isNatList(X)) p19: mark#(U62(X)) -> active#(U62(mark(X))) p20: mark#(isNat(X)) -> active#(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 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#(isNat(X)) -> active#(isNat(X)) p3: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p4: mark#(U62(X)) -> active#(U62(mark(X))) p5: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p6: mark#(isNatList(X)) -> active#(isNatList(X)) p7: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p8: mark#(U52(X)) -> mark#(X) p9: mark#(U52(X)) -> active#(U52(mark(X))) p10: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p11: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p12: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p13: mark#(isNatIList(X)) -> active#(isNatIList(X)) p14: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p15: mark#(U42(X)) -> mark#(X) p16: mark#(U42(X)) -> active#(U42(mark(X))) p17: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p18: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p19: mark#(U21(X)) -> mark#(X) p20: 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: max/plus interpretations on natural numbers: active#_A(x1) = x1 + 1 length_A(x1) = x1 + 40 cons_A(x1,x2) = max{x1 + 59, x2} mark#_A(x1) = max{10, x1 + 1} U71_A(x1,x2,x3) = max{x1 + 8, x2 + 40, x3 + 99} isNatList_A(x1) = x1 + 31 isNat_A(x1) = x1 + 19 U51_A(x1,x2) = max{x1 + 12, x2 + 31} U62_A(x1) = 8 mark_A(x1) = x1 isNatIList_A(x1) = x1 + 39 U41_A(x1,x2) = max{x1 + 39, x2 + 39} s_A(x1) = max{8, x1} U21_A(x1) = max{10, x1} U52_A(x1) = max{8, x1} U93_A(x1,x2,x3,x4) = max{x1 + 58, x2 + 58, x3 + 58, x4 + 59} tt_A = 8 take_A(x1,x2) = max{x1 + 58, x2 + 58} U91_A(x1,x2,x3,x4) = max{x1 + 19, x2 + 58, x3 + 58, x4 + 78} U92_A(x1,x2,x3,x4) = max{x1 + 8, x2 + 58, x3 + 58, x4 + 77} U42_A(x1) = max{10, x1} active_A(x1) = max{7, x1} zeros_A = 99 |0|_A = 40 U11_A(x1) = x1 + 8 U31_A(x1) = x1 + 8 U61_A(x1,x2) = max{x1 + 11, x2 + 46} U72_A(x1,x2) = max{x1 + 40, x2 + 40} U81_A(x1) = x1 + 19 nil_A = 8 The next rules are strictly ordered: p4 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p2: mark#(isNat(X)) -> active#(isNat(X)) p3: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p4: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p5: mark#(isNatList(X)) -> active#(isNatList(X)) p6: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p7: mark#(U52(X)) -> mark#(X) p8: mark#(U52(X)) -> active#(U52(mark(X))) p9: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p10: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p11: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p12: mark#(isNatIList(X)) -> active#(isNatIList(X)) p13: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p14: mark#(U42(X)) -> mark#(X) p15: mark#(U42(X)) -> active#(U42(mark(X))) p16: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p17: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p18: mark#(U21(X)) -> mark#(X) p19: 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} -- 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#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p9: mark#(U42(X)) -> mark#(X) p10: mark#(isNatIList(X)) -> active#(isNatIList(X)) p11: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p12: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p13: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p14: mark#(U52(X)) -> active#(U52(mark(X))) p15: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p16: mark#(U52(X)) -> mark#(X) p17: mark#(isNatList(X)) -> active#(isNatList(X)) p18: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p19: mark#(isNat(X)) -> active#(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 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: max/plus interpretations on natural numbers: active#_A(x1) = x1 + 166 length_A(x1) = x1 + 14 cons_A(x1,x2) = max{10, x2 - 181} mark#_A(x1) = 176 U71_A(x1,x2,x3) = max{10, x1 - 201, x2 - 208} isNatList_A(x1) = 10 U21_A(x1) = 10 mark_A(x1) = x1 + 25 U41_A(x1,x2) = 10 tt_A = 10 U42_A(x1) = 10 isNatIList_A(x1) = 10 U51_A(x1,x2) = 10 U52_A(x1) = 10 U91_A(x1,x2,x3,x4) = 10 U92_A(x1,x2,x3,x4) = 10 isNat_A(x1) = 10 U93_A(x1,x2,x3,x4) = 10 take_A(x1,x2) = 186 s_A(x1) = max{10, x1 - 272} active_A(x1) = max{35, x1} zeros_A = 18 |0|_A = 10 U11_A(x1) = 10 U31_A(x1) = 10 U61_A(x1,x2) = max{10, x1} U62_A(x1) = max{10, x1 - 25} U72_A(x1,x2) = max{10, x2 - 233} U81_A(x1) = x1 + 151 nil_A = 20 The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p5: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p6: mark#(U42(X)) -> active#(U42(mark(X))) p7: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p8: mark#(U42(X)) -> mark#(X) p9: mark#(isNatIList(X)) -> active#(isNatIList(X)) p10: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p11: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p12: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p13: mark#(U52(X)) -> active#(U52(mark(X))) p14: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p15: mark#(U52(X)) -> mark#(X) p16: mark#(isNatList(X)) -> active#(isNatList(X)) p17: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p18: mark#(isNat(X)) -> active#(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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p3: mark#(isNat(X)) -> active#(isNat(X)) p4: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p5: mark#(isNatList(X)) -> active#(isNatList(X)) p6: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p7: mark#(U52(X)) -> mark#(X) p8: mark#(U52(X)) -> active#(U52(mark(X))) p9: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p10: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p11: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p12: mark#(isNatIList(X)) -> active#(isNatIList(X)) p13: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p14: mark#(U42(X)) -> mark#(X) p15: mark#(U42(X)) -> active#(U42(mark(X))) p16: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p17: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p18: 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 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: max/plus interpretations on natural numbers: mark#_A(x1) = max{0, x1 - 58} U21_A(x1) = max{60, x1} active#_A(x1) = max{0, x1 - 58} mark_A(x1) = max{41, x1} isNatList_A(x1) = x1 + 179 cons_A(x1,x2) = max{22, x1 - 19, x2 + 19} U51_A(x1,x2) = max{201, x1 + 101, x2 + 198} isNat_A(x1) = x1 + 59 isNatIList_A(x1) = x1 + 138 U41_A(x1,x2) = max{x1 + 60, x2 + 153} s_A(x1) = max{4, x1} U52_A(x1) = max{200, x1 + 19} U93_A(x1,x2,x3,x4) = max{27, x2 + 19, x4 - 19} tt_A = 26 take_A(x1,x2) = max{9, x2} U91_A(x1,x2,x3,x4) = max{x2 + 19, x4 - 19} U92_A(x1,x2,x3,x4) = max{x2 + 19, x4 - 19} U42_A(x1) = max{57, x1 + 15} active_A(x1) = max{41, x1} zeros_A = 22 |0|_A = 20 U11_A(x1) = 42 U31_A(x1) = 42 U61_A(x1,x2) = max{180, x2 + 179} U62_A(x1) = max{82, x1 + 41} U71_A(x1,x2,x3) = 2 U72_A(x1,x2) = 3 length_A(x1) = 20 U81_A(x1) = max{41, x1 - 138} nil_A = 0 The next rules are strictly ordered: p7 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p3: mark#(isNat(X)) -> active#(isNat(X)) p4: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p5: mark#(isNatList(X)) -> active#(isNatList(X)) p6: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p7: mark#(U52(X)) -> active#(U52(mark(X))) p8: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p9: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p10: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p11: mark#(isNatIList(X)) -> active#(isNatIList(X)) p12: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p13: mark#(U42(X)) -> mark#(X) p14: mark#(U42(X)) -> active#(U42(mark(X))) p15: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p16: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p17: 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p5: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p6: mark#(U42(X)) -> active#(U42(mark(X))) p7: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p8: mark#(U42(X)) -> mark#(X) p9: mark#(isNatIList(X)) -> active#(isNatIList(X)) p10: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p11: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p12: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p13: mark#(U52(X)) -> active#(U52(mark(X))) p14: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p15: mark#(isNatList(X)) -> active#(isNatList(X)) p16: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p17: mark#(isNat(X)) -> active#(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 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: max/plus interpretations on natural numbers: mark#_A(x1) = max{2, x1 - 14} U21_A(x1) = max{17, x1} active#_A(x1) = max{0, x1 - 14} mark_A(x1) = x1 U41_A(x1,x2) = max{30, x2 + 28} tt_A = 9 U42_A(x1) = max{29, x1} isNatIList_A(x1) = x1 + 28 U51_A(x1,x2) = max{x1 + 8, x2 + 7} U52_A(x1) = 15 isNatList_A(x1) = x1 + 26 U91_A(x1,x2,x3,x4) = max{x1 + 17, x2 + 45, x3 + 45, x4 + 45} U92_A(x1,x2,x3,x4) = max{x1 + 13, x2 + 45, x3 + 45, x4 + 45} isNat_A(x1) = x1 + 18 U93_A(x1,x2,x3,x4) = max{x1 + 11, x2 + 45, x3 + 45, x4 + 45} cons_A(x1,x2) = max{10, x1, x2} take_A(x1,x2) = max{x1 + 45, x2 + 45} s_A(x1) = max{2, x1} active_A(x1) = max{1, x1} zeros_A = 10 |0|_A = 2 U11_A(x1) = x1 + 2 U31_A(x1) = x1 + 2 U61_A(x1,x2) = max{x1 + 9, x2 + 37} U62_A(x1) = x1 + 9 U71_A(x1,x2,x3) = max{x1 + 4, x2 + 30, x3 + 30} U72_A(x1,x2) = max{x1 + 2, x2 + 30} length_A(x1) = x1 + 30 U81_A(x1) = x1 + 3 nil_A = 2 The next rules are strictly ordered: p5, p13 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p5: mark#(U42(X)) -> active#(U42(mark(X))) p6: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p7: mark#(U42(X)) -> mark#(X) p8: mark#(isNatIList(X)) -> active#(isNatIList(X)) p9: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p10: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p11: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p12: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p13: mark#(isNatList(X)) -> active#(isNatList(X)) p14: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p15: mark#(isNat(X)) -> active#(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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p3: mark#(isNat(X)) -> active#(isNat(X)) p4: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p5: mark#(isNatList(X)) -> active#(isNatList(X)) p6: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p7: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p8: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p9: mark#(isNatIList(X)) -> active#(isNatIList(X)) p10: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p11: mark#(U42(X)) -> mark#(X) p12: mark#(U42(X)) -> active#(U42(mark(X))) p13: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p14: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p15: 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 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: max/plus interpretations on natural numbers: mark#_A(x1) = max{0, x1 - 1} U21_A(x1) = max{7, x1} active#_A(x1) = max{1, x1 - 1} mark_A(x1) = x1 isNatList_A(x1) = max{6, x1 + 2} cons_A(x1,x2) = max{x1 + 25, x2} U51_A(x1,x2) = x1 + 7 isNat_A(x1) = max{8, x1 + 6} isNatIList_A(x1) = x1 + 12 U41_A(x1,x2) = max{x1 + 3, x2 + 12} s_A(x1) = max{3, x1} U93_A(x1,x2,x3,x4) = max{x1 + 18, x2 + 18, x3 + 18, x4 + 26} tt_A = 6 take_A(x1,x2) = max{x1 + 18, x2 + 18} U91_A(x1,x2,x3,x4) = max{x1 + 6, x2 + 18, x3 + 18, x4 + 27} U92_A(x1,x2,x3,x4) = max{x1 + 12, x2 + 18, x3 + 18, x4 + 26} U42_A(x1) = max{2, x1} active_A(x1) = max{1, x1} zeros_A = 27 |0|_A = 2 U11_A(x1) = max{6, x1 + 1} U31_A(x1) = x1 + 6 U52_A(x1) = 6 U61_A(x1,x2) = max{x1 + 12, x2 + 18} U62_A(x1) = x1 + 6 U71_A(x1,x2,x3) = max{x1 + 10, x2 + 16, x3 + 9} U72_A(x1,x2) = max{x1 + 1, x2 + 16} length_A(x1) = x1 + 16 U81_A(x1) = x1 + 4 nil_A = 4 The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: mark#(isNat(X)) -> active#(isNat(X)) p3: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p4: mark#(isNatList(X)) -> active#(isNatList(X)) p5: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p6: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p7: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p8: mark#(isNatIList(X)) -> active#(isNatIList(X)) p9: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p10: mark#(U42(X)) -> mark#(X) p11: mark#(U42(X)) -> active#(U42(mark(X))) p12: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p13: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p14: 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p5: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p6: mark#(U42(X)) -> active#(U42(mark(X))) p7: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p8: mark#(U42(X)) -> mark#(X) p9: mark#(isNatIList(X)) -> active#(isNatIList(X)) p10: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p11: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p12: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p13: mark#(isNatList(X)) -> active#(isNatList(X)) p14: mark#(isNat(X)) -> active#(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 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: max/plus interpretations on natural numbers: mark#_A(x1) = max{18, x1 - 6} U21_A(x1) = max{13, x1} active#_A(x1) = max{0, x1 - 6} mark_A(x1) = x1 U41_A(x1,x2) = max{x1 + 12, x2 + 25} tt_A = 13 U42_A(x1) = max{12, x1} isNatIList_A(x1) = x1 + 25 U91_A(x1,x2,x3,x4) = max{x1 + 25, x2 + 50, x3 + 50, x4 + 63} U92_A(x1,x2,x3,x4) = max{x1 + 37, x2 + 50, x3 + 50, x4 + 63} isNat_A(x1) = x1 + 13 U93_A(x1,x2,x3,x4) = max{x1 + 50, x2 + 50, x3 + 50, x4 + 51} cons_A(x1,x2) = max{x1 + 51, x2} take_A(x1,x2) = max{x1 + 50, x2 + 50} s_A(x1) = max{11, x1} U51_A(x1,x2) = 23 isNatList_A(x1) = x1 + 21 active_A(x1) = max{4, x1} zeros_A = 56 |0|_A = 5 U11_A(x1) = max{13, x1 - 15} U31_A(x1) = max{13, x1 + 4} U52_A(x1) = 23 U61_A(x1,x2) = max{x1 + 5, x2 + 38} U62_A(x1) = x1 + 13 U71_A(x1,x2,x3) = max{x1 + 5, x2 + 26, x3 + 39} U72_A(x1,x2) = max{x1 + 26, x2 + 26} length_A(x1) = x1 + 26 U81_A(x1) = x1 + 6 nil_A = 5 The next rules are strictly ordered: p11 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p5: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p6: mark#(U42(X)) -> active#(U42(mark(X))) p7: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p8: mark#(U42(X)) -> mark#(X) p9: mark#(isNatIList(X)) -> active#(isNatIList(X)) p10: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p11: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p12: mark#(isNatList(X)) -> active#(isNatList(X)) p13: mark#(isNat(X)) -> active#(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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p3: mark#(isNat(X)) -> active#(isNat(X)) p4: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p5: mark#(isNatList(X)) -> active#(isNatList(X)) p6: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p7: mark#(isNatIList(X)) -> active#(isNatIList(X)) p8: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p9: mark#(U42(X)) -> mark#(X) p10: mark#(U42(X)) -> active#(U42(mark(X))) p11: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p12: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p13: 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 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: max/plus interpretations on natural numbers: mark#_A(x1) = max{52, x1 + 36} U21_A(x1) = max{11, x1} active#_A(x1) = x1 + 36 mark_A(x1) = x1 isNatIList_A(x1) = 17 cons_A(x1,x2) = max{x1 + 23, x2} U41_A(x1,x2) = 17 isNat_A(x1) = x1 + 12 s_A(x1) = max{4, x1} isNatList_A(x1) = 5 U93_A(x1,x2,x3,x4) = max{x1 + 17, x2 + 39, x3 + 39, x4 + 35} tt_A = 5 take_A(x1,x2) = max{x1 + 39, x2 + 39} U91_A(x1,x2,x3,x4) = max{x1 - 6, x2 + 39, x3 + 39, x4 + 36} U92_A(x1,x2,x3,x4) = max{x1 + 27, x2 + 39, x3 + 39, x4 + 35} U42_A(x1) = max{15, x1} active_A(x1) = max{3, x1} zeros_A = 27 |0|_A = 4 U11_A(x1) = x1 + 5 U31_A(x1) = 17 U51_A(x1,x2) = 5 U52_A(x1) = 5 U61_A(x1,x2) = 5 U62_A(x1) = 5 U71_A(x1,x2,x3) = max{x1 + 3, x2 + 8, x3 + 20} U72_A(x1,x2) = max{x1 + 8, x2 + 8} length_A(x1) = x1 + 8 U81_A(x1) = x1 + 5 nil_A = 4 The next rules are strictly ordered: p5 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p3: mark#(isNat(X)) -> active#(isNat(X)) p4: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p5: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p6: mark#(isNatIList(X)) -> active#(isNatIList(X)) p7: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p8: mark#(U42(X)) -> mark#(X) p9: mark#(U42(X)) -> active#(U42(mark(X))) p10: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p11: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p12: 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p5: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p6: mark#(U42(X)) -> active#(U42(mark(X))) p7: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p8: mark#(U42(X)) -> mark#(X) p9: mark#(isNatIList(X)) -> active#(isNatIList(X)) p10: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p11: mark#(isNat(X)) -> active#(isNat(X)) p12: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) 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: max/plus interpretations on natural numbers: mark#_A(x1) = 0 U21_A(x1) = 22 active#_A(x1) = max{0, x1 - 50} mark_A(x1) = x1 U41_A(x1,x2) = 12 tt_A = 10 U42_A(x1) = 10 isNatIList_A(x1) = 23 U91_A(x1,x2,x3,x4) = max{x1 + 41, x2 + 43, x3 + 43, x4 + 64} U92_A(x1,x2,x3,x4) = max{x1 + 30, x2 + 43, x3 + 43, x4 + 50} isNat_A(x1) = 34 U93_A(x1,x2,x3,x4) = max{x2 + 43, x3 + 43, x4 + 50} cons_A(x1,x2) = max{49, x1 + 8, x2 - 17} take_A(x1,x2) = max{x1 + 60, x2 + 60} s_A(x1) = max{39, x1 - 17} active_A(x1) = max{9, x1} zeros_A = 49 |0|_A = 24 U11_A(x1) = 31 U31_A(x1) = 10 U51_A(x1,x2) = max{10, x1 - 18} U52_A(x1) = 10 isNatList_A(x1) = max{67, x1 + 8} U61_A(x1,x2) = max{x1 + 33, x2 + 33} U62_A(x1) = x1 + 10 U71_A(x1,x2,x3) = max{x2 + 38, x3 + 63} U72_A(x1,x2) = max{x1 + 29, x2 + 38} length_A(x1) = x1 + 55 U81_A(x1) = x1 + 61 nil_A = 10 The next rules are strictly ordered: p5 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p5: mark#(U42(X)) -> active#(U42(mark(X))) p6: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p7: mark#(U42(X)) -> mark#(X) p8: mark#(isNatIList(X)) -> active#(isNatIList(X)) p9: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p10: mark#(isNat(X)) -> active#(isNat(X)) p11: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) 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: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p3: mark#(isNat(X)) -> active#(isNat(X)) p4: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p5: mark#(isNatIList(X)) -> active#(isNatIList(X)) p6: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p7: mark#(U42(X)) -> mark#(X) p8: mark#(U42(X)) -> active#(U42(mark(X))) p9: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p10: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p11: 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 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: max/plus interpretations on natural numbers: mark#_A(x1) = 0 U21_A(x1) = 777 active#_A(x1) = max{0, x1 - 778} mark_A(x1) = max{1141, x1 - 9} isNatIList_A(x1) = 364 cons_A(x1,x2) = 995 U41_A(x1,x2) = 778 isNat_A(x1) = 770 s_A(x1) = 1092 U93_A(x1,x2,x3,x4) = 984 tt_A = 386 take_A(x1,x2) = 0 U42_A(x1) = 778 active_A(x1) = max{1141, x1 + 1} zeros_A = 231 |0|_A = 960 U11_A(x1) = 1140 U31_A(x1) = 375 U51_A(x1,x2) = 1129 U52_A(x1) = 1140 isNatList_A(x1) = 375 U61_A(x1,x2) = 364 U62_A(x1) = 375 U71_A(x1,x2,x3) = 1070 U72_A(x1,x2) = 1081 length_A(x1) = 949 U81_A(x1) = 10 nil_A = 48 U91_A(x1,x2,x3,x4) = 1130 U92_A(x1,x2,x3,x4) = 1140 The next rules are strictly ordered: p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p3: mark#(isNat(X)) -> active#(isNat(X)) p4: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p5: mark#(isNatIList(X)) -> active#(isNatIList(X)) p6: mark#(U42(X)) -> mark#(X) p7: mark#(U42(X)) -> active#(U42(mark(X))) p8: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p9: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p10: 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> active#(U21(mark(X))) p2: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p5: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p6: mark#(U42(X)) -> active#(U42(mark(X))) p7: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p8: mark#(U42(X)) -> mark#(X) p9: mark#(isNatIList(X)) -> active#(isNatIList(X)) p10: mark#(isNat(X)) -> active#(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 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: max/plus interpretations on natural numbers: mark#_A(x1) = max{0, x1 - 61} U21_A(x1) = max{62, x1} active#_A(x1) = max{0, x1 - 63} mark_A(x1) = max{27, x1} U41_A(x1,x2) = x2 + 76 tt_A = 60 U42_A(x1) = max{26, x1} isNatIList_A(x1) = x1 + 74 isNat_A(x1) = max{60, x1 + 2} s_A(x1) = max{62, x1 + 4} cons_A(x1,x2) = max{5, x2 + 4} active_A(x1) = max{27, x1} zeros_A = 4 |0|_A = 58 U11_A(x1) = max{60, x1 + 1} U31_A(x1) = max{28, x1 + 1} U51_A(x1,x2) = max{33, x2 + 31} U52_A(x1) = max{31, x1} isNatList_A(x1) = max{33, x1 + 27} U61_A(x1,x2) = max{x1 + 5, x2 + 75} U62_A(x1) = max{60, x1 + 1} U71_A(x1,x2,x3) = max{x1 + 29, x2 + 62} U72_A(x1,x2) = max{89, x2 + 62} length_A(x1) = max{85, x1 + 58} U81_A(x1) = 36 nil_A = 36 U91_A(x1,x2,x3,x4) = max{84, x1 - 37, x2 + 52, x3 + 26} U92_A(x1,x2,x3,x4) = max{x1 + 24, x2 + 52, x3 + 26} U93_A(x1,x2,x3,x4) = max{79, x2 + 52, x3 + 26} take_A(x1,x2) = max{75, x1 + 22, x2 + 48} The next rules are strictly ordered: p1, p4, p9 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p2: mark#(U21(X)) -> mark#(X) p3: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p4: mark#(U42(X)) -> active#(U42(mark(X))) p5: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p6: mark#(U42(X)) -> mark#(X) p7: mark#(isNat(X)) -> active#(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 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: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p2: mark#(isNat(X)) -> active#(isNat(X)) p3: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p4: mark#(U42(X)) -> mark#(X) p5: mark#(U42(X)) -> active#(U42(mark(X))) p6: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p7: 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 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: max/plus interpretations on natural numbers: active#_A(x1) = max{0, x1 - 44} U41_A(x1,x2) = max{46, x1 - 5} tt_A = 30 mark#_A(x1) = 2 U42_A(x1) = 43 isNatIList_A(x1) = 46 isNat_A(x1) = 46 cons_A(x1,x2) = max{x1 + 20, x2 - 26} mark_A(x1) = x1 s_A(x1) = max{63, x1 - 26} U21_A(x1) = 46 active_A(x1) = max{17, x1} zeros_A = 44 |0|_A = 18 U11_A(x1) = 30 U31_A(x1) = 46 U51_A(x1,x2) = max{18, x1 + 1} U52_A(x1) = 30 isNatList_A(x1) = x1 + 44 U61_A(x1,x2) = max{134, x2 + 28} U62_A(x1) = x1 + 29 U71_A(x1,x2,x3) = max{x1 + 18, x2 + 62, x3 + 108} U72_A(x1,x2) = max{x1 + 62, x2 + 62} length_A(x1) = x1 + 88 U81_A(x1) = x1 + 18 nil_A = 18 U91_A(x1,x2,x3,x4) = max{x1 + 18, x2 + 64, x3 + 64, x4 + 110} U92_A(x1,x2,x3,x4) = max{x1 + 64, x2 + 64, x3 + 64, x4 + 110} U93_A(x1,x2,x3,x4) = max{x1 + 64, x2 + 64, x3 + 64, x4 + 64} take_A(x1,x2) = max{x1 + 90, x2 + 90} 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: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p2: mark#(isNat(X)) -> active#(isNat(X)) p3: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p4: mark#(U42(X)) -> mark#(X) p5: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p6: 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p2: mark#(U21(X)) -> mark#(X) p3: mark#(U42(X)) -> mark#(X) p4: mark#(isNat(X)) -> active#(isNat(X)) p5: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p6: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) 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 r62, r63, r66, r67, r68, r69, r70, r71, r72, r73, r98, r99 Take the reduction pair: max/plus interpretations on natural numbers: active#_A(x1) = max{0, x1 - 1} U41_A(x1,x2) = max{x1 - 6, x2 + 2} tt_A = 11 mark#_A(x1) = max{3, x1 - 1} U42_A(x1) = x1 isNatIList_A(x1) = max{4, x1 + 2} U21_A(x1) = x1 + 5 isNat_A(x1) = x1 + 7 s_A(x1) = x1 + 5 cons_A(x1,x2) = max{x1 + 2, x2 + 1} mark_A(x1) = x1 active_A(x1) = x1 The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p2: mark#(U42(X)) -> mark#(X) p3: mark#(isNat(X)) -> active#(isNat(X)) p4: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p5: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) 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: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p2: mark#(isNat(X)) -> active#(isNat(X)) p3: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p4: mark#(U42(X)) -> mark#(X) p5: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) 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 r62, r63, r66, r67, r68, r69, r70, r71, r72, r73, r98, r99 Take the reduction pair: max/plus interpretations on natural numbers: active#_A(x1) = x1 U41_A(x1,x2) = max{x1 - 1, x2 + 3} tt_A = 4 mark#_A(x1) = max{1, x1} U42_A(x1) = max{1, x1} isNatIList_A(x1) = max{2, x1} isNat_A(x1) = x1 + 4 cons_A(x1,x2) = max{x1 + 3, x2 + 3} s_A(x1) = max{0, x1 - 1} U21_A(x1) = max{1, x1 - 1} mark_A(x1) = x1 active_A(x1) = x1 The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(isNat(X)) -> active#(isNat(X)) p2: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p3: mark#(U42(X)) -> mark#(X) p4: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) 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: mark#(isNat(X)) -> active#(isNat(X)) p2: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p3: mark#(U42(X)) -> mark#(X) p4: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) 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 r62, r63, r66, r67, r68, r69, r98, r99 Take the reduction pair: max/plus interpretations on natural numbers: mark#_A(x1) = 2 isNat_A(x1) = 0 active#_A(x1) = x1 + 2 s_A(x1) = x1 U21_A(x1) = 2 U42_A(x1) = max{0, x1 - 1} isNatIList_A(x1) = x1 + 1 cons_A(x1,x2) = max{x1, x2} U41_A(x1,x2) = 2 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: mark#(isNat(X)) -> active#(isNat(X)) p2: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p3: 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(isNat(X)) -> active#(isNat(X)) p2: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p3: 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 r62, r63, r98, r99 Take the reduction pair: max/plus interpretations on natural numbers: mark#_A(x1) = max{1, x1 - 3} isNat_A(x1) = 5 active#_A(x1) = max{0, x1 - 4} s_A(x1) = x1 + 4 U21_A(x1) = 0 U42_A(x1) = x1 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: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p2: 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: {p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 (no rules) Take the monotone reduction pair: max/plus interpretations on natural numbers: mark#_A(x1) = x1 U42_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: max/plus interpretations on natural numbers: U42#_A(x1) = max{0, x1 - 1} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 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: U42#(mark(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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U42#(mark(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: max/plus interpretations on natural numbers: U42#_A(x1) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: max/plus interpretations on natural numbers: isNatIList#_A(x1) = max{0, x1 - 1} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 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: isNatIList#(mark(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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isNatIList#(mark(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: max/plus interpretations on natural numbers: isNatIList#_A(x1) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: max/plus interpretations on natural numbers: U52#_A(x1) = max{0, x1 - 1} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 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: U52#(mark(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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U52#(mark(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: max/plus interpretations on natural numbers: U52#_A(x1) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: max/plus interpretations on natural numbers: isNatList#_A(x1) = max{0, x1 - 1} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 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: isNatList#(mark(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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isNatList#(mark(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: max/plus interpretations on natural numbers: isNatList#_A(x1) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: max/plus interpretations on natural numbers: U62#_A(x1) = max{0, x1 - 1} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 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: U62#(mark(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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U62#(mark(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: max/plus interpretations on natural numbers: U62#_A(x1) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: U72#_A(x1,x2) = x2 mark_A(x1) = x1 + 1 active_A(x1) = x1 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: max/plus interpretations on natural numbers: U72#_A(x1,x2) = x2 + 1 mark_A(x1) = max{0, x1 - 1} active_A(x1) = x1 + 1 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: max/plus interpretations on natural numbers: U72#_A(x1,x2) = x1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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: U72#(mark(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U72#(mark(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: max/plus interpretations on natural numbers: U72#_A(x1,x2) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: max/plus interpretations on natural numbers: isNat#_A(x1) = max{0, x1 - 1} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 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: isNat#(mark(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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isNat#(mark(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: max/plus interpretations on natural numbers: isNat#_A(x1) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: max/plus interpretations on natural numbers: s#_A(x1) = max{0, x1 - 1} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 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: s#(mark(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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: s#(mark(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: max/plus interpretations on natural numbers: s#_A(x1) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: max/plus interpretations on natural numbers: length#_A(x1) = max{0, x1 - 1} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 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: length#(mark(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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: length#(mark(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: max/plus interpretations on natural numbers: length#_A(x1) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = max{0, x4 - 1} mark_A(x1) = x1 + 2 active_A(x1) = x1 + 1 The next rules are strictly ordered: p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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,mark(X3),X4) -> U92#(X1,X2,X3,X4) p7: 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 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,mark(X2),X3,X4) -> U92#(X1,X2,X3,X4) p3: U92#(X1,X2,mark(X3),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: max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = x1 + 1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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: U92#(mark(X1),X2,X3,X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,mark(X2),X3,X4) -> U92#(X1,X2,X3,X4) p3: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p4: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) p5: U92#(X1,X2,active(X3),X4) -> U92#(X1,X2,X3,X4) p6: 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, p6} -- 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#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p6: 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: max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = x1 + 3 mark_A(x1) = x1 + 1 active_A(x1) = max{2, x1 - 1} The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U92#(X1,X2,X3,active(X4)) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,active(X3),X4) -> U92#(X1,X2,X3,X4) p3: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) p4: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p5: 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 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,X3,active(X4)) -> U92#(X1,X2,X3,X4) p2: U92#(X1,mark(X2),X3,X4) -> U92#(X1,X2,X3,X4) p3: U92#(X1,X2,mark(X3),X4) -> U92#(X1,X2,X3,X4) p4: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) p5: U92#(X1,X2,active(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: max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = x4 active_A(x1) = x1 + 1 mark_A(x1) = max{0, x1 - 1} The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U92#(X1,mark(X2),X3,X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,mark(X3),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) 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,mark(X2),X3,X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,active(X3),X4) -> U92#(X1,X2,X3,X4) p3: U92#(X1,active(X2),X3,X4) -> U92#(X1,X2,X3,X4) p4: 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 set of usable rules consists of (no rules) Take the reduction pair: max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = max{0, x3 - 1} mark_A(x1) = x1 + 2 active_A(x1) = x1 + 1 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: U92#(X1,mark(X2),X3,X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,active(X3),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 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,mark(X2),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) 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: max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = x2 + 1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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,mark(X2),X3,X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,active(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,mark(X2),X3,X4) -> U92#(X1,X2,X3,X4) p2: U92#(X1,X2,active(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: max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = x3 mark_A(x1) = max{0, x1 - 1} active_A(x1) = x1 + 1 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,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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: U92#_A(x1,x2,x3,x4) = x2 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = max{0, x4 - 1} mark_A(x1) = x1 + 2 active_A(x1) = x1 + 1 The next rules are strictly ordered: p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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,mark(X3),X4) -> U93#(X1,X2,X3,X4) p7: 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 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: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,mark(X2),X3,X4) -> U93#(X1,X2,X3,X4) p3: U93#(X1,X2,mark(X3),X4) -> U93#(X1,X2,X3,X4) p4: U93#(active(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p5: U93#(X1,active(X2),X3,X4) -> U93#(X1,X2,X3,X4) p6: U93#(X1,X2,active(X3),X4) -> U93#(X1,X2,X3,X4) p7: 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: max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = x1 + 1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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: U93#(mark(X1),X2,X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,mark(X2),X3,X4) -> U93#(X1,X2,X3,X4) p3: U93#(X1,X2,mark(X3),X4) -> U93#(X1,X2,X3,X4) p4: U93#(X1,active(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 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,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#(X1,X2,mark(X3),X4) -> U93#(X1,X2,X3,X4) p6: 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: max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = x1 + 3 mark_A(x1) = x1 + 1 active_A(x1) = max{2, x1 - 1} The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U93#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,active(X3),X4) -> U93#(X1,X2,X3,X4) p3: U93#(X1,active(X2),X3,X4) -> U93#(X1,X2,X3,X4) p4: U93#(X1,X2,mark(X3),X4) -> U93#(X1,X2,X3,X4) p5: 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 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#(X1,X2,X3,active(X4)) -> U93#(X1,X2,X3,X4) p2: U93#(X1,mark(X2),X3,X4) -> U93#(X1,X2,X3,X4) p3: U93#(X1,X2,mark(X3),X4) -> U93#(X1,X2,X3,X4) p4: U93#(X1,active(X2),X3,X4) -> U93#(X1,X2,X3,X4) p5: U93#(X1,X2,active(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: max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = x4 active_A(x1) = x1 + 1 mark_A(x1) = max{0, x1 - 1} The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U93#(X1,mark(X2),X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,mark(X3),X4) -> U93#(X1,X2,X3,X4) p3: U93#(X1,active(X2),X3,X4) -> U93#(X1,X2,X3,X4) p4: U93#(X1,X2,active(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U93#(X1,mark(X2),X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,active(X3),X4) -> U93#(X1,X2,X3,X4) p3: U93#(X1,active(X2),X3,X4) -> U93#(X1,X2,X3,X4) p4: 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: max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = max{0, x3 - 1} mark_A(x1) = x1 + 2 active_A(x1) = x1 + 1 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: U93#(X1,mark(X2),X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,active(X3),X4) -> U93#(X1,X2,X3,X4) p3: U93#(X1,active(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 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#(X1,mark(X2),X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,active(X2),X3,X4) -> U93#(X1,X2,X3,X4) p3: U93#(X1,X2,active(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: max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = x2 + 1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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: U93#(X1,mark(X2),X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,active(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U93#(X1,mark(X2),X3,X4) -> U93#(X1,X2,X3,X4) p2: U93#(X1,X2,active(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: max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = x3 mark_A(x1) = max{0, x1 - 1} active_A(x1) = x1 + 1 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: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: U93#_A(x1,x2,x3,x4) = x2 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: cons#(mark(X1),X2) -> cons#(X1,X2) p2: cons#(X1,active(X2)) -> cons#(X1,X2) p3: cons#(active(X1),X2) -> cons#(X1,X2) p4: cons#(X1,mark(X2)) -> cons#(X1,X2) and R consists of: r1: active(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: max/plus interpretations on natural numbers: cons#_A(x1,x2) = x2 mark_A(x1) = x1 + 1 active_A(x1) = x1 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: max/plus interpretations on natural numbers: cons#_A(x1,x2) = x2 + 1 mark_A(x1) = max{0, x1 - 1} active_A(x1) = x1 + 1 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: max/plus interpretations on natural numbers: cons#_A(x1,x2) = x1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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: cons#(mark(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: cons#(mark(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: max/plus interpretations on natural numbers: cons#_A(x1,x2) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: take#_A(x1,x2) = x2 mark_A(x1) = x1 + 1 active_A(x1) = x1 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: max/plus interpretations on natural numbers: take#_A(x1,x2) = x2 + 1 mark_A(x1) = max{0, x1 - 1} active_A(x1) = x1 + 1 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: max/plus interpretations on natural numbers: take#_A(x1,x2) = x1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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: take#(mark(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: take#(mark(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: max/plus interpretations on natural numbers: take#_A(x1,x2) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: max/plus interpretations on natural numbers: U11#_A(x1) = max{0, x1 - 1} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 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: U11#(mark(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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U11#(mark(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: max/plus interpretations on natural numbers: U11#_A(x1) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: max/plus interpretations on natural numbers: U21#_A(x1) = max{0, x1 - 1} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 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: U21#(mark(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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U21#(mark(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: max/plus interpretations on natural numbers: U21#_A(x1) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: max/plus interpretations on natural numbers: U31#_A(x1) = max{0, x1 - 1} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 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: U31#(mark(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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U31#(mark(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: max/plus interpretations on natural numbers: U31#_A(x1) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: U41#_A(x1,x2) = x2 mark_A(x1) = x1 + 1 active_A(x1) = x1 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: max/plus interpretations on natural numbers: U41#_A(x1,x2) = x2 + 1 mark_A(x1) = max{0, x1 - 1} active_A(x1) = x1 + 1 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: max/plus interpretations on natural numbers: U41#_A(x1,x2) = x1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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: U41#(mark(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U41#(mark(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: max/plus interpretations on natural numbers: U41#_A(x1,x2) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: U51#_A(x1,x2) = x2 mark_A(x1) = x1 + 1 active_A(x1) = x1 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: max/plus interpretations on natural numbers: U51#_A(x1,x2) = x2 + 1 mark_A(x1) = max{0, x1 - 1} active_A(x1) = x1 + 1 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: max/plus interpretations on natural numbers: U51#_A(x1,x2) = x1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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: U51#(mark(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U51#(mark(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: max/plus interpretations on natural numbers: U51#_A(x1,x2) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: U61#_A(x1,x2) = x2 mark_A(x1) = x1 + 1 active_A(x1) = x1 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: max/plus interpretations on natural numbers: U61#_A(x1,x2) = x2 + 1 mark_A(x1) = max{0, x1 - 1} active_A(x1) = x1 + 1 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: max/plus interpretations on natural numbers: U61#_A(x1,x2) = x1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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: U61#(mark(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U61#(mark(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: max/plus interpretations on natural numbers: U61#_A(x1,x2) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = x3 + 1 mark_A(x1) = x1 + 1 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: 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,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, p5} -- 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) p5: U71#(X1,X2,active(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: max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = x3 mark_A(x1) = x1 + 2 active_A(x1) = x1 + 1 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: 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 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,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 set of usable rules consists of (no rules) Take the reduction pair: max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = max{0, x2 - 1} mark_A(x1) = x1 + 2 active_A(x1) = x1 + 1 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,active(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,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: max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = x1 + 1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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) p2: 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 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#(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: max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = x1 mark_A(x1) = x1 + 1 active_A(x1) = max{0, x1 - 1} The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: U71#_A(x1,x2,x3) = x2 active_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 reduction pair: max/plus interpretations on natural numbers: U81#_A(x1) = max{0, x1 - 1} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 2 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: U81#(mark(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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U81#(mark(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: max/plus interpretations on natural numbers: U81#_A(x1) = x1 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = max{0, x4 - 1} mark_A(x1) = x1 + 2 active_A(x1) = x1 + 1 The next rules are strictly ordered: p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: 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,mark(X3),X4) -> U91#(X1,X2,X3,X4) p7: 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 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,mark(X2),X3,X4) -> U91#(X1,X2,X3,X4) p3: U91#(X1,X2,mark(X3),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: max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = x1 + 1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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: U91#(mark(X1),X2,X3,X4) -> U91#(X1,X2,X3,X4) p2: U91#(X1,mark(X2),X3,X4) -> U91#(X1,X2,X3,X4) p3: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p4: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) p5: U91#(X1,X2,active(X3),X4) -> U91#(X1,X2,X3,X4) p6: 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, p6} -- 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#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p6: 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: max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = x1 + 3 mark_A(x1) = x1 + 1 active_A(x1) = max{2, x1 - 1} The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U91#(X1,X2,X3,active(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) p4: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p5: 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 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,X3,active(X4)) -> U91#(X1,X2,X3,X4) p2: U91#(X1,mark(X2),X3,X4) -> U91#(X1,X2,X3,X4) p3: U91#(X1,X2,mark(X3),X4) -> U91#(X1,X2,X3,X4) p4: U91#(X1,active(X2),X3,X4) -> U91#(X1,X2,X3,X4) p5: 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: max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = x4 active_A(x1) = x1 + 1 mark_A(x1) = max{0, x1 - 1} The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U91#(X1,mark(X2),X3,X4) -> U91#(X1,X2,X3,X4) p2: U91#(X1,X2,mark(X3),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) 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: U91#(X1,mark(X2),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) p4: 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 set of usable rules consists of (no rules) Take the reduction pair: max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = max{0, x3 - 1} mark_A(x1) = x1 + 2 active_A(x1) = x1 + 1 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: U91#(X1,mark(X2),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,mark(X2),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: max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = x2 + 1 mark_A(x1) = x1 active_A(x1) = x1 + 1 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: U91#(X1,mark(X2),X3,X4) -> U91#(X1,X2,X3,X4) p2: 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 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,mark(X2),X3,X4) -> U91#(X1,X2,X3,X4) p2: 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: max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = x3 mark_A(x1) = max{0, x1 - 1} active_A(x1) = x1 + 1 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: 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 estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: max/plus interpretations on natural numbers: U91#_A(x1,x2,x3,x4) = x2 mark_A(x1) = x1 + 1 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.