Certification Problem

Input (TPDB SRS_Standard/Zantema_04/z080)

The rewrite relation of the following TRS is considered.

A(b(x1)) b(a(B(A(x1)))) (1)
B(a(x1)) a(b(A(B(x1)))) (2)
A(a(x1)) x1 (3)
B(b(x1)) x1 (4)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 Closure Under Flat Contexts

Using the flat contexts

{A(), b(), a(), B()}

We obtain the transformed TRS
A(A(b(x1))) A(b(a(B(A(x1))))) (5)
b(A(b(x1))) b(b(a(B(A(x1))))) (6)
a(A(b(x1))) a(b(a(B(A(x1))))) (7)
B(A(b(x1))) B(b(a(B(A(x1))))) (8)
A(B(a(x1))) A(a(b(A(B(x1))))) (9)
b(B(a(x1))) b(a(b(A(B(x1))))) (10)
a(B(a(x1))) a(a(b(A(B(x1))))) (11)
B(B(a(x1))) B(a(b(A(B(x1))))) (12)
A(A(a(x1))) A(x1) (13)
b(A(a(x1))) b(x1) (14)
a(A(a(x1))) a(x1) (15)
B(A(a(x1))) B(x1) (16)
A(B(b(x1))) A(x1) (17)
b(B(b(x1))) b(x1) (18)
a(B(b(x1))) a(x1) (19)
B(B(b(x1))) B(x1) (20)

1.1 Semantic Labeling

Root-labeling is applied.

We obtain the labeled TRS
AA(Ab(bA(x1))) Ab(ba(aB(BA(AA(x1))))) (21)
AA(Ab(bb(x1))) Ab(ba(aB(BA(Ab(x1))))) (22)
AA(Ab(ba(x1))) Ab(ba(aB(BA(Aa(x1))))) (23)
AA(Ab(bB(x1))) Ab(ba(aB(BA(AB(x1))))) (24)
bA(Ab(bA(x1))) bb(ba(aB(BA(AA(x1))))) (25)
bA(Ab(bb(x1))) bb(ba(aB(BA(Ab(x1))))) (26)
bA(Ab(ba(x1))) bb(ba(aB(BA(Aa(x1))))) (27)
bA(Ab(bB(x1))) bb(ba(aB(BA(AB(x1))))) (28)
aA(Ab(bA(x1))) ab(ba(aB(BA(AA(x1))))) (29)
aA(Ab(bb(x1))) ab(ba(aB(BA(Ab(x1))))) (30)
aA(Ab(ba(x1))) ab(ba(aB(BA(Aa(x1))))) (31)
aA(Ab(bB(x1))) ab(ba(aB(BA(AB(x1))))) (32)
BA(Ab(bA(x1))) Bb(ba(aB(BA(AA(x1))))) (33)
BA(Ab(bb(x1))) Bb(ba(aB(BA(Ab(x1))))) (34)
BA(Ab(ba(x1))) Bb(ba(aB(BA(Aa(x1))))) (35)
BA(Ab(bB(x1))) Bb(ba(aB(BA(AB(x1))))) (36)
AB(Ba(aA(x1))) Aa(ab(bA(AB(BA(x1))))) (37)
AB(Ba(ab(x1))) Aa(ab(bA(AB(Bb(x1))))) (38)
AB(Ba(aa(x1))) Aa(ab(bA(AB(Ba(x1))))) (39)
AB(Ba(aB(x1))) Aa(ab(bA(AB(BB(x1))))) (40)
bB(Ba(aA(x1))) ba(ab(bA(AB(BA(x1))))) (41)
bB(Ba(ab(x1))) ba(ab(bA(AB(Bb(x1))))) (42)
bB(Ba(aa(x1))) ba(ab(bA(AB(Ba(x1))))) (43)
bB(Ba(aB(x1))) ba(ab(bA(AB(BB(x1))))) (44)
aB(Ba(aA(x1))) aa(ab(bA(AB(BA(x1))))) (45)
aB(Ba(ab(x1))) aa(ab(bA(AB(Bb(x1))))) (46)
aB(Ba(aa(x1))) aa(ab(bA(AB(Ba(x1))))) (47)
aB(Ba(aB(x1))) aa(ab(bA(AB(BB(x1))))) (48)
BB(Ba(aA(x1))) Ba(ab(bA(AB(BA(x1))))) (49)
BB(Ba(ab(x1))) Ba(ab(bA(AB(Bb(x1))))) (50)
BB(Ba(aa(x1))) Ba(ab(bA(AB(Ba(x1))))) (51)
BB(Ba(aB(x1))) Ba(ab(bA(AB(BB(x1))))) (52)
AA(Aa(aA(x1))) AA(x1) (53)
AA(Aa(ab(x1))) Ab(x1) (54)
AA(Aa(aa(x1))) Aa(x1) (55)
AA(Aa(aB(x1))) AB(x1) (56)
bA(Aa(aA(x1))) bA(x1) (57)
bA(Aa(ab(x1))) bb(x1) (58)
bA(Aa(aa(x1))) ba(x1) (59)
bA(Aa(aB(x1))) bB(x1) (60)
aA(Aa(aA(x1))) aA(x1) (61)
aA(Aa(ab(x1))) ab(x1) (62)
aA(Aa(aa(x1))) aa(x1) (63)
aA(Aa(aB(x1))) aB(x1) (64)
BA(Aa(aA(x1))) BA(x1) (65)
BA(Aa(ab(x1))) Bb(x1) (66)
BA(Aa(aa(x1))) Ba(x1) (67)
BA(Aa(aB(x1))) BB(x1) (68)
AB(Bb(bA(x1))) AA(x1) (69)
AB(Bb(bb(x1))) Ab(x1) (70)
AB(Bb(ba(x1))) Aa(x1) (71)
AB(Bb(bB(x1))) AB(x1) (72)
bB(Bb(bA(x1))) bA(x1) (73)
bB(Bb(bb(x1))) bb(x1) (74)
bB(Bb(ba(x1))) ba(x1) (75)
bB(Bb(bB(x1))) bB(x1) (76)
aB(Bb(bA(x1))) aA(x1) (77)
aB(Bb(bb(x1))) ab(x1) (78)
aB(Bb(ba(x1))) aa(x1) (79)
aB(Bb(bB(x1))) aB(x1) (80)
BB(Bb(bA(x1))) BA(x1) (81)
BB(Bb(bb(x1))) Bb(x1) (82)
BB(Bb(ba(x1))) Ba(x1) (83)
BB(Bb(bB(x1))) BB(x1) (84)

