0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDP
↳7 QDPOrderProof (⇔)
↳8 QDP
↳9 PisEmptyProof (⇔)
↳10 TRUE
↳11 QDP
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 PisEmptyProof (⇔)
↳16 TRUE
0(#) → #
+(x, #) → x
+(#, x) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
sum(nil) → 0(#)
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → 1(#)
prod(cons(x, l)) → *(x, prod(l))
+1(0(x), 0(y)) → 01(+(x, y))
+1(0(x), 0(y)) → +1(x, y)
+1(0(x), 1(y)) → +1(x, y)
+1(1(x), 0(y)) → +1(x, y)
+1(1(x), 1(y)) → 01(+(+(x, y), 1(#)))
+1(1(x), 1(y)) → +1(+(x, y), 1(#))
+1(1(x), 1(y)) → +1(x, y)
*1(0(x), y) → 01(*(x, y))
*1(0(x), y) → *1(x, y)
*1(1(x), y) → +1(0(*(x, y)), y)
*1(1(x), y) → 01(*(x, y))
*1(1(x), y) → *1(x, y)
SUM(nil) → 01(#)
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)
0(#) → #
+(x, #) → x
+(#, x) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
sum(nil) → 0(#)
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → 1(#)
prod(cons(x, l)) → *(x, prod(l))
+1(0(x), 1(y)) → +1(x, y)
+1(0(x), 0(y)) → +1(x, y)
+1(1(x), 0(y)) → +1(x, y)
+1(1(x), 1(y)) → +1(+(x, y), 1(#))
+1(1(x), 1(y)) → +1(x, y)
0(#) → #
+(x, #) → x
+(#, x) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
sum(nil) → 0(#)
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → 1(#)
prod(cons(x, l)) → *(x, prod(l))
SUM(cons(x, l)) → SUM(l)
0(#) → #
+(x, #) → x
+(#, x) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
sum(nil) → 0(#)
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → 1(#)
prod(cons(x, l)) → *(x, prod(l))
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 > [0, #, 1]
[*2, prod1] > +2 > [0, #, 1]
sum1 > +2 > [0, #, 1]
nil > [0, #, 1]
SUM1: [1]
cons2: multiset
0: multiset
#: multiset
+2: multiset
1: multiset
*2: [1,2]
sum1: multiset
nil: multiset
prod1: [1]
0(#) → #
+(x, #) → x
+(#, x) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
sum(nil) → 0(#)
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → 1(#)
prod(cons(x, l)) → *(x, prod(l))
0(#) → #
+(x, #) → x
+(#, x) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
sum(nil) → 0(#)
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → 1(#)
prod(cons(x, l)) → *(x, prod(l))
*1(1(x), y) → *1(x, y)
*1(0(x), y) → *1(x, y)
0(#) → #
+(x, #) → x
+(#, x) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
sum(nil) → 0(#)
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → 1(#)
prod(cons(x, l)) → *(x, prod(l))
PROD(cons(x, l)) → PROD(l)
0(#) → #
+(x, #) → x
+(#, x) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
sum(nil) → 0(#)
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → 1(#)
prod(cons(x, l)) → *(x, prod(l))
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 > PROD1 > [0, #, 1]
[*2, prod1] > +2 > [0, #, 1]
sum1 > +2 > [0, #, 1]
nil > [0, #, 1]
PROD1: [1]
cons2: multiset
0: multiset
#: multiset
+2: multiset
1: multiset
*2: [1,2]
sum1: multiset
nil: multiset
prod1: [1]
0(#) → #
+(x, #) → x
+(#, x) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
sum(nil) → 0(#)
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → 1(#)
prod(cons(x, l)) → *(x, prod(l))
0(#) → #
+(x, #) → x
+(#, x) → x
+(0(x), 0(y)) → 0(+(x, y))
+(0(x), 1(y)) → 1(+(x, y))
+(1(x), 0(y)) → 1(+(x, y))
+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))
*(#, x) → #
*(0(x), y) → 0(*(x, y))
*(1(x), y) → +(0(*(x, y)), y)
sum(nil) → 0(#)
sum(cons(x, l)) → +(x, sum(l))
prod(nil) → 1(#)
prod(cons(x, l)) → *(x, prod(l))