Certification Problem

Input (TPDB SRS_Standard/Gebhardt_06/09)

The rewrite relation of the following TRS is considered.

0(0(0(0(x1)))) → 0(1(1(1(x1)))) (1)
1(0(0(1(x1)))) → 0(0(0(0(x1)))) (2)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by matchbox @ termCOMP 2023)

1 Closure Under Flat Contexts

Using the flat contexts

{1(☐), 0(☐)}

We obtain the transformed TRS
1(0(0(0(0(x1))))) → 1(0(1(1(1(x1))))) (3)
1(1(0(0(1(x1))))) → 1(0(0(0(0(x1))))) (4)
0(0(0(0(0(x1))))) → 0(0(1(1(1(x1))))) (5)
0(1(0(0(1(x1))))) → 0(0(0(0(0(x1))))) (6)

1.1 Semantic Labeling

The following interpretations form a model of the rules.

As carrier we take the set {0,1}. Symbols are labeled by the interpretation of their arguments using the interpretations (modulo 2):

[1(x1)] = 2x1 + 0
[0(x1)] = 2x1 + 1

We obtain the labeled TRS
01(01(01(01(01(x1))))) → 01(00(10(10(11(x1))))) (7)
01(01(01(01(00(x1))))) → 01(00(10(10(10(x1))))) (8)
11(01(01(01(01(x1))))) → 11(00(10(10(11(x1))))) (9)
11(01(01(01(00(x1))))) → 11(00(10(10(10(x1))))) (10)
00(11(01(00(11(x1))))) → 01(01(01(01(01(x1))))) (11)
00(11(01(00(10(x1))))) → 01(01(01(01(00(x1))))) (12)
10(11(01(00(11(x1))))) → 11(01(01(01(01(x1))))) (13)
10(11(01(00(10(x1))))) → 11(01(01(01(00(x1))))) (14)

1.1.1 String Reversal

Since only unary symbols occur, one can reverse all terms and obtains the TRS
01(01(01(01(01(x1))))) → 11(10(10(00(01(x1))))) (15)
00(01(01(01(01(x1))))) → 10(10(10(00(01(x1))))) (16)
01(01(01(01(11(x1))))) → 11(10(10(00(11(x1))))) (17)
00(01(01(01(11(x1))))) → 10(10(10(00(11(x1))))) (18)
11(00(01(11(00(x1))))) → 01(01(01(01(01(x1))))) (19)
10(00(01(11(00(x1))))) → 00(01(01(01(01(x1))))) (20)
11(00(01(11(10(x1))))) → 01(01(01(01(11(x1))))) (21)
10(00(01(11(10(x1))))) → 00(01(01(01(11(x1))))) (22)

1.1.1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
10#(00(01(11(10(x1))))) → 11#(x1) (23)
10#(00(01(11(10(x1))))) → 00#(01(01(01(11(x1))))) (24)
10#(00(01(11(10(x1))))) → 01#(11(x1)) (25)
10#(00(01(11(10(x1))))) → 01#(01(11(x1))) (26)
10#(00(01(11(10(x1))))) → 01#(01(01(11(x1)))) (27)
10#(00(01(11(00(x1))))) → 00#(01(01(01(01(x1))))) (28)
10#(00(01(11(00(x1))))) → 01#(x1) (29)
10#(00(01(11(00(x1))))) → 01#(01(x1)) (30)
10#(00(01(11(00(x1))))) → 01#(01(01(x1))) (31)
10#(00(01(11(00(x1))))) → 01#(01(01(01(x1)))) (32)
11#(00(01(11(10(x1))))) → 11#(x1) (33)
11#(00(01(11(10(x1))))) → 01#(11(x1)) (34)
11#(00(01(11(10(x1))))) → 01#(01(11(x1))) (35)
11#(00(01(11(10(x1))))) → 01#(01(01(11(x1)))) (36)
11#(00(01(11(10(x1))))) → 01#(01(01(01(11(x1))))) (37)
11#(00(01(11(00(x1))))) → 01#(x1) (38)
11#(00(01(11(00(x1))))) → 01#(01(x1)) (39)
11#(00(01(11(00(x1))))) → 01#(01(01(x1))) (40)
11#(00(01(11(00(x1))))) → 01#(01(01(01(x1)))) (41)
11#(00(01(11(00(x1))))) → 01#(01(01(01(01(x1))))) (42)
00#(01(01(01(11(x1))))) → 10#(10(10(00(11(x1))))) (43)
00#(01(01(01(11(x1))))) → 10#(10(00(11(x1)))) (44)
00#(01(01(01(11(x1))))) → 10#(00(11(x1))) (45)
00#(01(01(01(11(x1))))) → 00#(11(x1)) (46)
00#(01(01(01(01(x1))))) → 10#(10(10(00(01(x1))))) (47)
00#(01(01(01(01(x1))))) → 10#(10(00(01(x1)))) (48)
00#(01(01(01(01(x1))))) → 10#(00(01(x1))) (49)
00#(01(01(01(01(x1))))) → 00#(01(x1)) (50)
01#(01(01(01(11(x1))))) → 10#(10(00(11(x1)))) (51)
01#(01(01(01(11(x1))))) → 10#(00(11(x1))) (52)
01#(01(01(01(11(x1))))) → 11#(10(10(00(11(x1))))) (53)
01#(01(01(01(11(x1))))) → 00#(11(x1)) (54)
01#(01(01(01(01(x1))))) → 10#(10(00(01(x1)))) (55)
01#(01(01(01(01(x1))))) → 10#(00(01(x1))) (56)
01#(01(01(01(01(x1))))) → 11#(10(10(00(01(x1))))) (57)
01#(01(01(01(01(x1))))) → 00#(01(x1)) (58)