1.1.1 Rule Removal

Using the linear polynomial interpretation over the naturals
[AA(x1)] = 1 · x1 + 1
[Ab(x1)] = 1 · x1 + 1
[bA(x1)] = 1 · x1 + 1
[ba(x1)] = 1 · x1
[aB(x1)] = 1 · x1 + 1
[BA(x1)] = 1 · x1
[bb(x1)] = 1 · x1 + 1
[Aa(x1)] = 1 · x1
[bB(x1)] = 1 · x1
[AB(x1)] = 1 · x1
[aA(x1)] = 1 · x1 + 1
[ab(x1)] = 1 · x1
[Bb(x1)] = 1 · x1
[Ba(x1)] = 1 · x1 + 1
[aa(x1)] = 1 · x1 + 1
[BB(x1)] = 1 · x1 + 1
all of the following rules can be deleted.
aA(Ab(bA(x1))) ab(ba(aB(BA(AA(x1))))) (29)
aA(Ab(bb(x1))) ab(ba(aB(BA(Ab(x1))))) (30)
aA(Ab(ba(x1))) ab(ba(aB(BA(Aa(x1))))) (31)
aA(Ab(bB(x1))) ab(ba(aB(BA(AB(x1))))) (32)
AB(Ba(aA(x1))) Aa(ab(bA(AB(BA(x1))))) (37)
bB(Ba(aA(x1))) ba(ab(bA(AB(BA(x1))))) (41)
aB(Ba(aA(x1))) aa(ab(bA(AB(BA(x1))))) (45)
BB(Ba(aA(x1))) Ba(ab(bA(AB(BA(x1))))) (49)
AA(Aa(aA(x1))) AA(x1) (53)
AA(Aa(aa(x1))) Aa(x1) (55)
AA(Aa(aB(x1))) AB(x1) (56)
bA(Aa(aA(x1))) bA(x1) (57)
bA(Aa(aa(x1))) ba(x1) (59)
bA(Aa(aB(x1))) bB(x1) (60)
aA(Aa(aA(x1))) aA(x1) (61)
aA(Aa(ab(x1))) ab(x1) (62)
aA(Aa(aa(x1))) aa(x1) (63)
aA(Aa(aB(x1))) aB(x1) (64)
BA(Aa(aA(x1))) BA(x1) (65)
aB(Bb(bA(x1))) aA(x1) (77)
aB(Bb(bb(x1))) ab(x1) (78)
BB(Bb(bA(x1))) BA(x1) (81)
BB(Bb(bb(x1))) Bb(x1) (82)

