MAYBE 254.94/218.75 MAYBE 254.94/218.77 254.94/218.77 254.94/218.77 254.94/218.77 254.94/218.77 254.94/218.77 Runtime Complexity (innermost) proof of /export/starexec/sandbox/benchmark/theBenchmark.xml.xml 254.94/218.77 254.94/218.77 254.94/218.77
254.94/218.77 254.94/218.77 254.94/218.77
254.94/218.77
254.94/218.77

(0) Obligation:

Runtime Complexity TRS:
The TRS R consists of the following rules:

p(s(x)) → x 254.94/218.77
fact(0) → s(0) 254.94/218.77
fact(s(x)) → *(s(x), fact(p(s(x)))) 254.94/218.77
*(0, y) → 0 254.94/218.77
*(s(x), y) → +(*(x, y), y) 254.94/218.77
+(x, 0) → x 254.94/218.77
+(x, s(y)) → s(+(x, y))

Rewrite Strategy: INNERMOST
254.94/218.77
254.94/218.77

(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)

Converted CpxTRS to CDT
254.94/218.77
254.94/218.77

(2) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(s(z0)) → z0 254.94/218.77
fact(0) → s(0) 254.94/218.77
fact(s(z0)) → *(s(z0), fact(p(s(z0)))) 254.94/218.77
*(0, z0) → 0 254.94/218.77
*(s(z0), z1) → +(*(z0, z1), z1) 254.94/218.77
+(z0, 0) → z0 254.94/218.77
+(z0, s(z1)) → s(+(z0, z1))
Tuples:

FACT(s(z0)) → c2(*'(s(z0), fact(p(s(z0)))), FACT(p(s(z0))), P(s(z0))) 254.94/218.77
*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.77
+'(z0, s(z1)) → c6(+'(z0, z1))
S tuples:

FACT(s(z0)) → c2(*'(s(z0), fact(p(s(z0)))), FACT(p(s(z0))), P(s(z0))) 254.94/218.77
*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.77
+'(z0, s(z1)) → c6(+'(z0, z1))
K tuples:none
Defined Rule Symbols:

p, fact, *, +

Defined Pair Symbols:

FACT, *', +'

Compound Symbols:

c2, c4, c6

254.94/218.77
254.94/218.77

(3) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing tuple parts
254.94/218.77
254.94/218.77

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(s(z0)) → z0 254.94/218.77
fact(0) → s(0) 254.94/218.77
fact(s(z0)) → *(s(z0), fact(p(s(z0)))) 254.94/218.77
*(0, z0) → 0 254.94/218.77
*(s(z0), z1) → +(*(z0, z1), z1) 254.94/218.77
+(z0, 0) → z0 254.94/218.77
+(z0, s(z1)) → s(+(z0, z1))
Tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.77
+'(z0, s(z1)) → c6(+'(z0, z1)) 254.94/218.77
FACT(s(z0)) → c2(*'(s(z0), fact(p(s(z0)))), FACT(p(s(z0))))
S tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.77
+'(z0, s(z1)) → c6(+'(z0, z1)) 254.94/218.77
FACT(s(z0)) → c2(*'(s(z0), fact(p(s(z0)))), FACT(p(s(z0))))
K tuples:none
Defined Rule Symbols:

p, fact, *, +

Defined Pair Symbols:

*', +', FACT

Compound Symbols:

c4, c6, c2

254.94/218.77
254.94/218.77

(5) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace FACT(s(z0)) → c2(*'(s(z0), fact(p(s(z0)))), FACT(p(s(z0)))) by

FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(p(s(z0))))
254.94/218.77
254.94/218.77

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(s(z0)) → z0 254.94/218.77
fact(0) → s(0) 254.94/218.77
fact(s(z0)) → *(s(z0), fact(p(s(z0)))) 254.94/218.77
*(0, z0) → 0 254.94/218.77
*(s(z0), z1) → +(*(z0, z1), z1) 254.94/218.77
+(z0, 0) → z0 254.94/218.77
+(z0, s(z1)) → s(+(z0, z1))
Tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.77
+'(z0, s(z1)) → c6(+'(z0, z1)) 254.94/218.77
FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(p(s(z0))))
S tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.77
+'(z0, s(z1)) → c6(+'(z0, z1)) 254.94/218.77
FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(p(s(z0))))
K tuples:none
Defined Rule Symbols:

