Certification Problem

Input (TPDB TRS_Standard/Zantema_05/z27)

The rewrite relation of the following TRS is considered.

f(0,1,x) f(g(x),g(x),x) (1)
f(g(x),y,z) g(f(x,y,z)) (2)
f(x,g(y),z) g(f(x,y,z)) (3)
f(x,y,g(z)) g(f(x,y,z)) (4)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
f#(0,1,x) f#(g(x),g(x),x) (5)
f#(g(x),y,z) f#(x,y,z) (6)
f#(x,g(y),z) f#(x,y,z) (7)
f#(x,y,g(z)) f#(x,y,z) (8)

1.1 Reduction Pair Processor with Usable Rules

Using the Knuth Bendix order with w0 = 1 and the following precedence and weight functions
prec(g) = 1 weight(g) = 1
in combination with the following argument filter

π(f#) = 3
π(g) = [1]

having no usable rules (w.r.t. the implicit argument filter of the reduction pair), the pair
f#(x,y,g(z)) f#(x,y,z) (8)
could be deleted.

1.1.1 Semantic Labeling Processor

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

[f(x1, x2, x3)] = 0
[0] = 0
[1] = 1
[f#(x1, x2, x3)] = 0
[g(x1)] = 1x1

We obtain the set of labeled pairs
f#010(0,1,x) f#000(g0(x),g0(x),x) (9)
f#000(g0(x),y,z) f#000(x,y,z) (10)
f#001(g0(x),y,z) f#001(x,y,z) (11)
f#010(g0(x),y,z) f#010(x,y,z) (12)
f#011(g0(x),y,z) f#011(x,y,z) (13)
f#100(g1(x),y,z) f#100(x,y,z) (14)
f#101(g1(x),y,z) f#101(x,y,z) (15)
f#110(g1(x),y,z) f#110(x,y,z) (16)
f#111(g1(x),y,z) f#111(x,y,z) (17)
f#011(0,1,x) f#111(g1(x),g1(x),x) (18)
f#000(x,g0(y),z) f#000(x,y,z) (19)
f#001(x,g0(y),z) f#001(x,y,z) (20)
f#010(x,g1(y),z) f#010(x,y,z) (21)
f#011(x,g1(y),z) f#011(x,y,z) (22)
f#100(x,g0(y),z) f#100(x,y,z) (23)
f#101(x,g0(y),z) f#101(x,y,z) (24)
f#110(x,g1(y),z) f#110(x,y,z) (25)
f#111(x,g1(y),z) f#111(x,y,z) (26)
and the set of labeled rules:
f010(0,1,x) f000(g0(x),g0(x),x) (27)
f011(0,1,x) f111(g1(x),g1(x),x) (28)
f000(g0(x),y,z) g0(f000(x,y,z)) (29)
f001(g0(x),y,z) g0(f001(x,y,z)) (30)
f010(g0(x),y,z) g0(f010(x,y,z)) (31)
f011(g0(x),y,z) g0(f011(x,y,z)) (32)
f100(g1(x),y,z) g0(f100(x,y,z)) (33)
f101(g1(x),y,z) g0(f101(x,y,z)) (34)
f110(g1(x),y,z) g0(f110(x,y,z)) (35)
f111(g1(x),y,z) g0(f111(x,y,z)) (36)
f000(x,g0(y),z) g0(f000(x,y,z)) (37)
f001(x,g0(y),z) g0(f001(x,y,z)) (38)
f010(x,g1(y),z) g0(f010(x,y,z)) (39)
f011(x,g1(y),z) g0(f011(x,y,z)) (40)
f100(x,g0(y),z) g0(f100(x,y,z)) (41)
f101(x,g0(y),z) g0(f101(x,y,z)) (42)
f110(x,g1(y),z) g0(f110(x,y,z)) (43)
f111(x,g1(y),z) g0(f111(x,y,z)) (44)
f000(x,y,g0(z)) g0(f000(x,y,z)) (45)
f001(x,y,g1(z)) g0(f001(x,y,z)) (46)
f010(x,y,g0(z)) g0(f010(x,y,z)) (47)
f011(x,y,g1(z)) g0(f011(x,y,z)) (48)
f100(x,y,g0(z)) g0(f100(x,y,z)) (49)
f101(x,y,g1(z)) g0(f101(x,y,z)) (50)
f110(x,y,g0(z)) g0(f110(x,y,z)) (51)
f111(x,y,g1(z)) g0(f111(x,y,z)) (52)

1.1.1.1 Dependency Graph Processor

The dependency pairs are split into 8 components.