1.1.1.1 Rule Removal

Using the linear polynomial interpretation over the naturals
[AA(x1)] = 1 · x1
[Ab(x1)] = 1 · x1
[bA(x1)] = 1 · x1
[ba(x1)] = 1 · x1
[aB(x1)] = 1 · x1
[BA(x1)] = 1 · x1
[bb(x1)] = 1 · x1
[Aa(x1)] = 1 · x1
[bB(x1)] = 1 · x1 + 1
[AB(x1)] = 1 · x1
[Bb(x1)] = 1 · x1
[Ba(x1)] = 1 · x1
[ab(x1)] = 1 · x1
[aa(x1)] = 1 · x1
[BB(x1)] = 1 · x1
all of the following rules can be deleted.
AA(Ab(bB(x1))) Ab(ba(aB(BA(AB(x1))))) (24)
bA(Ab(bB(x1))) bb(ba(aB(BA(AB(x1))))) (28)
BA(Ab(bB(x1))) Bb(ba(aB(BA(AB(x1))))) (36)
bB(Ba(ab(x1))) ba(ab(bA(AB(Bb(x1))))) (42)
bB(Ba(aa(x1))) ba(ab(bA(AB(Ba(x1))))) (43)
bB(Ba(aB(x1))) ba(ab(bA(AB(BB(x1))))) (44)
AB(Bb(bB(x1))) AB(x1) (72)
bB(Bb(bA(x1))) bA(x1) (73)
bB(Bb(bb(x1))) bb(x1) (74)
bB(Bb(ba(x1))) ba(x1) (75)
bB(Bb(bB(x1))) bB(x1) (76)
aB(Bb(bB(x1))) aB(x1) (80)
BB(Bb(bB(x1))) BB(x1) (84)

1.1.1.1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
AA#(Ab(bA(x1))) aB#(BA(AA(x1))) (85)
AA#(Ab(bA(x1))) BA#(AA(x1)) (86)
AA#(Ab(bA(x1))) AA#(x1) (87)
AA#(Ab(bb(x1))) aB#(BA(Ab(x1))) (88)
AA#(Ab(bb(x1))) BA#(Ab(x1)) (89)
AA#(Ab(ba(x1))) aB#(BA(Aa(x1))) (90)
AA#(Ab(ba(x1))) BA#(Aa(x1)) (91)
bA#(Ab(bA(x1))) aB#(BA(AA(x1))) (92)
bA#(Ab(bA(x1))) BA#(AA(x1)) (93)
bA#(Ab(bA(x1))) AA#(x1) (94)
bA#(Ab(bb(x1))) aB#(BA(Ab(x1))) (95)
bA#(Ab(bb(x1))) BA#(Ab(x1)) (96)
bA#(Ab(ba(x1))) aB#(BA(Aa(x1))) (97)
bA#(Ab(ba(x1))) BA#(Aa(x1)) (98)
BA#(Ab(bA(x1))) aB#(BA(AA(x1))) (99)
BA#(Ab(bA(x1))) BA#(AA(x1)) (100)
BA#(Ab(bA(x1))) AA#(x1) (101)
BA#(Ab(bb(x1))) aB#(BA(Ab(x1))) (102)
BA#(Ab(bb(x1))) BA#(Ab(x1)) (103)
BA#(Ab(ba(x1))) aB#(BA(Aa(x1))) (104)
BA#(Ab(ba(x1))) BA#(Aa(x1)) (105)
AB#(Ba(ab(x1))) bA#(AB(Bb(x1))) (106)
AB#(Ba(ab(x1))) AB#(Bb(x1)) (107)
AB#(Ba(aa(x1))) bA#(AB(Ba(x1))) (108)
AB#(Ba(aa(x1))) AB#(Ba(x1)) (109)
AB#(Ba(aB(x1))) bA#(AB(BB(x1))) (110)
AB#(Ba(aB(x1))) AB#(BB(x1)) (111)
AB#(Ba(aB(x1))) BB#(x1) (112)
aB#(Ba(ab(x1))) bA#(AB(Bb(x1))) (113)
aB#(Ba(ab(x1))) AB#(Bb(x1)) (114)
aB#(Ba(aa(x1))) bA#(AB(Ba(x1))) (115)
aB#(Ba(aa(x1))) AB#(Ba(x1)) (116)
aB#(Ba(aB(x1))) bA#(AB(BB(x1))) (117)
aB#(Ba(aB(x1))) AB#(BB(x1)) (118)
aB#(Ba(aB(x1))) BB#(x1) (119)
BB#(Ba(ab(x1))) bA#(AB(Bb(x1))) (120)
BB#(Ba(ab(x1))) AB#(Bb(x1)) (121)
BB#(Ba(aa(x1))) bA#(AB(Ba(x1))) (122)
BB#(Ba(aa(x1))) AB#(Ba(x1)) (123)
BB#(Ba(aB(x1))) bA#(AB(BB(x1))) (124)
BB#(Ba(aB(x1))) AB#(BB(x1)) (125)
BB#(Ba(aB(x1))) BB#(x1) (126)
BA#(Aa(aB(x1))) BB#(x1) (127)
AB#(Bb(bA(x1))) AA#(x1) (128)