p, fact, *, +

Defined Pair Symbols:

*', +', FACT

Compound Symbols:

c4, c6, c2

254.94/218.77
254.94/218.77

(7) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(p(s(z0)))) by

FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0))
254.94/218.77
254.94/218.77

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(s(z0)) → z0 254.94/218.77
fact(0) → s(0) 254.94/218.77
fact(s(z0)) → *(s(z0), fact(p(s(z0)))) 254.94/218.77
*(0, z0) → 0 254.94/218.77
*(s(z0), z1) → +(*(z0, z1), z1) 254.94/218.77
+(z0, 0) → z0 254.94/218.78
+(z0, s(z1)) → s(+(z0, z1))
Tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.78
+'(z0, s(z1)) → c6(+'(z0, z1)) 254.94/218.78
FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0))
S tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.78
+'(z0, s(z1)) → c6(+'(z0, z1)) 254.94/218.78
FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0))
K tuples:none
Defined Rule Symbols:

p, fact, *, +

Defined Pair Symbols:

*', +', FACT

Compound Symbols:

c4, c6, c2

254.94/218.78
254.94/218.78

(9) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0))
We considered the (Usable) Rules:

fact(0) → s(0) 254.94/218.78
fact(s(z0)) → *(s(z0), fact(p(s(z0)))) 254.94/218.78
p(s(z0)) → z0 254.94/218.78
*(s(z0), z1) → +(*(z0, z1), z1) 254.94/218.78
*(0, z0) → 0 254.94/218.78
+(z0, 0) → z0 254.94/218.78
+(z0, s(z1)) → s(+(z0, z1))
And the Tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.78
+'(z0, s(z1)) → c6(+'(z0, z1)) 254.94/218.78
FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0))
The order we found is given by the following interpretation:
Polynomial interpretation : 254.94/218.78

POL(*(x1, x2)) = [2]x2    254.94/218.78
POL(*'(x1, x2)) = 0    254.94/218.78
POL(+(x1, x2)) = [5] + [3]x2    254.94/218.78
POL(+'(x1, x2)) = 0    254.94/218.78
POL(0) = [5]    254.94/218.78
POL(FACT(x1)) = [4]x1    254.94/218.78
POL(c2(x1, x2)) = x1 + x2    254.94/218.78
POL(c4(x1, x2)) = x1 + x2    254.94/218.78
POL(c6(x1)) = x1    254.94/218.78
POL(fact(x1)) = [2] + [4]x1    254.94/218.78
POL(p(x1)) = [1]    254.94/218.78
POL(s(x1)) = [4] + x1   
254.94/218.78
254.94/218.78

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(s(z0)) → z0 254.94/218.78
fact(0) → s(0) 254.94/218.78
fact(s(z0)) → *(s(z0), fact(p(s(z0)))) 254.94/218.78
*(0, z0) → 0 254.94/218.78
*(s(z0), z1) → +(*(z0, z1), z1) 254.94/218.78
+(z0, 0) → z0 254.94/218.78
+(z0, s(z1)) → s(+(z0, z1))
Tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.78
+'(z0, s(z1)) → c6(+'(z0, z1)) 254.94/218.78
FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0))
S tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.78
+'(z0, s(z1)) → c6(+'(z0, z1))
K tuples:

FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0))
Defined Rule Symbols:

p, fact, *, +

Defined Pair Symbols:

*', +', FACT

Compound Symbols:

c4, c6, c2

254.94/218.78
254.94/218.78

(11) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^2))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1))
We considered the (Usable) Rules:

fact(0) → s(0) 254.94/218.78
fact(s(z0)) → *(s(z0), fact(p(s(z0)))) 254.94/218.78
p(s(z0)) → z0 254.94/218.78
*(s(z0), z1) → +(*(z0, z1), z1) 254.94/218.78
*(0, z0) → 0 254.94/218.78
+(z0, 0) → z0 254.94/218.78
+(z0, s(z1)) → s(+(z0, z1))
And the Tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.78
+'(z0, s(z1)) → c6(+'(z0, z1)) 254.94/218.78
FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0))
The order we found is given by the following interpretation:
Polynomial interpretation : 254.94/218.78

