0 QTRS
↳1 Overlay + Local Confluence (⇔)
↳2 QTRS
↳3 DependencyPairsProof (⇔)
↳4 QDP
↳5 DependencyGraphProof (⇔)
↳6 AND
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 PisEmptyProof (⇔)
↳11 TRUE
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 PisEmptyProof (⇔)
↳16 TRUE
↳17 QDP
↳18 QDPOrderProof (⇔)
↳19 QDP
↳20 PisEmptyProof (⇔)
↳21 TRUE
↳22 QDP
↳23 QDPOrderProof (⇔)
↳24 QDP
↳25 PisEmptyProof (⇔)
↳26 TRUE
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x0, 0)
+(0, x0)
+(s(x0), s(x1))
*(x0, 0)
*(0, x0)
*(s(x0), s(x1))
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))
+1(s(x), s(y)) → +1(x, y)
*1(s(x), s(y)) → +1(*(x, y), +(x, y))
*1(s(x), s(y)) → *1(x, y)
*1(s(x), s(y)) → +1(x, y)
SUM(cons(x, l)) → +1(x, sum(l))
SUM(cons(x, l)) → SUM(l)
PROD(cons(x, l)) → *1(x, prod(l))
PROD(cons(x, l)) → PROD(l)
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x0, 0)
+(0, x0)
+(s(x0), s(x1))
*(x0, 0)
*(0, x0)
*(s(x0), s(x1))
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))
+1(s(x), s(y)) → +1(x, y)
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x0, 0)
+(0, x0)
+(s(x0), s(x1))
*(x0, 0)
*(0, x0)
*(s(x0), s(x1))
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
+1(s(x), s(y)) → +1(x, y)
+^12 > s1
[0, nil] > s1
prod1 > *2 > [+2, sum1, cons2] > s1
+^12: multiset
s1: multiset
+2: [1,2]
0: multiset
*2: multiset
sum1: [1]
nil: multiset
cons2: [2,1]
prod1: [1]
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x0, 0)
+(0, x0)
+(s(x0), s(x1))
*(x0, 0)
*(0, x0)
*(s(x0), s(x1))
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))
SUM(cons(x, l)) → SUM(l)
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x0, 0)
+(0, x0)
+(s(x0), s(x1))
*(x0, 0)
*(0, x0)
*(s(x0), s(x1))
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SUM(cons(x, l)) → SUM(l)
[SUM1, cons2, +2] > [0, s, *, prod]
nil > [0, s, *, prod]
SUM1: multiset
cons2: multiset
+2: multiset
0: multiset
s: multiset
*: multiset
nil: multiset
prod: multiset
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x0, 0)
+(0, x0)
+(s(x0), s(x1))
*(x0, 0)
*(0, x0)
*(s(x0), s(x1))
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))
*1(s(x), s(y)) → *1(x, y)
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x0, 0)
+(0, x0)
+(s(x0), s(x1))
*(x0, 0)
*(0, x0)
*(s(x0), s(x1))
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
*1(s(x), s(y)) → *1(x, y)
[*2, prod1] > [+2, cons2] > s1
[*2, prod1] > 0
nil > s1
nil > 0
*^12: multiset
s1: multiset
+2: multiset
0: multiset
*2: [1,2]
nil: multiset
cons2: multiset
prod1: [1]
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x0, 0)
+(0, x0)
+(s(x0), s(x1))
*(x0, 0)
*(0, x0)
*(s(x0), s(x1))
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))
PROD(cons(x, l)) → PROD(l)
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x0, 0)
+(0, x0)
+(s(x0), s(x1))
*(x0, 0)
*(0, x0)
*(s(x0), s(x1))
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PROD(cons(x, l)) → PROD(l)
[PROD1, cons2, +2] > [0, s, *, prod]
nil > [0, s, *, prod]
PROD1: multiset
cons2: multiset
+2: multiset
0: multiset
s: multiset
*: multiset
nil: multiset
prod: multiset
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x, 0) → x
+(0, x) → x
+(s(x), s(y)) → s(s(+(x, y)))
*(x, 0) → 0
*(0, x) → 0
*(s(x), s(y)) → s(+(*(x, y), +(x, y)))
sum(nil) → 0
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → s(0)
prod(cons(x, l)) → *(x, prod(l))
+(x0, 0)
+(0, x0)
+(s(x0), s(x1))
*(x0, 0)
*(0, x0)
*(s(x0), s(x1))
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))