YES(O(1), O(n^3)) 3.46/1.38 YES(O(1), O(n^3)) 3.46/1.40 3.46/1.40 3.46/1.40
3.46/1.40 3.46/1.400 CpxTRS3.46/1.40
↳1 CpxTrsToCdtProof (BOTH BOUNDS(ID, ID))3.46/1.40
↳2 CdtProblem3.46/1.40
↳3 CdtLeafRemovalProof (ComplexityIfPolyImplication)3.46/1.40
↳4 CdtProblem3.46/1.40
↳5 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))))3.46/1.40
↳6 CdtProblem3.46/1.40
↳7 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^2))))3.46/1.40
↳8 CdtProblem3.46/1.40
↳9 CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^3))))3.46/1.40
↳10 CdtProblem3.46/1.40
↳11 SIsEmptyProof (BOTH BOUNDS(ID, ID))3.46/1.40
↳12 BOUNDS(O(1), O(1))3.46/1.40
shuffle(Cons(x, xs)) → Cons(x, shuffle(reverse(xs))) 3.46/1.40
reverse(Cons(x, xs)) → append(reverse(xs), Cons(x, Nil)) 3.46/1.40
append(Cons(x, xs), ys) → Cons(x, append(xs, ys)) 3.46/1.40
shuffle(Nil) → Nil 3.46/1.40
reverse(Nil) → Nil 3.46/1.40
append(Nil, ys) → ys 3.46/1.40
goal(xs) → shuffle(xs)
Tuples:
shuffle(Cons(z0, z1)) → Cons(z0, shuffle(reverse(z1))) 3.46/1.40
shuffle(Nil) → Nil 3.46/1.40
reverse(Cons(z0, z1)) → append(reverse(z1), Cons(z0, Nil)) 3.46/1.40
reverse(Nil) → Nil 3.46/1.40
append(Cons(z0, z1), z2) → Cons(z0, append(z1, z2)) 3.46/1.40
append(Nil, z0) → z0 3.46/1.40
goal(z0) → shuffle(z0)
S tuples:
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1)) 3.46/1.40
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1)) 3.46/1.40
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2)) 3.46/1.40
GOAL(z0) → c6(SHUFFLE(z0))
K tuples:none
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1)) 3.79/1.41
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1)) 3.79/1.41
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2)) 3.79/1.41
GOAL(z0) → c6(SHUFFLE(z0))
shuffle, reverse, append, goal
SHUFFLE, REVERSE, APPEND, GOAL
c, c2, c4, c6
GOAL(z0) → c6(SHUFFLE(z0))
Tuples:
shuffle(Cons(z0, z1)) → Cons(z0, shuffle(reverse(z1))) 3.79/1.41
shuffle(Nil) → Nil 3.79/1.41
reverse(Cons(z0, z1)) → append(reverse(z1), Cons(z0, Nil)) 3.79/1.41
reverse(Nil) → Nil 3.79/1.41
append(Cons(z0, z1), z2) → Cons(z0, append(z1, z2)) 3.79/1.41
append(Nil, z0) → z0 3.79/1.41
goal(z0) → shuffle(z0)
S tuples:
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1)) 3.79/1.41
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1)) 3.79/1.41
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2))
K tuples:none
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1)) 3.79/1.41
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1)) 3.79/1.41
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2))
shuffle, reverse, append, goal
SHUFFLE, REVERSE, APPEND
c, c2, c4
We considered the (Usable) Rules:
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1))
And the Tuples:
reverse(Cons(z0, z1)) → append(reverse(z1), Cons(z0, Nil)) 3.79/1.41
reverse(Nil) → Nil 3.79/1.41
append(Cons(z0, z1), z2) → Cons(z0, append(z1, z2)) 3.79/1.41
append(Nil, z0) → z0
The order we found is given by the following interpretation:
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1)) 3.79/1.41
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1)) 3.79/1.41
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2))
POL(APPEND(x1, x2)) = 0 3.79/1.41
POL(Cons(x1, x2)) = [1] + x1 + x2 3.79/1.41
POL(Nil) = 0 3.79/1.41
POL(REVERSE(x1)) = 0 3.79/1.41
POL(SHUFFLE(x1)) = x1 3.79/1.41
POL(append(x1, x2)) = x1 + x2 3.79/1.41
POL(c(x1, x2)) = x1 + x2 3.79/1.41
POL(c2(x1, x2)) = x1 + x2 3.79/1.41
POL(c4(x1)) = x1 3.79/1.41
POL(reverse(x1)) = x1
Tuples:
shuffle(Cons(z0, z1)) → Cons(z0, shuffle(reverse(z1))) 3.79/1.41
shuffle(Nil) → Nil 3.79/1.41
reverse(Cons(z0, z1)) → append(reverse(z1), Cons(z0, Nil)) 3.79/1.41
reverse(Nil) → Nil 3.79/1.41
append(Cons(z0, z1), z2) → Cons(z0, append(z1, z2)) 3.79/1.41
append(Nil, z0) → z0 3.79/1.41
goal(z0) → shuffle(z0)
S tuples:
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1)) 3.79/1.41
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1)) 3.79/1.41
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2))
K tuples:
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1)) 3.79/1.41
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2))
Defined Rule Symbols:
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1))
shuffle, reverse, append, goal
SHUFFLE, REVERSE, APPEND
c, c2, c4
We considered the (Usable) Rules:
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1))
And the Tuples:
reverse(Cons(z0, z1)) → append(reverse(z1), Cons(z0, Nil)) 3.79/1.41
reverse(Nil) → Nil 3.79/1.41
append(Cons(z0, z1), z2) → Cons(z0, append(z1, z2)) 3.79/1.41
append(Nil, z0) → z0
The order we found is given by the following interpretation:
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1)) 3.79/1.41
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1)) 3.79/1.41
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2))
POL(APPEND(x1, x2)) = [1] 3.79/1.41
POL(Cons(x1, x2)) = [2] + x2 3.79/1.41
POL(Nil) = 0 3.79/1.41
POL(REVERSE(x1)) = [3]x1 3.79/1.41
POL(SHUFFLE(x1)) = x1 + x12 3.79/1.41
POL(append(x1, x2)) = x1 + x2 3.79/1.41
POL(c(x1, x2)) = x1 + x2 3.79/1.41
POL(c2(x1, x2)) = x1 + x2 3.79/1.41
POL(c4(x1)) = x1 3.79/1.41
POL(reverse(x1)) = x1
Tuples:
shuffle(Cons(z0, z1)) → Cons(z0, shuffle(reverse(z1))) 3.79/1.41
shuffle(Nil) → Nil 3.79/1.41
reverse(Cons(z0, z1)) → append(reverse(z1), Cons(z0, Nil)) 3.79/1.41
reverse(Nil) → Nil 3.79/1.41
append(Cons(z0, z1), z2) → Cons(z0, append(z1, z2)) 3.79/1.41
append(Nil, z0) → z0 3.79/1.41
goal(z0) → shuffle(z0)
S tuples:
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1)) 3.79/1.41
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1)) 3.79/1.41
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2))
K tuples:
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2))
Defined Rule Symbols:
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1)) 3.79/1.41
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1))
shuffle, reverse, append, goal
SHUFFLE, REVERSE, APPEND
c, c2, c4
We considered the (Usable) Rules:
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2))
And the Tuples:
reverse(Cons(z0, z1)) → append(reverse(z1), Cons(z0, Nil)) 3.79/1.41
reverse(Nil) → Nil 3.79/1.41
append(Cons(z0, z1), z2) → Cons(z0, append(z1, z2)) 3.79/1.41
append(Nil, z0) → z0
The order we found is given by the following interpretation:
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1)) 3.79/1.41
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1)) 3.79/1.41
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2))
POL(APPEND(x1, x2)) = x1 3.79/1.41
POL(Cons(x1, x2)) = [1] + x2 3.79/1.41
POL(Nil) = 0 3.79/1.41
POL(REVERSE(x1)) = x12 3.79/1.41
POL(SHUFFLE(x1)) = x13 3.79/1.41
POL(append(x1, x2)) = x1 + x2 3.79/1.41
POL(c(x1, x2)) = x1 + x2 3.79/1.41
POL(c2(x1, x2)) = x1 + x2 3.79/1.41
POL(c4(x1)) = x1 3.79/1.41
POL(reverse(x1)) = x1
Tuples:
shuffle(Cons(z0, z1)) → Cons(z0, shuffle(reverse(z1))) 3.79/1.41
shuffle(Nil) → Nil 3.79/1.41
reverse(Cons(z0, z1)) → append(reverse(z1), Cons(z0, Nil)) 3.79/1.41
reverse(Nil) → Nil 3.79/1.41
append(Cons(z0, z1), z2) → Cons(z0, append(z1, z2)) 3.79/1.41
append(Nil, z0) → z0 3.79/1.41
goal(z0) → shuffle(z0)
S tuples:none
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1)) 3.79/1.41
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1)) 3.79/1.41
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2))
Defined Rule Symbols:
SHUFFLE(Cons(z0, z1)) → c(SHUFFLE(reverse(z1)), REVERSE(z1)) 3.79/1.41
REVERSE(Cons(z0, z1)) → c2(APPEND(reverse(z1), Cons(z0, Nil)), REVERSE(z1)) 3.79/1.41
APPEND(Cons(z0, z1), z2) → c4(APPEND(z1, z2))
shuffle, reverse, append, goal
SHUFFLE, REVERSE, APPEND
c, c2, c4