↳ PROLOG
↳ PrologToPiTRSProof
With regard to the inferred argument filtering the predicates were used in the following modes:
tree_member2: (f,b)
Transforming PROLOG into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:
tree_member_2_in_ag2(X, tree_33(X, underscore, underscore1)) -> tree_member_2_out_ag2(X, tree_33(X, underscore, underscore1))
tree_member_2_in_ag2(X, tree_33(underscore2, Left, underscore3)) -> if_tree_member_2_in_1_ag5(X, underscore2, Left, underscore3, tree_member_2_in_ag2(X, Left))
tree_member_2_in_ag2(X, tree_33(underscore4, underscore5, Right)) -> if_tree_member_2_in_2_ag5(X, underscore4, underscore5, Right, tree_member_2_in_ag2(X, Right))
if_tree_member_2_in_2_ag5(X, underscore4, underscore5, Right, tree_member_2_out_ag2(X, Right)) -> tree_member_2_out_ag2(X, tree_33(underscore4, underscore5, Right))
if_tree_member_2_in_1_ag5(X, underscore2, Left, underscore3, tree_member_2_out_ag2(X, Left)) -> tree_member_2_out_ag2(X, tree_33(underscore2, Left, underscore3))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of PROLOG
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
tree_member_2_in_ag2(X, tree_33(X, underscore, underscore1)) -> tree_member_2_out_ag2(X, tree_33(X, underscore, underscore1))
tree_member_2_in_ag2(X, tree_33(underscore2, Left, underscore3)) -> if_tree_member_2_in_1_ag5(X, underscore2, Left, underscore3, tree_member_2_in_ag2(X, Left))
tree_member_2_in_ag2(X, tree_33(underscore4, underscore5, Right)) -> if_tree_member_2_in_2_ag5(X, underscore4, underscore5, Right, tree_member_2_in_ag2(X, Right))
if_tree_member_2_in_2_ag5(X, underscore4, underscore5, Right, tree_member_2_out_ag2(X, Right)) -> tree_member_2_out_ag2(X, tree_33(underscore4, underscore5, Right))
if_tree_member_2_in_1_ag5(X, underscore2, Left, underscore3, tree_member_2_out_ag2(X, Left)) -> tree_member_2_out_ag2(X, tree_33(underscore2, Left, underscore3))
TREE_MEMBER_2_IN_AG2(X, tree_33(underscore2, Left, underscore3)) -> IF_TREE_MEMBER_2_IN_1_AG5(X, underscore2, Left, underscore3, tree_member_2_in_ag2(X, Left))
TREE_MEMBER_2_IN_AG2(X, tree_33(underscore2, Left, underscore3)) -> TREE_MEMBER_2_IN_AG2(X, Left)
TREE_MEMBER_2_IN_AG2(X, tree_33(underscore4, underscore5, Right)) -> IF_TREE_MEMBER_2_IN_2_AG5(X, underscore4, underscore5, Right, tree_member_2_in_ag2(X, Right))
TREE_MEMBER_2_IN_AG2(X, tree_33(underscore4, underscore5, Right)) -> TREE_MEMBER_2_IN_AG2(X, Right)
tree_member_2_in_ag2(X, tree_33(X, underscore, underscore1)) -> tree_member_2_out_ag2(X, tree_33(X, underscore, underscore1))
tree_member_2_in_ag2(X, tree_33(underscore2, Left, underscore3)) -> if_tree_member_2_in_1_ag5(X, underscore2, Left, underscore3, tree_member_2_in_ag2(X, Left))
tree_member_2_in_ag2(X, tree_33(underscore4, underscore5, Right)) -> if_tree_member_2_in_2_ag5(X, underscore4, underscore5, Right, tree_member_2_in_ag2(X, Right))
if_tree_member_2_in_2_ag5(X, underscore4, underscore5, Right, tree_member_2_out_ag2(X, Right)) -> tree_member_2_out_ag2(X, tree_33(underscore4, underscore5, Right))
if_tree_member_2_in_1_ag5(X, underscore2, Left, underscore3, tree_member_2_out_ag2(X, Left)) -> tree_member_2_out_ag2(X, tree_33(underscore2, Left, underscore3))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
TREE_MEMBER_2_IN_AG2(X, tree_33(underscore2, Left, underscore3)) -> IF_TREE_MEMBER_2_IN_1_AG5(X, underscore2, Left, underscore3, tree_member_2_in_ag2(X, Left))
TREE_MEMBER_2_IN_AG2(X, tree_33(underscore2, Left, underscore3)) -> TREE_MEMBER_2_IN_AG2(X, Left)
TREE_MEMBER_2_IN_AG2(X, tree_33(underscore4, underscore5, Right)) -> IF_TREE_MEMBER_2_IN_2_AG5(X, underscore4, underscore5, Right, tree_member_2_in_ag2(X, Right))
TREE_MEMBER_2_IN_AG2(X, tree_33(underscore4, underscore5, Right)) -> TREE_MEMBER_2_IN_AG2(X, Right)
tree_member_2_in_ag2(X, tree_33(X, underscore, underscore1)) -> tree_member_2_out_ag2(X, tree_33(X, underscore, underscore1))
tree_member_2_in_ag2(X, tree_33(underscore2, Left, underscore3)) -> if_tree_member_2_in_1_ag5(X, underscore2, Left, underscore3, tree_member_2_in_ag2(X, Left))
tree_member_2_in_ag2(X, tree_33(underscore4, underscore5, Right)) -> if_tree_member_2_in_2_ag5(X, underscore4, underscore5, Right, tree_member_2_in_ag2(X, Right))
if_tree_member_2_in_2_ag5(X, underscore4, underscore5, Right, tree_member_2_out_ag2(X, Right)) -> tree_member_2_out_ag2(X, tree_33(underscore4, underscore5, Right))
if_tree_member_2_in_1_ag5(X, underscore2, Left, underscore3, tree_member_2_out_ag2(X, Left)) -> tree_member_2_out_ag2(X, tree_33(underscore2, Left, underscore3))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
TREE_MEMBER_2_IN_AG2(X, tree_33(underscore4, underscore5, Right)) -> TREE_MEMBER_2_IN_AG2(X, Right)
TREE_MEMBER_2_IN_AG2(X, tree_33(underscore2, Left, underscore3)) -> TREE_MEMBER_2_IN_AG2(X, Left)
tree_member_2_in_ag2(X, tree_33(X, underscore, underscore1)) -> tree_member_2_out_ag2(X, tree_33(X, underscore, underscore1))
tree_member_2_in_ag2(X, tree_33(underscore2, Left, underscore3)) -> if_tree_member_2_in_1_ag5(X, underscore2, Left, underscore3, tree_member_2_in_ag2(X, Left))
tree_member_2_in_ag2(X, tree_33(underscore4, underscore5, Right)) -> if_tree_member_2_in_2_ag5(X, underscore4, underscore5, Right, tree_member_2_in_ag2(X, Right))
if_tree_member_2_in_2_ag5(X, underscore4, underscore5, Right, tree_member_2_out_ag2(X, Right)) -> tree_member_2_out_ag2(X, tree_33(underscore4, underscore5, Right))
if_tree_member_2_in_1_ag5(X, underscore2, Left, underscore3, tree_member_2_out_ag2(X, Left)) -> tree_member_2_out_ag2(X, tree_33(underscore2, Left, underscore3))
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
TREE_MEMBER_2_IN_AG2(X, tree_33(underscore4, underscore5, Right)) -> TREE_MEMBER_2_IN_AG2(X, Right)
TREE_MEMBER_2_IN_AG2(X, tree_33(underscore2, Left, underscore3)) -> TREE_MEMBER_2_IN_AG2(X, Left)
↳ PROLOG
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
TREE_MEMBER_2_IN_AG1(tree_33(underscore4, underscore5, Right)) -> TREE_MEMBER_2_IN_AG1(Right)
TREE_MEMBER_2_IN_AG1(tree_33(underscore2, Left, underscore3)) -> TREE_MEMBER_2_IN_AG1(Left)
From the DPs we obtained the following set of size-change graphs: