Certification Problem

Input (TPDB TRS_Standard/AProVE_07/thiemann05)

The rewrite relation of the following TRS is considered.

isLeaf(leaf) true (1)
isLeaf(cons(u,v)) false (2)
left(cons(u,v)) u (3)
right(cons(u,v)) v (4)
concat(leaf,y) y (5)
concat(cons(u,v),y) cons(u,concat(v,y)) (6)
less_leaves(u,v) if1(isLeaf(u),isLeaf(v),u,v) (7)
if1(b,true,u,v) false (8)
if1(b,false,u,v) if2(b,u,v) (9)
if2(true,u,v) true (10)
if2(false,u,v) less_leaves(concat(left(u),right(u)),concat(left(v),right(v))) (11)

Property / Task

Prove or disprove termination.

Answer / Result

Yes.

Proof (by AProVE @ termCOMP 2023)

1 Switch to Innermost Termination

The TRS is overlay and locally confluent:

10

Hence, it suffices to show innermost termination in the following.

1.1 Dependency Pair Transformation

The following set of initial dependency pairs has been identified.
concat#(cons(u,v),y) concat#(v,y) (12)
less_leaves#(u,v) if1#(isLeaf(u),isLeaf(v),u,v) (13)
less_leaves#(u,v) isLeaf#(u) (14)
less_leaves#(u,v) isLeaf#(v) (15)
if1#(b,false,u,v) if2#(b,u,v) (16)
if2#(false,u,v) less_leaves#(concat(left(u),right(u)),concat(left(v),right(v))) (17)
if2#(false,u,v) concat#(left(u),right(u)) (18)
if2#(false,u,v) left#(u) (19)
if2#(false,u,v) right#(u) (20)
if2#(false,u,v) concat#(left(v),right(v)) (21)
if2#(false,u,v) left#(v) (22)
if2#(false,u,v) right#(v) (23)

1.1.1 Dependency Graph Processor

The dependency pairs are split into 2 components.