1.1.1.1.1.1 Reduction Pair Processor

Using the linear polynomial interpretation over the naturals
[AA#(x1)] = 1 · x1
[Ab(x1)] = 1 + 1 · x1
[bA(x1)] = 1 + 1 · x1
[aB#(x1)] = 1 + 1 · x1
[BA(x1)] = 1 · x1
[AA(x1)] = 1 + 1 · x1
[BA#(x1)] = 1 · x1
[bb(x1)] = 1 + 1 · x1
[ba(x1)] = 1 · x1
[Aa(x1)] = 1 · x1
[bA#(x1)] = 1 · x1
[AB#(x1)] = 1 · x1
[Ba(x1)] = 1 + 1 · x1
[ab(x1)] = 1 · x1
[AB(x1)] = 1 · x1
[Bb(x1)] = 1 · x1
[aa(x1)] = 1 + 1 · x1
[aB(x1)] = 1 + 1 · x1
[BB(x1)] = 1 + 1 · x1
[BB#(x1)] = 1 · x1
the pairs
AA#(Ab(bA(x1))) BA#(AA(x1)) (86)
AA#(Ab(bA(x1))) AA#(x1) (87)
AA#(Ab(bb(x1))) BA#(Ab(x1)) (89)
AA#(Ab(ba(x1))) BA#(Aa(x1)) (91)
bA#(Ab(bA(x1))) BA#(AA(x1)) (93)
bA#(Ab(bA(x1))) AA#(x1) (94)
bA#(Ab(bb(x1))) BA#(Ab(x1)) (96)
bA#(Ab(ba(x1))) BA#(Aa(x1)) (98)
BA#(Ab(bA(x1))) BA#(AA(x1)) (100)
BA#(Ab(bA(x1))) AA#(x1) (101)
BA#(Ab(bb(x1))) BA#(Ab(x1)) (103)
BA#(Ab(ba(x1))) BA#(Aa(x1)) (105)
AB#(Ba(ab(x1))) bA#(AB(Bb(x1))) (106)
AB#(Ba(ab(x1))) AB#(Bb(x1)) (107)
AB#(Ba(aa(x1))) bA#(AB(Ba(x1))) (108)
AB#(Ba(aa(x1))) AB#(Ba(x1)) (109)
AB#(Ba(aB(x1))) bA#(AB(BB(x1))) (110)
AB#(Ba(aB(x1))) AB#(BB(x1)) (111)
AB#(Ba(aB(x1))) BB#(x1) (112)
aB#(Ba(ab(x1))) bA#(AB(Bb(x1))) (113)
aB#(Ba(ab(x1))) AB#(Bb(x1)) (114)
aB#(Ba(aa(x1))) bA#(AB(Ba(x1))) (115)
aB#(Ba(aa(x1))) AB#(Ba(x1)) (116)
aB#(Ba(aB(x1))) bA#(AB(BB(x1))) (117)
aB#(Ba(aB(x1))) AB#(BB(x1)) (118)
aB#(Ba(aB(x1))) BB#(x1) (119)
BB#(Ba(ab(x1))) bA#(AB(Bb(x1))) (120)
BB#(Ba(ab(x1))) AB#(Bb(x1)) (121)
BB#(Ba(aa(x1))) bA#(AB(Ba(x1))) (122)
BB#(Ba(aa(x1))) AB#(Ba(x1)) (123)
BB#(Ba(aB(x1))) bA#(AB(BB(x1))) (124)
BB#(Ba(aB(x1))) AB#(BB(x1)) (125)
BB#(Ba(aB(x1))) BB#(x1) (126)
BA#(Aa(aB(x1))) BB#(x1) (127)
AB#(Bb(bA(x1))) AA#(x1) (128)
could be deleted.

1.1.1.1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 0 components.