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: matrix interpretations: carrier: N^2 order: standard order interpretations: active#_A(x1) = x1 zeros_A() = (2,1) mark#_A(x1) = (2,0) cons_A(x1,x2) = (2,1) |0|_A() = (0,3) take_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (2,1) mark_A(x1) = ((1,1),(1,1)) x1 + (0,1) s_A(x1) = (1,2) U91_A(x1,x2,x3,x4) = (2,1) isNatIList_A(x1) = (2,1) U93_A(x1,x2,x3,x4) = (2,1) U81_A(x1) = (2,1) U92_A(x1,x2,x3,x4) = (2,1) length_A(x1) = ((0,0),(1,0)) x1 + (2,1) U71_A(x1,x2,x3) = (2,1) isNatList_A(x1) = ((0,0),(1,0)) x1 + (2,1) U61_A(x1,x2) = (2,1) isNat_A(x1) = (2,1) U51_A(x1,x2) = (2,1) U41_A(x1,x2) = (2,1) U31_A(x1) = (2,1) U21_A(x1) = (2,1) U72_A(x1,x2) = (2,1) U11_A(x1) = (2,1) tt_A() = (0,3) U62_A(x1) = (2,1) U52_A(x1) = (2,1) U42_A(x1) = (2,1) active_A(x1) = x1 + (1,4) nil_A() = (0,3) 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)) -> 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: 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)) -> mark#(X) p45: mark#(length(X)) -> active#(length(mark(X))) p46: active#(take(|0|(),IL)) -> mark#(U81(isNatIList(IL))) p47: mark#(length(X)) -> mark#(X) p48: mark#(U81(X)) -> active#(U81(mark(X))) p49: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) 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: matrix interpretations: carrier: N^2 order: standard order interpretations: active#_A(x1) = x1 zeros_A() = (2,1) mark#_A(x1) = (2,0) cons_A(x1,x2) = (1,1) |0|_A() = (1,1) mark_A(x1) = (1,1) U41_A(x1,x2) = (2,1) tt_A() = (1,1) U42_A(x1) = (2,1) isNatIList_A(x1) = (2,1) U11_A(x1) = (1,1) U51_A(x1,x2) = (2,1) U52_A(x1) = (2,1) isNatList_A(x1) = (2,1) U21_A(x1) = (1,1) U61_A(x1,x2) = (2,1) U62_A(x1) = (1,1) U31_A(x1) = (1,1) U71_A(x1,x2,x3) = (2,1) U72_A(x1,x2) = (2,1) isNat_A(x1) = (2,1) s_A(x1) = (1,1) length_A(x1) = (2,1) U91_A(x1,x2,x3,x4) = (2,1) U92_A(x1,x2,x3,x4) = (2,1) U93_A(x1,x2,x3,x4) = (2,1) take_A(x1,x2) = (2,1) U81_A(x1) = (1,1) active_A(x1) = x1 + (1,0) nil_A() = (1,1) The next rules are strictly ordered: p2, p5, p8, p11, p33, p48 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#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p3: mark#(zeros()) -> active#(zeros()) p4: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p5: mark#(U11(X)) -> mark#(X) p6: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p7: mark#(U21(X)) -> mark#(X) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U31(X)) -> mark#(X) p10: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p11: active#(U72(tt(),L)) -> mark#(s(length(L))) p12: mark#(U41(X1,X2)) -> mark#(X1) p13: mark#(U42(X)) -> active#(U42(mark(X))) p14: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p15: mark#(U42(X)) -> mark#(X) p16: mark#(isNatIList(X)) -> active#(isNatIList(X)) p17: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p18: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p19: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p20: mark#(U51(X1,X2)) -> mark#(X1) p21: mark#(U52(X)) -> active#(U52(mark(X))) p22: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p23: mark#(U52(X)) -> mark#(X) p24: mark#(isNatList(X)) -> active#(isNatList(X)) p25: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p26: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p27: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p28: mark#(U61(X1,X2)) -> mark#(X1) p29: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p30: mark#(U62(X)) -> mark#(X) p31: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p32: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p33: mark#(U71(X1,X2,X3)) -> mark#(X1) p34: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p35: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p36: mark#(U72(X1,X2)) -> mark#(X1) p37: mark#(isNat(X)) -> active#(isNat(X)) p38: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p39: mark#(s(X)) -> mark#(X) p40: mark#(length(X)) -> active#(length(mark(X))) p41: active#(take(|0|(),IL)) -> mark#(U81(isNatIList(IL))) p42: mark#(length(X)) -> mark#(X) p43: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p44: mark#(U81(X)) -> mark#(X) p45: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p46: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p47: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p48: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p49: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p50: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p51: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(X2))) p52: mark#(take(X1,X2)) -> mark#(X1) p53: mark#(take(X1,X2)) -> mark#(X2) p54: 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 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} -- 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#(length(X)) -> mark#(X) p18: mark#(length(X)) -> active#(length(mark(X))) p19: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p20: mark#(s(X)) -> mark#(X) p21: mark#(isNat(X)) -> active#(isNat(X)) p22: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p23: mark#(U72(X1,X2)) -> mark#(X1) p24: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p25: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p26: mark#(U71(X1,X2,X3)) -> mark#(X1) p27: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p28: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p29: mark#(U62(X)) -> mark#(X) p30: mark#(U61(X1,X2)) -> mark#(X1) p31: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p32: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p33: mark#(isNatList(X)) -> active#(isNatList(X)) p34: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p35: mark#(U52(X)) -> mark#(X) p36: mark#(U52(X)) -> active#(U52(mark(X))) p37: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p38: mark#(U51(X1,X2)) -> mark#(X1) p39: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p40: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p41: mark#(isNatIList(X)) -> active#(isNatIList(X)) p42: active#(U72(tt(),L)) -> mark#(s(length(L))) p43: mark#(U42(X)) -> mark#(X) p44: mark#(U42(X)) -> active#(U42(mark(X))) p45: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p46: mark#(U41(X1,X2)) -> mark#(X1) p47: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p48: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p49: mark#(U31(X)) -> mark#(X) p50: mark#(U21(X)) -> mark#(X) p51: mark#(U11(X)) -> mark#(X) p52: mark#(zeros()) -> active#(zeros()) p53: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p54: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(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: matrix interpretations: carrier: N^2 order: standard order interpretations: active#_A(x1) = ((0,1),(0,1)) x1 zeros_A() = (1,3) mark#_A(x1) = ((1,0),(1,0)) x1 + (2,2) cons_A(x1,x2) = x1 + ((1,0),(1,0)) x2 + (0,1) |0|_A() = (0,1) take_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (2,4) mark_A(x1) = ((1,0),(1,0)) x1 + (0,1) s_A(x1) = ((1,0),(1,0)) x1 + (0,1) U91_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (1,3) isNatIList_A(x1) = (1,3) U93_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (1,3) U81_A(x1) = ((1,0),(1,0)) x1 + (1,1) U92_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (1,3) length_A(x1) = ((1,0),(1,0)) x1 + (2,4) U71_A(x1,x2,x3) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + (1,3) isNatList_A(x1) = (1,3) U61_A(x1,x2) = ((1,0),(1,0)) x1 + (0,2) isNat_A(x1) = (1,3) U51_A(x1,x2) = ((1,0),(1,0)) x1 + (0,2) U41_A(x1,x2) = ((1,0),(1,0)) x1 + (0,2) U72_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (1,3) U31_A(x1) = ((1,0),(1,0)) x1 + (0,1) U21_A(x1) = ((1,0),(1,0)) x1 + (0,1) U62_A(x1) = ((1,0),(1,0)) x1 + (0,1) U11_A(x1) = ((1,0),(1,0)) x1 + (0,1) tt_A() = (1,1) U52_A(x1) = ((1,0),(1,0)) x1 + (0,1) U42_A(x1) = x1 active_A(x1) = ((1,0),(1,0)) x1 + (0,1) nil_A() = (2,1) The next rules are strictly ordered: p3, p4, p7, p10, p13, p16, p17, p23, p26, p36, p44 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)) -> active#(take(mark(X1),mark(X2))) p4: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) p5: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p6: active#(take(|0|(),IL)) -> mark#(U81(isNatIList(IL))) p7: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p8: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p9: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p10: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p11: mark#(length(X)) -> active#(length(mark(X))) p12: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p13: mark#(s(X)) -> mark#(X) p14: mark#(isNat(X)) -> active#(isNat(X)) p15: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p16: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p17: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p18: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p19: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p20: mark#(U62(X)) -> mark#(X) p21: mark#(U61(X1,X2)) -> mark#(X1) p22: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p23: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p24: mark#(isNatList(X)) -> active#(isNatList(X)) p25: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p26: mark#(U52(X)) -> mark#(X) p27: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p28: mark#(U51(X1,X2)) -> mark#(X1) p29: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p30: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p31: mark#(isNatIList(X)) -> active#(isNatIList(X)) p32: active#(U72(tt(),L)) -> mark#(s(length(L))) p33: mark#(U42(X)) -> mark#(X) p34: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p35: mark#(U41(X1,X2)) -> mark#(X1) p36: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p37: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p38: mark#(U31(X)) -> mark#(X) p39: mark#(U21(X)) -> mark#(X) p40: mark#(U11(X)) -> mark#(X) p41: mark#(zeros()) -> active#(zeros()) p42: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p43: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(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, 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} -- 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#(zeros()) -> active#(zeros()) p4: mark#(U11(X)) -> mark#(X) p5: mark#(U21(X)) -> mark#(X) p6: mark#(U31(X)) -> mark#(X) p7: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p8: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p9: mark#(U41(X1,X2)) -> mark#(X1) p10: mark#(U42(X)) -> mark#(X) p11: mark#(isNatIList(X)) -> active#(isNatIList(X)) p12: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p13: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p14: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p15: mark#(U51(X1,X2)) -> mark#(X1) p16: mark#(U52(X)) -> mark#(X) p17: mark#(isNatList(X)) -> active#(isNatList(X)) p18: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p19: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p20: active#(U72(tt(),L)) -> mark#(s(length(L))) p21: mark#(U61(X1,X2)) -> mark#(X1) p22: mark#(U62(X)) -> mark#(X) p23: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p24: active#(U91(tt(),IL,M,N)) -> mark#(U92(isNat(M),IL,M,N)) p25: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p26: active#(U92(tt(),IL,M,N)) -> mark#(U93(isNat(N),IL,M,N)) p27: mark#(isNat(X)) -> active#(isNat(X)) p28: active#(U93(tt(),IL,M,N)) -> mark#(cons(N,take(M,IL))) p29: mark#(s(X)) -> mark#(X) p30: mark#(length(X)) -> active#(length(mark(X))) p31: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p32: mark#(U91(X1,X2,X3,X4)) -> active#(U91(mark(X1),X2,X3,X4)) p33: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p34: mark#(U92(X1,X2,X3,X4)) -> active#(U92(mark(X1),X2,X3,X4)) p35: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p36: mark#(U93(X1,X2,X3,X4)) -> active#(U93(mark(X1),X2,X3,X4)) p37: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p38: mark#(take(X1,X2)) -> active#(take(mark(X1),mark(X2))) p39: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p40: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p41: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p42: active#(take(|0|(),IL)) -> mark#(U81(isNatIList(IL))) p43: active#(take(s(M),cons(N,IL))) -> mark#(U91(isNatIList(IL),IL,M,N)) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: 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: matrix interpretations: carrier: N^2 order: standard order interpretations: active#_A(x1) = ((0,1),(0,1)) x1 zeros_A() = (1,2) mark#_A(x1) = ((1,1),(1,1)) x1 cons_A(x1,x2) = ((0,0),(1,1)) x1 + (1,0) |0|_A() = (0,0) U11_A(x1) = ((0,0),(1,1)) x1 U21_A(x1) = ((1,1),(0,0)) x1 U31_A(x1) = ((0,0),(1,1)) x1 U41_A(x1,x2) = ((1,1),(0,0)) x1 mark_A(x1) = ((0,1),(1,0)) x1 tt_A() = (0,0) U42_A(x1) = ((1,1),(0,0)) x1 isNatIList_A(x1) = (0,0) U51_A(x1,x2) = ((1,1),(0,0)) x1 U52_A(x1) = ((0,0),(1,1)) x1 isNatList_A(x1) = (0,0) U61_A(x1,x2) = ((1,1),(0,0)) x1 U62_A(x1) = ((0,0),(1,1)) x1 U71_A(x1,x2,x3) = (0,0) U72_A(x1,x2) = (0,0) isNat_A(x1) = (0,0) s_A(x1) = ((1,1),(0,0)) x1 length_A(x1) = (0,0) U91_A(x1,x2,x3,x4) = ((1,1),(0,0)) x1 + ((0,0),(1,1)) x4 + (1,6) U92_A(x1,x2,x3,x4) = ((0,0),(1,1)) x4 + (1,4) U93_A(x1,x2,x3,x4) = ((0,0),(1,1)) x4 + (1,2) take_A(x1,x2) = ((0,0),(1,1)) x2 + (1,7) U81_A(x1) = (1,1) active_A(x1) = ((0,1),(1,0)) x1 nil_A() = (1,1) The next rules are strictly ordered: p1, p2, p3, p24, p26, p28, p32, p34, p36, p38, p42, p43 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X)) -> mark#(X) p2: mark#(U21(X)) -> mark#(X) p3: mark#(U31(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p5: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p6: mark#(U41(X1,X2)) -> mark#(X1) p7: mark#(U42(X)) -> mark#(X) p8: mark#(isNatIList(X)) -> active#(isNatIList(X)) p9: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p10: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p11: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p12: mark#(U51(X1,X2)) -> mark#(X1) p13: mark#(U52(X)) -> mark#(X) p14: mark#(isNatList(X)) -> active#(isNatList(X)) p15: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p16: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p17: active#(U72(tt(),L)) -> mark#(s(length(L))) p18: mark#(U61(X1,X2)) -> mark#(X1) p19: mark#(U62(X)) -> mark#(X) p20: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p21: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p22: mark#(isNat(X)) -> active#(isNat(X)) p23: mark#(s(X)) -> mark#(X) p24: mark#(length(X)) -> active#(length(mark(X))) p25: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p26: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p27: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p28: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p29: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p30: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p31: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X)) -> mark#(X) p2: mark#(length(X)) -> active#(length(mark(X))) p3: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p4: mark#(s(X)) -> mark#(X) p5: mark#(isNat(X)) -> active#(isNat(X)) p6: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p7: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p8: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p9: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p10: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p11: mark#(U62(X)) -> mark#(X) p12: mark#(U61(X1,X2)) -> mark#(X1) p13: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p14: active#(isNatIList(V)) -> mark#(U31(isNatList(V))) p15: mark#(isNatList(X)) -> active#(isNatList(X)) p16: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p17: mark#(U52(X)) -> mark#(X) p18: mark#(U51(X1,X2)) -> mark#(X1) p19: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p20: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p21: mark#(isNatIList(X)) -> active#(isNatIList(X)) p22: active#(U72(tt(),L)) -> mark#(s(length(L))) p23: mark#(U42(X)) -> mark#(X) p24: mark#(U41(X1,X2)) -> mark#(X1) p25: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p26: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p27: mark#(U31(X)) -> mark#(X) p28: mark#(U21(X)) -> mark#(X) p29: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p30: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p31: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((0,1),(0,0)) x1 U11_A(x1) = x1 + (1,1) length_A(x1) = ((0,1),(0,1)) x1 + (1,1) active#_A(x1) = ((0,1),(0,0)) x1 mark_A(x1) = ((1,1),(0,1)) x1 + (1,0) cons_A(x1,x2) = x1 + x2 + (1,0) U71_A(x1,x2,x3) = ((0,1),(0,1)) x2 + (1,1) isNatList_A(x1) = x1 + (1,0) s_A(x1) = x1 + (1,0) isNat_A(x1) = x1 + (1,0) take_A(x1,x2) = ((0,1),(0,1)) x1 + ((0,1),(0,1)) x2 + (3,3) U61_A(x1,x2) = x1 + x2 + (1,3) U72_A(x1,x2) = ((0,1),(0,1)) x2 + (1,1) U51_A(x1,x2) = x1 + x2 + (1,0) isNatIList_A(x1) = ((0,1),(0,1)) x1 + (1,2) U41_A(x1,x2) = ((0,1),(0,1)) x1 + x2 + (1,2) U62_A(x1) = x1 + (1,1) U31_A(x1) = ((0,1),(0,1)) x1 + (1,1) U21_A(x1) = x1 + (1,0) U52_A(x1) = x1 + (1,0) tt_A() = (1,0) U42_A(x1) = x1 + (1,0) active_A(x1) = ((1,1),(0,1)) x1 + (1,0) zeros_A() = (1,1) |0|_A() = (1,0) U81_A(x1) = ((0,1),(0,1)) x1 + (1,1) nil_A() = (1,1) U91_A(x1,x2,x3,x4) = x2 + x3 + ((0,1),(0,1)) x4 + (1,3) U92_A(x1,x2,x3,x4) = x2 + x3 + ((0,1),(0,1)) x4 + (1,3) U93_A(x1,x2,x3,x4) = ((0,1),(0,0)) x1 + x2 + x3 + x4 + (1,3) The next rules are strictly ordered: p1, p11, p12, p14, p24, p27 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(mark(X))) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: mark#(s(X)) -> mark#(X) p4: mark#(isNat(X)) -> active#(isNat(X)) p5: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p6: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p7: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p8: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p9: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p10: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p11: mark#(isNatList(X)) -> active#(isNatList(X)) p12: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p13: mark#(U52(X)) -> mark#(X) p14: mark#(U51(X1,X2)) -> mark#(X1) p15: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p16: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p17: mark#(isNatIList(X)) -> active#(isNatIList(X)) p18: active#(U72(tt(),L)) -> mark#(s(length(L))) p19: mark#(U42(X)) -> mark#(X) p20: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p21: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p22: mark#(U21(X)) -> mark#(X) p23: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p24: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p25: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(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, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(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)) -> mark#(X) p7: mark#(isNatIList(X)) -> active#(isNatIList(X)) p8: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p9: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p10: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p11: mark#(U51(X1,X2)) -> mark#(X1) p12: mark#(U52(X)) -> mark#(X) p13: mark#(isNatList(X)) -> active#(isNatList(X)) p14: active#(U72(tt(),L)) -> mark#(s(length(L))) p15: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p16: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p17: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p18: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p19: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p20: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p21: mark#(isNat(X)) -> active#(isNat(X)) p22: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p23: mark#(s(X)) -> mark#(X) p24: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p25: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: 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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = x1 length_A(x1) = x1 + (2,0) active#_A(x1) = x1 mark_A(x1) = ((1,0),(1,1)) x1 U41_A(x1,x2) = x1 + x2 + (1,0) tt_A() = (1,0) U42_A(x1) = x1 isNatIList_A(x1) = x1 + (2,1) U21_A(x1) = x1 U51_A(x1,x2) = x1 + x2 + (1,0) U52_A(x1) = x1 isNatList_A(x1) = ((1,0),(1,0)) x1 + (2,0) U61_A(x1,x2) = x1 + x2 + (4,0) U62_A(x1) = (5,0) U71_A(x1,x2,x3) = x2 + x3 + (2,0) U72_A(x1,x2) = x1 + x2 + (1,0) isNat_A(x1) = x1 + (1,1) s_A(x1) = x1 U11_A(x1) = (3,0) cons_A(x1,x2) = x1 + x2 take_A(x1,x2) = x1 + x2 + (3,1) active_A(x1) = ((1,0),(1,0)) x1 zeros_A() = (1,1) |0|_A() = (0,1) U31_A(x1) = (1,1) U81_A(x1) = (2,1) nil_A() = (1,1) U91_A(x1,x2,x3,x4) = x2 + x3 + x4 + (3,0) U92_A(x1,x2,x3,x4) = x2 + x3 + x4 + (3,0) U93_A(x1,x2,x3,x4) = x2 + x3 + x4 + (3,0) 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#(length(X)) -> active#(length(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)) -> mark#(X) p7: mark#(isNatIList(X)) -> active#(isNatIList(X)) p8: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p9: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p10: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p11: mark#(U52(X)) -> mark#(X) p12: mark#(isNatList(X)) -> active#(isNatList(X)) p13: active#(U72(tt(),L)) -> mark#(s(length(L))) p14: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p15: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p16: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p17: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p18: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p19: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p20: mark#(isNat(X)) -> active#(isNat(X)) p21: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p22: mark#(s(X)) -> mark#(X) p23: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p24: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(mark(X))) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: mark#(s(X)) -> mark#(X) p4: mark#(isNat(X)) -> active#(isNat(X)) p5: active#(isNatList(take(V1,V2))) -> mark#(U61(isNat(V1),V2)) p6: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p7: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p8: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p9: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p10: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p11: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p12: mark#(isNatList(X)) -> active#(isNatList(X)) p13: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p14: mark#(U52(X)) -> mark#(X) p15: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p16: active#(U72(tt(),L)) -> mark#(s(length(L))) p17: mark#(isNatIList(X)) -> active#(isNatIList(X)) p18: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p19: mark#(U42(X)) -> mark#(X) p20: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p21: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p22: mark#(U21(X)) -> mark#(X) p23: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p24: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((0,1),(0,0)) x1 length_A(x1) = ((0,1),(0,1)) x1 active#_A(x1) = x1 mark_A(x1) = x1 cons_A(x1,x2) = x2 + (1,0) U71_A(x1,x2,x3) = ((0,1),(0,1)) x2 isNatList_A(x1) = ((0,1),(0,1)) x1 + (1,1) s_A(x1) = x1 isNat_A(x1) = (1,1) take_A(x1,x2) = ((0,1),(0,0)) x1 + x2 + (5,4) U61_A(x1,x2) = ((1,1),(1,1)) x1 + (1,1) U72_A(x1,x2) = ((0,1),(0,1)) x2 U51_A(x1,x2) = ((0,1),(0,1)) x2 + (1,1) isNatIList_A(x1) = (3,3) U41_A(x1,x2) = ((1,1),(1,1)) x1 + (1,1) U21_A(x1) = x1 U11_A(x1) = (1,1) U52_A(x1) = ((0,1),(0,1)) x1 tt_A() = (1,1) U42_A(x1) = x1 + (3,0) U62_A(x1) = (1,3) active_A(x1) = x1 zeros_A() = (1,0) |0|_A() = (0,0) U31_A(x1) = (1,1) U81_A(x1) = ((1,0),(1,0)) x1 + (1,1) nil_A() = (1,0) U91_A(x1,x2,x3,x4) = x1 + x2 + ((0,1),(0,0)) x3 + (2,4) U92_A(x1,x2,x3,x4) = ((1,1),(0,0)) x1 + x2 + ((0,1),(0,0)) x3 + (1,4) U93_A(x1,x2,x3,x4) = ((0,1),(1,0)) x1 + x2 + ((0,1),(0,0)) x3 + (1,3) 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#(length(X)) -> active#(length(mark(X))) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: mark#(s(X)) -> mark#(X) p4: mark#(isNat(X)) -> active#(isNat(X)) p5: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p6: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p7: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p8: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p9: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p10: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p11: mark#(isNatList(X)) -> active#(isNatList(X)) p12: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p13: mark#(U52(X)) -> mark#(X) p14: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p15: active#(U72(tt(),L)) -> mark#(s(length(L))) p16: mark#(isNatIList(X)) -> active#(isNatIList(X)) p17: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p18: mark#(U42(X)) -> mark#(X) p19: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p20: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p21: mark#(U21(X)) -> mark#(X) p22: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p23: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(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, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(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)) -> mark#(X) p7: mark#(isNatIList(X)) -> active#(isNatIList(X)) p8: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p9: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p10: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p11: mark#(U52(X)) -> mark#(X) p12: mark#(isNatList(X)) -> active#(isNatList(X)) p13: active#(U72(tt(),L)) -> mark#(s(length(L))) p14: mark#(U61(X1,X2)) -> active#(U61(mark(X1),X2)) p15: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p16: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p17: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p18: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p19: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p20: mark#(isNat(X)) -> active#(isNat(X)) p21: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p22: mark#(s(X)) -> mark#(X) p23: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: 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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((0,1),(0,1)) x1 + (1,0) length_A(x1) = (1,0) active#_A(x1) = x1 mark_A(x1) = ((0,1),(0,1)) x1 + (1,0) U41_A(x1,x2) = x1 + ((0,1),(0,1)) x2 + (1,0) tt_A() = (0,0) U42_A(x1) = x1 + (1,0) isNatIList_A(x1) = ((0,1),(0,1)) x1 + (1,0) U21_A(x1) = x1 + (1,0) U51_A(x1,x2) = x1 + ((0,1),(0,1)) x2 + (2,1) U52_A(x1) = ((0,1),(0,1)) x1 + (1,0) isNatList_A(x1) = ((0,1),(0,1)) x1 + (2,1) U61_A(x1,x2) = (2,2) U62_A(x1) = (2,1) U71_A(x1,x2,x3) = (1,0) U72_A(x1,x2) = (1,0) isNat_A(x1) = ((0,1),(0,1)) x1 + (1,0) s_A(x1) = x1 + (1,0) U11_A(x1) = (1,0) cons_A(x1,x2) = x1 + ((0,1),(0,1)) x2 + (1,0) active_A(x1) = x1 zeros_A() = (1,0) |0|_A() = (0,0) U31_A(x1) = (1,0) U81_A(x1) = (2,1) nil_A() = (1,1) U91_A(x1,x2,x3,x4) = ((0,1),(0,1)) x2 + ((0,1),(0,1)) x3 + ((0,1),(0,1)) x4 + (2,1) U92_A(x1,x2,x3,x4) = ((0,1),(0,1)) x2 + ((0,1),(0,1)) x3 + ((0,1),(0,1)) x4 + (2,1) U93_A(x1,x2,x3,x4) = ((0,1),(0,1)) x2 + ((0,1),(0,1)) x3 + ((0,1),(0,1)) x4 + (2,1) take_A(x1,x2) = ((0,1),(0,1)) x1 + ((0,1),(0,1)) x2 + (2,1) The next rules are strictly ordered: p14 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(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)) -> mark#(X) p7: mark#(isNatIList(X)) -> active#(isNatIList(X)) p8: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p9: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p10: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p11: mark#(U52(X)) -> mark#(X) p12: mark#(isNatList(X)) -> active#(isNatList(X)) p13: active#(U72(tt(),L)) -> mark#(s(length(L))) p14: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p15: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p16: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p17: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p18: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p19: mark#(isNat(X)) -> active#(isNat(X)) p20: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p21: mark#(s(X)) -> mark#(X) p22: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(mark(X))) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: mark#(s(X)) -> mark#(X) p4: mark#(isNat(X)) -> active#(isNat(X)) p5: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p6: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p7: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p8: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p9: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p10: mark#(isNatList(X)) -> active#(isNatList(X)) p11: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p12: mark#(U52(X)) -> mark#(X) p13: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p14: active#(U72(tt(),L)) -> mark#(s(length(L))) p15: mark#(isNatIList(X)) -> active#(isNatIList(X)) p16: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p17: mark#(U42(X)) -> mark#(X) p18: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p19: active#(U61(tt(),V2)) -> mark#(U62(isNatIList(V2))) p20: mark#(U21(X)) -> mark#(X) p21: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p22: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = (1,0) length_A(x1) = (1,1) active#_A(x1) = ((0,1),(0,0)) x1 mark_A(x1) = (1,1) cons_A(x1,x2) = (1,1) U71_A(x1,x2,x3) = (1,1) isNatList_A(x1) = (1,1) s_A(x1) = (1,1) isNat_A(x1) = (1,1) U51_A(x1,x2) = (1,1) U72_A(x1,x2) = (1,1) isNatIList_A(x1) = (1,1) U41_A(x1,x2) = (1,1) U21_A(x1) = (1,1) U11_A(x1) = (1,1) U52_A(x1) = (1,1) tt_A() = (1,1) U42_A(x1) = (1,1) U61_A(x1,x2) = (1,2) U62_A(x1) = (1,1) active_A(x1) = (1,1) zeros_A() = (1,1) |0|_A() = (1,1) U31_A(x1) = (1,1) U81_A(x1) = (1,1) nil_A() = (1,1) U91_A(x1,x2,x3,x4) = (1,1) U92_A(x1,x2,x3,x4) = (1,1) U93_A(x1,x2,x3,x4) = (1,1) take_A(x1,x2) = (1,1) The next rules are strictly ordered: p19 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(mark(X))) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: mark#(s(X)) -> mark#(X) p4: mark#(isNat(X)) -> active#(isNat(X)) p5: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p6: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p7: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p8: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p9: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p10: mark#(isNatList(X)) -> active#(isNatList(X)) p11: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p12: mark#(U52(X)) -> mark#(X) p13: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p14: active#(U72(tt(),L)) -> mark#(s(length(L))) p15: mark#(isNatIList(X)) -> active#(isNatIList(X)) p16: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p17: mark#(U42(X)) -> mark#(X) p18: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p19: mark#(U21(X)) -> mark#(X) p20: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p21: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(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, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(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)) -> mark#(X) p7: mark#(isNatIList(X)) -> active#(isNatIList(X)) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p10: active#(U72(tt(),L)) -> mark#(s(length(L))) p11: mark#(U52(X)) -> mark#(X) p12: mark#(isNatList(X)) -> active#(isNatList(X)) p13: active#(isNat(length(V1))) -> mark#(U11(isNatList(V1))) p14: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p15: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p16: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p17: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p18: mark#(isNat(X)) -> active#(isNat(X)) p19: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p20: mark#(s(X)) -> mark#(X) p21: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: 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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((0,1),(0,0)) x1 + (1,0) length_A(x1) = ((0,1),(0,1)) x1 + (3,2) active#_A(x1) = x1 mark_A(x1) = x1 U41_A(x1,x2) = ((0,1),(0,1)) x2 + (2,1) tt_A() = (2,1) U42_A(x1) = ((0,1),(0,1)) x1 + (1,0) isNatIList_A(x1) = ((0,1),(0,1)) x1 + (2,1) U21_A(x1) = ((0,1),(0,1)) x1 + (1,0) U51_A(x1,x2) = (2,1) U52_A(x1) = ((0,1),(0,1)) x1 + (1,0) isNatList_A(x1) = (2,1) U71_A(x1,x2,x3) = ((0,1),(0,1)) x1 + ((0,1),(0,1)) x2 + (2,1) U72_A(x1,x2) = ((0,1),(0,1)) x2 + (3,2) isNat_A(x1) = (4,3) s_A(x1) = ((0,1),(0,1)) x1 + (1,0) U11_A(x1) = ((0,1),(0,1)) x1 + (2,1) cons_A(x1,x2) = ((0,1),(0,1)) x2 + (1,0) active_A(x1) = ((0,1),(0,1)) x1 + (1,0) zeros_A() = (2,1) |0|_A() = (2,1) U31_A(x1) = (2,1) U61_A(x1,x2) = (2,1) U62_A(x1) = (2,1) U81_A(x1) = (2,1) nil_A() = (2,1) U91_A(x1,x2,x3,x4) = ((0,1),(0,1)) x2 + (2,1) U92_A(x1,x2,x3,x4) = ((0,1),(0,1)) x2 + (2,1) U93_A(x1,x2,x3,x4) = ((0,1),(0,1)) x2 + (2,1) take_A(x1,x2) = ((0,1),(0,1)) x2 + (2,1) The next rules are strictly ordered: p13 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(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)) -> mark#(X) p7: mark#(isNatIList(X)) -> active#(isNatIList(X)) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p10: active#(U72(tt(),L)) -> mark#(s(length(L))) p11: mark#(U52(X)) -> mark#(X) p12: mark#(isNatList(X)) -> active#(isNatList(X)) p13: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p14: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p15: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p16: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p17: mark#(isNat(X)) -> active#(isNat(X)) p18: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p19: mark#(s(X)) -> mark#(X) p20: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: 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: mark#(length(X)) -> active#(length(mark(X))) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: mark#(s(X)) -> mark#(X) p4: mark#(isNat(X)) -> active#(isNat(X)) p5: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p6: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p7: active#(isNatIList(cons(V1,V2))) -> mark#(U41(isNat(V1),V2)) p8: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p9: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p10: mark#(isNatList(X)) -> active#(isNatList(X)) p11: active#(U72(tt(),L)) -> mark#(s(length(L))) p12: mark#(U52(X)) -> mark#(X) p13: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p14: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p15: mark#(isNatIList(X)) -> active#(isNatIList(X)) p16: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p17: mark#(U42(X)) -> mark#(X) p18: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p19: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p20: mark#(U21(X)) -> mark#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The 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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((1,1),(0,0)) x1 length_A(x1) = (0,0) active#_A(x1) = ((1,1),(0,0)) x1 mark_A(x1) = ((0,0),(1,1)) x1 cons_A(x1,x2) = x2 + (1,1) U71_A(x1,x2,x3) = (0,0) isNatList_A(x1) = (0,2) s_A(x1) = ((1,1),(0,0)) x1 isNat_A(x1) = (0,2) U51_A(x1,x2) = ((1,1),(0,0)) x1 U72_A(x1,x2) = (0,0) isNatIList_A(x1) = x1 + (1,3) U41_A(x1,x2) = x2 + (1,3) U21_A(x1) = ((1,1),(0,0)) x1 tt_A() = (0,2) U52_A(x1) = ((0,0),(1,1)) x1 U42_A(x1) = ((1,1),(0,0)) x1 active_A(x1) = ((0,0),(1,1)) x1 zeros_A() = (2,1) |0|_A() = (0,0) U11_A(x1) = (0,2) U31_A(x1) = ((1,1),(0,0)) x1 + (1,1) U61_A(x1,x2) = (0,2) U62_A(x1) = (1,1) U81_A(x1) = (0,1) nil_A() = (0,0) U91_A(x1,x2,x3,x4) = x2 + (0,3) U92_A(x1,x2,x3,x4) = x2 + (0,3) U93_A(x1,x2,x3,x4) = x2 + (1,2) take_A(x1,x2) = ((1,1),(0,0)) x2 + (0,1) 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#(length(X)) -> active#(length(mark(X))) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: mark#(s(X)) -> mark#(X) p4: mark#(isNat(X)) -> active#(isNat(X)) p5: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p6: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p7: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p8: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p9: mark#(isNatList(X)) -> active#(isNatList(X)) p10: active#(U72(tt(),L)) -> mark#(s(length(L))) p11: mark#(U52(X)) -> mark#(X) p12: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p13: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p14: mark#(isNatIList(X)) -> active#(isNatIList(X)) p15: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p16: mark#(U42(X)) -> mark#(X) p17: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p18: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p19: mark#(U21(X)) -> mark#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(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)) -> mark#(X) p7: mark#(isNatIList(X)) -> active#(isNatIList(X)) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p10: active#(U72(tt(),L)) -> mark#(s(length(L))) p11: mark#(U52(X)) -> mark#(X) p12: mark#(isNatList(X)) -> active#(isNatList(X)) p13: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p14: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p15: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p16: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p17: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p18: mark#(isNat(X)) -> active#(isNat(X)) p19: mark#(s(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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = (2,0) length_A(x1) = (1,2) active#_A(x1) = ((0,1),(0,0)) x1 mark_A(x1) = ((0,0),(1,0)) x1 + (1,1) U41_A(x1,x2) = (1,2) tt_A() = (1,1) U42_A(x1) = (1,0) isNatIList_A(x1) = (1,1) U21_A(x1) = (1,1) U51_A(x1,x2) = (1,2) U52_A(x1) = (1,1) isNatList_A(x1) = (1,2) U71_A(x1,x2,x3) = (1,2) U72_A(x1,x2) = (1,2) isNat_A(x1) = (1,2) s_A(x1) = (1,1) cons_A(x1,x2) = (1,1) active_A(x1) = (1,2) zeros_A() = (1,1) |0|_A() = (1,1) U11_A(x1) = (1,0) U31_A(x1) = (1,0) U61_A(x1,x2) = (1,0) U62_A(x1) = (1,0) U81_A(x1) = (1,1) nil_A() = (1,0) U91_A(x1,x2,x3,x4) = (1,0) U92_A(x1,x2,x3,x4) = (1,0) U93_A(x1,x2,x3,x4) = (1,0) take_A(x1,x2) = (1,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#(length(X)) -> active#(length(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)) -> mark#(X) p7: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p8: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p9: active#(U72(tt(),L)) -> mark#(s(length(L))) p10: mark#(U52(X)) -> mark#(X) p11: mark#(isNatList(X)) -> active#(isNatList(X)) p12: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p13: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p14: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p15: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p16: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p17: mark#(isNat(X)) -> active#(isNat(X)) p18: mark#(s(X)) -> mark#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(mark(X))) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: mark#(s(X)) -> mark#(X) p4: mark#(isNat(X)) -> active#(isNat(X)) p5: active#(isNatList(cons(V1,V2))) -> mark#(U51(isNat(V1),V2)) p6: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p7: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p8: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p9: active#(U72(tt(),L)) -> mark#(s(length(L))) p10: mark#(isNatList(X)) -> active#(isNatList(X)) p11: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p12: mark#(U52(X)) -> mark#(X) p13: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p14: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p15: mark#(U42(X)) -> mark#(X) p16: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p17: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) 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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((1,0),(1,0)) x1 + (1,1) length_A(x1) = (0,1) active#_A(x1) = ((0,1),(0,1)) x1 mark_A(x1) = ((1,0),(1,1)) x1 cons_A(x1,x2) = x1 + x2 + (1,1) U71_A(x1,x2,x3) = (0,1) isNatList_A(x1) = ((0,1),(0,1)) x1 + (1,2) s_A(x1) = x1 + (0,1) isNat_A(x1) = ((1,0),(1,0)) x1 + (1,2) U51_A(x1,x2) = ((0,1),(0,1)) x2 + (1,2) U72_A(x1,x2) = (0,1) U21_A(x1) = x1 + (0,1) tt_A() = (0,1) U52_A(x1) = ((1,0),(1,0)) x1 + (0,1) U42_A(x1) = x1 + (0,1) U41_A(x1,x2) = (0,1) isNatIList_A(x1) = x1 + (0,1) active_A(x1) = ((1,0),(1,1)) x1 zeros_A() = (2,1) |0|_A() = (0,1) U11_A(x1) = (1,1) U31_A(x1) = (0,1) U61_A(x1,x2) = (1,1) U62_A(x1) = (1,1) U81_A(x1) = ((0,0),(1,0)) x1 + (1,1) nil_A() = (1,1) U91_A(x1,x2,x3,x4) = x3 + x4 + (3,1) U92_A(x1,x2,x3,x4) = ((0,0),(1,0)) x1 + x4 + (1,2) U93_A(x1,x2,x3,x4) = x4 + (1,2) take_A(x1,x2) = x1 + x2 + (2,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: mark#(length(X)) -> active#(length(mark(X))) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: mark#(s(X)) -> mark#(X) p4: mark#(isNat(X)) -> active#(isNat(X)) p5: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p6: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p7: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p8: active#(U72(tt(),L)) -> mark#(s(length(L))) p9: mark#(isNatList(X)) -> active#(isNatList(X)) p10: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p11: mark#(U52(X)) -> mark#(X) p12: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p13: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p14: mark#(U42(X)) -> mark#(X) p15: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p16: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) 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#(length(X)) -> active#(length(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)) -> mark#(X) p7: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U52(X)) -> mark#(X) p10: mark#(isNatList(X)) -> active#(isNatList(X)) p11: active#(U72(tt(),L)) -> mark#(s(length(L))) p12: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p13: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p14: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p15: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p16: mark#(isNat(X)) -> active#(isNat(X)) p17: mark#(s(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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = (2,0) length_A(x1) = (2,1) active#_A(x1) = x1 mark_A(x1) = ((0,0),(1,1)) x1 + (0,1) U41_A(x1,x2) = (2,0) tt_A() = (1,1) U42_A(x1) = (0,2) isNatIList_A(x1) = (1,1) U21_A(x1) = (0,2) U51_A(x1,x2) = (2,0) U52_A(x1) = (0,2) isNatList_A(x1) = (1,1) U71_A(x1,x2,x3) = (2,0) U72_A(x1,x2) = (2,0) isNat_A(x1) = (2,1) s_A(x1) = (0,2) cons_A(x1,x2) = (1,1) active_A(x1) = (0,3) zeros_A() = (1,1) |0|_A() = (0,2) U11_A(x1) = (1,1) U31_A(x1) = (1,1) U61_A(x1,x2) = (0,2) U62_A(x1) = (0,2) U81_A(x1) = (1,1) nil_A() = (1,1) U91_A(x1,x2,x3,x4) = (1,1) U92_A(x1,x2,x3,x4) = (1,1) U93_A(x1,x2,x3,x4) = (1,1) take_A(x1,x2) = (1,1) The next rules are strictly ordered: p10 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(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)) -> mark#(X) p7: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p8: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p9: mark#(U52(X)) -> mark#(X) p10: active#(U72(tt(),L)) -> mark#(s(length(L))) p11: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p12: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p13: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p14: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p15: mark#(isNat(X)) -> active#(isNat(X)) p16: mark#(s(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(mark(X))) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: mark#(s(X)) -> mark#(X) p4: mark#(isNat(X)) -> active#(isNat(X)) p5: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p6: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p7: active#(U72(tt(),L)) -> mark#(s(length(L))) p8: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p9: active#(U71(tt(),L,N)) -> mark#(U72(isNat(N),L)) p10: mark#(U52(X)) -> mark#(X) p11: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p12: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p13: mark#(U42(X)) -> mark#(X) p14: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p15: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p16: 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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((0,1),(0,0)) x1 length_A(x1) = ((1,0),(1,1)) x1 + (0,2) active#_A(x1) = ((0,1),(0,0)) x1 mark_A(x1) = x1 cons_A(x1,x2) = x1 + ((1,1),(0,1)) x2 U71_A(x1,x2,x3) = ((0,1),(1,1)) x1 + ((1,0),(1,1)) x2 + (0,1) isNatList_A(x1) = x1 + (1,0) s_A(x1) = x1 + (4,1) isNat_A(x1) = ((0,1),(0,0)) x1 + (4,4) U21_A(x1) = ((0,1),(0,1)) x1 + (1,0) U72_A(x1,x2) = ((0,1),(0,0)) x1 + ((1,0),(1,1)) x2 + (0,4) tt_A() = (0,4) U52_A(x1) = x1 U51_A(x1,x2) = x2 + (1,0) U42_A(x1) = x1 U41_A(x1,x2) = x2 + (1,4) isNatIList_A(x1) = x1 + (1,4) active_A(x1) = x1 zeros_A() = (1,0) |0|_A() = (0,1) U11_A(x1) = ((1,1),(0,0)) x1 + (1,4) U31_A(x1) = (1,4) U61_A(x1,x2) = (1,4) U62_A(x1) = x1 + (1,0) U81_A(x1) = x1 + (1,4) nil_A() = (1,4) U91_A(x1,x2,x3,x4) = ((1,1),(0,0)) x2 + x3 + x4 + (6,4) U92_A(x1,x2,x3,x4) = ((1,1),(0,0)) x2 + x3 + x4 + (6,4) U93_A(x1,x2,x3,x4) = ((0,1),(0,1)) x1 + ((1,1),(0,0)) x2 + x3 + x4 + (2,0) take_A(x1,x2) = x1 + x2 + (2,4) The next rules are strictly ordered: p3, p7, p9 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(mark(X))) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: mark#(isNat(X)) -> active#(isNat(X)) p4: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p5: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) p6: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p7: mark#(U52(X)) -> mark#(X) p8: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p9: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p10: mark#(U42(X)) -> mark#(X) p11: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p12: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) 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 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#(length(X)) -> active#(length(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)) -> mark#(X) p7: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p8: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p9: mark#(U52(X)) -> mark#(X) p10: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p11: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p12: mark#(U72(X1,X2)) -> active#(U72(mark(X1),X2)) 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 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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((0,1),(0,0)) x1 + (2,0) length_A(x1) = x1 + (2,0) active#_A(x1) = ((1,1),(0,0)) x1 mark_A(x1) = ((0,1),(0,1)) x1 + (1,0) U41_A(x1,x2) = x2 + (2,0) tt_A() = (1,1) U42_A(x1) = ((0,1),(0,1)) x1 isNatIList_A(x1) = x1 U21_A(x1) = x1 + (1,0) U51_A(x1,x2) = x2 + (2,0) U52_A(x1) = ((0,1),(0,1)) x1 + (1,0) isNatList_A(x1) = x1 + (1,0) isNat_A(x1) = x1 + (2,1) s_A(x1) = ((0,1),(0,1)) x1 + (1,0) U71_A(x1,x2,x3) = x2 + (2,0) cons_A(x1,x2) = ((0,1),(0,0)) x1 + ((0,1),(0,1)) x2 + (1,0) U72_A(x1,x2) = x2 + (1,0) active_A(x1) = ((0,1),(0,1)) x1 + (1,0) zeros_A() = (0,1) |0|_A() = (1,1) U11_A(x1) = x1 + (1,1) U31_A(x1) = x1 + (1,0) U61_A(x1,x2) = ((0,1),(0,1)) x2 + (1,0) U62_A(x1) = x1 + (1,0) U81_A(x1) = (1,1) nil_A() = (1,1) U91_A(x1,x2,x3,x4) = ((0,1),(0,1)) x2 + ((0,1),(0,1)) x3 + ((0,1),(0,0)) x4 + (1,0) U92_A(x1,x2,x3,x4) = ((0,1),(0,1)) x2 + ((0,1),(0,1)) x3 + ((0,1),(0,0)) x4 + (1,0) U93_A(x1,x2,x3,x4) = ((0,1),(0,1)) x2 + ((0,1),(0,1)) x3 + ((0,1),(0,0)) x4 + (1,0) take_A(x1,x2) = ((0,1),(0,1)) x1 + ((0,1),(0,1)) x2 + (1,0) The next rules are strictly ordered: p12 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(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)) -> mark#(X) p7: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p8: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p9: mark#(U52(X)) -> mark#(X) p10: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p11: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p12: 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(mark(X))) p2: active#(length(cons(N,L))) -> mark#(U71(isNatList(L),L,N)) p3: mark#(isNat(X)) -> active#(isNat(X)) p4: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p5: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p6: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p7: mark#(U52(X)) -> mark#(X) p8: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p9: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p10: mark#(U42(X)) -> mark#(X) 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 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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((0,1),(0,0)) x1 + (1,0) length_A(x1) = ((0,1),(0,1)) x1 + (1,0) active#_A(x1) = x1 mark_A(x1) = x1 + (1,0) cons_A(x1,x2) = ((0,1),(0,0)) x1 + (1,2) U71_A(x1,x2,x3) = (2,1) isNatList_A(x1) = ((0,1),(0,0)) x1 + (1,3) isNat_A(x1) = (5,4) s_A(x1) = ((0,1),(0,0)) x1 + (1,0) U21_A(x1) = x1 + (1,0) U51_A(x1,x2) = (4,3) tt_A() = (1,2) U52_A(x1) = x1 + (1,0) U41_A(x1,x2) = (3,2) U42_A(x1) = x1 + (1,0) isNatIList_A(x1) = (1,2) active_A(x1) = x1 + (1,0) zeros_A() = (1,2) |0|_A() = (1,1) U11_A(x1) = ((0,1),(0,1)) x1 + (1,1) U31_A(x1) = ((0,1),(0,0)) x1 + (1,2) U61_A(x1,x2) = ((0,1),(0,0)) x1 + (1,3) U62_A(x1) = ((0,1),(0,1)) x1 + (1,1) U72_A(x1,x2) = ((0,1),(0,0)) x1 + (1,0) U81_A(x1) = ((0,1),(0,0)) x1 + (1,1) nil_A() = (1,1) U91_A(x1,x2,x3,x4) = ((0,1),(0,1)) x1 + (1,0) U92_A(x1,x2,x3,x4) = ((0,1),(0,0)) x1 + (1,2) U93_A(x1,x2,x3,x4) = ((0,1),(0,0)) x1 + (1,2) take_A(x1,x2) = ((0,1),(0,1)) x1 + ((0,1),(0,1)) x2 + (1,0) The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(length(X)) -> active#(length(mark(X))) p2: mark#(isNat(X)) -> active#(isNat(X)) p3: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p4: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p5: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p6: mark#(U52(X)) -> mark#(X) p7: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p8: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p9: mark#(U42(X)) -> mark#(X) 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 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#(length(X)) -> active#(length(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)) -> mark#(X) p7: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p8: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p9: mark#(U52(X)) -> mark#(X) p10: mark#(U71(X1,X2,X3)) -> active#(U71(mark(X1),X2,X3)) p11: 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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = (3,2) length_A(x1) = (1,1) active#_A(x1) = ((1,1),(1,0)) x1 mark_A(x1) = x1 + (1,0) U41_A(x1,x2) = (2,1) tt_A() = (0,1) U42_A(x1) = (1,1) isNatIList_A(x1) = (0,1) U21_A(x1) = (1,1) U51_A(x1,x2) = (2,1) U52_A(x1) = ((0,1),(0,0)) x1 + (1,1) isNatList_A(x1) = (0,1) isNat_A(x1) = (2,1) s_A(x1) = ((0,1),(0,0)) x1 + (1,0) U71_A(x1,x2,x3) = (1,1) active_A(x1) = ((0,1),(0,1)) x1 zeros_A() = (0,1) cons_A(x1,x2) = ((0,1),(0,0)) x1 + ((0,1),(0,0)) x2 + (0,1) |0|_A() = (1,1) U11_A(x1) = (1,1) U31_A(x1) = ((0,1),(0,0)) x1 + (1,1) U61_A(x1,x2) = (1,1) U62_A(x1) = (0,1) U72_A(x1,x2) = ((0,1),(0,0)) x2 + (1,1) U81_A(x1) = ((0,1),(0,0)) x1 + (1,1) nil_A() = (1,1) U91_A(x1,x2,x3,x4) = ((0,1),(0,0)) x2 + ((0,1),(0,0)) x4 + (1,1) U92_A(x1,x2,x3,x4) = ((0,1),(0,0)) x1 + ((0,1),(0,0)) x2 + ((0,1),(0,0)) x4 + (1,1) U93_A(x1,x2,x3,x4) = ((0,1),(0,0)) x1 + ((0,1),(0,0)) x2 + ((0,1),(0,0)) x4 + (1,1) take_A(x1,x2) = ((0,1),(0,0)) x2 + (1,1) The next rules are strictly ordered: p1, p10 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: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p4: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p5: mark#(U42(X)) -> mark#(X) p6: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p7: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p8: mark#(U52(X)) -> mark#(X) p9: 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} -- 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#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p4: mark#(U52(X)) -> mark#(X) p5: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p6: active#(U51(tt(),V2)) -> mark#(U52(isNatList(V2))) p7: mark#(U42(X)) -> mark#(X) p8: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p9: 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: matrix interpretations: carrier: N^2 order: standard order interpretations: active#_A(x1) = x1 U41_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (1,2) tt_A() = (1,1) mark#_A(x1) = x1 U42_A(x1) = x1 + (0,2) isNatIList_A(x1) = x1 + (1,3) isNat_A(x1) = ((0,0),(1,0)) x1 + (1,2) s_A(x1) = (1,1) U21_A(x1) = x1 + (0,2) U52_A(x1) = x1 + (0,2) U51_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,1),(0,0)) x2 + (2,1) mark_A(x1) = ((1,0),(1,1)) x1 + (0,1) isNatList_A(x1) = ((0,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,0),(1,1)) x1 zeros_A() = (3,1) cons_A(x1,x2) = x1 + x2 + (1,1) |0|_A() = (0,0) U11_A(x1) = (1,2) U31_A(x1) = (1,2) U61_A(x1,x2) = x1 + (0,3) U62_A(x1) = (1,2) U71_A(x1,x2,x3) = (1,3) U72_A(x1,x2) = ((1,0),(1,0)) x1 + (0,1) length_A(x1) = ((0,0),(1,0)) x1 + (3,1) U81_A(x1) = (1,2) nil_A() = (1,1) U91_A(x1,x2,x3,x4) = x1 + x4 + (0,5) U92_A(x1,x2,x3,x4) = x4 + (1,4) U93_A(x1,x2,x3,x4) = x4 + (1,3) take_A(x1,x2) = x2 + (5,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: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p2: mark#(isNat(X)) -> active#(isNat(X)) p3: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p4: mark#(U52(X)) -> mark#(X) p5: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p6: mark#(U42(X)) -> mark#(X) p7: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p8: 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} -- 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#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p4: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p5: mark#(U42(X)) -> mark#(X) p6: mark#(U51(X1,X2)) -> active#(U51(mark(X1),X2)) p7: mark#(U52(X)) -> mark#(X) p8: 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: matrix interpretations: carrier: N^2 order: standard order interpretations: active#_A(x1) = x1 U41_A(x1,x2) = x1 + (2,0) tt_A() = (0,1) mark#_A(x1) = (2,0) U42_A(x1) = ((0,1),(0,0)) x1 + (1,1) isNatIList_A(x1) = ((0,1),(0,1)) x1 + (0,1) U21_A(x1) = ((0,1),(0,1)) x1 + (1,0) mark_A(x1) = ((0,1),(0,1)) x1 + (1,0) isNat_A(x1) = x1 + (2,0) s_A(x1) = x1 + (1,0) U51_A(x1,x2) = (1,1) U52_A(x1) = ((0,1),(0,0)) x1 + (1,1) active_A(x1) = ((0,1),(0,1)) x1 + (1,0) zeros_A() = (0,2) cons_A(x1,x2) = ((0,1),(0,1)) x1 + (0,1) |0|_A() = (1,1) U11_A(x1) = (0,1) U31_A(x1) = (1,1) isNatList_A(x1) = ((0,1),(0,0)) x1 + (1,1) U61_A(x1,x2) = ((0,1),(0,0)) x1 + (1,1) U62_A(x1) = (1,1) U71_A(x1,x2,x3) = ((0,1),(0,0)) x1 + (1,1) U72_A(x1,x2) = ((0,1),(0,0)) x1 + (1,1) length_A(x1) = ((0,1),(0,0)) x1 + (0,1) U81_A(x1) = (1,1) nil_A() = (0,1) U91_A(x1,x2,x3,x4) = ((0,1),(0,1)) x4 + (1,1) U92_A(x1,x2,x3,x4) = ((0,1),(0,0)) x1 + x4 + (1,1) U93_A(x1,x2,x3,x4) = ((0,1),(0,0)) x1 + x4 + (0,1) take_A(x1,x2) = x2 + (0,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: active#(U41(tt(),V2)) -> mark#(U42(isNatIList(V2))) p2: mark#(U21(X)) -> mark#(X) p3: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p4: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p5: mark#(U42(X)) -> mark#(X) p6: mark#(U52(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#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p4: mark#(U52(X)) -> mark#(X) p5: mark#(U42(X)) -> mark#(X) p6: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) 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: matrix interpretations: carrier: N^2 order: standard order interpretations: active#_A(x1) = x1 U41_A(x1,x2) = ((0,1),(0,1)) x2 + (2,1) tt_A() = (1,1) mark#_A(x1) = x1 U42_A(x1) = ((1,0),(1,0)) x1 + (0,1) isNatIList_A(x1) = ((0,1),(0,1)) x1 + (1,2) isNat_A(x1) = x1 + (1,1) s_A(x1) = ((1,0),(1,0)) x1 + (0,1) U21_A(x1) = ((1,0),(1,0)) x1 U52_A(x1) = ((1,0),(1,0)) x1 + (0,1) mark_A(x1) = ((1,0),(1,1)) x1 + (0,1) active_A(x1) = ((1,0),(1,1)) x1 + (0,1) zeros_A() = (3,1) cons_A(x1,x2) = ((0,1),(0,1)) x2 + (1,1) |0|_A() = (1,1) U11_A(x1) = (1,1) U31_A(x1) = ((0,0),(1,0)) x1 + (1,1) U51_A(x1,x2) = ((0,1),(0,1)) x2 + (1,2) isNatList_A(x1) = ((0,1),(1,0)) x1 + (1,1) U61_A(x1,x2) = ((1,0),(1,0)) x1 + (1,3) U62_A(x1) = (1,1) U71_A(x1,x2,x3) = ((0,0),(1,0)) x1 + (1,1) U72_A(x1,x2) = (1,2) length_A(x1) = ((0,0),(1,0)) x1 + (1,1) U81_A(x1) = (1,1) nil_A() = (1,1) U91_A(x1,x2,x3,x4) = ((1,0),(1,0)) x3 + (3,1) U92_A(x1,x2,x3,x4) = ((1,0),(1,0)) x3 + (2,2) U93_A(x1,x2,x3,x4) = ((1,0),(1,0)) x3 + (2,2) take_A(x1,x2) = ((1,0),(1,0)) x1 + (3,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: mark#(isNat(X)) -> active#(isNat(X)) p2: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p3: mark#(U52(X)) -> mark#(X) p4: mark#(U42(X)) -> mark#(X) p5: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) 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: mark#(isNat(X)) -> active#(isNat(X)) p2: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> active#(U41(mark(X1),X2)) p5: mark#(U42(X)) -> mark#(X) p6: mark#(U52(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: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = (2,0) isNat_A(x1) = (2,1) active#_A(x1) = x1 s_A(x1) = ((1,0),(1,0)) x1 + (0,1) U21_A(x1) = ((0,0),(1,0)) x1 + (1,1) U41_A(x1,x2) = ((0,0),(1,0)) x1 + (1,1) mark_A(x1) = ((1,0),(1,0)) x1 + (0,1) U42_A(x1) = ((0,0),(1,0)) x1 + (1,1) U52_A(x1) = (1,1) active_A(x1) = ((1,0),(1,0)) x1 + (0,1) zeros_A() = (0,0) cons_A(x1,x2) = ((1,0),(1,0)) x1 + (0,1) |0|_A() = (0,1) U11_A(x1) = ((0,0),(1,0)) x1 + (1,1) tt_A() = (1,1) U31_A(x1) = ((0,0),(1,0)) x1 + (1,1) isNatIList_A(x1) = ((1,0),(1,0)) x1 + (1,1) U51_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (1,1) isNatList_A(x1) = ((0,0),(1,0)) x1 + (3,1) U61_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (1,1) U62_A(x1) = ((0,0),(1,0)) x1 + (1,1) U71_A(x1,x2,x3) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (1,1) U72_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (1,1) length_A(x1) = ((0,0),(1,0)) x1 + (1,1) U81_A(x1) = ((0,0),(1,0)) x1 + (1,1) nil_A() = (1,1) U91_A(x1,x2,x3,x4) = x3 + ((1,0),(1,0)) x4 + (1,1) U92_A(x1,x2,x3,x4) = ((0,0),(1,0)) x1 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (1,1) U93_A(x1,x2,x3,x4) = ((0,0),(1,0)) x1 + x3 + ((1,0),(1,0)) x4 + (0,1) take_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (1,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: mark#(isNat(X)) -> active#(isNat(X)) p2: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U42(X)) -> mark#(X) p5: mark#(U52(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} -- 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#(U52(X)) -> mark#(X) p4: mark#(U42(X)) -> mark#(X) p5: 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 r62, r63, r98, r99 Take the reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((0,1),(1,1)) x1 isNat_A(x1) = ((1,1),(0,0)) x1 + (1,1) active#_A(x1) = ((0,1),(1,0)) x1 + (0,1) s_A(x1) = ((1,1),(1,1)) x1 + (1,1) U21_A(x1) = ((1,1),(0,1)) x1 + (1,0) U52_A(x1) = ((1,1),(1,1)) x1 + (1,0) U42_A(x1) = ((1,1),(1,1)) x1 + (1,1) mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,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: mark#(isNat(X)) -> active#(isNat(X)) p2: active#(isNat(s(V1))) -> mark#(U21(isNat(V1))) p3: mark#(U52(X)) -> mark#(X) p4: 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} -- 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#(U21(X)) -> mark#(X) p4: mark#(U52(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 monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: mark#_A(x1) = ((1,1),(1,0)) x1 isNat_A(x1) = ((1,1),(1,1)) x1 + (1,1) active#_A(x1) = ((1,1),(1,0)) x1 s_A(x1) = ((1,1),(1,1)) x1 + (1,1) U21_A(x1) = ((1,1),(1,1)) x1 + (1,1) U52_A(x1) = ((1,1),(1,1)) x1 + (1,1) mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p3, p4 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 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))) and R consists of: (no rules) The estimated dependency graph contains the following SCCs: (no SCCs) -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U42#(mark(X)) -> U42#(X) p2: U42#(active(X)) -> U42#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: U42#_A(x1) = ((1,0),(1,1)) x1 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 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 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isNatIList#(mark(X)) -> isNatIList#(X) p2: isNatIList#(active(X)) -> isNatIList#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: isNatIList#_A(x1) = ((1,0),(1,1)) x1 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 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 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U52#(mark(X)) -> U52#(X) p2: U52#(active(X)) -> U52#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: U52#_A(x1) = ((1,0),(1,1)) x1 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 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 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isNatList#(mark(X)) -> isNatList#(X) p2: isNatList#(active(X)) -> isNatList#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: isNatList#_A(x1) = ((1,0),(1,1)) x1 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 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 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U62#(mark(X)) -> U62#(X) p2: U62#(active(X)) -> U62#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: U62#_A(x1) = ((1,0),(1,1)) x1 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 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 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: matrix interpretations: carrier: N^2 order: standard order interpretations: U72#_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 mark_A(x1) = ((0,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2, p3, p4 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isNat#(mark(X)) -> isNat#(X) p2: isNat#(active(X)) -> isNat#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: isNat#_A(x1) = ((1,0),(1,1)) x1 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 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 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: s#(mark(X)) -> s#(X) p2: s#(active(X)) -> s#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: s#_A(x1) = ((1,0),(1,1)) x1 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 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 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: length#(mark(X)) -> length#(X) p2: length#(active(X)) -> length#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: length#_A(x1) = ((1,0),(1,1)) x1 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 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 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 monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: U92#_A(x1,x2,x3,x4) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 + ((1,1),(1,1)) x3 + ((1,1),(1,1)) x4 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2, p3, p4, p5, p6, p7, p8 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 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 monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: U93#_A(x1,x2,x3,x4) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 + ((1,1),(1,1)) x3 + ((1,1),(1,1)) x4 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2, p3, p4, p5, p6, p7, p8 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 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: matrix interpretations: carrier: N^2 order: standard order interpretations: cons#_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 mark_A(x1) = ((0,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2, p3, p4 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: matrix interpretations: carrier: N^2 order: standard order interpretations: take#_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 mark_A(x1) = ((0,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2, p3, p4 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U11#(mark(X)) -> U11#(X) p2: U11#(active(X)) -> U11#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: U11#_A(x1) = ((1,0),(1,1)) x1 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 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 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U21#(mark(X)) -> U21#(X) p2: U21#(active(X)) -> U21#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: U21#_A(x1) = ((1,0),(1,1)) x1 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 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 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U31#(mark(X)) -> U31#(X) p2: U31#(active(X)) -> U31#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: U31#_A(x1) = ((1,0),(1,1)) x1 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 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 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: matrix interpretations: carrier: N^2 order: standard order interpretations: U41#_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 mark_A(x1) = ((0,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2, p3, p4 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: matrix interpretations: carrier: N^2 order: standard order interpretations: U51#_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 mark_A(x1) = ((0,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2, p3, p4 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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: matrix interpretations: carrier: N^2 order: standard order interpretations: U61#_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 mark_A(x1) = ((0,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2, p3, p4 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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 monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: U71#_A(x1,x2,x3) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 + ((1,1),(1,1)) x3 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2, p3, p4, p5, p6 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 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U81#(mark(X)) -> U81#(X) p2: U81#(active(X)) -> U81#(X) and R consists of: r1: active(zeros()) -> mark(cons(|0|(),zeros())) r2: active(U11(tt())) -> mark(tt()) r3: active(U21(tt())) -> mark(tt()) r4: active(U31(tt())) -> mark(tt()) r5: active(U41(tt(),V2)) -> mark(U42(isNatIList(V2))) r6: active(U42(tt())) -> mark(tt()) r7: active(U51(tt(),V2)) -> mark(U52(isNatList(V2))) r8: active(U52(tt())) -> mark(tt()) r9: active(U61(tt(),V2)) -> mark(U62(isNatIList(V2))) r10: active(U62(tt())) -> mark(tt()) r11: active(U71(tt(),L,N)) -> mark(U72(isNat(N),L)) r12: active(U72(tt(),L)) -> mark(s(length(L))) r13: active(U81(tt())) -> mark(nil()) r14: active(U91(tt(),IL,M,N)) -> mark(U92(isNat(M),IL,M,N)) r15: active(U92(tt(),IL,M,N)) -> mark(U93(isNat(N),IL,M,N)) r16: active(U93(tt(),IL,M,N)) -> mark(cons(N,take(M,IL))) r17: active(isNat(|0|())) -> mark(tt()) r18: active(isNat(length(V1))) -> mark(U11(isNatList(V1))) r19: active(isNat(s(V1))) -> mark(U21(isNat(V1))) r20: active(isNatIList(V)) -> mark(U31(isNatList(V))) r21: active(isNatIList(zeros())) -> mark(tt()) r22: active(isNatIList(cons(V1,V2))) -> mark(U41(isNat(V1),V2)) r23: active(isNatList(nil())) -> mark(tt()) r24: active(isNatList(cons(V1,V2))) -> mark(U51(isNat(V1),V2)) r25: active(isNatList(take(V1,V2))) -> mark(U61(isNat(V1),V2)) r26: active(length(nil())) -> mark(|0|()) r27: active(length(cons(N,L))) -> mark(U71(isNatList(L),L,N)) r28: active(take(|0|(),IL)) -> mark(U81(isNatIList(IL))) r29: active(take(s(M),cons(N,IL))) -> mark(U91(isNatIList(IL),IL,M,N)) r30: mark(zeros()) -> active(zeros()) r31: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) r32: mark(|0|()) -> active(|0|()) r33: mark(U11(X)) -> active(U11(mark(X))) r34: mark(tt()) -> active(tt()) r35: mark(U21(X)) -> active(U21(mark(X))) r36: mark(U31(X)) -> active(U31(mark(X))) r37: mark(U41(X1,X2)) -> active(U41(mark(X1),X2)) r38: mark(U42(X)) -> active(U42(mark(X))) r39: mark(isNatIList(X)) -> active(isNatIList(X)) r40: mark(U51(X1,X2)) -> active(U51(mark(X1),X2)) r41: mark(U52(X)) -> active(U52(mark(X))) r42: mark(isNatList(X)) -> active(isNatList(X)) r43: mark(U61(X1,X2)) -> active(U61(mark(X1),X2)) r44: mark(U62(X)) -> active(U62(mark(X))) r45: mark(U71(X1,X2,X3)) -> active(U71(mark(X1),X2,X3)) r46: mark(U72(X1,X2)) -> active(U72(mark(X1),X2)) r47: mark(isNat(X)) -> active(isNat(X)) r48: mark(s(X)) -> active(s(mark(X))) r49: mark(length(X)) -> active(length(mark(X))) r50: mark(U81(X)) -> active(U81(mark(X))) r51: mark(nil()) -> active(nil()) r52: mark(U91(X1,X2,X3,X4)) -> active(U91(mark(X1),X2,X3,X4)) r53: mark(U92(X1,X2,X3,X4)) -> active(U92(mark(X1),X2,X3,X4)) r54: mark(U93(X1,X2,X3,X4)) -> active(U93(mark(X1),X2,X3,X4)) r55: mark(take(X1,X2)) -> active(take(mark(X1),mark(X2))) r56: cons(mark(X1),X2) -> cons(X1,X2) r57: cons(X1,mark(X2)) -> cons(X1,X2) r58: cons(active(X1),X2) -> cons(X1,X2) r59: cons(X1,active(X2)) -> cons(X1,X2) r60: U11(mark(X)) -> U11(X) r61: U11(active(X)) -> U11(X) r62: U21(mark(X)) -> U21(X) r63: U21(active(X)) -> U21(X) r64: U31(mark(X)) -> U31(X) r65: U31(active(X)) -> U31(X) r66: U41(mark(X1),X2) -> U41(X1,X2) r67: U41(X1,mark(X2)) -> U41(X1,X2) r68: U41(active(X1),X2) -> U41(X1,X2) r69: U41(X1,active(X2)) -> U41(X1,X2) r70: U42(mark(X)) -> U42(X) r71: U42(active(X)) -> U42(X) r72: isNatIList(mark(X)) -> isNatIList(X) r73: isNatIList(active(X)) -> isNatIList(X) r74: U51(mark(X1),X2) -> U51(X1,X2) r75: U51(X1,mark(X2)) -> U51(X1,X2) r76: U51(active(X1),X2) -> U51(X1,X2) r77: U51(X1,active(X2)) -> U51(X1,X2) r78: U52(mark(X)) -> U52(X) r79: U52(active(X)) -> U52(X) r80: isNatList(mark(X)) -> isNatList(X) r81: isNatList(active(X)) -> isNatList(X) r82: U61(mark(X1),X2) -> U61(X1,X2) r83: U61(X1,mark(X2)) -> U61(X1,X2) r84: U61(active(X1),X2) -> U61(X1,X2) r85: U61(X1,active(X2)) -> U61(X1,X2) r86: U62(mark(X)) -> U62(X) r87: U62(active(X)) -> U62(X) r88: U71(mark(X1),X2,X3) -> U71(X1,X2,X3) r89: U71(X1,mark(X2),X3) -> U71(X1,X2,X3) r90: U71(X1,X2,mark(X3)) -> U71(X1,X2,X3) r91: U71(active(X1),X2,X3) -> U71(X1,X2,X3) r92: U71(X1,active(X2),X3) -> U71(X1,X2,X3) r93: U71(X1,X2,active(X3)) -> U71(X1,X2,X3) r94: U72(mark(X1),X2) -> U72(X1,X2) r95: U72(X1,mark(X2)) -> U72(X1,X2) r96: U72(active(X1),X2) -> U72(X1,X2) r97: U72(X1,active(X2)) -> U72(X1,X2) r98: isNat(mark(X)) -> isNat(X) r99: isNat(active(X)) -> isNat(X) r100: s(mark(X)) -> s(X) r101: s(active(X)) -> s(X) r102: length(mark(X)) -> length(X) r103: length(active(X)) -> length(X) r104: U81(mark(X)) -> U81(X) r105: U81(active(X)) -> U81(X) r106: U91(mark(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r107: U91(X1,mark(X2),X3,X4) -> U91(X1,X2,X3,X4) r108: U91(X1,X2,mark(X3),X4) -> U91(X1,X2,X3,X4) r109: U91(X1,X2,X3,mark(X4)) -> U91(X1,X2,X3,X4) r110: U91(active(X1),X2,X3,X4) -> U91(X1,X2,X3,X4) r111: U91(X1,active(X2),X3,X4) -> U91(X1,X2,X3,X4) r112: U91(X1,X2,active(X3),X4) -> U91(X1,X2,X3,X4) r113: U91(X1,X2,X3,active(X4)) -> U91(X1,X2,X3,X4) r114: U92(mark(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r115: U92(X1,mark(X2),X3,X4) -> U92(X1,X2,X3,X4) r116: U92(X1,X2,mark(X3),X4) -> U92(X1,X2,X3,X4) r117: U92(X1,X2,X3,mark(X4)) -> U92(X1,X2,X3,X4) r118: U92(active(X1),X2,X3,X4) -> U92(X1,X2,X3,X4) r119: U92(X1,active(X2),X3,X4) -> U92(X1,X2,X3,X4) r120: U92(X1,X2,active(X3),X4) -> U92(X1,X2,X3,X4) r121: U92(X1,X2,X3,active(X4)) -> U92(X1,X2,X3,X4) r122: U93(mark(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r123: U93(X1,mark(X2),X3,X4) -> U93(X1,X2,X3,X4) r124: U93(X1,X2,mark(X3),X4) -> U93(X1,X2,X3,X4) r125: U93(X1,X2,X3,mark(X4)) -> U93(X1,X2,X3,X4) r126: U93(active(X1),X2,X3,X4) -> U93(X1,X2,X3,X4) r127: U93(X1,active(X2),X3,X4) -> U93(X1,X2,X3,X4) r128: U93(X1,X2,active(X3),X4) -> U93(X1,X2,X3,X4) r129: U93(X1,X2,X3,active(X4)) -> U93(X1,X2,X3,X4) r130: take(mark(X1),X2) -> take(X1,X2) r131: take(X1,mark(X2)) -> take(X1,X2) r132: take(active(X1),X2) -> take(X1,X2) r133: take(X1,active(X2)) -> take(X1,X2) The set of usable rules consists of (no rules) Take the monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: U81#_A(x1) = ((1,0),(1,1)) x1 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2 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 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 monotone reduction pair: matrix interpretations: carrier: N^2 order: standard order interpretations: U91#_A(x1,x2,x3,x4) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 + ((1,1),(1,1)) x3 + ((1,1),(1,1)) x4 mark_A(x1) = ((1,1),(1,1)) x1 + (1,1) active_A(x1) = ((1,1),(1,1)) x1 + (1,1) The next rules are strictly ordered: p1, p2, p3, p4, p5, p6, p7, p8 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 We remove them from the problem. Then no dependency pair remains.