(0) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

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))

Q is empty.

(1) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.

(2) Obligation:

Q DP problem:
The TRS P consists of the following rules:

+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)

The TRS R consists of the following rules:

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(3) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs with 8 less nodes.

(4) Complex Obligation (AND)

(5) Obligation:

Q DP problem:
The TRS P consists of the following rules:

+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)

The TRS R consists of the following rules:

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(6) UsableRulesProof (EQUIVALENT transformation)

We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.

(7) Obligation:

Q DP problem:
The TRS P consists of the following rules:

+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)

The TRS R consists of the following rules:

+(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(#)))
0(#) → #

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(8) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

+1(0(x), 1(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)

Strictly oriented rules of the TRS R:

+(1(x), 1(y)) → 0(+(+(x, y), 1(#)))

Used ordering: Polynomial interpretation [POLO]:

POL(#) = 0   
POL(+(x1, x2)) = x1 + x2   
POL(+1(x1, x2)) = x1 + x2   
POL(0(x1)) = x1   
POL(1(x1)) = 1 + x1   

(9) Obligation:

Q DP problem:
The TRS P consists of the following rules:

+1(0(x), 0(y)) → +1(x, y)

The TRS R consists of the following rules:

+(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))
0(#) → #

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(10) UsableRulesProof (EQUIVALENT transformation)

We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.

(11) Obligation:

Q DP problem:
The TRS P consists of the following rules:

+1(0(x), 0(y)) → +1(x, y)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(12) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • +1(0(x), 0(y)) → +1(x, y)
    The graph contains the following edges 1 > 1, 2 > 2

(13) TRUE

(14) Obligation:

Q DP problem:
The TRS P consists of the following rules:

SUM(cons(x, l)) → SUM(l)

The TRS R consists of the following rules:

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(15) MNOCProof (EQUIVALENT transformation)

We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R.

(16) Obligation:

Q DP problem:
The TRS P consists of the following rules:

SUM(cons(x, l)) → SUM(l)

The TRS R consists of the following rules:

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 set Q consists of the following terms:

0(#)
+(x0, #)
+(#, x0)
+(0(x0), 0(x1))
+(0(x0), 1(x1))
+(1(x0), 0(x1))
+(1(x0), 1(x1))
*(#, x0)
*(0(x0), x1)
*(1(x0), x1)
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))

We have to consider all minimal (P,Q,R)-chains.

(17) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

SUM(cons(x, l)) → SUM(l)

R is empty.
The set Q consists of the following terms:

0(#)
+(x0, #)
+(#, x0)
+(0(x0), 0(x1))
+(0(x0), 1(x1))
+(1(x0), 0(x1))
+(1(x0), 1(x1))
*(#, x0)
*(0(x0), x1)
*(1(x0), x1)
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))

We have to consider all minimal (P,Q,R)-chains.

(19) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

0(#)
+(x0, #)
+(#, x0)
+(0(x0), 0(x1))
+(0(x0), 1(x1))
+(1(x0), 0(x1))
+(1(x0), 1(x1))
*(#, x0)
*(0(x0), x1)
*(1(x0), x1)
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

SUM(cons(x, l)) → SUM(l)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(21) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • SUM(cons(x, l)) → SUM(l)
    The graph contains the following edges 1 > 1

(22) TRUE

(23) Obligation:

Q DP problem:
The TRS P consists of the following rules:

*1(1(x), y) → *1(x, y)
*1(0(x), y) → *1(x, y)

The TRS R consists of the following rules:

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(24) UsableRulesProof (EQUIVALENT transformation)

We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.

(25) Obligation:

Q DP problem:
The TRS P consists of the following rules:

*1(1(x), y) → *1(x, y)
*1(0(x), y) → *1(x, y)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(26) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • *1(1(x), y) → *1(x, y)
    The graph contains the following edges 1 > 1, 2 >= 2

  • *1(0(x), y) → *1(x, y)
    The graph contains the following edges 1 > 1, 2 >= 2

(27) TRUE

(28) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PROD(cons(x, l)) → PROD(l)

The TRS R consists of the following rules:

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))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(29) MNOCProof (EQUIVALENT transformation)

We use the modular non-overlap check [LPAR04] to enlarge Q to all left-hand sides of R.

(30) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PROD(cons(x, l)) → PROD(l)

The TRS R consists of the following rules:

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 set Q consists of the following terms:

0(#)
+(x0, #)
+(#, x0)
+(0(x0), 0(x1))
+(0(x0), 1(x1))
+(1(x0), 0(x1))
+(1(x0), 1(x1))
*(#, x0)
*(0(x0), x1)
*(1(x0), x1)
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))

We have to consider all minimal (P,Q,R)-chains.

(31) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(32) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PROD(cons(x, l)) → PROD(l)

R is empty.
The set Q consists of the following terms:

0(#)
+(x0, #)
+(#, x0)
+(0(x0), 0(x1))
+(0(x0), 1(x1))
+(1(x0), 0(x1))
+(1(x0), 1(x1))
*(#, x0)
*(0(x0), x1)
*(1(x0), x1)
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))

We have to consider all minimal (P,Q,R)-chains.

(33) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

0(#)
+(x0, #)
+(#, x0)
+(0(x0), 0(x1))
+(0(x0), 1(x1))
+(1(x0), 0(x1))
+(1(x0), 1(x1))
*(#, x0)
*(0(x0), x1)
*(1(x0), x1)
sum(nil)
sum(cons(x0, x1))
prod(nil)
prod(cons(x0, x1))

(34) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PROD(cons(x, l)) → PROD(l)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(35) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • PROD(cons(x, l)) → PROD(l)
    The graph contains the following edges 1 > 1

(36) TRUE