1.1.1.1.1 Monotonic Reduction Pair Processor with Usable Rules

Using the matrix interpretations of dimension 1 with strict dimension 1 over the rationals with delta = 1
[10(x1)] = x1 +
2
[11(x1)] = x1 +
2
[00(x1)] = x1 +
2
[01(x1)] = x1 +
2
[10#(x1)] = x1 +
1
[11#(x1)] = x1 +
1
[00#(x1)] = x1 +
1
[01#(x1)] = x1 +
1
together with the usable rules
01(01(01(01(01(x1))))) → 11(10(10(00(01(x1))))) (15)
00(01(01(01(01(x1))))) → 10(10(10(00(01(x1))))) (16)
01(01(01(01(11(x1))))) → 11(10(10(00(11(x1))))) (17)
00(01(01(01(11(x1))))) → 10(10(10(00(11(x1))))) (18)
11(00(01(11(00(x1))))) → 01(01(01(01(01(x1))))) (19)
10(00(01(11(00(x1))))) → 00(01(01(01(01(x1))))) (20)
11(00(01(11(10(x1))))) → 01(01(01(01(11(x1))))) (21)
10(00(01(11(10(x1))))) → 00(01(01(01(11(x1))))) (22)
(w.r.t. the implicit argument filter of the reduction pair), the pairs
10#(00(01(11(10(x1))))) → 11#(x1) (23)
10#(00(01(11(10(x1))))) → 01#(11(x1)) (25)
10#(00(01(11(10(x1))))) → 01#(01(11(x1))) (26)
10#(00(01(11(10(x1))))) → 01#(01(01(11(x1)))) (27)
10#(00(01(11(00(x1))))) → 01#(x1) (29)
10#(00(01(11(00(x1))))) → 01#(01(x1)) (30)
10#(00(01(11(00(x1))))) → 01#(01(01(x1))) (31)
10#(00(01(11(00(x1))))) → 01#(01(01(01(x1)))) (32)
11#(00(01(11(10(x1))))) → 11#(x1) (33)
11#(00(01(11(10(x1))))) → 01#(11(x1)) (34)
11#(00(01(11(10(x1))))) → 01#(01(11(x1))) (35)
11#(00(01(11(10(x1))))) → 01#(01(01(11(x1)))) (36)
11#(00(01(11(00(x1))))) → 01#(x1) (38)
11#(00(01(11(00(x1))))) → 01#(01(x1)) (39)
11#(00(01(11(00(x1))))) → 01#(01(01(x1))) (40)
11#(00(01(11(00(x1))))) → 01#(01(01(01(x1)))) (41)
00#(01(01(01(11(x1))))) → 10#(10(00(11(x1)))) (44)
00#(01(01(01(11(x1))))) → 10#(00(11(x1))) (45)
00#(01(01(01(11(x1))))) → 00#(11(x1)) (46)
00#(01(01(01(01(x1))))) → 10#(10(00(01(x1)))) (48)
00#(01(01(01(01(x1))))) → 10#(00(01(x1))) (49)
00#(01(01(01(01(x1))))) → 00#(01(x1)) (50)
01#(01(01(01(11(x1))))) → 10#(10(00(11(x1)))) (51)
01#(01(01(01(11(x1))))) → 10#(00(11(x1))) (52)
01#(01(01(01(11(x1))))) → 00#(11(x1)) (54)
01#(01(01(01(01(x1))))) → 10#(10(00(01(x1)))) (55)
01#(01(01(01(01(x1))))) → 10#(00(01(x1))) (56)
01#(01(01(01(01(x1))))) → 00#(01(x1)) (58)
and no rules could be deleted.

1.1.1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 2 components.