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)
sum1 > +2 > s1
sum1 > 0 > s1
nil > s1
cons2 > s1
prod1 > *2 > +2 > s1
prod1 > *2 > 0 > s1
+(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)
cons2 > sum1 > +2 > 0
nil > s > 0
+(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)
sum1 > +2 > s1
sum1 > 0 > s1
nil > s1
cons2 > s1
prod1 > *2 > +2 > s1
prod1 > *2 > 0 > s1
+(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)
cons2 > sum1 > +2 > 0
nil > s > 0
+(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))