YES
TRS
↳CSR to TRS Transformation
isNatList(1)
U31(1)
U42(1)
U52(1)
U11(1)
isNat(1)
U51(1,2)
U62(1,2)
U41(1,2)
cons(1,2)
U21(1)
U61(1,2,3)
s(1)
length(1)
isNatIList(1)
zeros -> cons(0, zeros)
U11(tt) -> tt
U21(tt) -> tt
U31(tt) -> tt
U41(tt, V2) -> U42(isNatIList(V2))
U42(tt) -> tt
U51(tt, V2) -> U52(isNatList(V2))
U52(tt) -> tt
U61(tt, L, N) -> U62(isNat(N), L)
U62(tt, L) -> s(length(L))
isNat(0) -> tt
isNat(length(V1)) -> U11(isNatList(V1))
isNat(s(V1)) -> U21(isNat(V1))
isNatIList(V) -> U31(isNatList(V))
isNatIList(zeros) -> tt
isNatIList(cons(V1, V2)) -> U41(isNat(V1), V2)
isNatList(nil) -> tt
isNatList(cons(V1, V2)) -> U51(isNat(V1), V2)
length(nil) -> 0
length(cons(N, L)) -> U61(isNatList(L), L, N)
zeros -> cons(0, zeros)
zeros -> zeros
U11(tt) -> tt
U11(x0) -> U11(x0)
U21(tt) -> tt
U21(x0) -> U21(x0)
U31(tt) -> tt
U31(x0) -> U31(x0)
U41(tt, V2) -> U42(isNatIList(V2))
U41(x0, x1) -> U41(x0, x1)
U42(tt) -> tt
U42(x0) -> U42(x0)
isNatIList(V) -> U31(isNatList(V))
isNatIList(zeros) -> tt
isNatIList(cons(V1, V2)) -> U41(isNat(V1), V2)
isNatIList(x0) -> isNatIList(x0)
U51(tt, V2) -> U52(isNatList(V2))
U51(x0, x1) -> U51(x0, x1)
U52(tt) -> tt
U52(x0) -> U52(x0)
isNatList(nil) -> tt
isNatList(cons(V1, V2)) -> U51(isNat(V1), V2)
isNatList(x0) -> isNatList(x0)
U61(tt, L, N) -> U62(isNat(N), L)
U61(x0, x1, x2) -> U61(x0, x1, x2)
U62(tt, L) -> s(length(mark(L)))
U62(x0, x1) -> U62(x0, x1)
isNat(0) -> tt
isNat(length(V1)) -> U11(isNatList(V1))
isNat(s(V1)) -> U21(isNat(V1))
isNat(x0) -> isNat(x0)
length(nil) -> 0
length(cons(N, L)) -> U61(isNatList(L), L, N)
length(x0) -> length(x0)
mark(isNatList(x0)) -> isNatList(x0)
mark(U31(x0)) -> U31(mark(x0))
mark(U42(x0)) -> U42(mark(x0))
mark(U52(x0)) -> U52(mark(x0))
mark(U11(x0)) -> U11(mark(x0))
mark(isNat(x0)) -> isNat(x0)
mark(U51(x0, x1)) -> U51(mark(x0), x1)
mark(U62(x0, x1)) -> U62(mark(x0), x1)
mark(U41(x0, x1)) -> U41(mark(x0), x1)
mark(U21(x0)) -> U21(mark(x0))
mark(U61(x0, x1, x2)) -> U61(mark(x0), x1, x2)
mark(zeros) -> zeros
mark(length(x0)) -> length(mark(x0))
mark(isNatIList(x0)) -> isNatIList(x0)
mark(cons(x0, x1)) -> cons(mark(x0), x1)
mark(0) -> 0
mark(tt) -> tt
mark(s(x0)) -> s(mark(x0))
mark(nil) -> nil
TRS
↳CSRtoTRS
→TRS1
↳Removing Redundant Rules
zeros -> cons(0, zeros)
zeros -> zeros
isNatIList(V) -> U31(isNatList(V))
isNatIList(cons(V1, V2)) -> U41(isNat(V1), V2)
isNatIList(x0) -> isNatIList(x0)
U51(tt, V2) -> U52(isNatList(V2))
mark(isNatList(x0)) -> isNatList(x0)
mark(isNat(x0)) -> isNat(x0)
mark(isNatIList(x0)) -> isNatIList(x0)
mark(0) -> 0
mark(tt) -> tt
mark(nil) -> nil
was used.
POL(_U61_(x1, x2, x3)) = x1 + x2 + x3 POL(_U41_(x1, x2)) = x1 + x2 POL(isNatList(x1)) = x1 POL(_isNatList_(x1)) = x1 POL(_length_(x1)) = x1 POL(_U52_(x1)) = x1 POL(_U31_(x1)) = x1 POL(_isNat_(x1)) = x1 POL(U42(x1)) = x1 POL(U52(x1)) = x1 POL(*mark*(x1)) = 2 + x1 POL(U11(x1)) = x1 POL(U51(x1, x2)) = x1 + x2 POL(U62(x1, x2)) = 1 + x1 + x2 POL(_zeros_) = 2 POL(_U11_(x1)) = x1 POL(cons(x1, x2)) = x1 + 2·x2 POL(U21(x1)) = x1 POL(_U42_(x1)) = x1 POL(_U51_(x1, x2)) = x1 + x2 POL(nil) = 1 POL(zeros) = 0 POL(length(x1)) = x1 POL(_isNatIList_(x1)) = 1 + x1 POL(_U21_(x1)) = x1 POL(U31(x1)) = x1 POL(_U62_(x1, x2)) = 1 + x1 + x2 POL(isNat(x1)) = x1 POL(U41(x1, x2)) = x1 + x2 POL(0) = 1 POL(tt) = 1 POL(U61(x1, x2, x3)) = x1 + x2 + x3 POL(s(x1)) = x1 POL(isNatIList(x1)) = x1
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳Removing Redundant Rules
isNat(s(V1)) -> U21(isNat(V1))
isNatList(cons(V1, V2)) -> U51(isNat(V1), V2)
was used.
POL(_U61_(x1, x2, x3)) = 1 + x1 + x2 + x3 POL(_U41_(x1, x2)) = x1 + x2 POL(_isNatList_(x1)) = x1 POL(_length_(x1)) = x1 POL(isNatList(x1)) = x1 POL(_U52_(x1)) = x1 POL(_U31_(x1)) = x1 POL(_isNat_(x1)) = x1 POL(U42(x1)) = x1 POL(U52(x1)) = x1 POL(*mark*(x1)) = x1 POL(U11(x1)) = x1 POL(U51(x1, x2)) = x1 + x2 POL(U62(x1, x2)) = 1 + x1 + x2 POL(_zeros_) = 0 POL(cons(x1, x2)) = 1 + x1 + 2·x2 POL(_U11_(x1)) = x1 POL(U21(x1)) = x1 POL(_U42_(x1)) = x1 POL(_U51_(x1, x2)) = x1 + x2 POL(nil) = 0 POL(zeros) = 0 POL(_isNatIList_(x1)) = x1 POL(length(x1)) = x1 POL(_U21_(x1)) = x1 POL(U31(x1)) = x1 POL(_U62_(x1, x2)) = 1 + x1 + x2 POL(isNat(x1)) = x1 POL(U41(x1, x2)) = x1 + x2 POL(0) = 0 POL(tt) = 0 POL(U61(x1, x2, x3)) = 1 + x1 + x2 + x3 POL(s(x1)) = 1 + x1
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS3
↳Removing Redundant Rules
length(nil) -> 0
isNatList(nil) -> tt
was used.
POL(_U61_(x1, x2, x3)) = x1 + x2 + x3 POL(_U41_(x1, x2)) = x1 + x2 POL(_length_(x1)) = x1 POL(_isNatList_(x1)) = x1 POL(isNatList(x1)) = x1 POL(_U31_(x1)) = x1 POL(_U52_(x1)) = x1 POL(U42(x1)) = x1 POL(_isNat_(x1)) = x1 POL(U52(x1)) = x1 POL(*mark*(x1)) = x1 POL(U11(x1)) = x1 POL(U51(x1, x2)) = x1 + x2 POL(U62(x1, x2)) = x1 + x2 POL(_zeros_) = 0 POL(cons(x1, x2)) = x1 + 2·x2 POL(_U11_(x1)) = x1 POL(U21(x1)) = x1 POL(nil) = 1 POL(_U42_(x1)) = x1 POL(_U51_(x1, x2)) = x1 + x2 POL(zeros) = 0 POL(_isNatIList_(x1)) = x1 POL(length(x1)) = x1 POL(_U21_(x1)) = x1 POL(U31(x1)) = x1 POL(_U62_(x1, x2)) = x1 + x2 POL(isNat(x1)) = x1 POL(U41(x1, x2)) = x1 + x2 POL(0) = 0 POL(tt) = 0 POL(s(x1)) = x1 POL(U61(x1, x2, x3)) = x1 + x2 + x3
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→TRS4
↳Dependency Pair Analysis
MARK(U31(x0)) -> U31'(mark(x0))
MARK(U31(x0)) -> MARK(x0)
MARK(U21(x0)) -> U21'(mark(x0))
MARK(U21(x0)) -> MARK(x0)
MARK(U61(x0, x1, x2)) -> U61'(mark(x0), x1, x2)
MARK(U61(x0, x1, x2)) -> MARK(x0)
MARK(U52(x0)) -> U52'(mark(x0))
MARK(U52(x0)) -> MARK(x0)
MARK(U62(x0, x1)) -> U62'(mark(x0), x1)
MARK(U62(x0, x1)) -> MARK(x0)
MARK(U41(x0, x1)) -> U41'(mark(x0), x1)
MARK(U41(x0, x1)) -> MARK(x0)
MARK(U51(x0, x1)) -> U51'(mark(x0), x1)
MARK(U51(x0, x1)) -> MARK(x0)
MARK(s(x0)) -> MARK(x0)
MARK(length(x0)) -> LENGTH(mark(x0))
MARK(length(x0)) -> MARK(x0)
MARK(U11(x0)) -> U11'(mark(x0))
MARK(U11(x0)) -> MARK(x0)
MARK(cons(x0, x1)) -> MARK(x0)
MARK(U42(x0)) -> U42'(mark(x0))
MARK(U42(x0)) -> MARK(x0)
U61'(tt, L, N) -> U62'(isNat(N), L)
U61'(tt, L, N) -> ISNAT(N)
U62'(tt, L) -> LENGTH(mark(L))
U62'(tt, L) -> MARK(L)
LENGTH(cons(N, L)) -> U61'(isNatList(L), L, N)
LENGTH(cons(N, L)) -> ISNATLIST(L)
ISNAT(length(V1)) -> U11'(isNatList(V1))
ISNAT(length(V1)) -> ISNATLIST(V1)
U41'(tt, V2) -> U42'(isNatIList(V2))
U41'(tt, V2) -> ISNATILIST(V2)
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→DP Problem 1
↳Negative Polynomial Order
MARK(U42(x0)) -> MARK(x0)
MARK(cons(x0, x1)) -> MARK(x0)
MARK(U11(x0)) -> MARK(x0)
MARK(length(x0)) -> MARK(x0)
MARK(length(x0)) -> LENGTH(mark(x0))
MARK(s(x0)) -> MARK(x0)
MARK(U51(x0, x1)) -> MARK(x0)
MARK(U41(x0, x1)) -> MARK(x0)
MARK(U62(x0, x1)) -> MARK(x0)
MARK(U62(x0, x1)) -> U62'(mark(x0), x1)
MARK(U52(x0)) -> MARK(x0)
MARK(U61(x0, x1, x2)) -> MARK(x0)
U62'(tt, L) -> MARK(L)
LENGTH(cons(N, L)) -> U61'(isNatList(L), L, N)
U62'(tt, L) -> LENGTH(mark(L))
U61'(tt, L, N) -> U62'(isNat(N), L)
MARK(U61(x0, x1, x2)) -> U61'(mark(x0), x1, x2)
MARK(U21(x0)) -> MARK(x0)
MARK(U31(x0)) -> MARK(x0)
mark(U31(x0)) -> U31(mark(x0))
mark(U21(x0)) -> U21(mark(x0))
mark(U61(x0, x1, x2)) -> U61(mark(x0), x1, x2)
mark(U52(x0)) -> U52(mark(x0))
mark(U62(x0, x1)) -> U62(mark(x0), x1)
mark(zeros) -> zeros
mark(U41(x0, x1)) -> U41(mark(x0), x1)
mark(U51(x0, x1)) -> U51(mark(x0), x1)
mark(s(x0)) -> s(mark(x0))
mark(length(x0)) -> length(mark(x0))
mark(U11(x0)) -> U11(mark(x0))
mark(cons(x0, x1)) -> cons(mark(x0), x1)
mark(U42(x0)) -> U42(mark(x0))
U31(x0) -> U31(x0)
U31(tt) -> tt
U42(tt) -> tt
U42(x0) -> U42(x0)
U21(x0) -> U21(x0)
U21(tt) -> tt
U61(x0, x1, x2) -> U61(x0, x1, x2)
U61(tt, L, N) -> U62(isNat(N), L)
U62(tt, L) -> s(length(mark(L)))
U62(x0, x1) -> U62(x0, x1)
length(cons(N, L)) -> U61(isNatList(L), L, N)
length(x0) -> length(x0)
U52(x0) -> U52(x0)
U52(tt) -> tt
isNat(x0) -> isNat(x0)
isNat(length(V1)) -> U11(isNatList(V1))
isNat(0) -> tt
U11(x0) -> U11(x0)
U11(tt) -> tt
U51(x0, x1) -> U51(x0, x1)
U41(tt, V2) -> U42(isNatIList(V2))
U41(x0, x1) -> U41(x0, x1)
isNatList(x0) -> isNatList(x0)
isNatIList(zeros) -> tt
MARK(U42(x0)) -> MARK(x0)
MARK(U41(x0, x1)) -> MARK(x0)
mark(U31(x0)) -> U31(mark(x0))
mark(U21(x0)) -> U21(mark(x0))
mark(U61(x0, x1, x2)) -> U61(mark(x0), x1, x2)
mark(U52(x0)) -> U52(mark(x0))
mark(U62(x0, x1)) -> U62(mark(x0), x1)
mark(zeros) -> zeros
mark(U41(x0, x1)) -> U41(mark(x0), x1)
mark(U51(x0, x1)) -> U51(mark(x0), x1)
mark(s(x0)) -> s(mark(x0))
mark(length(x0)) -> length(mark(x0))
mark(U11(x0)) -> U11(mark(x0))
mark(cons(x0, x1)) -> cons(mark(x0), x1)
mark(U42(x0)) -> U42(mark(x0))
isNatList(x0) -> isNatList(x0)
isNat(x0) -> isNat(x0)
isNat(length(V1)) -> U11(isNatList(V1))
isNat(0) -> tt
U31(x0) -> U31(x0)
U31(tt) -> tt
U21(x0) -> U21(x0)
U21(tt) -> tt
U61(x0, x1, x2) -> U61(x0, x1, x2)
U61(tt, L, N) -> U62(isNat(N), L)
U52(x0) -> U52(x0)
U52(tt) -> tt
U62(tt, L) -> s(length(mark(L)))
U62(x0, x1) -> U62(x0, x1)
U41(tt, V2) -> U42(isNatIList(V2))
U41(x0, x1) -> U41(x0, x1)
U51(x0, x1) -> U51(x0, x1)
length(cons(N, L)) -> U61(isNatList(L), L, N)
length(x0) -> length(x0)
U11(x0) -> U11(x0)
U11(tt) -> tt
U42(tt) -> tt
U42(x0) -> U42(x0)
isNatIList(zeros) -> tt
POL( MARK(x1) ) = x1
POL( U42(x1) ) = x1 + 1
POL( LENGTH(x1) ) = x1
POL( cons(x1, x2) ) = x1 + x2
POL( U61'(x1, ..., x3) ) = x2
POL( U52(x1) ) = x1
POL( s(x1) ) = x1
POL( U21(x1) ) = x1
POL( U61(x1, ..., x3) ) = x1 + x2
POL( U62(x1, x2) ) = x1 + x2
POL( U62'(x1, x2) ) = x2
POL( mark(x1) ) = x1
POL( length(x1) ) = x1
POL( U11(x1) ) = x1
POL( U31(x1) ) = x1
POL( U41(x1, x2) ) = x1 + 1
POL( U51(x1, x2) ) = x1
POL( U31(x1) ) = x1
POL( U21(x1) ) = x1
POL( U61(x1, ..., x3) ) = x1 + x2
POL( U52(x1) ) = x1
POL( U62(x1, x2) ) = x1 + x2
POL( zeros ) = 0
POL( zeros ) = 0
POL( U41(x1, x2) ) = x1 + 1
POL( U51(x1, x2) ) = x1
POL( length(x1) ) = x1
POL( U11(x1) ) = x1
POL( U42(x1) ) = x1 + 1
POL( isNatList(x1) ) = 0
POL( isNatList(x1) ) = 0
POL( isNat(x1) ) = 0
POL( isNat(x1) ) = 0
POL( tt ) = 0
POL( isNatIList(x1) ) = 0
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→DP Problem 2
↳Negative Polynomial Order
MARK(cons(x0, x1)) -> MARK(x0)
MARK(U11(x0)) -> MARK(x0)
MARK(length(x0)) -> MARK(x0)
MARK(length(x0)) -> LENGTH(mark(x0))
MARK(s(x0)) -> MARK(x0)
MARK(U51(x0, x1)) -> MARK(x0)
MARK(U62(x0, x1)) -> MARK(x0)
MARK(U62(x0, x1)) -> U62'(mark(x0), x1)
MARK(U52(x0)) -> MARK(x0)
MARK(U61(x0, x1, x2)) -> MARK(x0)
U62'(tt, L) -> MARK(L)
LENGTH(cons(N, L)) -> U61'(isNatList(L), L, N)
U62'(tt, L) -> LENGTH(mark(L))
U61'(tt, L, N) -> U62'(isNat(N), L)
MARK(U61(x0, x1, x2)) -> U61'(mark(x0), x1, x2)
MARK(U21(x0)) -> MARK(x0)
MARK(U31(x0)) -> MARK(x0)
mark(U31(x0)) -> U31(mark(x0))
mark(U21(x0)) -> U21(mark(x0))
mark(U61(x0, x1, x2)) -> U61(mark(x0), x1, x2)
mark(U52(x0)) -> U52(mark(x0))
mark(U62(x0, x1)) -> U62(mark(x0), x1)
mark(zeros) -> zeros
mark(U41(x0, x1)) -> U41(mark(x0), x1)
mark(U51(x0, x1)) -> U51(mark(x0), x1)
mark(s(x0)) -> s(mark(x0))
mark(length(x0)) -> length(mark(x0))
mark(U11(x0)) -> U11(mark(x0))
mark(cons(x0, x1)) -> cons(mark(x0), x1)
mark(U42(x0)) -> U42(mark(x0))
U31(x0) -> U31(x0)
U31(tt) -> tt
U42(tt) -> tt
U42(x0) -> U42(x0)
U21(x0) -> U21(x0)
U21(tt) -> tt
U61(x0, x1, x2) -> U61(x0, x1, x2)
U61(tt, L, N) -> U62(isNat(N), L)
U62(tt, L) -> s(length(mark(L)))
U62(x0, x1) -> U62(x0, x1)
length(cons(N, L)) -> U61(isNatList(L), L, N)
length(x0) -> length(x0)
U52(x0) -> U52(x0)
U52(tt) -> tt
isNat(x0) -> isNat(x0)
isNat(length(V1)) -> U11(isNatList(V1))
isNat(0) -> tt
U11(x0) -> U11(x0)
U11(tt) -> tt
U51(x0, x1) -> U51(x0, x1)
U41(tt, V2) -> U42(isNatIList(V2))
U41(x0, x1) -> U41(x0, x1)
isNatList(x0) -> isNatList(x0)
isNatIList(zeros) -> tt
MARK(cons(x0, x1)) -> MARK(x0)
LENGTH(cons(N, L)) -> U61'(isNatList(L), L, N)
mark(U31(x0)) -> U31(mark(x0))
mark(U21(x0)) -> U21(mark(x0))
mark(U61(x0, x1, x2)) -> U61(mark(x0), x1, x2)
mark(U52(x0)) -> U52(mark(x0))
mark(U62(x0, x1)) -> U62(mark(x0), x1)
mark(zeros) -> zeros
mark(U41(x0, x1)) -> U41(mark(x0), x1)
mark(U51(x0, x1)) -> U51(mark(x0), x1)
mark(s(x0)) -> s(mark(x0))
mark(length(x0)) -> length(mark(x0))
mark(U11(x0)) -> U11(mark(x0))
mark(cons(x0, x1)) -> cons(mark(x0), x1)
mark(U42(x0)) -> U42(mark(x0))
isNatList(x0) -> isNatList(x0)
isNat(x0) -> isNat(x0)
isNat(length(V1)) -> U11(isNatList(V1))
isNat(0) -> tt
U31(x0) -> U31(x0)
U31(tt) -> tt
U21(x0) -> U21(x0)
U21(tt) -> tt
U61(x0, x1, x2) -> U61(x0, x1, x2)
U61(tt, L, N) -> U62(isNat(N), L)
U52(x0) -> U52(x0)
U52(tt) -> tt
U62(tt, L) -> s(length(mark(L)))
U62(x0, x1) -> U62(x0, x1)
U41(tt, V2) -> U42(isNatIList(V2))
U41(x0, x1) -> U41(x0, x1)
U51(x0, x1) -> U51(x0, x1)
length(cons(N, L)) -> U61(isNatList(L), L, N)
length(x0) -> length(x0)
U11(x0) -> U11(x0)
U11(tt) -> tt
U42(tt) -> tt
U42(x0) -> U42(x0)
isNatIList(zeros) -> tt
POL( MARK(x1) ) = x1
POL( cons(x1, x2) ) = x1 + x2 + 1
POL( LENGTH(x1) ) = x1
POL( U61'(x1, ..., x3) ) = x2
POL( U52(x1) ) = x1
POL( s(x1) ) = x1
POL( U21(x1) ) = x1
POL( U61(x1, ..., x3) ) = x1 + x2
POL( U62(x1, x2) ) = x1 + x2
POL( U62'(x1, x2) ) = x2
POL( mark(x1) ) = x1
POL( length(x1) ) = x1
POL( U11(x1) ) = x1
POL( U31(x1) ) = x1
POL( U51(x1, x2) ) = x1
POL( U31(x1) ) = x1
POL( U21(x1) ) = x1
POL( U61(x1, ..., x3) ) = x1 + x2
POL( U52(x1) ) = x1
POL( U62(x1, x2) ) = x1 + x2
POL( zeros ) = 0
POL( zeros ) = 0
POL( U41(x1, x2) ) = 0
POL( U41(x1, x2) ) = 0
POL( U51(x1, x2) ) = x1
POL( length(x1) ) = x1
POL( U11(x1) ) = x1
POL( U42(x1) ) = 0
POL( U42(x1) ) = 0
POL( isNatList(x1) ) = 0
POL( isNatList(x1) ) = 0
POL( isNat(x1) ) = 0
POL( isNat(x1) ) = 0
POL( tt ) = 0
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→DP Problem 3
↳Dependency Graph
MARK(U11(x0)) -> MARK(x0)
MARK(length(x0)) -> MARK(x0)
MARK(length(x0)) -> LENGTH(mark(x0))
MARK(s(x0)) -> MARK(x0)
MARK(U51(x0, x1)) -> MARK(x0)
MARK(U62(x0, x1)) -> MARK(x0)
MARK(U62(x0, x1)) -> U62'(mark(x0), x1)
MARK(U52(x0)) -> MARK(x0)
MARK(U61(x0, x1, x2)) -> MARK(x0)
U62'(tt, L) -> MARK(L)
U62'(tt, L) -> LENGTH(mark(L))
U61'(tt, L, N) -> U62'(isNat(N), L)
MARK(U61(x0, x1, x2)) -> U61'(mark(x0), x1, x2)
MARK(U21(x0)) -> MARK(x0)
MARK(U31(x0)) -> MARK(x0)
mark(U31(x0)) -> U31(mark(x0))
mark(U21(x0)) -> U21(mark(x0))
mark(U61(x0, x1, x2)) -> U61(mark(x0), x1, x2)
mark(U52(x0)) -> U52(mark(x0))
mark(U62(x0, x1)) -> U62(mark(x0), x1)
mark(zeros) -> zeros
mark(U41(x0, x1)) -> U41(mark(x0), x1)
mark(U51(x0, x1)) -> U51(mark(x0), x1)
mark(s(x0)) -> s(mark(x0))
mark(length(x0)) -> length(mark(x0))
mark(U11(x0)) -> U11(mark(x0))
mark(cons(x0, x1)) -> cons(mark(x0), x1)
mark(U42(x0)) -> U42(mark(x0))
U31(x0) -> U31(x0)
U31(tt) -> tt
U42(tt) -> tt
U42(x0) -> U42(x0)
U21(x0) -> U21(x0)
U21(tt) -> tt
U61(x0, x1, x2) -> U61(x0, x1, x2)
U61(tt, L, N) -> U62(isNat(N), L)
U62(tt, L) -> s(length(mark(L)))
U62(x0, x1) -> U62(x0, x1)
length(cons(N, L)) -> U61(isNatList(L), L, N)
length(x0) -> length(x0)
U52(x0) -> U52(x0)
U52(tt) -> tt
isNat(x0) -> isNat(x0)
isNat(length(V1)) -> U11(isNatList(V1))
isNat(0) -> tt
U11(x0) -> U11(x0)
U11(tt) -> tt
U51(x0, x1) -> U51(x0, x1)
U41(tt, V2) -> U42(isNatIList(V2))
U41(x0, x1) -> U41(x0, x1)
isNatList(x0) -> isNatList(x0)
isNatIList(zeros) -> tt
TRS
↳CSRtoTRS
→TRS1
↳RRRPolo
→TRS2
↳RRRPolo
...
→DP Problem 4
↳Size-Change Principle
MARK(length(x0)) -> MARK(x0)
MARK(s(x0)) -> MARK(x0)
MARK(U51(x0, x1)) -> MARK(x0)
MARK(U62(x0, x1)) -> MARK(x0)
MARK(U62(x0, x1)) -> U62'(mark(x0), x1)
MARK(U52(x0)) -> MARK(x0)
MARK(U61(x0, x1, x2)) -> MARK(x0)
U62'(tt, L) -> MARK(L)
U61'(tt, L, N) -> U62'(isNat(N), L)
MARK(U61(x0, x1, x2)) -> U61'(mark(x0), x1, x2)
MARK(U21(x0)) -> MARK(x0)
MARK(U31(x0)) -> MARK(x0)
MARK(U11(x0)) -> MARK(x0)
mark(U31(x0)) -> U31(mark(x0))
mark(U21(x0)) -> U21(mark(x0))
mark(U61(x0, x1, x2)) -> U61(mark(x0), x1, x2)
mark(U52(x0)) -> U52(mark(x0))
mark(U62(x0, x1)) -> U62(mark(x0), x1)
mark(zeros) -> zeros
mark(U41(x0, x1)) -> U41(mark(x0), x1)
mark(U51(x0, x1)) -> U51(mark(x0), x1)
mark(s(x0)) -> s(mark(x0))
mark(length(x0)) -> length(mark(x0))
mark(U11(x0)) -> U11(mark(x0))
mark(cons(x0, x1)) -> cons(mark(x0), x1)
mark(U42(x0)) -> U42(mark(x0))
U31(x0) -> U31(x0)
U31(tt) -> tt
U42(tt) -> tt
U42(x0) -> U42(x0)
U21(x0) -> U21(x0)
U21(tt) -> tt
U61(x0, x1, x2) -> U61(x0, x1, x2)
U61(tt, L, N) -> U62(isNat(N), L)
U62(tt, L) -> s(length(mark(L)))
U62(x0, x1) -> U62(x0, x1)
length(cons(N, L)) -> U61(isNatList(L), L, N)
length(x0) -> length(x0)
U52(x0) -> U52(x0)
U52(tt) -> tt
isNat(x0) -> isNat(x0)
isNat(length(V1)) -> U11(isNatList(V1))
isNat(0) -> tt
U11(x0) -> U11(x0)
U11(tt) -> tt
U51(x0, x1) -> U51(x0, x1)
U41(tt, V2) -> U42(isNatIList(V2))
U41(x0, x1) -> U41(x0, x1)
isNatList(x0) -> isNatList(x0)
isNatIList(zeros) -> tt
|
|
|
|
|
|
|
|
|
|
|
|
|
|
trivial
U51(x1, x2) -> U51(x1, x2)
U62(x1, x2) -> U62(x1, x2)
U31(x1) -> U31(x1)
U21(x1) -> U21(x1)
U52(x1) -> U52(x1)
U61(x1, x2, x3) -> U61(x1, x2, x3)
s(x1) -> s(x1)
U11(x1) -> U11(x1)
length(x1) -> length(x1)