POL(*(x1, x2)) = 0    254.94/218.78
POL(*'(x1, x2)) = [2]x1    254.94/218.78
POL(+(x1, x2)) = [3] + [3]x2 + [3]x22    254.94/218.78
POL(+'(x1, x2)) = 0    254.94/218.78
POL(0) = 0    254.94/218.78
POL(FACT(x1)) = [2]x1 + x12    254.94/218.78
POL(c2(x1, x2)) = x1 + x2    254.94/218.78
POL(c4(x1, x2)) = x1 + x2    254.94/218.78
POL(c6(x1)) = x1    254.94/218.78
POL(fact(x1)) = 0    254.94/218.78
POL(p(x1)) = 0    254.94/218.78
POL(s(x1)) = [2] + x1   
254.94/218.78
254.94/218.78

(12) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(s(z0)) → z0 254.94/218.78
fact(0) → s(0) 254.94/218.78
fact(s(z0)) → *(s(z0), fact(p(s(z0)))) 254.94/218.78
*(0, z0) → 0 254.94/218.78
*(s(z0), z1) → +(*(z0, z1), z1) 254.94/218.78
+(z0, 0) → z0 254.94/218.78
+(z0, s(z1)) → s(+(z0, z1))
Tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.78
+'(z0, s(z1)) → c6(+'(z0, z1)) 254.94/218.78
FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0))
S tuples:

+'(z0, s(z1)) → c6(+'(z0, z1))
K tuples:

FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0)) 254.94/218.78
*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1))
Defined Rule Symbols:

p, fact, *, +

Defined Pair Symbols:

*', +', FACT

Compound Symbols:

c4, c6, c2

254.94/218.78
254.94/218.78

(13) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace +'(z0, s(z1)) → c6(+'(z0, z1)) by

+'(z0, s(s(y1))) → c6(+'(z0, s(y1)))
254.94/218.78
254.94/218.78

(14) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(s(z0)) → z0 254.94/218.78
fact(0) → s(0) 254.94/218.78
fact(s(z0)) → *(s(z0), fact(p(s(z0)))) 254.94/218.78
*(0, z0) → 0 254.94/218.78
*(s(z0), z1) → +(*(z0, z1), z1) 254.94/218.78
+(z0, 0) → z0 254.94/218.78
+(z0, s(z1)) → s(+(z0, z1))
Tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.78
FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0)) 254.94/218.78
+'(z0, s(s(y1))) → c6(+'(z0, s(y1)))
S tuples:

+'(z0, s(s(y1))) → c6(+'(z0, s(y1)))
K tuples:

FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0)) 254.94/218.78
*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1))
Defined Rule Symbols:

p, fact, *, +

Defined Pair Symbols:

*', FACT, +'

Compound Symbols:

c4, c2, c6

254.94/218.78
254.94/218.78

(15) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace +'(z0, s(s(y1))) → c6(+'(z0, s(y1))) by

+'(z0, s(s(s(y1)))) → c6(+'(z0, s(s(y1))))
254.94/218.78
254.94/218.78

(16) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(s(z0)) → z0 254.94/218.78
fact(0) → s(0) 254.94/218.78
fact(s(z0)) → *(s(z0), fact(p(s(z0)))) 254.94/218.78
*(0, z0) → 0 254.94/218.78
*(s(z0), z1) → +(*(z0, z1), z1) 254.94/218.78
+(z0, 0) → z0 254.94/218.78
+(z0, s(z1)) → s(+(z0, z1))
Tuples:

*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1)) 254.94/218.78
FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0)) 254.94/218.78
+'(z0, s(s(s(y1)))) → c6(+'(z0, s(s(y1))))
S tuples:

+'(z0, s(s(s(y1)))) → c6(+'(z0, s(s(y1))))
K tuples:

FACT(s(z0)) → c2(*'(s(z0), fact(z0)), FACT(z0)) 254.94/218.78
*'(s(z0), z1) → c4(+'(*(z0, z1), z1), *'(z0, z1))
Defined Rule Symbols:

p, fact, *, +

Defined Pair Symbols:

*', FACT, +'

Compound Symbols:

c4, c2, c6

254.94/218.78
254.94/218.78
255.45/218.84 EOF