Certification Problem

Input (TPDB TRS_Equational/AProVE_AC_04/AC22)

The rewrite relation of the following equational TRS is considered.

zero(0) 0 (1)
plus(x,0) x (2)
plus(zero(x),zero(y)) zero(plus(x,y)) (3)
plus(zero(x),un(y)) un(plus(x,y)) (4)
plus(zero(x),j(y)) j(plus(x,y)) (5)
plus(un(x),j(y)) zero(plus(x,y)) (6)
plus(un(x),un(y)) j(plus(x,plus(y,un(0)))) (7)
plus(j(x),j(y)) un(plus(x,plus(y,j(0)))) (8)
minus(x,y) plus(x,neg(y)) (9)
neg(0) 0 (10)
neg(zero(x)) zero(neg(x)) (11)
neg(un(x)) j(neg(x)) (12)
neg(j(x)) un(neg(x)) (13)
times(x,0) 0 (14)
times(x,times(0,z)) times(0,z) (15)
times(x,zero(y)) zero(times(x,y)) (16)
times(x,times(zero(y),z)) times(zero(times(x,y)),z) (17)
times(x,un(y)) plus(x,zero(times(x,y))) (18)
times(x,times(un(y),z)) times(plus(x,zero(times(x,y))),z) (19)
times(x,j(y)) plus(zero(times(x,y)),neg(x)) (20)
times(x,times(j(y),z)) times(plus(zero(times(x,y)),neg(x)),z) (21)

Associative symbols: plus, times

Commutative symbols: plus, times

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 AC Rule Removal

Using the non-linear polynomial interpretation over the naturals
[plus(x1, x2)] = 1 · x2 + 1 · x1
[times(x1, x2)] = 1 · x2 + 1 · x1 + 2 · x1 · x2
[zero(x1)] = 1 · x1
[0] = 0
[un(x1)] = 1 + 1 · x1
[j(x1)] = 1 + 1 · x1
[minus(x1, x2)] = 1 · x2 + 1 · x1
[neg(x1)] = 1 · x1
the rules
plus(un(x),j(y)) zero(plus(x,y)) (6)
times(x,un(y)) plus(x,zero(times(x,y))) (18)
times(x,times(un(y),z)) times(plus(x,zero(times(x,y))),z) (19)
times(x,j(y)) plus(zero(times(x,y)),neg(x)) (20)
times(x,times(j(y),z)) times(plus(zero(times(x,y)),neg(x)),z) (21)
can be deleted.

1.1 AC Rule Removal

Using the non-linear polynomial interpretation over the naturals
[plus(x1, x2)] = 1 · x2 + 1 · x1 + 1 · x1 · x2
[times(x1, x2)] = 1 · x2 + 1 · x1
[zero(x1)] = 1 · x1
[0] = 0
[un(x1)] = 1 + 2 · x1
[j(x1)] = 1 + 2 · x1
[minus(x1, x2)] = 3 + 3 · x2 + 1 · x1 + 3 · x1 · x2
[neg(x1)] = 2 · x1
the rules
minus(x,y) plus(x,neg(y)) (9)
neg(un(x)) j(neg(x)) (12)
neg(j(x)) un(neg(x)) (13)
can be deleted.

1.1.1 AC Rule Removal

Using the non-linear polynomial interpretation over the naturals
[plus(x1, x2)] = 1 · x2 + 1 · x1
[times(x1, x2)] = 2 + 2 · x2 + 2 · x1 + 1 · x1 · x2
[zero(x1)] = 1 + 1 · x1
[0] = 0
[un(x1)] = 1 · x1
[j(x1)] = 1 · x1
[neg(x1)] = 3 + 3 · x1 · x1
the rules
zero(0) 0 (1)
plus(zero(x),zero(y)) zero(plus(x,y)) (3)
plus(zero(x),un(y)) un(plus(x,y)) (4)
plus(zero(x),j(y)) j(plus(x,y)) (5)
neg(0) 0 (10)
neg(zero(x)) zero(neg(x)) (11)
times(x,0) 0 (14)
times(x,times(0,z)) times(0,z) (15)
times(x,zero(y)) zero(times(x,y)) (16)
times(x,times(zero(y),z)) times(zero(times(x,y)),z) (17)
can be deleted.

1.1.1.1 AC Dependency Pair Transformation

The following set of (strict) dependency pairs is constructed for the TRS.

plus#(un(x),un(y)) plus#(x,plus(y,un(0))) (29)
plus#(un(x),un(y)) plus#(y,un(0)) (30)
plus#(j(x),j(y)) plus#(x,plus(y,j(0))) (31)
plus#(j(x),j(y)) plus#(y,j(0)) (32)
plus#(plus(x,0),ext) plus#(x,ext) (33)
plus#(plus(un(x),un(y)),ext) plus#(j(plus(x,plus(y,un(0)))),ext) (34)
plus#(plus(un(x),un(y)),ext) plus#(x,plus(y,un(0))) (35)
plus#(plus(un(x),un(y)),ext) plus#(y,un(0)) (36)
plus#(plus(j(x),j(y)),ext) plus#(un(plus(x,plus(y,j(0)))),ext) (37)
plus#(plus(j(x),j(y)),ext) plus#(x,plus(y,j(0))) (38)
plus#(plus(j(x),j(y)),ext) plus#(y,j(0)) (39)
The extended rules of the TRS
plus(plus(x,0),ext) plus(x,ext) (40)
plus(plus(un(x),un(y)),ext) plus(j(plus(x,plus(y,un(0)))),ext) (41)
plus(plus(j(x),j(y)),ext) plus(un(plus(x,plus(y,j(0)))),ext) (42)
give rise to even more dependency pairs (by sharping the root symbols of each rule). Finiteness for all DPs in combination with the equational DPs is proven as follows.

1.1.1.1.1 AC Monotonic Reduction Pair Processor with Usable Rules

Using the linear polynomial interpretation over the naturals
[plus#(x1, x2)] = 1 · x1 + 1 · x2
[plus(x1, x2)] = 1 · x1 + 1 · x2
[times(x1, x2)] = 1 · x1 + 1 · x2
[0] = 0
[un(x1)] = 1 + 1 · x1
[j(x1)] = 1 + 1 · x1
together with the usable rules
plus(x,0) x (2)
plus(un(x),un(y)) j(plus(x,plus(y,un(0)))) (7)
plus(j(x),j(y)) un(plus(x,plus(y,j(0)))) (8)
plus(plus(x,0),ext) plus(x,ext) (40)
plus(plus(un(x),un(y)),ext) plus(j(plus(x,plus(y,un(0)))),ext) (41)
plus(plus(j(x),j(y)),ext) plus(un(plus(x,plus(y,j(0)))),ext) (42)
plus(x,y) plus(y,x) (22)
times(x,y) times(y,x) (23)
plus(plus(x,y),z) plus(x,plus(y,z)) (24)
times(times(x,y),z) times(x,times(y,z)) (25)
(w.r.t. the implicit argument filter of the reduction pair), the pairs
plus#(un(x),un(y)) plus#(x,plus(y,un(0))) (29)
plus#(un(x),un(y)) plus#(y,un(0)) (30)
plus#(j(x),j(y)) plus#(x,plus(y,j(0))) (31)
plus#(j(x),j(y)) plus#(y,j(0)) (32)
plus#(plus(un(x),un(y)),ext) plus#(x,plus(y,un(0))) (35)
plus#(plus(un(x),un(y)),ext) plus#(y,un(0)) (36)
plus#(plus(j(x),j(y)),ext) plus#(x,plus(y,j(0))) (38)
plus#(plus(j(x),j(y)),ext) plus#(y,j(0)) (39)
and no rules could be deleted.

1.1.1.1.1.1 AC Reduction Pair Processor with Usable Rules

Using the linear polynomial interpretation over the naturals
[plus#(x1, x2)] = 2 · x1 + 2 · x2
[plus(x1, x2)] = 1 · x1 + 1 · x2
[0] = 1
[un(x1)] = 0
[j(x1)] = 0
together with the usable rules
plus(j(x),j(y)) un(plus(x,plus(y,j(0)))) (8)
plus(un(x),un(y)) j(plus(x,plus(y,un(0)))) (7)
plus(x,0) x (2)
plus(plus(un(x),un(y)),ext) plus(j(plus(x,plus(y,un(0)))),ext) (41)
plus(plus(x,0),ext) plus(x,ext) (40)
plus(plus(j(x),j(y)),ext) plus(un(plus(x,plus(y,j(0)))),ext) (42)
plus(plus(x,y),z) plus(x,plus(y,z)) (24)
plus(x,y) plus(y,x) (22)
(w.r.t. the implicit argument filter of the reduction pair), the pair
plus#(plus(x,0),ext) plus#(x,ext) (33)
could be deleted.

1.1.1.1.1.1.1 AC Reduction Pair Processor with Usable Rules

Using the linear polynomial interpretation over the naturals
[plus#(x1, x2)] = 3 · x1 + 3 · x2
[plus(x1, x2)] = 3 + 1 · x1 + 1 · x2
[un(x1)] = 3
[j(x1)] = 0
[0] = 0
together with the usable rules
plus(j(x),j(y)) un(plus(x,plus(y,j(0)))) (8)
plus(un(x),un(y)) j(plus(x,plus(y,un(0)))) (7)
plus(x,0) x (2)
plus(plus(un(x),un(y)),ext) plus(j(plus(x,plus(y,un(0)))),ext) (41)
plus(plus(x,0),ext) plus(x,ext) (40)
plus(plus(j(x),j(y)),ext) plus(un(plus(x,plus(y,j(0)))),ext) (42)
plus(plus(x,y),z) plus(x,plus(y,z)) (24)
plus(x,y) plus(y,x) (22)
(w.r.t. the implicit argument filter of the reduction pair), the pairs
plus#(plus(un(x),un(y)),ext) plus#(j(plus(x,plus(y,un(0)))),ext) (34)
plus#(plus(x,y),z) plus#(y,z) (28)
could be deleted.

1.1.1.1.1.1.1.1 AC Reduction Pair Processor with Usable Rules

Using the linear polynomial interpretation over the naturals
[plus#(x1, x2)] = 2 · x1 + 2 · x2
[plus(x1, x2)] = 1 + 1 · x1 + 1 · x2
[j(x1)] = 0
[un(x1)] = 0
[0] = 0
together with the usable rules
plus(j(x),j(y)) un(plus(x,plus(y,j(0)))) (8)
plus(un(x),un(y)) j(plus(x,plus(y,un(0)))) (7)
plus(x,0) x (2)
plus(plus(un(x),un(y)),ext) plus(j(plus(x,plus(y,un(0)))),ext) (41)
plus(plus(x,0),ext) plus(x,ext) (40)
plus(plus(j(x),j(y)),ext) plus(un(plus(x,plus(y,j(0)))),ext) (42)
plus(plus(x,y),z) plus(x,plus(y,z)) (24)
plus(x,y) plus(y,x) (22)
(w.r.t. the implicit argument filter of the reduction pair), the pair
plus#(plus(j(x),j(y)),ext) plus#(un(plus(x,plus(y,j(0)))),ext) (37)
could be deleted.

1.1.1.1.1.1.1.1.1 AC Dependency Pair Problem is trivial

There are no strict pairs and rules remaining, or there are no DPs remaining. Therefore, finiteness is trivially satisfied.