0 Prolog
↳1 PrologToPiTRSProof (⇐)
↳2 PiTRS
↳3 DependencyPairsProof (⇔)
↳4 PiDP
↳5 DependencyGraphProof (⇔)
↳6 PiDP
↳7 UsableRulesProof (⇔)
↳8 PiDP
↳9 PiDPToQDPProof (⇐)
↳10 QDP
↳11 QDPSizeChangeProof (⇔)
↳12 TRUE
↳13 PrologToPiTRSProof (⇐)
↳14 PiTRS
↳15 DependencyPairsProof (⇔)
↳16 PiDP
↳17 DependencyGraphProof (⇔)
↳18 PiDP
↳19 UsableRulesProof (⇔)
↳20 PiDP
↳21 PiDPToQDPProof (⇐)
↳22 QDP
tree_member_in_ag(X, tree(X, X1, X2)) → tree_member_out_ag(X, tree(X, X1, X2))
tree_member_in_ag(X, tree(X3, Left, X4)) → U1_ag(X, X3, Left, X4, tree_member_in_ag(X, Left))
tree_member_in_ag(X, tree(X5, X6, Right)) → U2_ag(X, X5, X6, Right, tree_member_in_ag(X, Right))
U2_ag(X, X5, X6, Right, tree_member_out_ag(X, Right)) → tree_member_out_ag(X, tree(X5, X6, Right))
U1_ag(X, X3, Left, X4, tree_member_out_ag(X, Left)) → tree_member_out_ag(X, tree(X3, Left, X4))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
tree_member_in_ag(X, tree(X, X1, X2)) → tree_member_out_ag(X, tree(X, X1, X2))
tree_member_in_ag(X, tree(X3, Left, X4)) → U1_ag(X, X3, Left, X4, tree_member_in_ag(X, Left))
tree_member_in_ag(X, tree(X5, X6, Right)) → U2_ag(X, X5, X6, Right, tree_member_in_ag(X, Right))
U2_ag(X, X5, X6, Right, tree_member_out_ag(X, Right)) → tree_member_out_ag(X, tree(X5, X6, Right))
U1_ag(X, X3, Left, X4, tree_member_out_ag(X, Left)) → tree_member_out_ag(X, tree(X3, Left, X4))
TREE_MEMBER_IN_AG(X, tree(X3, Left, X4)) → U1_AG(X, X3, Left, X4, tree_member_in_ag(X, Left))
TREE_MEMBER_IN_AG(X, tree(X3, Left, X4)) → TREE_MEMBER_IN_AG(X, Left)
TREE_MEMBER_IN_AG(X, tree(X5, X6, Right)) → U2_AG(X, X5, X6, Right, tree_member_in_ag(X, Right))
TREE_MEMBER_IN_AG(X, tree(X5, X6, Right)) → TREE_MEMBER_IN_AG(X, Right)
tree_member_in_ag(X, tree(X, X1, X2)) → tree_member_out_ag(X, tree(X, X1, X2))
tree_member_in_ag(X, tree(X3, Left, X4)) → U1_ag(X, X3, Left, X4, tree_member_in_ag(X, Left))
tree_member_in_ag(X, tree(X5, X6, Right)) → U2_ag(X, X5, X6, Right, tree_member_in_ag(X, Right))
U2_ag(X, X5, X6, Right, tree_member_out_ag(X, Right)) → tree_member_out_ag(X, tree(X5, X6, Right))
U1_ag(X, X3, Left, X4, tree_member_out_ag(X, Left)) → tree_member_out_ag(X, tree(X3, Left, X4))
TREE_MEMBER_IN_AG(X, tree(X3, Left, X4)) → U1_AG(X, X3, Left, X4, tree_member_in_ag(X, Left))
TREE_MEMBER_IN_AG(X, tree(X3, Left, X4)) → TREE_MEMBER_IN_AG(X, Left)
TREE_MEMBER_IN_AG(X, tree(X5, X6, Right)) → U2_AG(X, X5, X6, Right, tree_member_in_ag(X, Right))
TREE_MEMBER_IN_AG(X, tree(X5, X6, Right)) → TREE_MEMBER_IN_AG(X, Right)
tree_member_in_ag(X, tree(X, X1, X2)) → tree_member_out_ag(X, tree(X, X1, X2))
tree_member_in_ag(X, tree(X3, Left, X4)) → U1_ag(X, X3, Left, X4, tree_member_in_ag(X, Left))
tree_member_in_ag(X, tree(X5, X6, Right)) → U2_ag(X, X5, X6, Right, tree_member_in_ag(X, Right))
U2_ag(X, X5, X6, Right, tree_member_out_ag(X, Right)) → tree_member_out_ag(X, tree(X5, X6, Right))
U1_ag(X, X3, Left, X4, tree_member_out_ag(X, Left)) → tree_member_out_ag(X, tree(X3, Left, X4))
TREE_MEMBER_IN_AG(X, tree(X5, X6, Right)) → TREE_MEMBER_IN_AG(X, Right)
TREE_MEMBER_IN_AG(X, tree(X3, Left, X4)) → TREE_MEMBER_IN_AG(X, Left)
tree_member_in_ag(X, tree(X, X1, X2)) → tree_member_out_ag(X, tree(X, X1, X2))
tree_member_in_ag(X, tree(X3, Left, X4)) → U1_ag(X, X3, Left, X4, tree_member_in_ag(X, Left))
tree_member_in_ag(X, tree(X5, X6, Right)) → U2_ag(X, X5, X6, Right, tree_member_in_ag(X, Right))
U2_ag(X, X5, X6, Right, tree_member_out_ag(X, Right)) → tree_member_out_ag(X, tree(X5, X6, Right))
U1_ag(X, X3, Left, X4, tree_member_out_ag(X, Left)) → tree_member_out_ag(X, tree(X3, Left, X4))
TREE_MEMBER_IN_AG(X, tree(X5, X6, Right)) → TREE_MEMBER_IN_AG(X, Right)
TREE_MEMBER_IN_AG(X, tree(X3, Left, X4)) → TREE_MEMBER_IN_AG(X, Left)
TREE_MEMBER_IN_AG(tree(X5, X6, Right)) → TREE_MEMBER_IN_AG(Right)
TREE_MEMBER_IN_AG(tree(X3, Left, X4)) → TREE_MEMBER_IN_AG(Left)
From the DPs we obtained the following set of size-change graphs:
tree_member_in_ag(X, tree(X, X1, X2)) → tree_member_out_ag(X, tree(X, X1, X2))
tree_member_in_ag(X, tree(X3, Left, X4)) → U1_ag(X, X3, Left, X4, tree_member_in_ag(X, Left))
tree_member_in_ag(X, tree(X5, X6, Right)) → U2_ag(X, X5, X6, Right, tree_member_in_ag(X, Right))
U2_ag(X, X5, X6, Right, tree_member_out_ag(X, Right)) → tree_member_out_ag(X, tree(X5, X6, Right))
U1_ag(X, X3, Left, X4, tree_member_out_ag(X, Left)) → tree_member_out_ag(X, tree(X3, Left, X4))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
tree_member_in_ag(X, tree(X, X1, X2)) → tree_member_out_ag(X, tree(X, X1, X2))
tree_member_in_ag(X, tree(X3, Left, X4)) → U1_ag(X, X3, Left, X4, tree_member_in_ag(X, Left))
tree_member_in_ag(X, tree(X5, X6, Right)) → U2_ag(X, X5, X6, Right, tree_member_in_ag(X, Right))
U2_ag(X, X5, X6, Right, tree_member_out_ag(X, Right)) → tree_member_out_ag(X, tree(X5, X6, Right))
U1_ag(X, X3, Left, X4, tree_member_out_ag(X, Left)) → tree_member_out_ag(X, tree(X3, Left, X4))
TREE_MEMBER_IN_AG(X, tree(X3, Left, X4)) → U1_AG(X, X3, Left, X4, tree_member_in_ag(X, Left))
TREE_MEMBER_IN_AG(X, tree(X3, Left, X4)) → TREE_MEMBER_IN_AG(X, Left)
TREE_MEMBER_IN_AG(X, tree(X5, X6, Right)) → U2_AG(X, X5, X6, Right, tree_member_in_ag(X, Right))
TREE_MEMBER_IN_AG(X, tree(X5, X6, Right)) → TREE_MEMBER_IN_AG(X, Right)
tree_member_in_ag(X, tree(X, X1, X2)) → tree_member_out_ag(X, tree(X, X1, X2))
tree_member_in_ag(X, tree(X3, Left, X4)) → U1_ag(X, X3, Left, X4, tree_member_in_ag(X, Left))
tree_member_in_ag(X, tree(X5, X6, Right)) → U2_ag(X, X5, X6, Right, tree_member_in_ag(X, Right))
U2_ag(X, X5, X6, Right, tree_member_out_ag(X, Right)) → tree_member_out_ag(X, tree(X5, X6, Right))
U1_ag(X, X3, Left, X4, tree_member_out_ag(X, Left)) → tree_member_out_ag(X, tree(X3, Left, X4))
TREE_MEMBER_IN_AG(X, tree(X3, Left, X4)) → U1_AG(X, X3, Left, X4, tree_member_in_ag(X, Left))
TREE_MEMBER_IN_AG(X, tree(X3, Left, X4)) → TREE_MEMBER_IN_AG(X, Left)
TREE_MEMBER_IN_AG(X, tree(X5, X6, Right)) → U2_AG(X, X5, X6, Right, tree_member_in_ag(X, Right))
TREE_MEMBER_IN_AG(X, tree(X5, X6, Right)) → TREE_MEMBER_IN_AG(X, Right)
tree_member_in_ag(X, tree(X, X1, X2)) → tree_member_out_ag(X, tree(X, X1, X2))
tree_member_in_ag(X, tree(X3, Left, X4)) → U1_ag(X, X3, Left, X4, tree_member_in_ag(X, Left))
tree_member_in_ag(X, tree(X5, X6, Right)) → U2_ag(X, X5, X6, Right, tree_member_in_ag(X, Right))
U2_ag(X, X5, X6, Right, tree_member_out_ag(X, Right)) → tree_member_out_ag(X, tree(X5, X6, Right))
U1_ag(X, X3, Left, X4, tree_member_out_ag(X, Left)) → tree_member_out_ag(X, tree(X3, Left, X4))
TREE_MEMBER_IN_AG(X, tree(X5, X6, Right)) → TREE_MEMBER_IN_AG(X, Right)
TREE_MEMBER_IN_AG(X, tree(X3, Left, X4)) → TREE_MEMBER_IN_AG(X, Left)
tree_member_in_ag(X, tree(X, X1, X2)) → tree_member_out_ag(X, tree(X, X1, X2))
tree_member_in_ag(X, tree(X3, Left, X4)) → U1_ag(X, X3, Left, X4, tree_member_in_ag(X, Left))
tree_member_in_ag(X, tree(X5, X6, Right)) → U2_ag(X, X5, X6, Right, tree_member_in_ag(X, Right))
U2_ag(X, X5, X6, Right, tree_member_out_ag(X, Right)) → tree_member_out_ag(X, tree(X5, X6, Right))
U1_ag(X, X3, Left, X4, tree_member_out_ag(X, Left)) → tree_member_out_ag(X, tree(X3, Left, X4))
TREE_MEMBER_IN_AG(X, tree(X5, X6, Right)) → TREE_MEMBER_IN_AG(X, Right)
TREE_MEMBER_IN_AG(X, tree(X3, Left, X4)) → TREE_MEMBER_IN_AG(X, Left)
TREE_MEMBER_IN_AG(tree(X5, X6, Right)) → TREE_MEMBER_IN_AG(Right)
TREE_MEMBER_IN_AG(tree(X3, Left, X4)) → TREE_MEMBER_IN_AG(Left)